Network Working Group Kireeti Kompella Internet Draft Juniper Networks Expiration Date:MayAugust 2001 Yakov RekhterCisco SystemsJuniper Networks Alan Kullberg NetPlane Systems Signalling Unnumbered Links in CR-LDPdraft-ietf-mpls-crldp-unnum-00.txtdraft-ietf-mpls-crldp-unnum-01.txt 1. Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as ``work in progress.'' The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. 2. Abstract Current signalling used by MPLS TE doesn't provide support for unnumbered links. This document defines procedures and extensions to CR-LDP, one of the MPLS TE signalling protocols, that are needed in order to support unnumbered links. 3. Overview Supporting MPLS TE over unnumbered links (i.e., links that do not have IP addresses) involves two components: (a) the ability to carry (TE) information about unnumbered links in IGP TE extensions (ISIS or OSPF), and (b) the ability to specify unnumbered links in MPLS TE signalling. The former is covered in [ISIS-TE, OSPF-TE]. The focus of this document is on the latter. Current signalling used by MPLS TE doesn't provide support for unnumbered links because the current signalling doesn't provide a way to indicate an unnumbered link in its Explicit Route Objects. This document proposes simple procedures and extensions that allow CR-LDP signalling [CR-LDP] to be used with unnumbered links. 4. Interface Identifiers Since unnumbered links are not identified by an IP address, then for the purpose of MPLS TE they need some other identifier. We assume that each unnumbered link on a Label Switched Router (LSR) is given a unique 32-bit identifier. The scope of this identifier is the LSR to which the link belongs; moreover, the IS-IS and/or OSPF and CR-LDP modules on an LSR must agree on interface identifiers. Note that links are directed, i.e., a link l is from some LSR A to some other LSR B. LSR A chooses the interface identifier for link l. To be completely clear, we call this the "outgoing interface identifier from LSR A's point of view". If there is a reverse link from LSR B to LSR A (for example, a point-to-point SONET interface connecting LSRs A and B would be represented as two links, one from A to B, and another from B to A), B chooses the outgoing interface identifier for the reverse link; we call this the link's "incoming interface identifier from A's point of view". There is no a priori relationship between the two interface identifiers. 5. Unnumbered Forwarding Adjacencies If an LSR that originates an LSP advertises this LSP as an unnumbered Forwarding Adjacency in IS-IS or OSPF [LSP-HIER], the LSR MUST allocate an interface ID to that Forwarding Adjacency. Moreover, the REQUEST message for the LSP MUST contain an INTERFACE ID object (described below), with the LSR's Router ID set to the head end's router ID, and the Interface ID set to the LSP's interface ID. If the LSP is part of a bundled link (see [BUNDLE]), the Interface ID is set to the component interface ID of the LSP. If the LSP is bidirectional, and the tail-end LSR (of the forward LSP) advertises the reverse LSP as an unnumbered Forwarding Adjacency, the tail-end LSR MUST allocate an interface ID to the reverse Forwarding Adjacency. Furthermore, the MAPPING message for the LSP MUST contain an INTERFACE ID object, with the LSR's Router ID set to the tail end's router ID, and the Interface ID set to the reverse LSP's interface ID. If the LSP is part of a bundled link (see [BUNDLE]), the Component Interface ID is set to the component interface ID of the LSP; otherwise, it is set to zero. 5.1. INTERFACE ID Object The INTERFACE ID object has Type to be determined by IETF consensus and length 8. The format is given below. Figure 1: Interface ID TLV 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0|0| Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LSR's Router ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID (32 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ This object can optionally appear in either a REQUEST message or a MAPPING message. In the former case, we call it the "Forward Interface ID" for that LSP; in the latter case, we call it the "Reverse Interface ID" for the LSP. 6. Signalling Unnumbered Links in EROs A new subobject of the Explicit Route Object (ERO) is used to specify unnumbered links. This subobject has the following format: Figure 2: Unnumbered Interface ID Subobject 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0|0| Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID (32 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ This subobject is strict. The Type is 0x0805 (Unnumbered Interface ID) and the Length is4. An LSR sending a Request message that includes an8. 6.1. Interpreting the Unnumbered Interface IDsubobject as the first subobject in the ERO MUST also include a PHOP TLV, specifying theSubobject The Router IDof the sending LSR. This TLV(say X) isdepicted in Figure 3. Figure 3: PHOP TLV 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0|0| Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LSR's Routerthe router ID| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The Type (PHOP TLV) is to be determined by IETF consensus andof theLength is 4. 6.1. InterpretingLSR P at theUnnumbered Interface ID Subobjectupstream end of the unnumbered link. The Interface ID (say I) is the outgoing interface identifier with respect to theprevious node in the path (i.e.,LSR specified by thePHOP).router ID. If not, theRequest message containsreceiving node MUST return an error message. 6.2. Validating the Unnumbered Interface IDsubobject asSubobject First of all, the receiving node R must validate that it received the Request message correctly. If the first subobject in theERO, thenERO is an Unnumbered Interface subobject, thePHOP objectcheck is done as follows. R looks up in its Traffic Engineering database themessage must containnode P corresponding to the router IDof the previous node. 6.2. ProcessingX in theUnnumbered Interface ID Subobject A nodeERO subobject. It then checks thatreceivesthere is aRequest message with an Unnumberedlink from P to R that carries the same Interface ID as thefirst subobjectone in the EROcarriedsubobject (I). If this is not the case, R has received the message in error and SHOULD return a "Bad Initial ER-Hop" error. For other types of ERO subobjects, the rules in [CR-LDP] apply. 6.3. Determining the Link Identified by the ERO Determining the link for which label allocation must be done depends on whether a Component Interface Identifier object [BUNDLE] is present in the Request messageMUST checkor not. If so, set ID to the Component Interface ID; otherwise, set ID to I (the Interface ID in the ERO subobject). X is (as above) the router ID in the Unnumbered ERO subobject. First, R checks whether the tuple<PHOP, Interface<X, ID> matches the tuple <LSR's Router ID, Forward Interface ID> of any of the LSPs for which the node is a tail-end. If a match is found, the match identifies the Forwarding Adjacency for which the node has to perform label allocation. Otherwise, the node MUST check whether the tuple<PHOP, Interface<X, ID> matches the tuple <LSR's Router ID, Reverse Interface ID> of any of the bidirectional LSPs for which the node is the head-end. If a match is found, the match identifies the Forwarding Adjacency for which the node has to perform label allocation, namely, the reverse Forwarding Adjacency for the LSP identified by the match. Otherwise,if the node maintainsR must have information about Interface IDs and Component Interface IDs assigned by its neighbors for the unnumbered links betweenthe nodeR andtheits neighbors (i.e., incoming interface identifiers fromthe node'sR's point ofview), the node SHOULD check whetherview). If thetuple <PHOP, Interface ID> matches <neighbor's Router ID, IncomingRequest message does not contain a Component InterfaceID> for any link.Identifier object, R determines the link by looking up <X, I> in the Traffic Engineering database. Ifa match is found,thematch identifiesRequest message contains a Component Interface Identifier object, R determines the linkfor which the node has to perform label allocation.as described in [BUNDLE]. Otherwise, it is assumed that the node has to perform label allocation for the link over which the Request message was received.In this case the receiving node MAY validate that it received the Request Message correctly. To do so, the node must maintain a database of Traffic Engineering information distributed by IS-IS and/or OSPF. To validate that it received the Request message correctly, the node looks up in its Traffic Engineering database for the node corresponding to the router ID of the sender of the Request message. It then checks that there is a link from the previous node to itself that carries the same Interface ID as the one in the ERO subobject. If this is not the case, the receiving node has received the message in error and SHOULD return a "Bad Initial ER-Hop" error. Otherwise, the receiving node removes the first subobject, and continues processing the ERO. 6.3.6.4. Selecting the Next HopIf, after processing and removing all initial subobjects inOnce theERO that refer to itself,link has been determined, thereceiving node finds ainitial subobjectof type Unnumbered Interface ID, it determinesis removed, and the next hop should be computed. The next hop for an Unnumbered Interface ID subobject is determined as follows. The Interface ID MUST refer to an outgoing interface identifier that this node allocated; if not, the node SHOULD return a "Bad Strict Node" error. The next hop is the node at the other end of the link that the Interface ID refers to. If this node is R itself, the subobject is removed, and the process repeated. If the next node is not R, say N, this is the next hop to which a Request message must be sent. Furthermore, when sending a Request message tothe next hop,N, the ERO to be used is thecurrentremaining ERO(starting(i.e., starting with theUnnumbered Interface ID subobject).subobject that refers to a node different from the receiving node); the PHOP object is R's router ID. 7. Security Considerations This document raises no new security concerns for CR-LDP. 8. Acknowledgments Thanks to Rahul Aggarwal for his comments on the text. Thanks too to Bora Akyol and Vach Kompella. 9. References [CR-LDP] Jamoussi, B., editor, "Constraint-Based LSP Setup using LDP", draft-ietf-mpls-cr-ldp-04.txt (work in progress) [ISIS-TE] Smit, H., and Li, T., "IS-IS extensions for Traffic Engineering", draft-ietf-isis-traffic-02.txt (work in progress) [LSP-HIER] Kompella, K., and Rekhter, Y., "LSP Hierarchy with MPLS TE", draft-ietf-mpls-lsp-hierarchy-01.txt (work in progress) [OSPF-TE] Katz, D., and Yeung, D., "Traffic Engineering Extensions to OSPF", draft-katz-yeung-ospf-traffic-02.txt (work in progress) 10. Author Information Kireeti Kompella Juniper Networks, Inc. 1194 N. Mathilda Ave. Sunnyvale, CA 94089 e-mail: kireeti@juniper.net Yakov RekhterCisco Systems,Juniper Networks, Inc.170 West Tasman Drive San Jose,1194 N. Mathilda Ave. Sunnyvale, CA9513494089 e-mail:yakov@cisco.comyakov@juniper.net Alan Kullberg NetPlane Systems, Inc. 888 Washington St. Dedham, MA 02026 e-mail: akullber@netplane.com