|
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: |
- 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.
- For all i, 1 < i < n, P has a label stack of
depth m when received by LSR Ri.
- 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.
- 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.
- 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:
| |
- The decision is not based on the label stack or the network
layer header at all.
- 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:
| |
- R1, the "blue LSP Ingress", pushes the
label m in packet P resulting in a label stack of
depth m.
- When P arrives to any blue router from R2 to Rn-1
always has a label stack of
depth m.
- When P transits through any router from R1 to Rn-1 its label stack
never is less than m.
- 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.
- 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:
| |
- into a single FEC.
- into a set of FECs.
- 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:
| |
- It may adopt Rd's finer granularity. This is the
preferred option.
- 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: |
- Hop by hop routing.
- 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
|