MPLS Network Structure

Figure 1 shows the typical structure of an MPLS network, which consists of many label switching routers (LSRs). An MPLS network, also called an MPLS domain, comprises the following nodes:
  • Label edge routers (LERs): reside on the edge of an MPLS domain and directly connect to one or more nodes that do not run MPLS.
  • Core LSRs: directly connect to MPLS-enabled nodes within an MPLS domain.
Figure 1 MPLS network structure

All LSRs on the MPLS network forward data based on labels. When an IP packet enters an MPLS network, an LER adds a label to it. Before the IP packet leaves the MPLS network, another LER removes the label.

The path that MPLS packets take on an MPLS network is called a label switched path (LSP). LSP is a unidirectional path, consistent with the direction of data flow.

Figure 2 MPLS LSP

The starting node of the LSP is called the ingress. The node located in the middle of the LSP is called the transit node. The node of the LSP is called the egress. An LSP can have zero, one or more intermediate nodes, but there is one and only one ingress and egress.

Forwarding Equivalence Class

A FEC is a set of data flows with the same attributes. Data flows in the same FEC are processed by LSRs in the same way.

FECs can be used based on the address, service type, and quality of service (QoS). For example, in the conventional longest match algorithm IP forwarding, all packets to the same route is a forwarding equivalence class.


A label is a 20-bit identifier that uniquely identifies the FEC to which a packet belongs. Upon receiving an IP packet from a non-MPLS network, the ingress of an LSP creates an MPLS header in the packet and inserts a specific label into this field, which turns the IP packets into MPLS packets. A label is only meaningful to a local end. A FEC can be mapped to multiple incoming labels to balance loads, but a label only represents a single FEC.

Figure 3 illustrates the structure of an MPLS header.

Figure 3 MPLS packet header structure

The MPLS header contains the following fields:

  • Label: a 20-bit field that identifies a label value.

  • Exp: a 3-bit l field used for extension. This field is used to implement the class of service (CoS) function, which is similar to Ethernet 802.1p.

  • S: a 1-bit field that identifies the bottom of a label stack. MPLS supports multiple labels that may be stacked. If the S field value is set to 1, the label is at the bottom of the label stack.

  • TTL: time to live, which is 8 bits long. This field is the same as the TTL in IP packets.

Labels are encapsulated between the data link layer and network layer and supported by all data link layer protocols.

Figure 4 illustrates the position of the label in a packet.

Figure 4 Position of the label in a packet

Label Space

Label space is the label value range. The device supports the following label ranges:

  • special labels. For details about special labels, see Table 1.

  • label space shared by static LSPs and static constraint-based routed label switched paths (CR-LSPs).

  • label space used by dynamic signaling protocols, such as Label Distribution Protocol (LDP), Resource Reservation Protocol-Traffic Engineering (RSVP-TE), and Multiprotocol Extensions for Border Gateway Protocol (MP-BGP).

    Each dynamic signaling protocol uses independent and contiguous values.

Table 1 Special labels





IPv4 Explicit NULL Label

If the egress receives a packet carrying a label with this value, the egress must remove the label from the packet. The egress then forwards the packet using IPv4. If the label assigned to the penultimate hop node is 0, the penultimate jump LSR needs to push the label with the value of 0 at the top of the message label value and forward it to the last hop. When the last hop finds that the packet carries a label value of 0, the label pops up.


Router Alert Label

If a node receives a packet carrying label with this value, the node sends the packet to a software module, without implementing hardware forwarding. The node forwards the packet based on the next layer label. If the packet needs to be forwarded using hardware, the node pushes the Router Alert Label back onto the top of the label stack before forwarding the packet.

This label takes effect only when it is not at the bottom of a label stack.


IPv6 Explicit NULL Label

If the egress receives a packet carrying a label with this value, the egress removes the label from the packet and forwards the packet using IPv6.


Implicit NULL Label

If the penultimate LSR receives a packet carrying a label with this value, the penultimate LSR removes the label and forwards the packet to the egress. The egress then forwards the packet over an IP route or based on a next label.

4 to 13




OAM Router Alert Label

If the ingress receives a packet carrying a label with this value, the ingress considers it an Operation, Administration and Maintenance (OAM) packet and transparently forwards it to the egress. MPLS OAM sends OAM packets to monitor LSPs and advertise faults.




Label Stack

Labels in an MPLS packet can be stacked. The label next to the Layer 2 header is the top or outer label. The label next to the Layer 3 header is the bottom or inner label. Theoretically, there is no limitation to the number of MPLS labels that can be stacked. Figure 5 illustrates a label stack.

Figure 5 Label stack

The labels are processed from the top of the stack based on the last in, first out principle.

Label Operations

The label forwarding table defines the following label operations:

  • Push: The ingress adds a label into an IP packet between the Layer 2 header and IP header before forwarding the packet. Within an MPLS network, each LSR adds a new label to the top of the label stack.

  • Swap: A transit node replaces a label on the top of the label stack in an MPLS packet with another label, which is assigned by the next hop.

  • Pop: A transit LSR or the egress removes the top label from the label stack to decrease the number of labels in the stack. Either the egress or the penultimate LSR removes a label from the MPLS packet before the packet leaves an MPLS network.

Penultimate Hop Popping

Penultimate hop popping (PHP) enables the penultimate LSR to remove a label from a packet. Since many LSPs can share the same egress, PHP helps reduce the amount of work the egress has to do, which reduces network congestion.

PHP is configured on the egress. The PHP-enabled egress advertises a label with value 3 to adjacent LSRs on an MPLS network. The implicit null label with value 3 is assigned to penultimate LSRs to implement PHP. After the penultimate LSRs remove labels with value 3 from the packets, the MPLS packets are reverted to IP or VPN packets and forwarded to the egress. The egress then forwards the packets over IP routes or based on the next layer label.

Label Switching Router

A label switching router (LSR) swaps labels and forwards MPLS packets. It is also called an MPLS node. As a fundamental element on an MPLS network, all LSRs support MPLS.


An LSR that resides on the edge of an MPLS domain is called a label edge router (LER). When an LSR connects to a node that does not run MPLS, the LSR acts as an LER. An ingress LER classifies the packets that enter an MPLS domain into forwarding equivalence classes (FECs), pushes labels into them, and then forwards them based on labels. An egress LER pops out the labels from the packets that leave an MPLS domain, and then forwards them based on the original packet type (that is the type before labels are encapsulated).

Label Switched Path

On an MPLS network, packets belonging to a forwarding equivalence class (FEC) pass through a path called a label switched path (LSP).

LSPs are unidirectional and originate from the ingress and terminate at the egress.

Ingress, Transit, and Egress LSRs

The LSRs along an LSP are as follows:

  • Ingress LSR: the start node on an LSP. An LSP can have only one ingress.

    The ingress creates an MPLS header field into which it pushes a label. This essentially turns the IP packet into an MPLS packet.

  • Transit LSR: an optional intermediate node on an LSP. An LSP can have multiple transit LSRs.

    A transit LSR searches the label forwarding table for entries, swaps the existing labels in MPLS packets for new labels, and forwards the MPLS packets to the next hop.

  • Egress LSR: the end node on an LSP, also called the last hop. An LSP can have only one egress.

    The egress strips labels off MPLS packets and forwards the resultant IP packets.

The ingress and egress are both LSRs and LERs. The transit node is an LSR.

Upstream and Downstream

There are two types of LSRs: upstream and downstream. Upstream LSRs send MPLS packets to a local LSR. Downstream LSRs are directly connected to and receive MPLS packets from a local LSR.

In Figure 6, LSRA is the upstream LSR of LSRB, and LSRB is the downstream of LSRA. Likewise, LSRB is the upstream LSR of LSRC. LSRC is the downstream LSR of LSRB.

Figure 6 Upstream and downstream

Label Distribution

An LSR records a mapping between a label and FEC and notifies upstream LSRs of the mapping. This process is called label distribution.

Figure 7 Label distribution

On the network shown in Figure 7, packets with the destination address are assigned to a specific FEC. LSRB and LSRC allocate labels that represent the FEC and advertise the mapping between labels and the FEC to upstream LSRs.

Label Distribution Protocols

Label distribution protocols, also called signaling protocols, are MPLS control protocols used to identify FECs, distribute labels, and create and maintain LSPs.

MPLS utilizes the following label distribution protocols:
  • Label Distribution Protocol (LDP)
  • Resource Reservation Protocol-Traffic Engineering (RSVP-TE)
  • Multiprotocol Extensions for Border Gateway Protocol (MP-BGP)

MPLS Architecture

As shown in Figure 8, the MPLS architecture consists of a control plane and a forwarding plane.

Figure 8 MPLS architecture
  • The control plane depends on IP routes, and control protocol packets are transmitted over IP routes. It is used to distribute labels, create a label forwarding table, and establish or tear down LSPs.
  • The forwarding plane, also known as the data plane, does not depend on IP routes. It can apply services and protocols supported by ATM, and Ethernet. The forwarding plane adds labels to IP packets and removes labels from MPLS packets. It forwards packets based on the label forwarding table.
Copyright © Huawei Technologies Co., Ltd.
Copyright © Huawei Technologies Co., Ltd.
Next topic >