aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2018-10-10 15:55:01 +0000
committerJohn Lo <loj@cisco.com>2018-10-11 13:36:43 +0000
commitd29cc8893e4736f18d0fd21b0407527621886d1a (patch)
treea4955dfed3ac7eb1cfcd968fbddd02341ed91242
parent642829de7958d5cd9c1c88f9845385882a7c211d (diff)
L2: BM traffic does not use UU-FWD (VPP-1445)
Change-Id: I5495c37da2fb8ff48c4af14ccba021d64eac52b6 Signed-off-by: Neale Ranns <nranns@cisco.com>
-rw-r--r--src/vnet/l2/l2_input.c3
-rw-r--r--test/test_l2_flood.py21
2 files changed, 22 insertions, 2 deletions
diff --git a/src/vnet/l2/l2_input.c b/src/vnet/l2/l2_input.c
index f94ef668c41..c4f6d6fc0ce 100644
--- a/src/vnet/l2/l2_input.c
+++ b/src/vnet/l2/l2_input.c
@@ -177,7 +177,8 @@ classify_and_dispatch (l2input_main_t * msm, vlib_buffer_t * b0, u32 * next0)
/* Disable bridge forwarding (flooding will execute instead if not xconnect) */
feat_mask &= ~(L2INPUT_FEAT_FWD |
- L2INPUT_FEAT_UU_FLOOD | L2INPUT_FEAT_GBP_FWD);
+ L2INPUT_FEAT_UU_FLOOD |
+ L2INPUT_FEAT_UU_FWD | L2INPUT_FEAT_GBP_FWD);
/* Disable ARP-term for non-ARP and non-ICMP6 packet */
if (ethertype != ETHERNET_TYPE_ARP &&
diff --git a/test/test_l2_flood.py b/test/test_l2_flood.py
index 8b8a3f0f960..5a2694cbb63 100644
--- a/test/test_l2_flood.py
+++ b/test/test_l2_flood.py
@@ -192,13 +192,18 @@ class TestL2Flood(VppTestCase):
self.vapi.sw_interface_set_l2_bridge(i.sw_if_index, 1, 0)
#
- # an unknown unicast packet
+ # an unknown unicast and braodcast packets
#
p_uu = (Ether(dst="00:00:00:c1:5c:00",
src="00:00:de:ad:be:ef") /
IP(src="10.10.10.10", dst="1.1.1.1") /
UDP(sport=1234, dport=1234) /
Raw('\xa5' * 100))
+ p_bm = (Ether(dst="ff:ff:ff:ff:ff:ff",
+ src="00:00:de:ad:be:ef") /
+ IP(src="10.10.10.10", dst="1.1.1.1") /
+ UDP(sport=1234, dport=1234) /
+ Raw('\xa5' * 100))
#
# input on pg0, expected copies on pg1->4
@@ -210,6 +215,13 @@ class TestL2Flood(VppTestCase):
for i in self.pg_interfaces[1:4]:
rx0 = i.get_capture(65, timeout=1)
+ self.pg0.add_stream(p_bm*65)
+ self.pg_enable_capture(self.pg_interfaces)
+ self.pg_start()
+
+ for i in self.pg_interfaces[1:4]:
+ rx0 = i.get_capture(65, timeout=1)
+
#
# use pg8 as the uu-fwd interface
#
@@ -228,6 +240,13 @@ class TestL2Flood(VppTestCase):
for i in self.pg_interfaces[0:4]:
i.assert_nothing_captured(remark="UU not flooded")
+ self.pg0.add_stream(p_bm*65)
+ self.pg_enable_capture(self.pg_interfaces)
+ self.pg_start()
+
+ for i in self.pg_interfaces[1:4]:
+ rx0 = i.get_capture(65, timeout=1)
+
#
# remove the uu-fwd interface and expect UU to be flooded again
#