Network Working Group Kireeti Kompella Internet Draft Juniper Networks Expiration Date: May 2001 Yakov Rekhter Juniper Networks Signalling Unnumbered Links in RSVP-TE draft-ietf-mpls-rsvp-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 RSVP-TE, one of the MPLS TE signalling protocols, that are needed in order to support unnumbered links. draft-ietf-mpls-rsvp-unnum-01.txt [Page 1] Internet Draft draft-ietf-mpls-rsvp-unnum-01.txt February 2001 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 and Record Route Objects. This document proposes simple procedures and extensions that allow RSVP-TE signalling [RSVP-TE] 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 RSVP 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. draft-ietf-mpls-rsvp-unnum-01.txt [Page 2] Internet Draft draft-ietf-mpls-rsvp-unnum-01.txt February 2001 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 Path message MUST contain an 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 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 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 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. 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. draft-ietf-mpls-rsvp-unnum-01.txt [Page 3] Internet Draft draft-ietf-mpls-rsvp-unnum-01.txt February 2001 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |L| Type | Length | Reserved (MUST be zero) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID (32 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ This subobject MUST be strict (i.e., the L bit MUST be 0). The Type is 4 (Unnumbered Interface ID). The Length is 12. 6.1. Interpreting the Unnumbered Interface ID Subobject The Router ID (say X) is the router ID of the LSR P at the upstream end of the unnumbered link. The Interface ID (say I) is the outgoing interface identifier with respect to the LSR specified by the router ID. The PHOP object in the message MUST contain X. If not, the receiving node MUST return a PathErr. 6.2. Validating the Unnumbered Interface ID Subobject First of all, the receiving node R must validate that it received the Path message correctly. If the first subobject in the ERO is an Unnumbered Interface subobject, the check is done as follows. R looks up in its Traffic Engineering database the node P corresponding to the router ID X in the ERO subobject. It then checks that there is a link from P to R that carries the same Interface ID as the one in the ERO subobject (I). If this is not the case, R has received the message in error and SHOULD return a "Bad initial subobject" error. For other types of ERO subobjects, the rules in [RSVP-TE] apply. draft-ietf-mpls-rsvp-unnum-01.txt [Page 4] Internet Draft draft-ietf-mpls-rsvp-unnum-01.txt February 2001 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_ID [BUNDLE] is present in the Path message or 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 matches the tuple 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 matches the tuple 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, R must have information about Interface IDs and Component Interface IDs assigned by its neighbors for the unnumbered links between R and its neighbors (i.e., incoming interface identifiers from R's point of view). If the Path message does not contain a COMPONENT_INTERFACE_ID, R determines the link by looking up in the Traffic Engineering database. If the Path message contains a COMPONENT_INTERFACE_ID, R determines the link as described in [BUNDLE]. Otherwise, it is assumed that the node has to perform label allocation for the link over which the Path message was received. 6.4. Selecting the Next Hop Once the link has been determined, the initial subobject is 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 EXPLICIT_ROUTE object" 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 Path message must be sent. draft-ietf-mpls-rsvp-unnum-01.txt [Page 5] Internet Draft draft-ietf-mpls-rsvp-unnum-01.txt February 2001 Furthermore, when sending a Path message to N, the ERO to be used is the remaining ERO (i.e., starting with the subobject that refers to a node different from the receiving node); the PHOP object is R's router ID. 7. 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)| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID (32 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The Type is 4 (Unnumbered Interface ID); the Length is 8. 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 cooresponding 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). 7.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 draft-ietf-mpls-rsvp-unnum-01.txt [Page 6] Internet Draft draft-ietf-mpls-rsvp-unnum-01.txt February 2001 Label Recording is desired, the procedures of [RSVP-TE] apply. 8. Security Considerations This document raises no new security concerns for RSVP. 9. IANA Considerations The responsible Internet authority (presently called 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). 10. 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 and Vach Kompella. 11. References [BUNDLE] Kompella, K., Rekhter, Y., and Berger, L., "Link Bundling in MPLS Traffic Engineering", draft-kompella-mpls-bundle-05.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-02.txt (work in progress) [OSPF-TE] Katz, D., and Yeung, D., "Traffic Engineering Extensions to OSPF", draft-katz-yeung-ospf-traffic-04.txt (work in progress) draft-ietf-mpls-rsvp-unnum-01.txt [Page 7] Internet Draft draft-ietf-mpls-rsvp-unnum-01.txt February 2001 [RSVP-TE] Awduche, D., Berger, L., Gan, D. H., Li, T., Srinivasan, V., and Swallow, G., "RSVP-TE: Extensions to RSVP for LSP Tunnels", draft-ietf-mpls-rsvp-lsp-tunnel-08.txt (work in progress) 12. 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-01.txt [Page 8]