diff options
author | John Lo <loj@cisco.com> | 2017-11-07 17:23:49 -0500 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2017-11-08 00:11:49 +0000 |
commit | c97b4aca0db8d84b17ceb03a14ab44346a2b3466 (patch) | |
tree | e9852c5c8ffd85aa788abcf9296f813f02874164 /src/vnet/l2/l2_input.c | |
parent | 234301f3c7f4170e78500ce112aff7951f88cf45 (diff) |
Fix SHG handling for ARP/ICMPv6 received from BVI in a BD
This change makes sure ARP/ICMPv6 brodcast packets received from
the BVI of a BD can be flooded to all remote VTEPs via its VXLAN
tunnels irrespective of SHG setting. Similar processing was done
for unicast packets already and needs to be extpanded to ARP and
ICMPv6 broadcast packets.
Change-Id: I26ac43ecdbc81a769f742a583a156506f7e70d49
Signed-off-by: John Lo <loj@cisco.com>
Diffstat (limited to 'src/vnet/l2/l2_input.c')
-rw-r--r-- | src/vnet/l2/l2_input.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/vnet/l2/l2_input.c b/src/vnet/l2/l2_input.c index e556b141b3b..9038363ca86 100644 --- a/src/vnet/l2/l2_input.c +++ b/src/vnet/l2/l2_input.c @@ -193,6 +193,14 @@ classify_and_dispatch (l2input_main_t * msm, vlib_buffer_t * b0, u32 * next0) if (ethertype != ETHERNET_TYPE_ARP && (ethertype != ETHERNET_TYPE_IP6 || protocol != IP_PROTOCOL_ICMP6)) feat_mask &= ~(L2INPUT_FEAT_ARP_TERM); + /* + * Check for from-BVI processing - set SHG of ARP/ICMP6 packets from BVI + * to 0 so it can also flood to VXLAN tunnels or other ports with the + * same SHG as that of the BVI. + */ + else if (PREDICT_FALSE (vnet_buffer (b0)->sw_if_index[VLIB_TX] == + L2INPUT_BVI)) + vnet_buffer (b0)->l2.shg = 0; } else { |