diff --git a/scapy/layers/inet.py b/scapy/layers/inet.py index aa5d0b41cea..e2203af460c 100644 --- a/scapy/layers/inet.py +++ b/scapy/layers/inet.py @@ -33,7 +33,7 @@ DestField, FieldListField, FlagsField, IntField, MultiEnumField, \ PacketListField, ShortEnumField, SourceIPField, StrField, \ StrFixedLenField, XByteField, XShortField, Emph -from scapy.packet import Packet, bind_layers, NoPayload +from scapy.packet import Packet, bind_layers, bind_bottom_up, NoPayload from scapy.volatile import RandShort, RandInt, RandBin, RandNum, VolatileValue from scapy.sendrecv import sr, sr1 from scapy.plist import PacketList, SndRcvList @@ -940,8 +940,8 @@ def mysummary(self): bind_layers(CookedLinux, IP, proto=2048) bind_layers(GRE, IP, proto=2048) bind_layers(SNAP, IP, code=2048) -bind_layers(Loopback, IP, type=0) -bind_layers(Loopback, IP, type=2) +bind_bottom_up(Loopback, IP, type=0) +bind_layers(Loopback, IP, type=socket.AF_INET) bind_layers(IPerror, IPerror, frag=0, proto=4) bind_layers(IPerror, ICMPerror, frag=0, proto=1) bind_layers(IPerror, TCPerror, frag=0, proto=6) diff --git a/scapy/layers/inet6.py b/scapy/layers/inet6.py index ff58708e4c5..98ac22cac80 100644 --- a/scapy/layers/inet6.py +++ b/scapy/layers/inet6.py @@ -4027,9 +4027,7 @@ def _load_dict(d): bind_layers(CookedLinux, IPv6, proto=0x86dd) bind_layers(GRE, IPv6, proto=0x86dd) bind_layers(SNAP, IPv6, code=0x86dd) -bind_layers(Loopback, IPv6, type=0x18) -bind_layers(Loopback, IPv6, type=0x1c) -bind_layers(Loopback, IPv6, type=0x1e) +bind_layers(Loopback, IPv6, type=socket.AF_INET6) bind_layers(IPerror6, TCPerror, nh=socket.IPPROTO_TCP) bind_layers(IPerror6, UDPerror, nh=socket.IPPROTO_UDP) bind_layers(IPv6, TCP, nh=socket.IPPROTO_TCP)