The branch main has been updated by kp:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=9c95fcb7cd20bdb0e9445ec98a06d24ce0d5d2ac

commit 9c95fcb7cd20bdb0e9445ec98a06d24ce0d5d2ac
Author:     Ronald Klop <ron...@klop.ws>
AuthorDate: 2025-07-09 08:00:19 +0000
Commit:     Kristof Provost <k...@freebsd.org>
CommitDate: 2025-07-09 15:38:08 +0000

    tests: Get the MAC from the epairs.
    
    This removes knowledge of the implementation of if_epair.
    Makes it easier to modify if_epair in future commits.
    
    Reviewed by:    kp
    Differential Revision:  https://reviews.freebsd.org/D51205
---
 tests/atf_python/sys/net/vnet.py |  8 ++++++--
 tests/sys/netpfil/pf/header.py   | 23 +++++++++++------------
 tests/sys/netpfil/pf/icmp.py     | 10 +++++-----
 3 files changed, 22 insertions(+), 19 deletions(-)

diff --git a/tests/atf_python/sys/net/vnet.py b/tests/atf_python/sys/net/vnet.py
index 68c8ce4e0cba..7afb5c721bf3 100644
--- a/tests/atf_python/sys/net/vnet.py
+++ b/tests/atf_python/sys/net/vnet.py
@@ -61,6 +61,7 @@ class VnetInterface(object):
             self.iftype = self.IFT_LOOP
         else:
             self.iftype = self.IFT_ETHER
+            self.ether = ToolsHelper.get_output("/sbin/ifconfig %s ether | awk 
'/ether/ { print $2; }'" % iface_name).rstrip()
 
     @property
     def ifindex(self):
@@ -99,9 +100,12 @@ class VnetInterface(object):
         name = run_cmd("/sbin/ifconfig {} create".format(iface_name)).rstrip()
         if not name:
             raise Exception("Unable to create iface {}".format(iface_name))
-        ret = [cls(alias_name, name)]
+        if1 = cls(alias_name, name)
+        ret = [if1]
         if name.startswith("epair"):
-            ret.append(cls(alias_name, name[:-1] + "b"))
+            if2 = cls(alias_name, name[:-1] + "b")
+            if1.epairb = if2
+            ret.append(if2);
         return ret
 
     def setup_addr(self, _addr: str):
diff --git a/tests/sys/netpfil/pf/header.py b/tests/sys/netpfil/pf/header.py
index 6832cfe6d42b..a5e36bc85d14 100644
--- a/tests/sys/netpfil/pf/header.py
+++ b/tests/sys/netpfil/pf/header.py
@@ -53,10 +53,9 @@ class TestHeader(VnetTestTemplate):
     def test_too_many(self):
         "Verify that we drop packets with silly numbers of headers."
 
-        sendif = self.vnet.iface_alias_map["if1"].name
+        sendif = self.vnet.iface_alias_map["if1"]
         recvif = self.vnet.iface_alias_map["if2"].name
-        gw_mac = ToolsHelper.get_output("/sbin/ifconfig %s ether | awk 
'/ether/ { print $2; }'" % sendif)
-        gw_mac = re.sub("0a$", "0b", gw_mac)
+        gw_mac = sendif.epairb.ether
 
         ToolsHelper.print_output("/sbin/route add default 192.0.2.1")
 
@@ -67,7 +66,7 @@ class TestHeader(VnetTestTemplate):
         pkt = sp.Ether(dst=gw_mac) \
             / sp.IP(dst="198.51.100.3") \
             / sp.ICMP(type='echo-request')
-        s = DelayedSend(pkt, sendif)
+        s = DelayedSend(pkt, sendif.name)
         reply = sp.sniff(iface=recvif, timeout=3)
         print(reply)
 
@@ -89,7 +88,7 @@ class TestHeader(VnetTestTemplate):
             pkt = pkt / sp.AH(nh=51, payloadlen=1)
         pkt = pkt / sp.AH(nh=1, payloadlen=1) / sp.ICMP(type='echo-request')
 
-        s = DelayedSend(pkt, sendif)
+        s = DelayedSend(pkt, sendif.name)
         reply = sp.sniff(iface=recvif, timeout=3)
         print(reply)
         found = False
@@ -109,7 +108,7 @@ class TestHeader(VnetTestTemplate):
             pkt = pkt / sp.AH(nh=51, payloadlen=1)
         pkt = pkt / sp.AH(nh=1, payloadlen=1) / sp.ICMP(type='echo-request')
 
-        s = DelayedSend(pkt, sendif)
+        s = DelayedSend(pkt, sendif.name)
         reply = sp.sniff(iface=recvif, timeout=3)
         print(reply)
 
@@ -148,10 +147,10 @@ class TestHeader6(VnetTestTemplate):
         "Verify that we drop packets with silly numbers of headers."
         ToolsHelper.print_output("/sbin/ifconfig")
 
-        sendif = self.vnet.iface_alias_map["if1"].name
+        sendif = self.vnet.iface_alias_map["if1"]
         recvif = self.vnet.iface_alias_map["if2"].name
-        our_mac = ToolsHelper.get_output("/sbin/ifconfig %s ether | awk 
'/ether/ { print $2; }'" % sendif)
-        gw_mac = re.sub("0a$", "0b", our_mac)
+        our_mac = sendif.ether
+        gw_mac = sendif.epairb.ether
 
         ToolsHelper.print_output("/sbin/route -6 add default 2001:db8::1")
 
@@ -162,7 +161,7 @@ class TestHeader6(VnetTestTemplate):
         pkt = sp.Ether(src=our_mac, dst=gw_mac) \
             / sp.IPv6(src="2001:db8::2", dst="2001:db8:1::3") \
             / sp.ICMPv6EchoRequest()
-        s = DelayedSend(pkt, sendif)
+        s = DelayedSend(pkt, sendif.name)
         reply = sp.sniff(iface=recvif, timeout=3)
         print(reply)
 
@@ -182,7 +181,7 @@ class TestHeader6(VnetTestTemplate):
         for i in range(0, 18):
             pkt = pkt / sp.AH(nh=51, payloadlen=1)
         pkt = pkt / sp.AH(nh=58, payloadlen=1) / sp.ICMPv6EchoRequest()
-        s = DelayedSend(pkt, sendif)
+        s = DelayedSend(pkt, sendif.name)
         reply = sp.sniff(iface=recvif, timeout=3)
         print(reply)
 
@@ -202,7 +201,7 @@ class TestHeader6(VnetTestTemplate):
         for i in range(0, 19):
             pkt = pkt / sp.AH(nh=51, payloadlen=1)
         pkt = pkt / sp.AH(nh=58, payloadlen=1) / sp.ICMPv6EchoRequest()
-        s = DelayedSend(pkt, sendif)
+        s = DelayedSend(pkt, sendif.name)
         reply = sp.sniff(iface=recvif, timeout=3)
         print(reply)
 
diff --git a/tests/sys/netpfil/pf/icmp.py b/tests/sys/netpfil/pf/icmp.py
index 83096886691e..59f2e8190b30 100644
--- a/tests/sys/netpfil/pf/icmp.py
+++ b/tests/sys/netpfil/pf/icmp.py
@@ -91,10 +91,10 @@ class TestICMP(VnetTestTemplate):
     def test_inner_match(self):
         vnet = self.vnet_map["vnet1"]
         dst_vnet = self.vnet_map["vnet3"]
-        sendif = vnet.iface_alias_map["if1"].name
+        sendif = vnet.iface_alias_map["if1"]
 
-        our_mac = ToolsHelper.get_output("/sbin/ifconfig %s ether | awk 
'/ether/ { print $2; }'" % sendif)
-        dst_mac = re.sub("0a$", "0b", our_mac)
+        our_mac = sendif.ether
+        dst_mac = sendif.epairb.ether
 
         # Import in the correct vnet, so at to not confuse Scapy
         import scapy.all as sp
@@ -111,7 +111,7 @@ class TestICMP(VnetTestTemplate):
             / sp.IP(src="192.0.2.2", dst="198.51.100.2") \
             / sp.ICMP(type='echo-request') \
             / "PAYLOAD"
-        sp.sendp(pkt, sendif, verbose=False)
+        sp.sendp(pkt, sendif.name, verbose=False)
 
         # Now try to pass an ICMP error message piggy-backing on that state, 
but
         # use a different source address
@@ -120,7 +120,7 @@ class TestICMP(VnetTestTemplate):
             / sp.ICMP(type='dest-unreach') \
             / sp.IP(src="198.51.100.2", dst="192.0.2.2") \
             / sp.ICMP(type='echo-reply')
-        sp.sendp(pkt, sendif, verbose=False)
+        sp.sendp(pkt, sendif.name, verbose=False)
 
         try:
             rcvd = self.wait_object(dst_vnet.pipe, timeout=1)

Reply via email to