L2FIB,TEST:add max macs in event test
[vpp.git] / test / test_l2_fib.py
index f9a78ef..7476af4 100644 (file)
@@ -490,7 +490,6 @@ class TestL2fib(VppTestCase):
         self.config_l2_fib_entries(bd_id=1, n_hosts_per_if=10)
         self.config_l2_fib_entries(bd_id=2, n_hosts_per_if=10)
         flushed = self.flush_int(self.pg_interfaces[0].sw_if_index)
-        self.sleep(1)
         self.run_verify_test(bd_id=1, dst_hosts=self.learned_hosts)
         self.run_verify_negat_test(bd_id=1, dst_hosts=flushed)
 
@@ -504,7 +503,6 @@ class TestL2fib(VppTestCase):
         self.config_l2_fib_entries(bd_id=1, n_hosts_per_if=10)
         self.config_l2_fib_entries(bd_id=2, n_hosts_per_if=10)
         flushed = self.flush_bd(bd_id=1)
-        self.sleep(1)
         self.run_verify_negat_test(bd_id=1, dst_hosts=flushed)
         self.run_verify_test(bd_id=2, dst_hosts=self.learned_hosts)
 
@@ -518,10 +516,49 @@ class TestL2fib(VppTestCase):
         self.config_l2_fib_entries(bd_id=1, n_hosts_per_if=10)
         self.config_l2_fib_entries(bd_id=2, n_hosts_per_if=10)
         flushed = self.flush_all()
-        self.sleep(2)
         self.run_verify_negat_test(bd_id=1, dst_hosts=flushed)
         self.run_verify_negat_test(bd_id=2, dst_hosts=flushed)
 
+    def test_l2_fib_09(self):
+        """ L2 FIB test 9 - mac learning events
+        """
+        self.create_hosts(10, subnet=39)
+
+        self.vapi.want_macs_learn_events()
+        self.learn_hosts(bd_id=1, n_hosts_per_if=10)
+
+        self.sleep(1)
+        self.logger.info(self.vapi.ppcli("show l2fib"))
+        evs = self.vapi.collect_events()
+        learned_macs = {
+            e.mac[i].mac_addr for e in evs for i in range(e.n_macs)}
+        macs = {h.bin_mac for swif_hs in self.learned_hosts.itervalues()
+                for h in swif_hs}
+        self.vapi.want_macs_learn_events(enable_disable=0)
+        self.assertEqual(len(learned_macs ^ macs), 0)
+
+    def test_l2_fib_10(self):
+        """ L2 FIB test 10 - mac learning max macs in event
+        """
+        flushed = self.flush_all()
+        self.create_hosts(10, subnet=40)
+
+        ev_macs = 1
+        self.vapi.want_macs_learn_events(max_macs_in_event=ev_macs)
+        self.learn_hosts(bd_id=1, n_hosts_per_if=10)
+
+        self.sleep(1)
+        self.logger.info(self.vapi.ppcli("show l2fib"))
+        evs = self.vapi.collect_events()
+        learned_macs = {
+            e.mac[i].mac_addr for e in evs for i in range(e.n_macs)}
+        macs = {h.bin_mac for swif_hs in self.learned_hosts.itervalues()
+                for h in swif_hs}
+        self.vapi.want_macs_learn_events(enable_disable=0)
+        for e in evs:
+            self.assertLess(len(e), ev_macs * 10)
+        self.assertEqual(len(learned_macs ^ macs), 0)
+
 
 if __name__ == '__main__':
     unittest.main(testRunner=VppTestRunner)