diff options
author | Neale Ranns <nranns@cisco.com> | 2017-02-20 09:42:36 -0800 |
---|---|---|
committer | Dave Barach <openvpp@barachs.net> | 2017-03-04 01:23:56 +0000 |
commit | 358425b86cb231efd2330e5aeb077cad38c2efad (patch) | |
tree | e8b60b6a4259b73a1b576cdff7815efbda9a8143 /src/vnet/dhcp/dhcp6_proxy_node.c | |
parent | e04c29942af6a130591059679531c9ffa3d7237a (diff) |
DHCPv6 - Be consistent with the use of MFIB index as the RX FIB index for DHCPv6. For the same table ID, the unicast-FIB index is not necessarily the same value as the multicast-FIB index, since features (like LISP, SR) can create unicast-tables, and thus affect only the index of the unicast FIBs
Change-Id: Ibfa334d7eda822f742c241b7ce69a6271b4753a9
Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vnet/dhcp/dhcp6_proxy_node.c')
-rw-r--r-- | src/vnet/dhcp/dhcp6_proxy_node.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/vnet/dhcp/dhcp6_proxy_node.c b/src/vnet/dhcp/dhcp6_proxy_node.c index ed44977d76b..58674209ca7 100644 --- a/src/vnet/dhcp/dhcp6_proxy_node.c +++ b/src/vnet/dhcp/dhcp6_proxy_node.c @@ -226,7 +226,7 @@ dhcpv6_proxy_to_server_input (vlib_main_t * vm, /* Send to DHCPV6 server via the configured FIB */ rx_sw_if_index = sw_if_index = vnet_buffer(b0)->sw_if_index[VLIB_RX]; - rx_fib_idx = im->fib_index_by_sw_if_index [rx_sw_if_index]; + rx_fib_idx = im->mfib_index_by_sw_if_index [rx_sw_if_index]; server = dhcp_get_server(dpm, rx_fib_idx, FIB_PROTOCOL_IP6); if (PREDICT_FALSE (NULL == server)) @@ -587,7 +587,7 @@ dhcpv6_proxy_to_client_input (vlib_main_t * vm, //Advance buffer to start of encapsulated DHCPv6 message vlib_buffer_advance (b0, sizeof(*r0)); - client_fib_idx = im->fib_index_by_sw_if_index[sw_if_index]; + client_fib_idx = im->mfib_index_by_sw_if_index[sw_if_index]; server = dhcp_get_server(dm, client_fib_idx, FIB_PROTOCOL_IP6); if (NULL == server) @@ -894,7 +894,8 @@ static u8 * format_dhcp6_proxy_server (u8 * s, va_list * args) { dhcp_server_t * server = va_arg (*args, dhcp_server_t *); - ip6_fib_t * rx_fib, * server_fib; + ip6_fib_t *server_fib; + ip6_mfib_t *rx_fib; if (NULL == server) { @@ -904,7 +905,7 @@ format_dhcp6_proxy_server (u8 * s, va_list * args) } server_fib = ip6_fib_get(server->server_fib_index); - rx_fib = ip6_fib_get(server->rx_fib_index); + rx_fib = ip6_mfib_get(server->rx_fib_index); s = format (s, "%=40U%=40U%=14u%=14u", |