MPLS¶
-
os_ken.lib.packet.mpls.
label_from_bin
(buf)¶ Converts binary representation label to integer.
- Parameters
buf -- Binary representation of label.
- Returns
MPLS Label and BoS bit.
-
os_ken.lib.packet.mpls.
label_to_bin
(mpls_label, is_bos=True)¶ Converts integer label to binary representation.
- Parameters
mpls_label -- MPLS Label.
is_bos -- BoS bit.
- Returns
Binary representation of label.
-
class
os_ken.lib.packet.mpls.
mpls
(label=0, exp=0, bsb=1, ttl=255)¶ MPLS (RFC 3032) header encoder/decoder class.
NOTE: When decoding, this implementation assumes that the inner protocol is IPv4.
An instance has the following attributes at least. Most of them are same to the on-wire counterparts but in host byte order. __init__ takes the corresponding args in this order.
Attribute
Description
label
Label Value
exp
Experimental Use
bsb
Bottom of Stack
ttl
Time To Live
-
classmethod
parser
(buf)¶ Decode a protocol header.
This method is used only when decoding a packet.
Decode a protocol header at offset 0 in bytearray buf. Returns the following three objects.
An object to describe the decoded header.
A packet_base.PacketBase subclass appropriate for the rest of the packet. None when the rest of the packet should be considered as raw payload.
The rest of packet.
-
serialize
(payload, prev)¶ Encode a protocol header.
This method is used only when encoding a packet.
Encode a protocol header. Returns a bytearray which contains the header.
payload is the rest of the packet which will immediately follow this header.
prev is a packet_base.PacketBase subclass for the outer protocol header. prev is None if the current header is the outer-most. For example, prev is ipv4 or ipv6 for tcp.serialize.
-
classmethod