# MPLS

`ryu.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.

`ryu.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 `ryu.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.