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 | |
@@ -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) |