tests: Add support for getting corefile patterns on FreeBSD
[vpp.git] / test / test_neighbor.py
index 041d782..7338eff 100644 (file)
@@ -2,10 +2,9 @@
 
 import unittest
 import os
-from socket import AF_INET, AF_INET6, inet_pton
 
-from framework import tag_fixme_vpp_workers, tag_fixme_ubuntu2204, tag_fixme_debian11
-from framework import VppTestCase, VppTestRunner
+from framework import VppTestCase
+from asfframework import VppTestRunner, tag_fixme_vpp_workers, tag_fixme_ubuntu2204
 from vpp_neighbor import VppNeighbor, find_nbr
 from vpp_ip_route import (
     VppIpRoute,
@@ -20,7 +19,6 @@ from vpp_papi import VppEnum, MACAddress
 from vpp_ip import VppIpPuntRedirect
 from vpp_sub_interface import VppDot1ADSubint
 
-import scapy.compat
 from scapy.packet import Raw
 from scapy.layers.l2 import Ether, ARP, Dot1Q
 from scapy.layers.inet import IP, UDP, TCP
@@ -2126,27 +2124,30 @@ class ARPTestCase(VppTestCase):
 
         #
         # add a local address in the same subnet
-        #  the source addresses are equivalent. VPP happens to
-        #  choose the last one that was added
+        #  the source addresses are equivalent.
+        # VPP leaves the glean address being used for a prefix
+        # in place until that address is deleted.
+        #
         conn3 = VppIpInterfaceAddress(self, self.pg1, "10.0.1.2", 24).add_vpp_config()
 
         rxs = self.send_and_expect(self.pg0, [p2], self.pg1)
         for rx in rxs:
-            self.verify_arp_req(rx, self.pg1.local_mac, "10.0.1.2", "10.0.1.128")
+            self.verify_arp_req(rx, self.pg1.local_mac, "10.0.1.1", "10.0.1.128")
 
         #
-        # remove
+        # remove first address, which is currently in use
+        # the second address should be used now
         #
-        conn3.remove_vpp_config()
+        conn2.remove_vpp_config()
         rxs = self.send_and_expect(self.pg0, [p2], self.pg1)
         for rx in rxs:
-            self.verify_arp_req(rx, self.pg1.local_mac, "10.0.1.1", "10.0.1.128")
+            self.verify_arp_req(rx, self.pg1.local_mac, "10.0.1.2", "10.0.1.128")
 
         #
-        # add back, this time remove the first one
+        # add first address back. Second address should continue
+        # being used.
         #
-        conn3 = VppIpInterfaceAddress(self, self.pg1, "10.0.1.2", 24).add_vpp_config()
-
+        conn2 = VppIpInterfaceAddress(self, self.pg1, "10.0.1.1", 24).add_vpp_config()
         rxs = self.send_and_expect(self.pg0, [p2], self.pg1)
         for rx in rxs:
             self.verify_arp_req(rx, self.pg1.local_mac, "10.0.1.2", "10.0.1.128")