MPLS protocols family described here include:
MPLS Multi Protocol Label Switching
MPLS Signalling Protocols    
LDP Label Distribution Protocol



Multiprotocol Label Switching (MPLS) is an Internet Engineering Task Force (IETF)-specified framework that provides for the designation, routing, forwarding and switching of traffic flows through the network.

It performs the following :

  • Specifies mechanisms to manage traffic flows of various granularities, such as flows between different hardware, machines, or even flows between different applications
  • Remains independent of the layer-2 and layer-3 protocols
  • Provides a means to map IP addresses to simple, fixed-length labels used by different packet-forwarding and packet-switching technologies
  • Interfaces to existing routing protocols, such as Resource ReSerVation Protocol (RSVP) and Open Shortest PathFirst (OSPF)
  • Supports IP, ATM, and Frame Relay layer-2 protocols

In MPLS, data transmission occurs on Label-Switched Paths (LSPs). LSPs are a sequence of labels at each and every node along the path from the source to the destination. LSPs are established either prior to data transmission (control-driven) or upon detection of a certain flow of data (data-driven). The labels, are underlying protocol-specific identifiers, There are several label distribution protocols used today, such as Label Distribution Protocol (LDP) or RSVP or piggybacked on routing protocols like border gateway protocol (BGP) and OSPF. Each data packet encapsulates and carries the labels during their journey from source to destination. High-speed switching of data is possible because the fixed-length labels are inserted at the very beginning of the packet or cell and can be used by hardware to switch packets quickly between links.

MPLS is a versatile solution to address the problems faced by present-day networks-speed, scalability, quality-of-service (QoS) management, and traffic engineering. MPLS has emerged as an elegant solution to meet the bandwidth-management and service requirements for next-generation IP-based backbone networks.

For more information on MPLS


IETF draft-rosen-tag-stack-02.txt

Multi Protocol Label Switching (MPLS) is a set of procedures for augmenting network layer packets with “label stacks”, thereby turning them into labeled packets. It defines the encoding used by a label switching router to transmit such packets over PPP and LAN links. It is an Ethernet Tag Switching protocol. This protocol attaches labels to IP and IPv6 protocols in the network layer, after the data link layer headers, but before the network layer headers. It inserts a 4 or 8 byte label.

The format of the MPLS label stack is shown in the following illustration:








8 bits

(20 bits)




MPLS label stack

The field contains the actual value for the label. This gives information on the protocol in the network layer and further information needed to forward the packet.

Class of Service. The setting of this field affects the scheduling and/or discard algorithms which are applied to the packet as it is transmitted through the network.

Bottom of the Stack, 1-bit field set to one for the last entry in the label stack and zero for all other label stack entries.

Time to Live, 8-bit field used to encode a time to live value.


Internet Draft: draft-ietf-mpls-ldp-07.txt

In the MPLS (Multi Protocol Label Switching) 2 label switching routers (LSR) must agree on the meaning of the labels used to forward traffic between and through them. LDP (Label Distribution Protocol) is a new protocol that defines a set of procedures and messages by which one LSR (Label Switched Router) informs another of the label bindings it has made.

The LSR uses this protocol to establish label switched paths through a network by mapping network layer routing information directly to data-link layer switched paths. These LSPs may have an endpoint at a directly attached neighbor (like IP hop-by-hop forwarding), or may have an endpoint at a network egress node, enabling switching via all intermediary nodes. A FEC (Forwarding Equivalence Class) is associated with each LSP created. This FEC specifies which packets are mapped to that LSP.

Two LSRs (Label Switched Routers) which use LDP to exchange label mapping information are known as LDP peers and they have an LDP session between them. In a single session, each peer is able to learn about the others label mappings, in other words, the protocol is bi-directional.

There are 4 sorts of LDP messages:

  1. Discovery messages
  2. Session messages
  3. Advertisement messages
  4. Notification messages.

Using discovery messages, the LSRs announce their presence in the network by sending Hello messages periodically. This hello message is transmitted as a UDP packet. When a new session must be established, the hello message is sent over TCP. Apart from the Discovery message; all other messages are sent over TCP.

The notification messages signal errors and other events of interest.

There are 2 kinds of notification messages:

  1. Error notifications; these signal fatal errors and cause termination of the session
  2. Advisory notifications; these are used to pass on LSR information about the LDP session or the status of some previous message received from the peer.

All LDP messages have a common structure that uses a Type-Length-Value (TLV) encoding scheme. This TLV encoding is used to encode much of the information carried in LDP messages. The Value part of a TLV-encoded object (TLV), may itself contain one or more TLVs.

Messages are sent as LDP PDUs. Each PDU can contain more than one LDP message. Each LDP PDU is an LDP header followed by one or more LDP message:

The structure of the LDP header is shown below:

2 bytes 2 bytes
Version PDU Length
LDP Identifier

6 bytes

LDP header structure

The protocol version number. The present number is 1.

PDU Length
The total length of the PDU excluding the version and the PDU length field.

LDP identifier
This field uniquely identifies the label space of the sending LSR for which this PDU applies. The first 4 octets encode the IP address assigned to the LSR. The lst 2 indicate a label space within the LSR.

LDP messages

All LDP messages have the following format.

UMessage type Message Ienght
Message ID
LDP Message format

The U bit is an unknown message bit.

Message type
The type of message. The following message types exist:

0x001 Notification
0x100 Hello
0x200 Initialization
0x201 Keep Alive
0x300 Address
0x301 Address Withdraw
0x400 Label Mapping
0x401 Label Request
0x404 Label Abort request
0x402 Label Withdraw
0x403 Label Release
default Unknown Message Name

Message length
The length in octets of the message ID, mandatory parameters and optional parameters:

Message ID
32-bit value used to identify the message.

The parameters contain the TLVs. There are both mandatory and optional parameters. Some messages have no mandatory parameters, and some have no optional parameters.

TLV format

UF Type Length
TLV format

The U bit is an unknown TLV bit.

Forward unknown TLV bit.

Encodes how the Value field is to be interpreted.

Specifies the length of the Value field in octets.

Octet string of Length octets that encodes information to be interpreted as specified by the Type field.

The following are optional TLV parameters:

Optional TLV Parameters

100 Fec
101 Address List
103 Hop Count
104 Path Vector
200 Generic Label
201 ATM Label
202 Frame Relay Label
300 Status
301 Extended Status
302 Returned PDU
303 Returned Message
400 Common Hello Parameters.
401 Transport Address
402 Configuration Sequence Number
500 Common Session Parameters
501 ATM Session Parameters
502 Frame Relay Session Parameters
600 Label Request Message ID

Interested in more details about testing this protocol? click here


CR-LDP (constraint-based LDP) contains extensions for LDP to extend its capabilities. This allows extending the information used to setup paths beyond what is available for the routing protocol

CR-LDP is the same as LDP but has the following additional TLV parameters.

Value Parameter
822 ResCls
503 Optical Session Parameters
800 Explicit Route
801-804 ER-Hop TLVS
810 Traffic Parameters
820 Preemption
823 Route Pinning
910 Optical Interface Type
920 Optical Trail Desc
930 Optical Label
940 Lambada Set

Interested in more details about testing this protocol? click here



The RSVP-TE (traffic extension) protocol is an addition to the RSVP protocol (see TCP) with special extensions to allows it to set up optical paths in an agile optical network.

The RSVP protocol defines a session as a data flow with a particular destination and transport-layer protocol. However, when RSVP and MPLS are combined, a flow or session can be defined with greater flexibility and generality. The ingress node of an LSP (Label Switched Path) uses a number of methods to determine which packets are assigned a particular label. Once a label is assigned to a set of packets, the label effectively defines the flow through the LSP. We refer to such an LSP as an LSP tunnel because the traffic through it is opaque to intermediate nodes along the label switched path. New RSVP Session, Sender and Filter Spec objects, called LSP Tunnel IPv4 and LSP Tunnel IPv6 have been defined to support the LSP tunnel feature. The semantics of these objects, from the perspective of a node along the label switched path, is that traffic belonging to the LSP tunnel is identified solely on the basis of packets arriving from the “previous hop” (PHOP) with the particular label value(s) assigned by this node to upstream senders to the session. In fact, the IPv4(v6) that appears in the object name only denotes that the destination address is an IPv4(v6) address. When referring to these objects generically, the qualifier LSP Tunnel is used.

In some applications it is useful to associate sets of LSP tunnels. This can be useful during reroute operations or in spreading a traffic trunk over multiple paths. In the traffic engineering application, such sets are called traffic engineered tunnels (TE tunnels). To enable the identification and association of such LSP tunnels, two identifiers are carried. A tunnel ID is part of the Session object. The Session object uniquely defines a traffic engineered tunnel. The Sender and Filter Spec objects carry an LSP ID. The Sender (or Filter Spec) object, together with the Session object, uniquely identify an LSP tunnel.

Apart from the existing message types listed in RSVP an additional message type is available:

Value Message type
14 Hello

In addition, the following additional Protocol Object Types exist:

Value Object type
16 Label
19 Optical
20 Explicit Route
21 Record Route
22 Hello
207 Attribute Session

Interested in more details about testing this protocol? click here


Additional Information