aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_l2bd_learnlimit.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_l2bd_learnlimit.py')
-rw-r--r--test/test_l2bd_learnlimit.py53
1 files changed, 47 insertions, 6 deletions
diff --git a/test/test_l2bd_learnlimit.py b/test/test_l2bd_learnlimit.py
index 6a28664e522..e59496eebf0 100644
--- a/test/test_l2bd_learnlimit.py
+++ b/test/test_l2bd_learnlimit.py
@@ -17,7 +17,7 @@ class TestL2LearnLimit(VppTestCase):
@classmethod
def setUpClass(self):
super(TestL2LearnLimit, self).setUpClass()
- self.create_pg_interfaces(range(2))
+ self.create_pg_interfaces(range(3))
@classmethod
def tearDownClass(cls):
@@ -94,6 +94,39 @@ class TestL2LearnLimit(VppTestCase):
# check that bd2 was not able to learn
self.assertEqual(len(lfs2), 0)
+ def test_l2bd_learnlimit03(self):
+ """ L2BD test with bridge domain limit
+ """
+ self.vapi.bridge_domain_set_default_learn_limit(4)
+ self.vapi.bridge_domain_add_del(bd_id=3)
+ self.vapi.sw_interface_set_l2_bridge(
+ self.pg_interfaces[2].sw_if_index, bd_id=3)
+
+ self.vapi.bridge_domain_set_learn_limit(2, 5)
+
+ hosts = self.create_hosts(self.pg_interfaces[1], 20, 2)
+ fhosts = self.create_hosts(self.pg_interfaces[2], 20, 3)
+
+ # inject 20 mac addresses on bd2
+ self.learn_hosts(self.pg_interfaces[1], 2, hosts)
+
+ # inject 20 macs address on bd3
+ self.learn_hosts(self.pg_interfaces[2], 3, fhosts)
+
+ lfs1 = self.vapi.l2_fib_table_dump(2)
+ lfs2 = self.vapi.l2_fib_table_dump(3)
+
+ # check that only 5 macs are learned.
+ self.assertEqual(len(lfs1), 5)
+
+ # check that only 4 macs are learned.
+ self.assertEqual(len(lfs2), 4)
+
+ self.vapi.sw_interface_set_l2_bridge(
+ rx_sw_if_index=self.pg_interfaces[2].sw_if_index,
+ bd_id=3, enable=0)
+ self.vapi.bridge_domain_add_del(is_add=0, bd_id=3)
+
def setUp(self):
super(TestL2LearnLimit, self).setUp()
@@ -106,13 +139,21 @@ class TestL2LearnLimit(VppTestCase):
self.pg_interfaces[1].sw_if_index, bd_id=2)
def tearDown(self):
- for i in self.pg_interfaces[:2]:
- self.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=i.sw_if_index,
- bd_id=1, enable=0)
+ super(TestL2LearnLimit, self).tearDown()
+ self.vapi.sw_interface_set_l2_bridge(
+ rx_sw_if_index=self.pg_interfaces[0].sw_if_index,
+ bd_id=1, enable=0)
+ self.vapi.sw_interface_set_l2_bridge(
+ rx_sw_if_index=self.pg_interfaces[1].sw_if_index,
+ bd_id=2, enable=0)
self.vapi.bridge_domain_add_del(bd_id=1, is_add=0)
self.vapi.bridge_domain_add_del(bd_id=2, is_add=0)
-
- super(TestL2LearnLimit, self).tearDown()
+ i = 0
+ while (len(self.vapi.l2_fib_table_dump(bd_id=0xffffffff)) != 0):
+ time.sleep(1)
+ i = i + 1
+ if i == 30:
+ self.assertTrue(False)
if __name__ == '__main__':