2016-11-02 14:20:04 +00:00
|
|
|
diff --git a/scapy/contrib/mpls.py b/scapy/contrib/mpls.py
|
|
|
|
index 640a0c5..6af1d4a 100644
|
|
|
|
--- a/scapy/contrib/mpls.py
|
|
|
|
+++ b/scapy/contrib/mpls.py
|
|
|
|
@@ -18,6 +18,8 @@ class MPLS(Packet):
|
|
|
|
|
|
|
|
def guess_payload_class(self, payload):
|
|
|
|
if len(payload) >= 1:
|
|
|
|
+ if not self.s:
|
|
|
|
+ return MPLS
|
|
|
|
ip_version = (ord(payload[0]) >> 4) & 0xF
|
|
|
|
if ip_version == 4:
|
|
|
|
return IP
|
2017-05-25 12:38:58 -07:00
|
|
|
@@ -27,3 +29,4 @@ class MPLS(Packet):
|
|
|
|
|
|
|
|
bind_layers(Ether, MPLS, type=0x8847)
|
|
|
|
bind_layers(GRE, MPLS, proto=0x8847)
|
|
|
|
+bind_layers(MPLS, MPLS, s=0)
|