Skip to main content

RFC 3031 - 2. Introduction to MPLS

  1. Introduction to MPLS

    This document specifies the architecture for Multiprotocol Label Switching (MPLS).

    Note that the use of MPLS for multicast is left for further study.

2.1. Overview

As a packet of a connectionless network layer protocol travels from one router to the next, each router makes an independent forwarding decision for that packet. That is, each router analyzes the packet's header, and each router runs a network layer routing algorithm. Each router independently chooses a next hop for the packet, based on its analysis of the packet's header and the results of running the routing algorithm.

Packet headers contain considerably more information than is needed simply to choose the next hop. Choosing the next hop can therefore be thought of as the composition of two functions. The first function partitions the entire set of possible packets into a set of "Forwarding Equivalence Classes (FECs)". The second maps each FEC to a next hop. Insofar as the forwarding decision is concerned, different packets which get mapped into the same FEC are indistinguishable. All packets which belong to a particular FEC and which travel from a particular node will follow the same path (or if certain kinds of multi-path routing are in use, they will all follow one of a set of paths associated with the FEC).

In conventional IP forwarding, a particular router will typically consider two packets to be in the same FEC if there is some address prefix X in that router's routing tables such that X is the "longest match" for each packet's destination address. As the packet traverses the network, each hop in turn reexamines the packet and assigns it to a FEC.

In MPLS, the assignment of a particular packet to a particular FEC is done just once, as the packet enters the network. The FEC to which the packet is assigned is encoded as a short fixed length value known as a "label". When a packet is forwarded to its next hop, the label is sent along with it; that is, the packets are "labeled" before they are forwarded.

At subsequent hops, there is no further analysis of the packet's network layer header. Rather, the label is used as an index into a table which specifies the next hop, and a new label. The old label is replaced with the new label, and the packet is forwarded to its next hop.

In the MPLS forwarding paradigm, once a packet is assigned to a FEC, no further header analysis is done by subsequent routers; all forwarding is driven by the labels. This has a number of advantages over conventional network layer forwarding.

  -  MPLS forwarding can be done by switches which are capable of
     doing label lookup and replacement, but are either not capable
     of analyzing the network layer headers, or are not capable of
     analyzing the network layer headers at adequate speed.

  -  Since a packet is assigned to a FEC when it enters the network,
     the ingress router may use, in determining the assignment, any
     information it has about the packet, even if that information
     cannot be gleaned from the network layer header.  For example,
     packets arriving on different ports may be assigned to
     different FECs.  Conventional forwarding, on the other hand,
     can only consider information which travels with the packet in
     the packet header.

  -  A packet that enters the network at a particular router can be
     labeled differently than the same packet entering the network
     at a different router, and as a result forwarding decisions
     that depend on the ingress router can be easily made.  This
     cannot be done with conventional forwarding, since the identity
     of a packet's ingress router does not travel with the packet.

  -  The considerations that determine how a packet is assigned to a
     FEC can become ever more and more complicated, without any
     impact at all on the routers that merely forward labeled
     packets.

  -  Sometimes it is desirable to force a packet to follow a
     particular route which is explicitly chosen at or before the
     time the packet enters the network, rather than being chosen by
     the normal dynamic routing algorithm as the packet travels
     through the network.  This may be done as a matter of policy,
     or to support traffic engineering.  In conventional forwarding,
     this requires the packet to carry an encoding of its route
     along with it ("source routing").  In MPLS, a label can be used
     to represent the route, so that the identity of the explicit
     route need not be carried with the packet.

Some routers analyze a packet's network layer header not merely to choose the packet's next hop, but also to determine a packet's "precedence" or "class of service". They may then apply different discard thresholds or scheduling disciplines to different packets. MPLS allows (but does not require) the precedence or class of service to be fully or partially inferred from the label. In this case, one may say that the label represents the combination of a FEC and a precedence or class of service.

MPLS stands for "Multiprotocol" Label Switching, multiprotocol because its techniques are applicable to ANY network layer protocol. In this document, however, we focus on the use of IP as the network layer protocol.

A router which supports MPLS is known as a "Label Switching Router", or LSR.

2.2. Terminology

This section gives a general conceptual overview of the terms used in this document. Some of these terms are more precisely defined in later sections of the document.

  DLCI                      a label used in Frame Relay networks to
                            identify frame relay circuits

  forwarding equivalence class   a group of IP packets which are
                                 forwarded in the same manner (e.g.,
                                 over the same path, with the same
                                 forwarding treatment)

  frame merge               label merging, when it is applied to
                            operation over frame based media, so
                            that the potential problem of cell
                            interleave is not an issue.

  label                     a short fixed length physically
                            contiguous identifier which is used to
                            identify a FEC, usually of local
                            significance.


  label merging             the replacement of multiple incoming
                            labels for a particular FEC with a
                            single outgoing label

  label swap                the basic forwarding operation
                            consisting of looking up an incoming
                            label to determine the outgoing label,
                            encapsulation, port, and other data
                            handling information.

  label swapping            a forwarding paradigm allowing
                            streamlined forwarding of data by using
                            labels to identify classes of data
                            packets which are treated
                            indistinguishably when forwarding.






  label switched hop        the hop between two MPLS nodes, on which
                            forwarding is done using labels.

  label switched path       The path through one or more LSRs at one
                            level of the hierarchy followed by a
                            packets in a particular FEC.

  label switching router    an MPLS node which is capable of
                            forwarding native L3 packets

  layer 2                   the protocol layer under layer 3 (which
                            therefore offers the services used by
                            layer 3).  Forwarding, when done by the
                            swapping of short fixed length labels,
                            occurs at layer 2 regardless of whether
                            the label being examined is an ATM
                            VPI/VCI, a frame relay DLCI, or an MPLS
                            label.

  layer 3                   the protocol layer at which IP and its
                            associated routing protocols operate
                            link layer synonymous with layer 2

  loop detection            a method of dealing with loops in which
                            loops are allowed to be set up, and data
                            may be transmitted over the loop, but
                            the loop is later detected

  loop prevention           a method of dealing with loops in which
                            data is never transmitted over a loop

  label stack               an ordered set of labels

  merge point               a node at which label merging is done

  MPLS domain               a contiguous set of nodes which operate
                            MPLS routing and forwarding and which
                            are also in one Routing or
                            Administrative Domain

  MPLS edge node            an MPLS node that connects an MPLS
                            domain with a node which is outside of
                            the domain, either because it does not
                            run MPLS, and/or because it is in a
                            different domain.  Note that if an LSR
                            has a neighboring host which is not
                            running MPLS, that that LSR is an MPLS
                            edge node.






  MPLS egress node          an MPLS edge node in its role in
                            handling traffic as it leaves an MPLS
                            domain

  MPLS ingress node         an MPLS edge node in its role in
                            handling traffic as it enters an MPLS
                            domain

  MPLS label                a label which is carried in a packet
                            header, and which represents the
                            packet's FEC

  MPLS node                 a node which is running MPLS.  An MPLS
                            node will be aware of MPLS control
                            protocols, will operate one or more L3
                            routing protocols, and will be capable
                            of forwarding packets based on labels.
                            An MPLS node may optionally be also
                            capable of forwarding native L3 packets.

  MultiProtocol Label Switching  an IETF working group and the
                                 effort associated with the working
                                 group

  network layer             synonymous with layer 3

  stack                     synonymous with label stack

  switched path             synonymous with label switched path

  virtual circuit           a circuit used by a connection-oriented
                            layer 2 technology such as ATM or Frame
                            Relay, requiring the maintenance of
                            state information in layer 2 switches.

  VC merge                  label merging where the MPLS label is
                            carried in the ATM VCI field (or
                            combined VPI/VCI field), so as to allow
                            multiple VCs to merge into one single VC

  VP merge                  label merging where the MPLS label is
                            carried din the ATM VPI field, so as to
                            allow multiple VPs to be merged into one
                            single VP.  In this case two cells would
                            have the same VCI value only if they
                            originated from the same node.  This
                            allows cells from different sources to
                            be distinguished via the VCI.






  VPI/VCI                   a label used in ATM networks to identify
                            circuits

2.3. Acronyms and Abbreviations

ATM Asynchronous Transfer Mode BGP Border Gateway Protocol DLCI Data Link Circuit Identifier FEC Forwarding Equivalence Class FTN FEC to NHLFE Map IGP Interior Gateway Protocol ILM Incoming Label Map IP Internet Protocol LDP Label Distribution Protocol L2 Layer 2 L3 Layer 3 LSP Label Switched Path LSR Label Switching Router MPLS MultiProtocol Label Switching NHLFE Next Hop Label Forwarding Entry SVC Switched Virtual Circuit SVP Switched Virtual Path TTL Time-To-Live VC Virtual Circuit VCI Virtual Circuit Identifier VP Virtual Path VPI Virtual Path Identifier

2.4. Acknowledgments

The ideas and text in this document have been collected from a number of sources and comments received. We would like to thank Rick Boivie, Paul Doolan, Nancy Feldman, Yakov Rekhter, Vijay Srinivasan, and George Swallow for their inputs and ideas.