Working of IP MPLS

 Working of IP MPLS

MPLS Components read Here

Working of IP MPLS

When a packet arrives on the ingress Label Switch Router (LSR), also called the Provider Edge (PE) router, the PE router assigns a label to transport the packet through the MPLS network.

As shown in each LSR performs a specific function; for example, the LSR at the edge performs either label imposition (also known as the push functions) or label removing (also known as the pop function). Other LSRs in the path simply swap the labels.

MPLS Packet Forwarding and Label Switching

MPLS Operations

MPLS works by prefixing packets with an MPLS header, containing one or more labels. This iscalled a label stack. Each entry in the label stack contains four fields:

 A 20-bit label value. A label with the value of 1 represents the router alert label.

 A 3-bit Traffic Class field for QoS (equality of service) priority and ECN (Explicit CongestionNotification). Prior to 2009 this field was called EXP.

 A 1-bit bottom of stack flag. If this is set, it signifies that the current label is the last in thestack.

 An 8-bit TTL (time to live)field.


These MPLS-Label packets are switched after a label lookup/switch instead of a lookup into the IP table. As mentioned above, when MPLS was conceived, label lookup and label switchingwere faster than a Routing table or RIB (Routing Information Base) lookup because they could take place directly within the switched fabric and avoid having to use the OS.

The presence of such a label, however, has to be indicated to the router/switch. In the case of Ethernet frames this is done through the use of Ether Type values 0x8847 and 0x8848, for unicast and multicast connections respectively.

Routing Mechanism in MPLS

When an unlabeled packet enters the ingress router and needs to be passed on to an MPLS tunnel, the router first determines the forwarding equivalence class (FEC) for the packet andthen inserts one or more labels in the packet’s newly created MPLS header. The packet is then passed on to the next hop router for this tunnel.

The MPLS Header is added between the network layer header and link layer header of the OSI- model. When a labelled packet is received by an MPLS router, the topmost label is examined. Basedon the contents of the label a swap, push (impose) or pop (dispose) operation is performed on the packet’s label stack. Routers can have prebuilt lookup tables that tell them which kind of operation to do based on the topmost label of the incoming packet so they can process the packet very quickly.

 In a swap operation the label is swapped with a new label, and the packet is forwarded along the path associated with the new label.

 In a push operation a new label is pushed on top of the existing label,

effectively encapsulating the packet in another layer of MPLS. This allows hierarchical

routing of MPLS packets. Notably, this is used by MPLS VPNs.

 In a pop operation the label is removed from the packet, which may reveal an inner label below. This process is called ―DE capsulation. 

If the popped label was the last on the label stack, the packet ―leaves the MPLS tunnel. This can be done by the egress router, but see Penultimate Hop Popping (PHP) below.

During these operations, the contents of the packet below the MPLS Label stack are not examined. Indeed, transit routers typically need only to examine the topmost label on the stack. The forwarding of the packet is done based on the contents of the labels, which allows protocol independent packet forwarding that does not need to look at a protocol-dependent routing table and avoids the expensive IP longest prefix match at each hop.

At the egress router, when the last label has been popped, only the payload remains. This can be an IP packet or any of a number of other kinds of payload packet. The egress router must, therefore, have routing information for the packet’s payload since it must forward it without the help of label lookup tables. An MPLS transit router has no such requirement.

Usually (by default with only one label in the stack, accordingly to the MPLS specification), the last label is popped off at the penultimate hop (the hop before the egress router). This is called penultimate hop popping (PHP). This may be interesting in cases where the egress router has many packets leaving MPLS tunnels, and thus spends inordinate amounts of CPU time on this. By using PHP, transit routers connected directly to this egress router effectively offload it, by popping the last label themselves. In the label distribution protocols, this PHP label pop action isadvertised as label value 3 « implicit-null» (which is never found in a label, since it means that the label is to be popped).

This optimization is no longer that useful (like for initial rationales for MPLS – easier operations for the routers). Several MPLS services (including end-to-end QoS management, and 6PE) imply to keep a label even between the penultimate and the last MPLS router, with a label disposition always done on the last MPLS router: the «Ultimate Hop Popping» (UHP). Some specific label values have been notably reserved for this use:

0: «explicit-null» forIPv4 2: «explicit-null» forIPv6

Post a Comment