4.3 MPLS Operating Modes
This section discusses several MPLS operating modes.
Label Allocation Modes
The label allocation mode refers to which of a given pair of LSRs will be allocating the labels that will be used on traffic sent from one to the other. For a given stream of data, the LSR that is required to interpret the label on packets in the stream received from the other LSR is the downstream LSR. The LSR that puts the label on packets in the stream that it sends to another LSR is the upstream LSR.
Downstream Label Allocation
Downstream label allocation is the only mode currently defined for MPLS. Using this approach allows for a minimal amount of label negotiation because the LSR that is required to interpret labels is responsible for assigning them.
Upstream Label Allocation
Upstream label allocation is not a supported mode in the current version of MPLS. The advantage associated with this label allocation mode is that switching hardware could realize significant gains from being able to use the same label on a number of different interfaces for multicast traffic.
Label Distribution Modes
This section describes MPLS modes specific to distributing MPLS labels.
Downstream On-Demand Label Distribution
In downstream on-demand mode, label mappings are provided to an upstream LSR when requested. Because labels will not usually be requested unless needed for an NHLFE, this approach results in substantially less label-release traffic for unwanted labels when conservative label retention is in use and when the number of candidate interfaces that will not be used for a next hop is relatively large.
All LSRs must be able to provide labels when requested because (in the case where an LSR is not merge capable) the upstream LSR will need as many labels for LSPs going downstream as it has LSPs arriving at it from upstream. There is no standard way that a downstream LSR would know in advance how many labels to provide to an upstream peer; hence, the downstream LSR must be able to provide new labels as requested.
In addition, even an LSR that relies for the most part on downstream unsolicited label distribution will from time to time need to obtain a label that it released earlier. This is true becausewhether the LSR uses conservative or liberal retention mode (described later)the LSR may release labels it is unlikely to use given a particular routing topology. If the topology changes in a significant way (for instance, the routed path for some streams is reversed from what it was earlier), these labels will be suddenly and (possibly) unexpectedly needed. Thus, the basic capabilities associated with downstream on-demand distribution must be present regardless of the dominant mode used by an LSR.
Downstream Unsolicited Label Distribution
In downstream unsolicited mode, label mappings are provided to all peers for which the local LSR might be a next hop for a given FEC. 23 This would typically be done at least once during the lifetime of a peer relationship between adjacent LSRs.
Label Retention Modes
Label retention mode refers to the way in which an LSR treats label mappings it is not currently using. Note that the label retention mode may be particularly uninteresting when the downstream on-demand label distribution mode is in use.
Conservative Label Retention
In the conservative label retention mode, any label mapping received from a peer LSR that is not used in an active NHLFE is released.
The advantage of this mode is that only labels that will be used given the existing topology are retained, reducing the amount of memory consumed in retaining labels. The potential cost is delay in obtaining new labels when a topology change occurs. When this mode is combined with downstream on-demand label distribution (as is most likely the case), the number of labels distributed from adjacent peers will be fewer as well.
Liberal Label Retention
In the liberal label retention mode, any label mapping that may ever be used as part of an active NHLFE is retainedup to and including all label mappings received.
The advantage of this mode is that should a topology change occur, the labels to use in the new topology are usually already in place. This advantage is realized at the price of storing labels that are not in use. For label-switching devices that have large numbers of ports, this memory cost can be very high because the likelihood that any particular label will be used to forward packets out of any particular port is, in general, inversely proportional to the total number of ports.
Interaction between Label Distribution and Retention Modes
The interaction between label distribution and retention is such that conservative retention is a more natural fit for downstream on-demand distribution, whereas liberal retention is a more natural fit for downstream unsolicited distribution. The reason is the need to send messages to release unused labels in both distribution modes and to specifically request labels in downstream on-demand distribution.
In the conservative retention mode, it does not make sense to get unsolicited labels because most of these will subsequently be released. For label-switching devices with many peers, the amount of message traffic associated with releasing unwanted labels (received as a result of downstream unsolicited distribution) after each routing change will typically be many times the number of messages required to request and receive labels using downstream on-demand distribution.
In the liberal retention mode, it does not make sense to use downstream on-demand distribution because of the need to specifically request labels for all FECs from all peers. If liberal retention is to be used, downstream unsolicited distribution mode effectively eliminates half of the message traffic otherwise required.
However, as implied earlier, when downstream on-demand distribution is used, it is arguable that liberal retention is also used, since all label mappings received from peers are retained. The spirit of liberal retention is to retain labels for all peersat least one label from each peer and for each FEC. To achieve this using downstream on-demand distribution is clearly a suboptimal approach.
The distinction between the ordered and independent control modes is, in practice, likely to be a lot less than people have made it out to be in theory. With specific exceptions (for instance, traffic engineering tunnels, discussed later), choice of control mode is local rather than network wide. In addition, certain behaviors associated with a strict interpretation of control mode can result in pathological misbehavior within the network.
Ordered Control Mode
In ordered control mode, LSP setup is initiated at one point and propagates from there toward a termination point. In the case where LSP setup is initiated at an ingress, label requests are propagated all the way to an egress; label mappings are then returned until a label mapping arrives at the ingress. In the case where LSP setup is initiated at an egress, label mappings are propagated all the way to ingress points. A feature of ordered control is that an LSP is not completely set up until the associated messages have propagated from end to endhence, data is not sent on the LSP until it is known to be loop free.
A severe disadvantage shows up in a purist implementation of ordered control mode in the following case. Assume that an LSR is the egress for a (potentially large) set of LSPs. This LSR now discovers a new peer that is downstream of it with respect to some or all of the set of LSPs for which the LSR is the current egress. If the local LSR simply adds the new LSR as an egress without somehow ascertaining that this LSR does not carry the LSP into a merge point upstream of the local LSR, it may introduce a loop into an LSP assumed to be loop free. If, on the other hand, it withdraws all label mappings upstream, it may produce a significant network outage and will result in a lot of LSP control activity, both of which might be unnecessary. For example, in the case where a downstream routing peer has just had MPLS enabled but is otherwise the same as it was previously, it is unlikely that forwarding will actually change.
One way to get around this problem is if the ordered-control LSR continues forwarding as before while it waits for label mappings (assuming it is getting downstream unsolicited label distributions) with a known (nonzero) hop count. In this way, the local LSR can continue to forward packets, using IP forwarding, to the routing peer to which it was forwarding previously. 24
Waiting to receive a known hop count for a new LSP that is being established is one way for an intermediate LSR to use ordered control to force ordered control for a portion of the LSP. The fact that the LSP has been established for LSRs downstream is irrelevant if the LSP is not established to an ingress LSR, since no packets will be forwarded on that LSP until the LSP is established to an ingress LSR (by definition, packets are inserted on an LSP at ingress LSRs). Because this behavior prevents an LSP from being established between the local LSR and its upstream neighbors, the local LSR has succeeded in forcing ordered control on the LSP downstream and for at least the one hop to its upstream peers when one or more LSRs between that LSR and an egress are otherwise using independent control.
If an LSR continues to forward packets using IP (acting as the egress for a set of LSPs) even though it has discovered another LSR that should be the egress (for that set of LSPs), it is behaving as if it were using independent controlat least temporarilyin spite of the fact that it may be configured to use ordered control.
Independent Control Mode
Independent control mode is the mode in use when an LSR
Has reason to believe that it will get label mappings from downstream peers for a specific FEC
Distributes labels for that FEC to its upstream peers irrespective of whether it has received the expected label mappings from downstream
In this case, the LSR sending the label mapping includes a hop count that reflects the fact that it is not the egress and has not received label mappings (directly or indirectly) from an LSR that is. The special hop-count value of zero (unknown hop count) is used to indicate this case.
Upstream LSRs may or may not start to use the label mappings thus provided. Using the LSP is probably not advisable, because the LSR providing the label mapping may elect to discard packets (while waiting to receive label mappings from downstream peers), and the LSP is not proven to be loop free (until a label mapping is propagated from downstream with a known hop count).
In effect, if an LSP is never used until a label mapping for the LSP containing a known hop count is received at the ingress to the LSP, the network is behaving as if ordered control were in use for all LSRs along the given LSP.
Label space refers to the scope of a label within a specific LSR and how this scope relates to an adjacent LSR peer. A label space is designated either per interface or per platform (Figure 4.4). Selection of the label space used for any interface is a configuration or implementation choice. In implementations, either per-interface or per-platform label space may be supported; however, no implementation is required to support both. 25
Figure 4.4 Per-platform label space. With per-platform labels, packets may be forwarded using either of these two links using the same labels. With per-interface labels, this is not guaranteed.
The following general statements can be made about LSR implementations:
ATM LSRs will most likely not support a per-platform label space. This is true because of the implications of assigning the same VPI/VCI meaning to all ATM interfaces.
Support for the per-platform interface is easily achievable using generic MPLS labels (as is the case for PPP or LAN encapsulation, or label stacking).
It is possible for per-platform label space to apply to some interfaces and not to others. Otherwise, the presence of a single ATM interface (or a diversity of interfaces) would preclude use of the per-platform label space.
The interpretation of "per platform" is only required to be consistent for any implementation with respect to a single peer LSR instance. Thus, rules regarding interpretation of labels distributed to a single LSR peer instance do not necessarily apply to labels distributed to another peer instance, even when both peers are using the per-platform label space.26
A per-interface label space applies when the same label may be interpreted differently at a given interface than it would be at other interfaces, even when these interfaces are in common with the same LSR peer instance. This situation would be likely for ATM or Frame Relay interfaces of an LSR.
A per-platform label space applies when the same label will be interpreted the same way at least for all interfaces in common with a peer LSR. An LSR may be able to support multiple per-platform label spaces as long as it is able to ensure that it does not attempt to do so in a way that is visible to any peer LSR instance. In other words, an LSR can advertise two disjoint label spaces as "per-platform" to two different LSR peers and assign and interpret labels accordingly as long as the local LSR can be certain that they are distinct peers. An LSR may not be able to support multiple per-platform label spaces if it is not possible to determine which interfaces are in common with each peer LSR.
To understand use of the per-platform label space, it is necessary to understand the motivation for defining it. Interpretation of labels in the per- interface case means matching the incoming interface and the label to determine the outgoing interface, label, and so on. In theory, at least, the per-platform label space allows the implementation to perform a match based on the label alone. In practice, this may not be an acceptable behavior. For one thing, it allows labels received on an interface to direct labeled packets out the same interface (an exceptionally pathological behavior). For another, it allows an LSR to use labels (and associated resources) it was not intended to use.
Another possible motivation for use of a per-platform label space is to avoid the necessity of advertising multiple labels for interfaces in common between a pair of LSRs. In this case, however, it is only necessary that labels be shared for interfaces in common. In some implementation architectures, this can easily be done.