MPLS Data Plane

In MPLS enabled networks, packets are forwarded based on labels. These labels may be distributed by LDP, RSVP-Te of even BGP. In this post, we will not cover how these labels are exchanged but we will cover the MPLS label operations in the data plane. Basically, there are 3 operations done by MPLS routers in data plane. Label Push, Label Swap and label POP.

In the below simple topology assume that labels are already distributed and label forwarding tables are already populated.

Label forwarding tables include very basics information like, In Label, Out Label. There is also some other information like Label operation, outgoing interface etc. But here we will simply cover label operations in data plane and these In Label/Out Label information is enough. In this topology, label forwarding entries are belong to FEC which is the Loopback0 interface ip address of NodeD.

If a packet sent from NodeA to NodeD (this is usually going to be a L2/L3 VPN Trafic ) Node A will lookup its forwarding table and find out that the destination prefix has label in FIB. So the NodeA will do the label operation which is called Label Push.

NodeA is usually called Label Edge Router. It adds the MPLS label and sent packet from MPLS enabled interface. When the packet arrives the NodeB, since this is an MPLS labeled packet, it will check its label forwarding table and find out that it should Swap the label with Out Label and sent to the NodeC.

Same Label Swap operation will be done on NodeC also. (Please note that, in this example we assumed that PHP is not enabled)

When packet arrives the NodeD, It will check its Label forwarding table an will do the Label POP operation.

In the MPLS header it is coded that the next header is IP and NodeD will simply do the IP lookup after strip out the MPLS label.

About: fabricplane