Short note on MPLS Special Purpose Label Values

Today I am going to talk about all the labels used in the MPLS network. Some of you are already aware of the labels used in the MPLS networks but there is many of you who are not aware of some of the MPLS Labels used and the purpose of that labels.

In this article I am going to talk about the all the labels used in the MPLS starting from the Label 0 till Label 15 and the purpose of all the labels.

Fig 1.1- Sample topology
Let's talk about the labels used in MPLS network as :

Label 0

Label 0 is the explicit null label. Its usage is to make sure that there is no penultimate hop popping. The label is the label with value 0. Its purpose is to have the EXP bits (Traffic Class bits) still in place as if there was a regular label at that place in the label stack. This is typically used by QOS.
The support for this label is omnipresent.

Label 1

Label 1 is the router Alert Label. Its purpose is to make sure that packets with this label are punted by the router. It is used by MPLS OAM (“ping mpls” and traceroute mpls”) to make sure that the return packets are process switched at each hop.
The support for this label is omnipresent.

Label 2

Label 2 is the explicit null label for IPv6 packets. Its purpose is the same as label 0, but for IPv6 packets. The distinction is there to make sure that when the label stack is removed, that the packet is forwarded based on the IPv6 header.
The support for this label is omnipresent.

Label 3

Label 3 is the implicit null label. It is used to signal penultimate hop popping. This means that the top label is popped off at the one-but-last router. This occurs for FECs (prefixes) attached to the ultimate (last) hop router. 

The label with value 3 is only used in control packets (LDP, RSVP-TE, BGP). It is never seen in the label stack. There will be one label less in the label stack due to the popping at the penultimate hop.
The support for this label is omnipresent.

Label 7

Label 7 is the Entropy Label Indicator label. It is used for load balancing purposes where the “ingress” LSR assigns an entropy label to a packet flow. The label stack will contain the label 7 followed by an additional entropy label (a regular label). 

Transit routers CAN then base their load balancing on this label. This is supported in IOS-XR.


Label 8 

While label 8 is still currently officially not assigned by IANA, it has been used in the field. There is a draft on Big Labels for MPLS. 

The purpose was to increase the regular label range by using big labels, hence using more than 20 bits to encode the label value. The top label is label 8 for the packets with a big label. This has been implemented by Huawei.

Label 13

Label 13 is the GAL label. This label value identifies the packet to be a Generic Associated Channel (G-ACH) Label (GAL).BFD over MPLS LSPs can use the GAL label.

There is support for this label in IOS and IOS-XR.


Label 14

Label 14 is the OAM label. Its purpose is to make sure that OAM MPLS packets are differentiated from regular MPLS traffic. The support for this label is omnipresent.


Label 15

RFC 7274 specifies Extended Special-Purpose MPLS Label Values. If label 15 is used, it is followed by another label (or more than one). This allows for more than 16 special-purpose labels.