summaryrefslogtreecommitdiffstats
path: root/src/vnet/ip
diff options
context:
space:
mode:
authorEyal Bari <ebari@cisco.com>2017-03-30 03:05:06 +0300
committerOle Trøan <otroan@employees.org>2017-04-10 09:44:19 +0000
commit0f0ff322b11cb4214699ea4468275a54db33f6e9 (patch)
tree82bd17d59d068bd661c6b86e735448b8c372afa2 /src/vnet/ip
parent16c76de9b50f622a8594e6eb4ad9215a9c9ba7f2 (diff)
BRIDGE-DOMAIN:enable arp term,mac/ip learning on local ints
we should not suppress arps on remote interface instead we should flood them to the local one used shg != 0 to identify packets from remote interfaces and disable arp term l2 input feature for them Change-Id: I701537c05df7451a25ccb5bfc9e2b03ea70cff20 Signed-off-by: Eyal Bari <ebari@cisco.com> (cherry picked from commit a0623f8d26501a230801908cd4bc38d67a35dd23)
Diffstat (limited to 'src/vnet/ip')
-rw-r--r--src/vnet/ip/ip6.h3
-rw-r--r--src/vnet/ip/ip6_neighbor.c8
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)