Previous

Content

Next 


2.4. Label Switched Path (LSP), LSP Ingress, LSP Egress

 

A "Label Switched Path (LSP) of level m" for a particular packet P is a sequence of routers <R1, .... Rn> with the following properties:
  1. R1, the "LSP Ingress", is an LSR which pushes a label Lm onto P's label stack, resulting in a label stack of depth m.
     
  2. For all i, 1 < i < n, P has a label stack of depth m when received by LSR Ri.
     
  3. At no time during P's transit from R1 to R[n-1] does its label stack ever have a depth of less than m.
     
  4. For all i, 1 < i < n, Ri transmits P to R[i+1] by means of MPLS, i.e., by using the label at the top of the label stack (the level m label Lm) as an index into an ILM.
     
  5. For all i, 1 < i < n, if a system S receives and forwards P after P is transmitted by Ri but before P is received by R[i+1] (e.g., Ri and R[i+1] might be connected via a switched data link subnetwork, and S might be one of the data link switches), then S's forwarding decision is not based on the level m label Lm, or on the network layer header. This may be because:
     
     
    1. The decision is not based on the label stack or the network layer header at all.
       
    2. The decision is based on a label stack on which additional labels have been pushed (i.e., on a level m+k, where k > 0, and label is Lm+k).
     
A consequence of this is that whenever an LSR pushes a label Lm onto an already labeled packet (whose previous top label is Lm-1), it needs to make sure that the new label corresponds to a FEC whose LSP Egress is the LSR that assigned the label which is now second in the stack (it should be label Lm-1 and the egress LSR will be the router Rn; the router R[n-1] will do the popping of the new label Lm; see below, Penultimate Hop Popping definition. LB).
 
We will call a sequence of LSRs the "LSP for a particular FEC F" if it is an LSP of level m for a particular packet P when P's level m label is a label corresponding to FEC F.
 
Consider the set of nodes which may be LSP ingress nodes for FEC F. Then, there is an LSP for FEC F which begins with each of those nodes. If a number of those LSPs have the same LSP egress, then one can consider the set of such LSPs to be a tree, whose root is the LSP egress. We can thus speak of the "LSP Tree" for a particular FEC F.
 
 
   

 

Penultimate Hop Popping
According to previous definitions P will be transmitted from R[n-1] to Rn with a label stack of depth m-1. The label stack may be popped at the penultimate LSR of the LSP, rather than at the LSP Egress. That's OK. The purpose of the level m label Lm is get the packet to Rn. Once R[n-1] has decided to send the packet to Rn, the label no longer has any function, and need no longer be carried. Then it is popped at router R[n-1].
If we don't do penultimate hop popping, then when the LSP egress LSR receives a packet, it should first look up the top label, and determines as a result that it is the LSP egress router. Then, it must pop the stack and examines what remain on it. If there is another label, it should look this up and forward the packet based on this lookup (In this case, the router is also an intermediate node for its level m-1 LSP). If there is no other label on the stack, then the packet should be forwarded according to its network destination address. Then, the process on the LSP egress router requires two label lookups or a label lookup followed by an address lookup.
On the contrary, if penultimate hop popping is used, then when the penultimate router looks up the label, it determines:
  • that it is the penultimate hop, and
     
  • who the next hop is
Then, it simply pops the stack and forwards the packet. Finally, when the LSP egress router receives the packet, the label which is on the top it is just what it needs in order to make its own forwarding decision. Or, if the packet's stack is empty, the last router will simply see the network layer packet, which is again just what it needs to make its forwarding decision. This technique allows, both of them, the penultimate and the ultimate routers, to make only a single lookup to have a forwarding decision.
Another advantages are:
  • the code may be simplified because we can assume that only a single lookup is ever needed.
     
  • the code can be based on a "time budget" that assume that a single lookup is needed by each router.
     
  • the LSP egress router needs not even be an LSR.
However, some routers may not be able to pop the label stack, so this cannot be universally required. In some cases, perhaps, the penultimate hop popping is not desirable. Then, the penultimate node should pop the label only if this is specifically requested by the egress node, or if the next node in the LSP does not support MPLS (If the next node supports MPLS, but does not make the request, the penultimate node has no way of knowing that it is, in fact, the penultimate node).
An LSR which is capable of popping the label stack at all MUST do penultimate hop popping when so is requested by its downstream label distribution peer. Initial LDP negotiations MUST allow each LSR to determine whether its neighboring LSRs are capable of popping the label stack. A LSR MUST NOT request a peer to pop the stack unless it is capable of doing so.
To understand this stuff the following picture can help:

Here we have two LSPs: the blue one and the red one. The blue one begins at router R1 where the label stack of depth m-1 is incremented when the label m is placed on the top of packet P. R1 is the BLUE LSP Ingress router. Blue routers constitute this LSP. Conditions above hold; this means:
 
 
  1. R1, the "blue LSP Ingress", pushes the label m in packet P resulting in a label stack of depth m.
     
  2. When P arrives to any blue router from R2 to Rn-1 always has a label stack of depth m.
     
  3. When P transits through any router from R1 to Rn-1 its label stack never is less than m.
     
  4. From blue router R2 to blue router Rn-1 P is always transmitted using the label at the top of the label stack (the level m label) as an index into an ILM.
     
  5. System S (the red LSP) receives and forwards P after P is transmitted by Ri but before P is received by Ri+1;  the S's forwarding decision is based on the level m+1 label (not the m level label neither the network layer header).
 

R1 is the blue LSP Ingress router, Rn-1 is the penultimate blue LSP router, and Rn is the blue LSP Egress router. Ri is a blue LSP router, but it is also the red LSP Ingress router; Rk is the penultimate red LSP router, and Ri+1, being a blue LSP router, it is also the red LSP Egress router.

The penultimate blue LSP router Rn-1 pops the level m label and forwards P to Rn with a label stack of level m-1. The penultimate red router Rk pops the level m+1 label and forwards P to Ri+1 with a label stack of level m. Ri+1, being a blue LSP, receives P as a level m labeled packet.

Transit from Ri to Ri+1 was done in this example using a m+1 level label (this means, creating a new LSP using MPLS); but it is possible to make this transit using another technology, for example, a data link support as ATM or FR, or by some packet encapsulation as GRE or IPSec.

Finally, the level m-1 need not be a labeled level. It could be the level 0, this means, directly the IP header. In this case, Rn-1 exposes the IP header and Rn doesn't have to be even an LSR.

LB

LSP Next Hop
The LSP Next Hop for a particular labeled packet in a particular LSR, is the LSR which is the next hop, as selected by the NHLFE entry used for forwarding the packet. This hop may differ from the next hop which would be chosen by the network layer routing algorithm. The term "L3 Next Hop" will be used to refer to the latter.
Invalid incoming labels
What should an LSR do if it receives a labeled packet with a particular incoming label, but it has no binding for that label? Removing the label and forwarding the packet could cause a loop. Therefore, when a labeled packet is received with an invalid incoming label, it MUST be discarded, UNLESS it is determined by some means (out the scope of this specification) that forwarding the packet cannot cause any harm.
LSP control: Ordered versus Independent
 
Some FECs correspond to address prefixes which are distributed via a dynamic routing algorithm. The setup of these FECs can be done in one of two ways. Independent LSP Control or Ordered LSP Control.
 
In Independent LSP Control, each LSR, upon noting that it recognizes a particular FEC, makes an independent decision to bind a label to that FEC and to distribute the binding to its label distribution peers. This correspond to the way that conventional IP datagram routing works.
 
In Ordered LSP Control, an LSR only binds a label to a particular FEC if it is the egress LSR for that FEC, or if it has already received a label binding for that FEC from its next hop for that FEC.
 
If one wants to ensure that traffic in a particular FEC follows a path with some specified set of properties (e.g., that the traffic follows an explicitly specified path), Ordered LSP Control must be used.
 
Ordered LSP Control and Independent LSP Control are fully interoperable. However, unless all LSRs in an LSP are using ordered control, the overall effect on networks behavior is largely that of independent control, since one cannot be sure that an LSP is not used until it is fully set up.
 
Aggregation
 
One way to aggregate traffic into FECs is to create one FEC for each address prefix in the routing table. But doing that way some set of FECs could have the same route. For example, a set of FECs having the same egress node could be themselve one FEC. Then, the union of these FECs is itself a FEC. We have a choice: should a distinct label be bound to each FEC; or should a single label be bound to the union of these FECs?
 
Binding a single label to a union of FECs is known as "aggregation". The MPLS architecture allows this. It reduces the number of labels to be managed, and the amount of label distribution control traffic required.
 
   

 

Given a set of FECs, it is possible to aggregate them:
 
 
  1. into a single FEC.
     
  2. into a set of FECs.
     
  3. not aggregate them at all.
 
The granularity of the aggregation is "coarsest granularity" for a., and "finest granularity" for c.
When Ordered LSP Control is used, each LSR should adopt, for a given set of FECs, the granularity used by its next hop for those FECs; in this case final granularity decision is taken by the egress LSR.
When Independent LSP Control is used, it is possible to have two adjacent LSRs, Ru and Rd, which aggregate their FECs differently. In such a case we have:
 
  • If Ru has finer granularity then Rd, this does not cause a problem. Ru may withdraw the set of n labels that it distributes, and then distributes a set of m labels, corresponding to Rd's level of granularity (n>m).
     
  • On the contrary, if Ru has coarser granularity than Rd, it has two choices:
     
     
    1. It may adopt Rd's finer granularity. This is the preferred option.
       
    2. It may map its m labels into a subset of Rd's n label (n>m), if it can determine that this will produce the same routing.
     
 
In any event, every LSR needs to know (by configuration) what granularity to use for labels that it assigns.
When Ordered LSP Control is used, this requires each node to know the granularity, only for FECs which leave the MPLS domain at that node; then, egress nodes will take the final granularity decision.
For Independent LSP Control, each LSR should be consistently configured to know the granularity for each FEC it handles. This may be done by using a single level of granularity which applies to all FECs, such as "one label per IP prefix in the forwarding table", or, "one label per egress node".
Route Selection
Route Selection is the method used for selecting the LSP for a particular FEC. MPLS supports two options:
  1. Hop by hop routing.
     
  2. Explicit routing.
Hop by hop routing allows each node to independently choose the next hop for each FEC. This is the usual mode used today in existing IP networks.
In Explicit routing, a single LSR, generally the LSP ingress or the LSP egress router, specifies several (or all) of the LSRs in the LSP. When all LSRs are specified, the LSP is "strictly" explicit routed. When some LSRs of the LSP are specified, the LSP is "loosely" explicit routed.
The sequence of LSRs in one LSP may be chosen by configuration (this case the ingress router specifies the LSP); or may be selected dynamically by a single node (in this case, normally, the egress router specifies the LSP). For example, the egress node may use the topological information learned from a link-state database, in order to compute an entire path for the tree ending at that egress node.
Explicit routing may be used for policy routing or traffic engineering. The explicit route needs to be specified only at the time that labels are assigned. This makes MPLS explicit routing much more efficient that the alternative of IP source routing.
Lack of Outgoing Label
When a labeled packet reaches an LSR at which the ILM does not map the incoming label to any NHLFE, even though the label was valid, the only safe procedure is to discard the packet. This avoids forming of loops or incorrect packet's forwarding.
Time-to-Live (TTL)
When a packet travels along an LSP, it SHOULD emerge with the same TTL value that it would have had if it had traversed the same sequence of routers without having been label switched.
If the label values are encoded in a "shim" between layer-2 and layer-3 headers, that shim MUST have a TTL field that SHOULD be initially loaded from the layer-3 TTL field, SHOULD be decremented at each LSR-hop, and SHOULD be copied back into the layer-3 TTL field when the packet emerges from its LSP.
When the label is encoded in a layer-2 header (e.g., ATM), and the packet is forwarded by layer-2 switches, and the layer-2 itself does not have a TTL field, it will not be possible to decrement the TTL field. This LSP segment is called "non-TTL LSP segment".
In order to allow to give a packet a TTL that reflects the number of LSP-hops it has traversed, in the unicast case, it could be done by propagating a meaningful LSP length to ingress nodes, enable them to decrement the TTL field before forwarding packets into a non-TTL LSP segment. Then, if it can be determined, upon ingress to a non-TTL LSP segment, that a particular packet's TTL will expire before reaching the egress of the non-TTL segment, the ingress LSR must not label switch the packet.
Loop Control
On a non-TTL LSP segment, by definition, TTL cannot be used to protect against forwarding loops. Then, all LSRs that may attach to a non-TTL LSP segment, will require to support a common technique for loop detection and supression; however, use of this is optional. Loop detection techniques are specified in other MPLS specifications.
Important keywords to understand and remember
  LSP
Penultimate hop popping
LSP Tree
Popping enabled
Penultimate LSR
LSP Next Hop
L3 Next Hop
Invalid incoming label
Independent LSP Control
Ordered LSP Control
Aggregation
Granularity
Hop by Hop routing
Explicit routing
"Strictly" explicit route
"Loosely" explicit route
Lack of outgoing label
TTL
Non-TTL LSP-segment
Loop Control (Loop detection and supression)











 

   


Previous

Content

Next