Network Working Group Kireeti Kompella Internet Draft Juniper Networks Expiration Date: April 2003 Yakov Rekhter Juniper Networks Signalling Unnumbered Links in RSVP-TE draft-ietf-mpls-rsvp-unnum-08.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 Multi-Protocol Label Switching Traffic Engineering (MPLS TE) doesn't provide support for unnumbered links. This document defines procedures and extensions to Extensions to RSVP for Label Switched Path (LSP) Tunnels (RSVP-TE), one of the MPLS TE signalling protocols, that are needed in order to support unnumbered links. draft-ietf-mpls-rsvp-unnum-08.txt [Page 1] Internet Draft draft-ietf-mpls-rsvp-unnum-08.txt October 2002 3. 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 [RFC2119]. 4. 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 [GMPLS-ISIS, GMPLS-OSPF]. 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 and Record Route Objects. This document proposes simple procedures and extensions that allow RSVP-TE signalling [GMPLS-RSVP] to be used with unnumbered links. 5. Link Identifiers An unnumbered link has to be a point-to-point link. An LSR at each end of an unnumbered link assigns an identifier to that link. This identifier is a non-zero 32-bit number that is unique within the scope of the LSR that assigns it. The IS-IS and/or OSPF and RSVP modules on an LSR must agree on the identifiers. There is no a priori relationship between the identifiers assigned to a link by the LSRs at each end of that link. LSRs at the two end points of an unnumbered link exchange with each other the identifiers they assign to the link. Exchanging the identifiers may be accomplished by configuration, by means of a protocol such as LMP ([LMP]), by means of RSVP/CR-LDP (especially in the case where a link is a Forwarding Adjacency, see below), or by means of IS-IS or OSPF extensions ([ISIS-GMPLS], [OSPF-GMPLS]). Consider an (unnumbered) link between LSRs A and B. LSR A chooses an identifier for that link. So is LSR B. From A's perspective we refer to the identifier that A assigned to the link as the "link local identifier" (or just "local identifier"), and to the identifier that B assigned to the link as the "link remote identifier" (or just "remote identifier"). Likewise, from B's perspective the identifier draft-ietf-mpls-rsvp-unnum-08.txt [Page 2] Internet Draft draft-ietf-mpls-rsvp-unnum-08.txt October 2002 that B assigned to the link is the local identifier, and the identifier that A assigned to the link is the remote identifier. In the context of this document the term "Router ID" refers to the "Router Address" as defined in [OSPF-TE], or "Traffic Engineering Router ID" as defined in [ISIS-TE]. This section is equally applicable to the case of unnumbered component links (see [LINK-BUNDLE]). 6. Unnumbered Forwarding Adjacencies If an LSR that originates an LSP advertises this LSP as an unnumbered Forwarding Adjacency in IS-IS or OSPF (see [LSP-HIER]), or the LSR uses the Forwarding Adjacency formed by this LSP as an unnumbered component link of a bundled link (see [LINK-BUNDLE]), the LSR MUST allocate an identifier to that Forwarding Adjacency (just like for any other unnumbered link). Moreover, the Path message used for establishing the LSP that forms the Forwarding Adjacency MUST contain the LSP_TUNNEL_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 identifier that the LSR allocated to the Forwarding Adjacency. If the Path message contains the LSP_TUNNEL_INTERFACE_ID object, then the tail-end LSR MUST allocate an identifier to that Forwarding Adjacency (just like for any other unnumbered link). Furthermore, the Resv message for the LSP MUST contain an LSP_TUNNEL_INTERFACE_ID object, with the LSR's Router ID set to the tail-end's Router ID, and the Interface ID set to the identifier allocated by the tail-end LSR. For the purpose of processing the ERO and the IF_ID RSVP_HOP objects, an unnumbered Forwarding Adjacency is treated as an unnumbered (TE) link or an unnumbered component link as follows. The LSR that originates the Adjacency sets the link local identifier for that link to the value that the LSR allocates to that Forwarding Adjacency, and the link remote identifier to the value carried in the Interface ID field of the Reverse Interface ID object. The LSR that is a tail-end of that Forwarding Adjacency sets the link local identifier for that link to the value that the LSR allocates to that Forwarding Adjacency, and the link remote identifier to the value carried in the Interface ID field of the Forward Interface ID object. draft-ietf-mpls-rsvp-unnum-08.txt [Page 3] Internet Draft draft-ietf-mpls-rsvp-unnum-08.txt October 2002 6.1. LSP_TUNNEL_INTERFACE_ID Object The LSP_TUNNEL_INTERFACE_ID object has a class number of type 11bbbbbb (to be assigned by IANA), C-Type of 1 and length of 12. The format is given below. Figure 1: LSP_TUNNEL_INTERFACE_ID Object 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LSR's Router ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID (32 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ This object can optionally appear in either a Path message or a Resv 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. 7. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |L| Type | Length | Reserved (MUST be zero) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID (32 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The Type is 4 (Unnumbered Interface ID). The Length is 12. The Interface ID is the identifier assigned to the link by the LSR specified by the router ID. draft-ietf-mpls-rsvp-unnum-08.txt [Page 4] Internet Draft draft-ietf-mpls-rsvp-unnum-08.txt October 2002 7.1. Processing the IF_ID RSVP_HOP object When an LSR receives a Path message containing the IF_ID RSVP_HOP object (see [GMPLS-RSVP], [GMPLS-SIG]) with the IF_INDEX TLV, the LSR processes this TLV as follows. The LSR must have information about the identifiers assigned by its neighbors to the unnumbered links between the neighbors and the LSR. The LSR uses this information to find a link with tuple matching the tuple carried in the IF_INDEX TLV. If the matching tuple is found, the match identifies the link for which the LSR has to perform label allocation. Otherwise, the LSR SHOULD return an error using the IF_ID ERROR_SPEC object (see [GMPLS-RSVP], [GMPLS-SIG]). The Error code in the object is set to [TBD]. The Error value in the object is set to [TBD]. 7.2. Processing the ERO The Unnumbered Interface ID subobject is defined to be a part of a particular abstract node if that node has the Router ID that is equal to the Router ID field in the subobject, and if the node has an (unnumbered) link or an (unnumbered) Forwarding Adjacency whose local identifier (from that node's point of view) is equal to the value carried in the Interface ID field of the subobject. With this in mind, the ERO processing in the presence of the Unnumbered Interface ID subobject follows the rules specified in section 4.3.4.1 of [RSVP-TE]. As part of the ERO processing, or to be more precise, as part of the next hop selection, if the outgoing link is unnumbered, the Path message that the node sends to the next hop MUST include the IF_ID RSVP_HOP object, with the IP address field of that object set to the Router ID of the node, and the Interface ID field of that object set to the identifier assigned to the link by the node. draft-ietf-mpls-rsvp-unnum-08.txt [Page 5] Internet Draft draft-ietf-mpls-rsvp-unnum-08.txt October 2002 8. Record Route Object A new subobject of the Record Route Object (RRO) is used to record that the LSP path traversed an unnumbered link. This subobject has the following format: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Flags | Reserved (MBZ)| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID (32 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The Type is 4 (Unnumbered Interface ID); the Length is 12. Flags are defined below. 0x01 Local protection available Indicates that the link downstream of this node is protected via a local repair mechanism. This flag can only be set if the Local protection flag was set in the SESSION_ATTRIBUITE object of the corresponding Path message. 0x02 Local protection in use Indicates that a local repair mechanism is in use to maintain this tunnel (usually in the face a an outage of the link it was previously routed over). 8.1. Handling RRO If at an intermediate node (or at the head-end), the ERO subobject that was used to determine the next hop is of type Unnumbered Interface ID, and a RRO object was received in the Path message (or is desired in the original Path message), an RRO subobject of type Unnumbered Interface ID MUST be appended to the received RRO when sending a Path message downstream. If the ERO subobject that was used to determine the next hop is of any other type, the handling procedures of [RSVP-TE] apply. Also, if Label Recording is desired, the procedures of [RSVP-TE] apply. draft-ietf-mpls-rsvp-unnum-08.txt [Page 6] Internet Draft draft-ietf-mpls-rsvp-unnum-08.txt October 2002 9. Security Considerations This document makes a small extention to RFC3209 [RSVP-TE] to refine and explicate the use of unnumbered links. As such it poses no new security concerns. In fact, one might argue that use of the extra interface identify could make an RSVP message harder to spoof. 10. IANA Considerations The IANA assigns values to RSVP protocol parameters. The current document defines a new subobject for the EXPLICIT_ROUTE object and for the ROUTE_RECORD object. The rules for the assignment of subobject numbers have been defined in [RSVP-TE], using the terminology of BCP 26 "Guidelines for Writing an IANA Considerations Section in RFCs". Those rules apply to the assignment of subobject numbers for the new subobject of the EXPLICIT_ROUTE and ROUTE_RECORD objects. Furthermore, the same Internet authority needs to assign a class number to the LSP_TUNNEL_INTERFACE_ID object. This must be of the form 11bbbbbb (i.e., this is an 8-bit number whose two most significant bits are 1). 11. Intellectual Property Considerations 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. 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. draft-ietf-mpls-rsvp-unnum-08.txt [Page 7] Internet Draft draft-ietf-mpls-rsvp-unnum-08.txt October 2002 12. Acknowledgments Thanks to Lou Berger and Markus Jork for pointing out that the RRO should be extended in like fashion to the ERO. Thanks also to Rahul Aggarwal and Alan Kullberg for their comments on the text. Finally, thanks to Bora Akyol, Vach Kompella, and George Swallow. 13. References 13.1. Normative references [RSVP-TE] Awduche, D., Berger, L., Gan, D. H., Li, T., Srinivasan, V., and Swallow, G., "RSVP-TE: Extensions to RSVP for LSP Tunnels", RFC3209, December 2001 [GMPLS-RSVP] Ashwood, P., et al., "Generalized MPLS Signalling RSVP- TE Extensions", draft-ietf-mpls-generalized-rsvp-te-07.txt (work in progress) [GMPLS-SIG] Ashwood, P., et al, "Generalized MPLS - Signaling Functional Description", draft-ietf-mpls-generalized-signaling-08.txt (work in progress) [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. 13.2. Non-normative references [LINK-BUNDLE] Kompella, K., Rekhter, Y., and Berger, L., "Link Bundling in MPLS Traffic Engineering", draft-kompella-mpls- bundle-05.txt (work in progress) [LSP-HIER] Kompella, K., and Rekhter, Y., "LSP Hierarchy with MPLS TE", draft-ietf-mpls-lsp-hierarchy-05.txt (work in progress) [LMP] Lang, J., Mitra, K., et al., "Link Management Protocol (LMP)", draft-ietf-ccamp-lmp-03.txt (work in progress) [GMPLS-ISIS] Kompella, K., Rekhter, Y., Banerjee, A. et al, "IS-IS Extensions in Support of Generalized MPLS", draft-ietf-isis-gmpls- extensions-11.txt (work in progress) [GMPLS-OSPF] Kompella, K., Rekhter, Y., Banerjee, A. et al, "OSPF Extensions in Support of Generalized MPLS", draft-ietf-ccamp-ospf- gmpls-extensions-07.txt (work in progress) draft-ietf-mpls-rsvp-unnum-08.txt [Page 8] Internet Draft draft-ietf-mpls-rsvp-unnum-08.txt October 2002 [OSPF-TE] Katz, D., Yeung, D., Kompella, K., "Traffic Engineering Extensions to OSPF Version 2", draft-katz-yeung-ospf-traffic-07.txt (work in progress) [ISIS-TE] Li, T., Smit, H., "IS-IS extensions for Traffic Engineering", draft-ietf-isis-traffic-03.txt (work in progress) 14. Author Information Kireeti Kompella Juniper Networks, Inc. 1194 N. Mathilda Ave. Sunnyvale, CA 94089 e-mail: kireeti@juniper.net Yakov Rekhter Juniper Networks, Inc. 1194 N. Mathilda Ave. Sunnyvale, CA 94089 e-mail: yakov@juniper.net draft-ietf-mpls-rsvp-unnum-08.txt [Page 9]