tests: changes for scapy 2.4.3 migration
[vpp.git] / test / patches / scapy-2.4.3 / cdp.patch
diff --git a/test/patches/scapy-2.4.3/cdp.patch b/test/patches/scapy-2.4.3/cdp.patch
new file mode 100644 (file)
index 0000000..de16f5d
--- /dev/null
@@ -0,0 +1,31 @@
+diff --git a/scapy/contrib/cdp.py b/scapy/contrib/cdp.py
+index c8b7f106..7b1ff64d 100644
+--- a/scapy/contrib/cdp.py
++++ b/scapy/contrib/cdp.py
+@@ -102,7 +102,8 @@ def _CDPGuessPayloadClass(p, **kargs):
+ class CDPMsgGeneric(Packet):
+     name = "CDP Generic Message"
+     fields_desc = [ XShortEnumField("type", None, _cdp_tlv_types),
+-                    FieldLenField("len", None, "val", "!H"),
++                    FieldLenField("len", None, "val", "!H",
++                                  adjust=lambda pkt, x: x + 4),
+                     StrLenField("val", "", length_from=lambda x:x.len - 4) ]
+@@ -178,5 +179,6 @@ class CDPMsgAddr(CDPMsgGeneric):
+ class CDPMsgPortID(CDPMsgGeneric):
+     name = "Port ID"
+     fields_desc = [ XShortEnumField("type", 0x0003, _cdp_tlv_types),
+-                    FieldLenField("len", None, "iface", "!H"),
++                    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: