diff options
-rw-r--r-- | src/plugins/cdp/test/test_cdp.py | 4 | ||||
-rw-r--r-- | test/patches/scapy-2.4/cdp.patch | 13 |
2 files changed, 10 insertions, 7 deletions
diff --git a/src/plugins/cdp/test/test_cdp.py b/src/plugins/cdp/test/test_cdp.py index c0e52876752..27f35c2937d 100644 --- a/src/plugins/cdp/test/test_cdp.py +++ b/src/plugins/cdp/test/test_cdp.py @@ -98,13 +98,9 @@ class TestCDP(VppTestCase): self.assert_equal(system[:length], self.device_id[:length], "CDP received invalid device id") - @unittest.skipIf(sys.version_info[0] > 2, - "not supported in python3/scapy") def test_cdp_underflow_tlv(self): self.send_bad_packet(3, ".") - @unittest.skipIf(sys.version_info[0] > 2, - "not supported in python3/scapy") def test_cdp_overflow_tlv(self): self.send_bad_packet(8, ".") diff --git a/test/patches/scapy-2.4/cdp.patch b/test/patches/scapy-2.4/cdp.patch index 324891500d5..de16f5d5079 100644 --- a/test/patches/scapy-2.4/cdp.patch +++ b/test/patches/scapy-2.4/cdp.patch @@ -12,7 +12,7 @@ index c8b7f106..7b1ff64d 100644 StrLenField("val", "", length_from=lambda x:x.len - 4) ] -@@ -178,7 +179,8 @@ class CDPMsgAddr(CDPMsgGeneric): +@@ -178,5 +179,6 @@ class CDPMsgAddr(CDPMsgGeneric): class CDPMsgPortID(CDPMsgGeneric): name = "Port ID" fields_desc = [ XShortEnumField("type", 0x0003, _cdp_tlv_types), @@ -20,5 +20,12 @@ index c8b7f106..7b1ff64d 100644 + FieldLenField("len", None, "iface", "!H", + adjust=lambda pkt, x: x + 4), StrLenField("iface", "Port 1", length_from=lambda x:x.len - 4) ] - - +@@ -319,7 +319,7 @@ class _CDPChecksum: + This padding is only used for checksum computation. The original + packet should not be altered.""" + if len(pkt) % 2: +- last_chr = pkt[-1] ++ last_chr = pkt[len(pkt)-1:] + if last_chr <= b'\x80': + return pkt[:-1] + b'\x00' + last_chr + else: |