summaryrefslogtreecommitdiffstats
path: root/src/vnet/dhcp/dhcp6_proxy_node.c
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2017-02-20 09:42:36 -0800
committerDave Barach <openvpp@barachs.net>2017-03-04 01:23:56 +0000
commit358425b86cb231efd2330e5aeb077cad38c2efad (patch)
treee8b60b6a4259b73a1b576cdff7815efbda9a8143 /src/vnet/dhcp/dhcp6_proxy_node.c
parente04c29942af6a130591059679531c9ffa3d7237a (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.c9
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",