In my previous post I explained what MPLS is and how it works from a high level perspective. In this post I will explain MPLS label operations and how labeled packets are processed in MPLS networks.
When a labeled packet is received the label value at the top of the stack is examined to determine two things:
- The next hop and the exit interface to which the packet is to be forwarded.
- The operation to be performed by the LSR on the label stack before forwarding the packet.
Listed below are the operations performed by the LSR on the MPLS label stack of the packet:
Push operation: adds a new label to the IP packet or to the MPLS label stack of the packet. The push operation is commonly done by the ingress router except in some traffic engineering scenarios.
Swap operation: the top most label is swapped by another one before switching the packet to the next downstream LSR. This is commonly done by intermediate LSRs in the provider network.
POP operation: removes the top most label from the label stack to prepare that packet for its final destination. This is commonly done by the egress router or by the router preceding the egress router as Penultimate Hop Popping or PHP in brief.
Penultimate hop popping is an operation performed by a certain LSR in the MPLS network before sending the packet to the Label Edge Router (LER). The process is done by removing the top most label of the MPLS packet to reduce the overhead of the double lookup on the LER.
Have a look at the MPLS special Labels for more information about MPLS labels.