From 4bfd864f10b68b71482b35c818559068ef8d5797 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Wed, 27 Nov 2024 20:54:24 +0100 Subject: doc: Add RFC documents --- doc/rfc/rfc3035.txt | 1123 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1123 insertions(+) create mode 100644 doc/rfc/rfc3035.txt (limited to 'doc/rfc/rfc3035.txt') diff --git a/doc/rfc/rfc3035.txt b/doc/rfc/rfc3035.txt new file mode 100644 index 0000000..2fabf24 --- /dev/null +++ b/doc/rfc/rfc3035.txt @@ -0,0 +1,1123 @@ + + + + + + +Network Working Group B. Davie +Request for Comments: 3035 J. Lawrence +Category: Standards Track K. McCloghrie + E. Rosen + G. Swallow + Cisco Systems, Inc. + Y. Rekhter + Juniper Networks + P. Doolan + Ennovate Networks, Inc. + January 2001 + + + MPLS using LDP and ATM VC Switching + +Status of this Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (2001). All Rights Reserved. + +Abstract + + The Multiprotocol Label Switching (MPLS) Architecture [1] discusses a + way in which Asynchronous Transfer Mode (ATM) switches may be used as + Label Switching Routers. The ATM switches run network layer routing + algorithms (such as Open Shortest Path First (OSPF), Intermediate + System to Intermediate System (IS-IS), etc.), and their data + forwarding is based on the results of these routing algorithms. No + ATM-specific routing or addressing is needed. ATM switches used in + this way are known as ATM-LSRs (Label Switching Routers). + + This document extends and clarifies the relevant portions of [1] and + [2] by specifying in more detail the procedures which to be used when + distributing labels to or from ATM-LSRs, when those labels represent + Forwarding Equivalence Classes (FECs, see [1]) for which the routes + are determined on a hop-by-hop basis by network layer routing + algorithms. + + This document also specifies the MPLS encapsulation to be used when + sending labeled packets to or from ATM-LSRs, and in that respect is a + companion document to [3]. + + + +Davie Standards Track [Page 1] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + +Table of Contents + + 1 Introduction ........................................... 2 + 2 Specification of Requirements .......................... 3 + 3 Definitions ............................................ 3 + 4 Special Characteristics of ATM Switches ................ 4 + 5 Label Switching Control Component for ATM .............. 5 + 6 Hybrid Switches (Ships in the Night) ................... 5 + 7 Use of VPI/VCIs ....................................... 5 + 7.1 Direct Connections ..................................... 6 + 7.2 Connections via an ATM VP .............................. 7 + 7.3 Connections via an ATM SVC ............................. 7 + 8 Label Distribution and Maintenance Procedures .......... 7 + 8.1 Edge LSR Behavior ...................................... 8 + 8.2 Conventional ATM Switches (non-VC-merge) ............... 9 + 8.3 VC-merge-capable ATM Switches .......................... 11 + 9 Encapsulation .......................................... 12 + 10 TTL Manipulation ....................................... 13 + 11 Optional Loop Detection: Distributing Path Vectors ..... 15 + 11.1 When to Send Path Vectors Downstream ................... 15 + 11.2 When to Send Path Vectors Upstream ..................... 16 + 12 Security Considerations ................................ 17 + 13 Intellectual Property Considerations ................... 17 + 14 References ............................................. 18 + 15 Acknowledgments ........................................ 18 + 16 Authors' Addresses ..................................... 18 + 17 Full Copyright Statement ............................... 20 + +1. Introduction + + The MPLS Architecture [1] discusses the way in which ATM switches may + be used as Label Switching Routers. The ATM switches run network + layer routing algorithms (such as OSPF, IS-IS, etc.), and their data + forwarding is based on the results of these routing algorithms. No + ATM-specific routing or addressing is needed. ATM switches used in + this way are known as ATM-LSRs. + + This document extends and clarifies the relevant portions of [1] and + [2] by specifying in more detail the procedures which are to be used + for distributing labels to or from ATM-LSRs, when those labels + represent Forwarding Equivalence Classes (FECs, see [1]) for which + the routes are determined on a hop-by-hop basis by network layer + routing algorithms. The label distribution technique described here + is referred to in [1] as "downstream-on-demand". This label + distribution technique MUST be used by ATM-LSRs that are not capable + of "VC merge" (defined in section 3), and is OPTIONAL for ATM-LSRs + that are capable of VC merge. + + + + +Davie Standards Track [Page 2] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + + This document does NOT specify the label distribution techniques to + be used in the following cases: + + - the routes are explicitly chosen before label distribution + begins, instead of being chosen on a hop-by-hop basis as label + distribution proceeds, + + - the routes are intended to diverge in any way from the routes + chosen by the conventional hop-by-hop routing at any time, + + - the labels represent FECs that consist of multicast packets, + + - the LSRs use "VP merge". + + Further statements made in this document about ATM-LSR label + distribution do not necessarily apply in these cases. + + This document also specifies the MPLS encapsulation to be used when + sending labeled packets to or from ATM-LSRs, and in that respect is a + companion document to [3]. The specified encapsulation is to be used + for multicast or explicitly routed labeled packets as well. + + This document uses terminology from [1]. + +2. Specification of Requirements + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119. + +3. Definitions + + A Label Switching Router (LSR) is a device which implements the label + switching control and forwarding components described in [1]. + + A label switching controlled ATM (LC-ATM) interface is an ATM + interface controlled by the label switching control component. When + a packet traversing such an interface is received, it is treated as a + labeled packet. The packet's top label is inferred either from the + contents of the VCI field or the combined contents of the VPI and VCI + fields. Any two LDP peers which are connected via an LC-ATM + interface will use LDP negotiations to determine which of these cases + is applicable to that interface. + + An ATM-LSR is a LSR with a number of LC-ATM interfaces which forwards + cells between these interfaces, using labels carried in the VCI or + VPI/VCI field, without reassembling the cells into frames before + forwarding. + + + +Davie Standards Track [Page 3] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + + A frame-based LSR is a LSR which forwards complete frames between its + interfaces. Note that such a LSR may have zero, one or more LC-ATM + interfaces. + + Sometimes a single box may behave as an ATM-LSR with respect to + certain pairs of interfaces, but may behave as a frame-based LSR with + respect to other pairs. For example, an ATM switch with an ethernet + interface may function as an ATM-LSR when forwarding cells between + its LC-ATM interfaces, but may function as a frame-based LSR when + forwarding frames from its ethernet to one of its LC-ATM interfaces. + In such cases, one can consider the two functions (ATM-LSR and + frame-based LSR) as being coresident in a single box. + + It is intended that an LC-ATM interface be used to connect two ATM- + LSRs, or to connect an ATM-LSR to a frame-based LSR. The use of an + LC-ATM interface to connect two frame-based LSRs is not considered in + this document. + + An ATM-LSR domain is a set of ATM-LSRs which are mutually + interconnected by LC-ATM interfaces. + + The Edge Set of an ATM-LSR domain is the set of frame-based LSRs + which are connected to members of the domain by LC-ATM interfaces. A + frame-based LSR which is a member of an Edge Set of an ATM-LSR domain + may be called an Edge LSR. + + VC-merge is the process by which a switch receives cells on several + incoming VCIs and transmits them on a single outgoing VCI without + causing the cells of different AAL5 PDUs to become interleaved. + +4. Special Characteristics of ATM Switches + + While the MPLS architecture permits considerable flexibility in LSR + implementation, an ATM-LSR is constrained by the capabilities of the + (possibly pre-existing) hardware and the restrictions on such matters + as cell format imposed by ATM standards. Because of these + constraints, some special procedures are required for ATM-LSRs. + + Some of the key features of ATM switches that affect their behavior + as LSRs are: + + - the label swapping function is performed on fields (the VCI + and/or VPI) in the cell header; this dictates the size and + placement of the label(s) in a packet. + + - multipoint-to-point and multipoint-to-multipoint VCs are + generally not supported. This means that most switches cannot + support 'VC-merge' as defined above. + + + +Davie Standards Track [Page 4] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + + - there is generally no capability to perform a 'TTL-decrement' + function as is performed on IP headers in routers. + + This document describes ways of applying label switching to ATM + switches which work within these constraints. + +5. Label Switching Control Component for ATM + + To support label switching an ATM switch MUST implement the control + component of label switching. This consists primarily of label + allocation, distribution, and maintenance procedures. Label binding + information is communicated by several mechanisms, notably the Label + Distribution Protocol (LDP) [2]. This document imposes certain + requirements on the LDP. + + This document considers only the case where the label switching + control component uses information learned directly from network + layer routing protocols. It is presupposed that the switch + participates as a peer in these protocols (e.g., OSPF, IS-IS). + + In some cases, LSRs make use of other protocols (e.g., RSVP, PIM, + BGP) to distribute label bindings. In these cases, an ATM-LSR would + need to participate in these protocols. However, these are not + explicitly considered in this document. + + Support of label switching on an ATM switch does NOT require the + switch to support the ATM control component defined by the ITU and + ATM Forum (e.g., UNI, PNNI). An ATM-LSR may OPTIONALLY respond to + OAM cells. + +6. Hybrid Switches (Ships in the Night) + + The existence of the label switching control component on an ATM + switch does not preclude the ability to support the ATM control + component defined by the ITU and ATM Forum on the same switch and the + same interfaces. The two control components, label switching and the + ITU/ATM Forum defined, would operate independently. + + Definition of how such a device operates is beyond the scope of this + document. However, only a small amount of information needs to be + consistent between the two control components, such as the portions + of the VPI/VCI space which are available to each component. + +7. Use of VPI/VCIs + + Label switching is accomplished by associating labels with Forwarding + Equivalence Classes, and using the label value to forward packets, + including determining the value of any replacement label. See [1] + + + +Davie Standards Track [Page 5] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + + for further details. In an ATM-LSR, the label is carried in the + VPI/VCI field, or, when two ATM-LSRs are connected via an ATM + "Virtual Path", in the VCI field. + + Labeled packets MUST be transmitted using the null encapsulation, as + defined in Section 6.1 of RFC 2684 [5]. + + In addition, if two LDP peers are connected via an LC-ATM interface, + a non-MPLS connection, capable of carrying unlabelled IP packets, + MUST be available. This non-MPLS connection is used to carry LDP + packets between the two peers, and MAY also be used (but is not + required to be used) for other unlabeled packets (such as OSPF + packets, etc.). The LLC/SNAP encapsulation of RFC 2684 [5] MUST be + used on the non-MPLS connection. + + It SHOULD be possible to configure an LC-ATM interface with + additional VPI/VCIs that are used to carry control information or + non-labelled packets. In that case, the VCI values MUST NOT be in + the 0-32 range. These may use either the null encapsulation, as + defined in Section 6.1 of RFC 2684 [5], or the LLC/SNAP + encapsulation, as defined in Section 5.1 of RFC 2684 [5]. + +7.1. Direct Connections + + We say that two LSRs are "directly connected" over an LC-ATM + interface if all cells transmitted out that interface by one LSR will + reach the other, and there are no ATM switches between the two LSRs. + + When two LSRs are directly connected via an LC-ATM interface, they + jointly control the allocation of VPIs/VCIs on the interface + connecting them. They may agree to use the VPI/VCI field to encode a + single label. + + The default VPI/VCI value for the non-MPLS connection is VPI 0, VCI + 32. Other values can be configured, as long as both parties are + aware of the configured value. + + A VPI/VCI value whose VCI part is in the range 0-32 inclusive MUST + NOT be used as the encoding of a label. + + With the exception of these reserved values, the VPI/VCI values used + in the two directions of the link MAY be treated as independent + spaces. + + The allowable ranges of VCIs are communicated through LDP. + + + + + + +Davie Standards Track [Page 6] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + +7.2. Connections via an ATM VP + + Sometimes it can be useful to treat two LSRs as adjacent (in some + LSP) across an LC-ATM interface, even though the connection between + them is made through an ATM "cloud" via an ATM Virtual Path. In this + case, the VPI field is not available to MPLS, and the label MUST be + encoded entirely within the VCI field. + + In this case, the default VCI value of the non-MPLS connection + between the LSRs is 32. Other values can be configured, as long as + both parties are aware of the configured value. The VPI is set to + whatever is required to make use of the Virtual Path. + + A VPI/VCI value whose VCI part is in the range 0-32 inclusive MUST + NOT be used as the encoding of a label. + + With the exception of these reserved values, the VPI/VCI values used + in the two directions of the link MAY be treated as independent + spaces. + + The allowable ranges of VPI/VCIs are communicated through LDP. If + more than one VPI is used for label switching, the allowable range of + VCIs may be different for each VPI, and each range is communicated + through LDP. + +7.3. Connections via an ATM SVC + + Sometimes it may be useful to treat two LSRs as adjacent (in some + LSP) across an LC-ATM interface, even though the connection between + them is made through an ATM "cloud" via a set of ATM Switched Virtual + Circuits. + + The current document does not specify the procedure for handling this + case. Such procedures can be found in [4]. The procedures described + in [4] allow a VCID to be assigned to each such VC, and specify how + LDP can be used used to bind a VCID to a FEC. The top label of a + received packet would then be inferred (via a one-to-one mapping) + from the virtual circuit on which the packet arrived. There would + not be a default VPI or VCI value for the non-MPLS connection. + +8. Label Distribution and Maintenance Procedures + + This document discusses the use of "downstream-on-demand" label + distribution (see [1]) by ATM-LSRs. These label distribution + procedures MUST be used by ATM-LSRs that do not support VC-merge, and + MAY also be used by ATM-LSRs that do support VC-merge. The + procedures differ somewhat in the two cases, however. We therefore + describe the two scenarios in turn. We begin by describing the + + + +Davie Standards Track [Page 7] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + + behavior of members of the Edge Set of an ATM-LSR domain; these "Edge + LSRs" are not themselves ATM-LSRs, and their behavior is the same + whether the domain contains VC-merge capable LSRs or not. + +8.1. Edge LSR Behavior + + Consider a member of the Edge Set of an ATM-LSR domain. Assume that, + as a result of its routing calculations, it selects an ATM-LSR as the + next hop of a certain FEC, and that the next hop is reachable via a + LC-ATM interface. The Edge LSR uses LDP to request a label binding + for that FEC from the next hop. The hop count field in the request + is set to 1 (but see the next paragraph). Once the Edge LSR receives + the label binding information, it may use MPLS forwarding procedures + to transmit packets in the specified FEC, using the specified label + as an outgoing label. (Or using the VPI/VCI that corresponds to the + specified VCID as the outgoing label, if the VCID technique of [4] is + being used.) + + Note: if the Edge LSR's previous hop is using downstream-on-demand + label distribution to request a label from the Edge LSR for a + particular FEC, and if the Edge LSR is not merging the LSP from that + previous hop with any other LSP, and if the request from the previous + hop has a hop count of h, then the hop count in the request issued by + the Edge LSR should not be set to 1, but rather to h+1. + + The binding received by the edge LSR may contain a hop count, which + represents the number of hops a packet will take to cross the ATM-LSR + domain when using this label. If there is a hop count associated + with the binding, the ATM-LSR SHOULD adjust a data packet's TTL by + this amount before transmitting the packet. In any event, it MUST + adjust a data packet's TTL by at least one before transmitting it. + The procedures for doing so (in the case of IP packets) are specified + in section 10. The procedures for encapsulating the packets are + specified in section 9. + + When a member of the Edge Set of the ATM-LSR domain receives a label + binding request from an ATM-LSR, it allocates a label, and returns + (via LDP) a binding containing the allocated label back to the peer + that originated the request. It sets the hop count in the binding to + 1. + + When a routing calculation causes an Edge LSR to change the next hop + for a particular FEC, and the former next hop was in the ATM-LSR + domain, the Edge LSR SHOULD notify the former next hop (via LDP) that + the label binding associated with the FEC is no longer needed. + + + + + + +Davie Standards Track [Page 8] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + +8.2. Conventional ATM Switches (non-VC-merge) + + When an ATM-LSR receives (via LDP) a label binding request for a + certain FEC from a peer connected to the ATM-LSR over a LC-ATM + interface, the ATM-LSR takes the following actions: + + - it allocates a label, + + - it requests (via LDP) a label binding from the next hop for + that FEC; + + - it returns (via LDP) a binding containing the allocated + incoming label back to the peer that originated the request. + + For purposes of this procedure, we define a maximum hop count value + MAXHOP. MAXHOP has a default value of 255, but may be configured to + a different value. + + The hop count field in the request that the ATM-LSR sends (to the + next hop LSR) MUST be set to one more than the hop count field in the + request that it received from the upstream LSR. If the resulting hop + count exceeds MAXHOP, the request MUST NOT be sent to the next hop, + and the ATM-LSR MUST notify the upstream neighbor that its binding + request cannot be satisfied. + + Otherwise, once the ATM-LSR receives the binding from the next hop, + it begins using that label. + + The ATM-LSR MAY choose to wait for the request to be satisfied from + downstream before returning the binding upstream. This is a form of + "ordered control" (as defined in [1] and [2]), in particular + "ingress-initiated ordered control". In this case, as long as the + ATM-LSR receives from downstream a hop count which is greater than 0 + and less than MAXHOP, it MUST increment the hop count it receives + from downstream and MUST include the result in the binding it returns + upstream. However, if the hop count exceeds MAXHOP, a label binding + MUST NOT be passed upstream. Rather, the upstream LDP peer MUST be + informed that the requested label binding cannot be satisfied. If + the hop count received from downstream is 0, the hop count passed + upstream should also be 0; this indicates that the actual hop count + is unknown. + + Alternatively, the ATM-LSR MAY return the binding upstream without + waiting for a binding from downstream ("independent" control, as + defined in [1] and [2]). In this case, it specifies a hop count of 0 + in the binding, indicating that the true hop count is unknown. The + correct value for hop count will be returned later, as described + below. + + + +Davie Standards Track [Page 9] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + + Note that an ATM-LSR, or a member of the edge set of an ATM-LSR + domain, may receive multiple binding requests for the same FEC from + the same ATM-LSR. It MUST generate a new binding for each request + (assuming adequate resources to do so), and retain any existing + binding(s). For each request received, an ATM-LSR MUST also generate + a new binding request toward the next hop for the FEC. + + When a routing calculation causes an ATM-LSR to change the next hop + for a FEC, the ATM-LSR MUST notify the former next hop (via LDP) that + the label binding associated with the FEC is no longer needed. + + When a LSR receives a notification that a particular label binding is + no longer needed, the LSR MAY deallocate the label associated with + the binding, and destroy the binding. In the case where an ATM-LSR + receives such notification and destroys the binding, it MUST notify + the next hop for the FEC that the label binding is no longer needed. + If a LSR does not destroy the binding, it may re-use the binding only + if it receives a request for the same FEC with the same hop count as + the request that originally caused the binding to be created. + + When a route changes, the label bindings are re-established from the + point where the route diverges from the previous route. LSRs + upstream of that point are (with one exception, noted below) + oblivious to the change. + + Whenever a LSR changes its next hop for a particular FEC, if the new + next hop is reachable via an LC-ATM interface, then for each label + that it has bound to that FEC, and distributed upstream, it MUST + request a new label binding from the new next hop. + + When an ATM-LSR receives a label binding for a particular FEC from a + downstream neighbor, it may already have provided a corresponding + label binding for this FEC to an upstream neighbor, either because it + is using independent control, or because the new binding from + downstream is the result of a routing change. In this case, unless + the hop count is 0, it MUST extract the hop count from the new + binding and increment it by one. If the new hop count is different + from that which was previously conveyed to the upstream neighbor + (including the case where the upstream neighbor was given the value + 'unknown') the ATM-LSR MUST notify the upstream neighbor of the + change. Each ATM-LSR in turn MUST increment the hop count and pass + it upstream until it reaches the ingress Edge LSR. If at any point + the value of the hop count equals MAXHOP, the ATM-LSR SHOULD withdraw + the binding from the upstream neighbor. A hop count of 0 MUST be + passed upstream unchanged. + + + + + + +Davie Standards Track [Page 10] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + + Whenever an ATM-LSR originates a label binding request to its next + hop LSR as a result of receiving a label binding request from another + (upstream) LSR, and the request to the next hop LSR is not satisfied, + the ATM-LSR SHOULD destroy the binding created in response to the + received request, and notify the requester (via LDP). + + If an ATM-LSR receives a binding request containing a hop count that + exceeds MAXHOP, it MUST not establish a binding, and it MUST return + an error to the requester. + + When a LSR determines that it has lost its LDP session with another + LSR, the following actions are taken. Any binding information + learned via this connection MUST be discarded. For any label + bindings that were created as a result of receiving label binding + requests from the peer, the LSR MAY destroy these bindings (and + deallocate labels associated with these binding). + + An ATM-LSR SHOULD use 'split-horizon' when it satisfies binding + requests from its neighbors. That is, if it receives a request for a + binding to a particular FEC and the LSR making that request is, + according to this ATM-LSR, the next hop for that FEC, it should not + return a binding for that route. + + It is expected that non-merging ATM-LSRs would generally use + "conservative label retention mode" [1]. + +8.3. VC-merge-capable ATM Switches + + Relatively minor changes are needed to accommodate ATM-LSRs which + support VC-merge. The primary difference is that a VC-merge-capable + ATM-LSR needs only one outgoing label per FEC, even if multiple + requests for label bindings to that FEC are received from upstream + neighbors. + + When a VC-merge-capable ATM-LSR receives a binding request from an + upstream LSR for a certain FEC, and it does not already have an + outgoing label binding for that FEC (or an outstanding request for + such a label binding), it MUST issue a bind request to its next hop + just as it would do if it were not merge-capable. If, however, it + already has an outgoing label binding for that FEC, it does not need + to issue a downstream binding request. Instead, it may simply + allocate an incoming label, and return that label in a binding to the + upstream requester. When packets with that label as top label are + received from the requester, the top label value will be replaced + with the existing outgoing label value that corresponds to the same + FEC. + + + + + +Davie Standards Track [Page 11] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + + If the ATM-LSR does not have an outgoing label binding for the FEC, + but does have an outstanding request for one, it need not issue + another request. + + When sending a label binding upstream, the hop count associated with + the corresponding binding from downstream MUST be incremented by 1, + and the result transmitted upstream as the hop count associated with + the new binding. However, there are two exceptions: a hop count of 0 + MUST be passed upstream unchanged, and if the hop count is already at + MAXHOP, the ATM-LSR MUST NOT pass a binding upstream, but instead + MUST send an error upstream. + + Note that, just like conventional ATM-LSRs and members of the edge + set of the ATM-LSR domain, a VC-merge-capable ATM-LSR MUST issue a + new binding every time it receives a request from upstream, since + there may be switches upstream which do not support VC-merge. + However, it only needs to issue a corresponding binding request + downstream if it does not already have a label binding for the + appropriate route. + + When a change in the routing table of a VC-merge-capable ATM-LSR + causes it to select a new next hop for one of its FECs, it MAY + optionally release the binding for that route from the former next + hop. If it doesn't already have a corresponding binding for the new + next hop, it must request one. (The choice between conservative and + liberal label retention mode [1] is an implementation option.) + + If a new binding is obtained, which contains a hop count that differs + from that which was received in the old binding, then the ATM-LSR + must take the new hop count, increment it by one, and notify any + upstream neighbors who have label bindings for this FEC of the new + value. Just as with conventional ATM-LSRs, this enables the new hop + count to propagate back towards the ingress of the ATM-LSR domain. + If at any point the hop count exceeds MAXHOP, then the label bindings + for this route must be withdrawn from all upstream neighbors to whom + a binding was previously provided. This ensures that any loops + caused by routing transients will be detected and broken. + +9. Encapsulation + + The procedures described in this section affect only the Edge LSRs of + the ATM-LSR domain. The ATM-LSRs themselves do not modify the + encapsulation in any way. + + Labeled packets MUST be transmitted using the null encapsulation of + Section 6.1 of RFC 2684 [5]. + + + + + +Davie Standards Track [Page 12] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + + Except in certain circumstances specified below, when a labeled + packet is transmitted on an LC-ATM interface, where the VPI/VCI (or + VCID) is interpreted as the top label in the label stack, the packet + MUST also contain a "shim header" [3]. + + If the packet has a label stack with n entries, it MUST carry a shim + with n entries. The actual value of the top label is encoded in the + VPI/VCI field. The label value of the top entry in the shim (which + is just a "placeholder" entry) MUST be set to 0 upon transmission, + and MUST be ignored upon reception. The packet's outgoing TTL, and + its CoS, are carried in the TTL and CoS fields respectively of the + top stack entry in the shim. + + Note that if a packet has a label stack with only one entry, this + requires it to have a single-entry shim (4 bytes), even though the + actual label value is encoded into the VPI/VCI field. This is done + to ensure that the packet always has a shim. Otherwise, there would + be no way to determine whether it had one or not, i.e., no way to + determine whether there are additional label stack entries. + + The only ways to eliminate this extra overhead are: + + - through apriori knowledge that packets have only a single label + (e.g., perhaps the network only supports one level of label) + + - by using two VCs per FEC, one for those packets which have only + a single label, and one for those packets which have more than + one label + + The second technique would require that there be some way of + signalling via LDP that the VC is carrying only packets with a single + label, and is not carrying a shim. When supporting VC merge, one + would also have to take care not to merge a VC on which the shim is + not used into a VC on which it is used, or vice versa. + + While either of these techniques is permitted, it is doubtful that + they have any practical utility. Note that if the shim header is not + present, the outgoing TTL is carried in the TTL field of the network + layer header. + +10. TTL Manipulation + + The procedures described in this section affect only the Edge LSRs of + the ATM-LSR domain. The ATM-LSRs themselves do not modify the TTL in + any way. + + + + + + +Davie Standards Track [Page 13] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + + The details of the TTL adjustment procedure are as follows. If a + packet was received by the Edge LSR as an unlabeled packet, the + "incoming TTL" comes from the IP header. (Procedures for other + network layer protocols are for further study.) If a packet was + received by the Edge LSR as a labeled packet, using the encapsulation + specified in [3], the "incoming TTL" comes from the entry at the top + of the label stack. + + If a hop count has been associated with the label binding that is + used when the packet is forwarded, the "outgoing TTL" is set to the + larger of (a) 0 or (b) the difference between the incoming TTL and + the hop count. If a hop count has not been associated with the label + binding that is used when the packet is forwarded, the "outgoing TTL" + is set to the larger of (a) 0 or (b) one less than the incoming TTL. + + If this causes the outgoing TTL to become zero, the packet MUST NOT + be transmitted as a labeled packet using the specified label. The + packet can be treated in one of two ways: + + - it may be treated as having expired; this may cause an ICMP + message to be transmitted; + + - the packet may be forwarded, as an unlabeled packet, with a TTL + that is 1 less than the incoming TTL; such forwarding would + need to be done over a non-MPLS connection. + + Of course, if the incoming TTL is 1, only the first of these two + options is applicable. + + If the packet is forwarded as a labeled packet, the outgoing TTL is + carried as specified in section 9. + + When an Edge LSR receives a labeled packet over an LC-ATM interface, + it obtains the incoming TTL from the top label stack entry of the + generic encapsulation, or, if that encapsulation is not present, from + the IP header. + + If the packet's next hop is an ATM-LSR, the outgoing TTL is formed + using the procedures described in this section. Otherwise the + outgoing TTL is formed using the procedures described in [3]. + + The procedures in this section are intended to apply only to unicast + packets. + + + + + + + + +Davie Standards Track [Page 14] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + +11. Optional Loop Detection: Distributing Path Vectors + + Every ATM-LSR MUST implement, as a configurable option, the following + procedure for detecting forwarding loops. We refer to this as the + LDPV (Loop Detection via Path Vectors) procedure. This procedure + does not prevent the formation of forwarding loops, but does ensure + that any such loops are detected. If this option is not enabled, + loops are detected by the hop count mechanism previously described. + If this option is enabled, loops will be detected more quickly, but + at a higher cost in overhead. + +11.1. When to Send Path Vectors Downstream + + Suppose an LSR R sends a request for a label binding, for a + particular LSP, to its next hop. Then if R does not support VC- + merging, and R is configured to use the LDPV procedure: + + - If R is sending the request because it is an ingress node for + that LSP, or because it has acquired a new next hop, then R + MUST include a path vector object with the request, and the + path vector object MUST contain only R's own address. + + - If R is sending the request as a result of having received a + request from an upstream LSR, then: + + * if the received request has a path vector object, R MUST add + its own address to the received path vector object, and MUST + pass the resulting path vector object to its next hop along + with the label binding request; + + * if the received request does not have a path vector object, + R MUST include a path vector object with the request it + sends, and the path vector object MUST contain only R's own + address. + + An LSR which supports VC-merge SHOULD NOT include a path vector + object in the requests that it sends to its next hop. + + If an LSR receives a label binding request whose path vector object + contains the address of the node itself, the LSR concludes that the + label binding requests have traveled in a loop. The LSR MUST act as + it would in the case where the hop count exceeds MAXHOP (see section + 8.2). + + This procedure detects the case where the request messages loop + though a sequence of non-merging ATM-LSRs. + + + + + +Davie Standards Track [Page 15] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + +11.2. When to Send Path Vectors Upstream + + As specified in section 8, there are circumstances in which an LSR R + must inform its upstream neighbors, via a label binding response + message, of a change in hop count for a particular LSP. If the + following conditions all hold: + + - R is configured for the LDPV procedure, + + - R supports VC-merge, + + - R is not the egress for that LSP, and + + - R is not informing its neighbors of a decrease in the hop + count, + + then R MUST include a path vector object in the response message. + + If the change in hop count is a result of R's having been informed by + its next hop, S, of a change in hop count, and the message from S to + R included a path vector object, then if the above conditions hold, R + MUST add itself to this object and pass the result upstream. + Otherwise, if the above conditions hold, R MUST create a new object + with only its own address. + + If R is configured for the LDPV procedure, and R supports VC merge, + then it MAY include a path vector object in any label binding + response message that it sends upstream. In particular, at any time + that R receives a label binding response from its next hop, if that + response contains a path vector, R MAY (if configured for the LDPV + procedure) send a response to its upstream neighbors, containing the + path vector object formed by adding its own address to the received + path vector. + + If R does not support VC merge, it SHOULD NOT send a path vector + object upstream. + + If an LSR receives a message from its next hop, with a path vector + object containing its own address, then LSR MUST act as it would if + it received a message with a hop count equal to MAXHOP. + + LSRs which are configured for the LDPV procedure SHOULD NOT store a + path vector once the corresponding path vector object has been + transmitted. + + + + + + + +Davie Standards Track [Page 16] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + + Note that if the ATM-LSR domain consists entirely of non-merging + ATM-LSRs, path vectors need not ever be sent upstream, since any + loops will be detected by means of the path vectors traveling + downstream. + + By not sending path vectors unless the hop count increases, one + avoids sending them in many situations when there is no loop. The + cost is that in some situations in which there is a loop, the time to + detect the loop may be lengthened. + +12. Security Considerations + + The encapsulation and procedures specified in this document do not + interfere in any way with the application of authentication and/or + encryption to network layer packets (such as the application of IPSEC + to IP datagrams). + + The procedures described in this document do not protect against the + alteration (either accidental or malicious) of MPLS labels. Such + alteration could cause misforwarding. + + The procedures described in this document do not enable a receiving + LSR to authenticate the transmitting LSR. + + A discussion of the security considerations applicable to the label + distribution mechanism can be found in [2]. + +13. Intellectual Property Considerations + + The IETF has been notified of intellectual property rights claimed in + regard to some or all of the specification contained in this + document. For more information consult the online list of claimed + rights. + + The IETF takes no position regarding the validity or scope of any + intellectual property or other rights that might be claimed to + pertain to the implementation or use of the technology described in + this document or the extent to which any license under such rights + might or might not be available; neither does it represent that it + has made any effort to identify any such rights. Information on the + IETF's procedures with respect to rights in standards-track and + standards-related documentation can be found in BCP-11. Copies of + claims of rights made available for publication and any assurances of + licenses to be made available, or the result of an attempt made to + obtain a general license or permission for the use of such + proprietary rights by implementors or users of this specification can + be obtained from the IETF Secretariat. + + + + +Davie Standards Track [Page 17] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights which may cover technology that may be required to practice + this standard. Please address the information to the IETF Executive + Director. + +14. References + + [1] Rosen, E., Viswanathan, A. and R. Callon "Multi-Protocol Label + Switching Architecture", RFC 3031, January 2001. + + [2] Andersson L., Doolan P., Feldman N., Fredette A. and R. Thomas, + "LDP Specification", RFC 3036, January 2001. + + [3] Rosen, E., Rekhter, Y., Tappan, D., Farinacci, D., Fedorkow, G., + Li, T. and A. Conta, "MPLS Label Stack Encoding", RFC 3032, + January 2001. + + [4] Nagami, K., Demizu N., Esaki H. and P. Doolan, "VCID Notification + over ATM Link for LDP", RFC 3038, January 2001. + + [5] Grossman, D., Heinanen, J., "Multiprotocol Encapsulation over ATM + Adaptation Layer 5", RFC 2684, September 1999. + +15. Acknowledgments + + Significant contributions to this work have been made by Anthony + Alles, Fred Baker, Dino Farinacci, Guy Fedorkow, Arthur Lin, Morgan + Littlewood and Dan Tappan. We thank Alex Conta for his comments. + +16. Authors' Addresses + + Bruce Davie + Cisco Systems, Inc. + 250 Apollo Drive + Chelmsford, MA, 01824 + + EMail: bsd@cisco.com + + + Paul Doolan + Ennovate Networks Inc. + 60 Codman Hill Rd + Boxborough, MA 01719 + + EMail: pdoolan@ennovatenetworks.com + + + + + +Davie Standards Track [Page 18] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + + Jeremy Lawrence + Cisco Systems, Inc. + 99 Walker St. + North Sydney, NSW, Australia + + EMail: jlawrenc@cisco.com + + + Keith McCloghrie + Cisco Systems, Inc. + 170 Tasman Drive + San Jose, CA, 95134 + + EMail: kzm@cisco.com + + + Yakov Rekhter + Juniper Networks + 1194 N. Mathilda Avenue + Sunnyvale, CA 94089 + + EMail: yakov@juniper.net + + + Eric Rosen + Cisco Systems, Inc. + 250 Apollo Drive + Chelmsford, MA, 01824 + + EMail: erosen@cisco.com + + + George Swallow + Cisco Systems, Inc. + 250 Apollo Drive + Chelmsford, MA, 01824 + + EMail: swallow@cisco.com + + + + + + + + + + + + + +Davie Standards Track [Page 19] + +RFC 3035 MPLS using LDP and ATM VC Switching January 2001 + + +17. Full Copyright Statement + + Copyright (C) The Internet Society (2001). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Acknowledgement + + Funding for the RFC Editor function is currently provided by the + Internet Society. + + + + + + + + + + + + + + + + + + + +Davie Standards Track [Page 20] + -- cgit v1.2.3