diff options
-rw-r--r-- | src/vnet/l2/l2_input.c | 3 | ||||
-rw-r--r-- | test/test_l2_flood.py | 21 |
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 # |