diff options
Diffstat (limited to 'src/vnet/ip')
-rw-r--r-- | src/vnet/ip/ip6.h | 3 | ||||
-rw-r--r-- | src/vnet/ip/ip6_neighbor.c | 8 |
2 files changed, 4 insertions, 7 deletions
diff --git a/src/vnet/ip/ip6.h b/src/vnet/ip/ip6.h index f402b0117c0..8fa9a479039 100644 --- a/src/vnet/ip/ip6.h +++ b/src/vnet/ip/ip6.h @@ -373,8 +373,7 @@ int vnet_ip6_nd_term (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_buffer_t * p0, ethernet_header_t * eth, - ip6_header_t * ip, - u32 sw_if_index, u16 bd_index, u8 shg); + ip6_header_t * ip, u32 sw_if_index, u16 bd_index); u8 *format_ip6_forward_next_trace (u8 * s, va_list * args); diff --git a/src/vnet/ip/ip6_neighbor.c b/src/vnet/ip/ip6_neighbor.c index 8d355ab2d2c..92708f14d5b 100644 --- a/src/vnet/ip/ip6_neighbor.c +++ b/src/vnet/ip/ip6_neighbor.c @@ -3986,12 +3986,11 @@ vnet_ip6_nd_term (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_buffer_t * p0, ethernet_header_t * eth, - ip6_header_t * ip, u32 sw_if_index, u16 bd_index, u8 shg) + ip6_header_t * ip, u32 sw_if_index, u16 bd_index) { ip6_neighbor_main_t *nm = &ip6_neighbor_main; icmp6_neighbor_solicitation_or_advertisement_header_t *ndh; pending_resolution_t *mc; - uword *p; ndh = ip6_next_header (ip); if (ndh->icmp.type != ICMP6_neighbor_solicitation && @@ -4007,9 +4006,8 @@ vnet_ip6_nd_term (vlib_main_t * vm, } /* Check if anyone want ND events for L2 BDs */ - p = mhash_get (&nm->mac_changes_by_address, &ip6a_zero); - if (p && shg == 0 && /* Only SHG 0 interface which is more likely local */ - !ip6_address_is_link_local_unicast (&ip->src_address)) + uword *p = mhash_get (&nm->mac_changes_by_address, &ip6a_zero); + if (p && !ip6_address_is_link_local_unicast (&ip->src_address)) { u32 next_index = p[0]; while (next_index != (u32) ~ 0) |