BIER
[vpp.git] / test / patches / scapy-2.3.3 / mpls.py.patch
index f63a70a..f3293e8 100644 (file)
@@ -1,16 +1,35 @@
 diff --git a/scapy/contrib/mpls.py b/scapy/contrib/mpls.py
-index 640a0c5..6af1d4a 100644
+index 640a0c5..944723a 100644
 --- a/scapy/contrib/mpls.py
 +++ b/scapy/contrib/mpls.py
-@@ -18,6 +18,8 @@ class MPLS(Packet):
+@@ -6,6 +6,7 @@
+ from scapy.packet import Packet, bind_layers, Padding
+ from scapy.fields import BitField,ByteField
+ from scapy.layers.inet import IP
++from scapy.contrib.bier import BIER
+ from scapy.layers.inet6 import IPv6
+ from scapy.layers.l2 import Ether, GRE
+@@ -17,9 +18,12 @@ 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
+-       if len(payload) >= 1:
+-           ip_version = (ord(payload[0]) >> 4) & 0xF
+-           if ip_version == 4:
+-               return IP
+-           elif ip_version == 6:
+-               return IPv6
+-       return Padding
++         if not self.s:
++             return MPLS
++         ip_version = (ord(payload[0]) >> 4) & 0xF
++         if ip_version == 4:
++            return IP
++         elif ip_version == 5:
++            return BIER
++         elif ip_version == 6:
++            return IPv6
++         return Padding
 @@ -27,3 +29,4 @@ class MPLS(Packet):
  
  bind_layers(Ether, MPLS, type=0x8847)