diff --git a/scapy/contrib/eigrp.py b/scapy/contrib/eigrp.py index 73b4ce022bf60ca2f17010be0bb0869992f8d869..54b8ce8fbe03887ef579dc29d66a348e268b4974 100644 --- a/scapy/contrib/eigrp.py +++ b/scapy/contrib/eigrp.py @@ -168,10 +168,6 @@ class EigrpIP6Field(StrField, IP6Field, EigrpIPField): def getfield(self, pkt, s): return EigrpIPField.getfield(self, pkt, s) -class ThreeBytesField(X3BytesField, ByteField): - def i2repr(self, pkt, x): - return ByteField.i2repr(self, pkt, x) - class EIGRPGeneric(Packet): name = "EIGRP Generic TLV" diff --git a/scapy/contrib/vxlan.py b/scapy/contrib/vxlan.py index 23f252e6eef81b3c614f82aa67d10457b6632e44..d635eefe514c7a3101c07499369b94b801172c4c 100644 --- a/scapy/contrib/vxlan.py +++ b/scapy/contrib/vxlan.py @@ -8,8 +8,7 @@ from scapy.packet import Packet, bind_layers from scapy.layers.l2 import Ether from scapy.layers.inet import UDP -from scapy.fields import FlagsField, XByteField -from scapy.contrib.eigrp import ThreeBytesField +from scapy.fields import FlagsField, XByteField, ThreeBytesField _VXLAN_FLAGS = ['R' for i in range(0, 24)] + ['R', 'R', 'R', 'I', 'R', 'R', 'R', 'R', 'R'] diff --git a/scapy/contrib/vxlan.utscapy b/scapy/contrib/vxlan.uts similarity index 95% rename from scapy/contrib/vxlan.utscapy rename to scapy/contrib/vxlan.uts index 6fb7dff0a00925a923ed7349e188d5950553a241..16c0346f4d297efe672381ad822fcf59edd38f44 100644 --- a/scapy/contrib/vxlan.utscapy +++ b/scapy/contrib/vxlan.uts @@ -1,6 +1,8 @@ % VXLAN Tests * Tests for the Scapy VXLAN layer ++ Basic Layer Tests + = Build a VXLAN packet with VNI of 42 str(UDP(sport=1024, dport=4789, len=None, chksum=None)/VXLAN(flags=0x08000000, vni=42)) == "\x04\x00\x12\xb5\x00\x10\x00\x00\x08\x00\x00\x00\x00\x00\x2a\x00" diff --git a/scapy/fields.py b/scapy/fields.py index 91df1adaa4d6927c1e14e8a2bc784fd33454c2b1..31a8bf631cc6002a7507bc79075e5b743969fea9 100644 --- a/scapy/fields.py +++ b/scapy/fields.py @@ -275,6 +275,9 @@ class X3BytesField(XByteField): def getfield(self, pkt, s): return s[3:], self.m2i(pkt, struct.unpack(self.fmt, "\x00"+s[:3])[0]) +class ThreeBytesField(X3BytesField, ByteField): + def i2repr(self, pkt, x): + return ByteField.i2repr(self, pkt, x) class ShortField(Field): def __init__(self, name, default):