tests: changes for scapy 2.4.3 migration
[vpp.git] / test / test_l2bd_arp_term.py
index de84edd..975c324 100644 (file)
@@ -1,16 +1,15 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """ L2BD ARP term Test """
 
 import unittest
 import random
 import copy
 
-from socket import AF_INET, AF_INET6
+from socket import AF_INET, AF_INET6, inet_pton, inet_ntop
 
 from scapy.packet import Raw
 from scapy.layers.l2 import Ether, ARP
 from scapy.layers.inet import IP
-from scapy.utils import inet_pton, inet_ntop
 from scapy.utils6 import in6_getnsma, in6_getnsmac, in6_ptop, in6_islladdr, \
     in6_mactoifaceid, in6_ismaddr
 from scapy.layers.inet6 import IPv6, UDP, ICMPv6ND_NS, ICMPv6ND_RS, \
@@ -51,6 +50,10 @@ class TestL2bdArpTerm(VppTestCase):
             super(TestL2bdArpTerm, cls).tearDownClass()
             raise
 
+    @classmethod
+    def tearDownClass(cls):
+        super(TestL2bdArpTerm, cls).tearDownClass()
+
     def setUp(self):
         """
         Clear trace and packet infos before running each test.
@@ -63,15 +66,22 @@ class TestL2bdArpTerm(VppTestCase):
         Show various debug prints after each test.
         """
         super(TestL2bdArpTerm, self).tearDown()
-        if not self.vpp_dead:
-            self.logger.info(self.vapi.ppcli("show l2fib verbose"))
+
+    def show_commands_at_teardown(self):
+        self.logger.info(self.vapi.ppcli("show l2fib verbose"))
+        # many tests delete bridge-domain 1 as the last task.  don't output
+        # the details of a non-existent bridge-domain.
+        if self.vapi.l2_fib_table_dump(bd_id=1):
             self.logger.info(self.vapi.ppcli("show bridge-domain 1 detail"))
 
     def add_del_arp_term_hosts(self, entries, bd_id=1, is_add=1, is_ipv6=0):
         for e in entries:
             ip = e.ip4 if is_ipv6 == 0 else e.ip6
-            self.vapi.bd_ip_mac_add_del(bd_id=bd_id, is_add=is_add, ip=ip,
-                                        mac=e.mac)
+            self.vapi.bd_ip_mac_add_del(is_add=is_add,
+                                        entry={
+                                            'bd_id': bd_id,
+                                            'ip': ip,
+                                            'mac': e.mac})
 
     @classmethod
     def mac_list(cls, b6_range):
@@ -456,7 +466,7 @@ class TestL2bdArpTerm(VppTestCase):
         """ L2BD ND term - send duplicate ns, verify suppression
         """
         dst_host = self.ip6_host(50, 50, "00:00:11:22:33:44")
-        macs = self.mac_list(range(10, 11))
+        macs = self.mac_list(range(16, 17))
         hosts = self.ip6_hosts(5, 1, macs)
         reqs = self.ns_reqs_dst(hosts, dst_host) * 5
         self.bd_swifs(1)[0].add_stream(reqs)