OpenFlowMPLS MPLS Operations

From OpenFlow Wiki

Jump to: navigation, search

This page is no longer maintained. For up to date information on the OpenFlow MPLS Extension, please visit the main page and the pages linked from there: OpenFlowMPLS.

MPLS Operations

MPLS imposes the label switching paradigm to forwarding.
A MPLS path will have three types of nodes:

  • Ingress (Tunnel Encapsulation)
  • Transit (Label Switching)
  • Egress (Tunnel Decapsulation)


The actions required at these nodes are:

  • Push (Path Ingress)
  • Swap (Transit)
  • Pop (Path Egress)
  • PHP (Penultimate Hop Popping, used to avoid Pop at the egress node)
  • Swap & Push (Nested Path Ingress)
  • Pop & Swap (Nested Path Egress)


Further functionality required at the nodes:

  • Forward to the MPLS next hop
  • TTL handling


Forwarding to the MPLS NHop:
After performing the action on the labeled packet, it is forwarded to the next node in the MPLS path. This is done by re-writing the destination MAC to the MAC address of the nexthop. Also the source MAC of the packet is changed to the source MAC of outgoing MPLS interface.

TTL Handling:
TTL handling requires a number of operations:

  • Move the TTL from the IP header to the MPLS label at ingress node
  • Decrement the label TTL at the transit and egress nodes
  • Move the TTL from the label to the IP header at the egress node
  • If the incoming label TTL is 1 at the transit or egress node then do not forward the packet. Instead punt it to the controller for further handling