tests: fix ipv6 fragmented esp w/ scapy 2.4.5 57/41357/9
authorBenoît Ganne <[email protected]>
Thu, 1 Aug 2024 13:09:26 +0000 (15:09 +0200)
committerDave Wallace <[email protected]>
Wed, 7 Aug 2024 13:18:47 +0000 (13:18 +0000)
Since scapy 2.4.4, scapy will not decode the next layer if the fragment
offset is not 0 - IOW it will decode only for the 1st fragment.
See https://github.com/secdev/scapy/commit/f1c26e77c535598f84b01035ac8ac465def30c72

Type: fix

Change-Id: If738734f90b15b24c0d98fec4bce4ff48c6d5fea
Signed-off-by: Benoît Ganne <[email protected]>
test/template_ipsec.py
test/test_ipsec_esp.py

index 6cc7a58..4e68d44 100644 (file)
@@ -1938,7 +1938,7 @@ class IpsecTra6(object):
             Ether(src=sw_intf.remote_mac, dst=sw_intf.local_mac)
             / IPv6(src=src, dst=dst)
             / IPv6ExtHdrHopByHop()
-            / IPv6ExtHdrFragment(id=2, offset=200)
+            / IPv6ExtHdrFragment(id=2, offset=0)
             / Raw(b"\xff" * 200)
             for i in range(count)
         ]
@@ -1985,7 +1985,7 @@ class IpsecTra6(object):
         tx = (
             Ether(src=self.pg2.remote_mac, dst=self.pg2.local_mac)
             / IPv6(src=self.tra_if.local_ip6, dst=self.tra_if.remote_ip6)
-            / IPv6ExtHdrFragment(id=2, offset=200)
+            / IPv6ExtHdrFragment(id=2, offset=0)
             / Raw(b"\xff" * 200)
         )
 
@@ -2004,7 +2004,7 @@ class IpsecTra6(object):
             Ether(src=self.pg2.remote_mac, dst=self.pg2.local_mac)
             / IPv6(src=self.tra_if.local_ip6, dst=self.tra_if.remote_ip6)
             / IPv6ExtHdrHopByHop()
-            / IPv6ExtHdrFragment(id=2, offset=200)
+            / IPv6ExtHdrFragment(id=2, offset=0)
             / Raw(b"\xff" * 200)
         )
 
@@ -2021,7 +2021,7 @@ class IpsecTra6(object):
             Ether(src=self.pg2.remote_mac, dst=self.pg2.local_mac)
             / IPv6(src=self.tra_if.local_ip6, dst=self.tra_if.remote_ip6)
             / IPv6ExtHdrHopByHop()
-            / IPv6ExtHdrFragment(id=2, offset=200)
+            / IPv6ExtHdrFragment(id=2, offset=0)
             / IPv6ExtHdrDestOpt()
             / Raw(b"\xff" * 200)
         )
index 8cfe8b2..bfdef2a 100644 (file)
@@ -421,7 +421,6 @@ class TemplateIpsecEsp(ConfigIpsecESP):
         super(TemplateIpsecEsp, self).tearDown()
 
 
[email protected](True, "Temporarily skip test until Scapy-2.4.5 patch is available")
 class TestIpsecEsp1(
     TemplateIpsecEsp, IpsecTra46Tests, IpsecTun46Tests, IpsecTra6ExtTests
 ):