IETF Internet Draft Arthi Ayyangar(Editor) Proposed Status: Standards Track Juniper Networks Expires: August 2005 Jean-Philippe Vasseur Cisco Systems, Inc. February 2005 LSP Stitching with Generalized MPLS TE draft-ayyangar-ccamp-lsp-stitching-00.txt Status of this Memo This document is an Internet-Draft and is subject to all provisions of section 3 of RFC 3667. By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she become aware will be disclosed, in accordance with RFC 3668. 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. Copyright Notice Copyright (C) The Internet Society (2005). All Rights Reserved. Abstract In certain scenarios, there may be a need to combine together two different Generalized Multi-Protocol Label Switching (GMPLS) Label Switched Paths (LSPs) such that in the data plane, a single end-to-end (e2e) LSP is achieved and all traffic from one LSP is switched onto the other LSP. We will refer to this as "LSP stitching". This document covers cases where: a) the node performing the stitching does not require configuration of every LSP pair to be stitched together b) the Ayyangar and Vasseur [Page 1] draft-ayyangar-ccamp-lsp-stitching-00.txt February 2005 node performing the stitching is not the egress of any of the LSPs c) LSP stitching not only results in an end-to-end LSP in the data plane, but there is also a corresponding end-to-end LSP (RSVP session) in the control plane. It might be possible to configure a GMPLS node to switch the traffic from an LSP for which it is the egress, to another LSP for which it is the ingress, without requiring any signaling or routing extensions whatsoever, completely transparent to other nodes. This will also result in LSP stitching in the data plane. However, this document does not cover this scenario of LSP stitching. This document describes the mechanisms to accomplish LSP stitching in the scenarios described above. 1. Conventions used in this document 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]. 2. Introduction LSP hierarchy ([LSP-HIERARCHY]) provides signaling and routing procedures so that: (a) a GMPLS node can form a forwarding adjacency (FA) over the FA LSP (b) other Label Switching Routers (LSRs) can see this FA LSP as a Traffic Engineering (TE) link (c) the GMPLS node can nest one or more LSPs over the FA LSP. This covers intra-domain LSPs only. d) RSVP signaling for LSP setup can occur between nodes that do not have routing adjacency. LSP stitching is a special case of LSP hierarchy. In case of LSP stitching, instead of an FA LSP, we will create an "LSP segment" between two GMPLS nodes. So an LSP segment for stitching is considered to be the moral equivalent of an FA LSP for nesting. While LSP hierarchy allows more that one LSP to be admitted into the FA- LSP, in case of LSP stitching, the desired switching type of the LSP and the switching capability of the LSP segment are such that at most one LSP may be admitted into an LSP segment. E.g. if LSP-AB is an FA- LSP between nodes A and B, then multiple LSPs, say LSP1, LSP2, LSP3 could potentially be 'nested into' LSP-AB. This is achieved by exchanging a unique label for each of LSP1..3 over the LSP-AB hop thereby permitting LSP1..3 to share the FA-LSP LSP-AB. Each of LSP1..3 may reserve some bandwidth on LSP-AB. On the other hand, if LSP-AB is an LSP segment, then at most one LSP, say LSP1 may be 'stitched to' the LSP segment LSP-AB. No labels are exchanged for LSP1 over the LSP-AB hop (i.e. between A and B directly). Therefore, Ayyangar and Vasseur [Page 2] draft-ayyangar-ccamp-lsp-stitching-00.txt February 2005 LSP-AB is dedicated to LSP1 and no other LSPs can be associated with LSP-AB. The LSPs LSP1..3 which are either nested or stitched into another LSP are termed as end-to-end (e2e) LSPs in the rest of this document. Signaling and routing procedures for LSP stitching are basically similar to that described in [LSP-HIERARCHY]. The LSP segment will be seen seen as a TE link by all nodes in the network. Also, non- adjacent RSVP signaling defined in [LSP-HIERARCHY] will still be required to stitch an LSP to an LSP segment. So, in the control plane, there is one RSVP session corresponding to the e2e LSP as well as one for each LSP segment that the e2e LSP is being stitched to. An LSP segment may be created either via a configuration trigger or dynamically due to an incoming LSP request. In this document we will highlight, where applicable, similarities and differences in the routing and signaling procedures between LSP hierarchy and LSP stitching. Additional signaling extensions required for LSP stitching are also described here. LSP stitching SHOULD be used when the switching types (capabilities) of the LSP and the LSP segment are such that LSP hierarchy as described in [LSP-HIERARCHY] is not possible. E.g. if the e2e LSP is a lambda LSP and the LSP segment is also a lambda LSP, then in this case LSP hierarchy is not possible. LSP stitching could also be useful in networks to bypass legacy nodes which may not have certain new capabilities in the control plane and/or data plane. E.g. one suggested usage in case of P2MP RSVP LSPs ([P2MP-RSVP]) is the use of LSP stitching to stitch a P2MP RSVP LSP to an LSP segment between P2MP capable LSRs in the network. The LSP segment would traverse legacy LSRs that may be incapable of acting as P2MP branch points, thereby shielding them from the P2MP control and data path. LSP stitching procedures could also be used for inter-domain TE LSP signaling to stitch an inter-domain LSP to a local intra-domain TE LSP segment ([INTER-DOMAIN-RSVP]). Ayyangar and Vasseur [Page 3] draft-ayyangar-ccamp-lsp-stitching-00.txt February 2005 3. Routing aspects An LSP segment is similar to an FA-LSP in that, an LSP segment like an FA-LSP is created and treated like a TE link between two GMPLS nodes whose path transits zero or more GMPLS nodes in the same instance of the GMPLS control plane. These TE links may be numbered or unnumbered. For an unnumbered LSP segment, the assignment and handling of the local and remote link identifiers is specified in [RSVP-UNNUM]. Unlike an FA-LSP, a GMPLS node does not have a data plane adjacency with the end point of the LSP segment. This implies that the traffic that arrives at the GMPLS node will be switched into the LSP segment contiguously with a label swap and no label is exchanged directly between the end nodes of the LSP segment itself. Also, a routing adjacency will not be established over an LSP segment. ISIS/OSPF may, however, flood the TE information associated with an LSP segment, which will exist in the TE database (TED) and can then be used for path computation by other GMPLS nodes in the network. The TE parameters defined for an FA in [LSP-HIERARCHY] are also applicable to an LSP segment TE link. Note that, while an FA-LSP TE link can admit zero or more LSPs over it, an LSP segment can admit at most one LSP over it. So, once an LSP is stitched into an LSP segment, the unreserved bandwidth on the LSP segment is set to zero. This prevents any more LSPs from being computed and admitted over the LSP segment TE link. Multiple LSP segments between the same pair of nodes may be bundled using the concept of Link Bundling ([BUNDLING]) into a single TE link. When any component LSP segment is allocated for an LSP, the component's unreserved bandwidth MUST be set to zero and the Minimum and Maximum LSP bandwidth of the TE link SHOULD be recalculated. 4. Signaling aspects In general, the trigger for the creation or termination of an LSP segment may be either mechanisms which are outside of GMPLS (configuration of LSP segment on the stitching node) or mechanisms within GMPLS (arrival of an LSP setup request with appropriate switching type on the stitching node). Although not adjacent in routing, the end nodes of the LSP segment will have a signaling adjacency and will exchange RSVP messages directly between each other. When an RSVP-TE LSP is signaled over an LSP segment, the Path message MUST contain an IF_ID RSVP_HOP object [RSVP-GMPLS] and the data interface identification MUST identify the LSP segment. For the purpose of ERO and RRO as well, an LSP segment is treated exactly like an FA. Ayyangar and Vasseur [Page 4] draft-ayyangar-ccamp-lsp-stitching-00.txt February 2005 The main difference between signaling an LSP over an LSP segment instead of over an FA-LSP is that no Labels are allocated and exchanged for the e2e LSP over the LSP segment hop. So, at most one e2e LSP is associated with one LSP segment. If a node at the head-end of an LSP segment receives a Path Msg for an LSP that identifies the LSP segment in the ERO and the LSP segment bandwidth has already been allocated to some other LSP, then regular rules of RSVP-TE pre- emption apply. If the LSP request over the LSP segment cannot be satisfied, then the node SHOULD send back a PathErr with the error codes as described in [RSVP-TE]. Additional signaling extensions for stitching are described in the next section. 4.1. RSVP-TE signaling extensions The signaling extensions described here MUST be used if the LSP segment is a packet LSP and an e2e packet LSP may be stitched to it. These extensions are optional for non-packet LSPs and SHOULD be used if no other local mechanisms exist to automatically detect a requirement for stitching at both the ingress and egress nodes of the LSP segment. If a GMPLS node desires to perform LSP stitching, then it MUST indicate this in the Path message for the LSP segment that it plans to use for stitching. This signaling explicitly informs the egress node for the LSP segment that the ingress node is planning to perform stitching over the LSP segment. This will allow the egress of the LSP segment to allocate the correct label(s) as explained below. Also, so that the head-end node can ensure that correct stitching actions were carried out at the egress node, a new flag is defined below in the RRO subobject to indicate that the LSP segment can be used for stitching. In order to request LSP stitching on the LSP segment, we define a new flag bit in the Attributes Flags TLV of the LSP_ATTRIBUTES object defined in [LSP-ATTRIBUTES]: 0x02 (TBD): LSP stitching desired bit - This flag will be set in the Attributes Flags TLV of the LSP_ATTRIBUTES object in the Path message for the LSP segment by the head-end of the LSP segment, that desires LSP stitching. This flag MUST not be modified by any other nodes in the network. An LSP segment can only be used for stitching if appropriate label actions were carried out at the egress node of the LSP segment. In order to indicate this to the head-end node of the LSP segment, the following new flag bit is defined in the RRO Attributes sub-object: Ayyangar and Vasseur [Page 5] draft-ayyangar-ccamp-lsp-stitching-00.txt February 2005 0x02 (TBD): LSP segment stitching ready. If an egress node receiving a Path message, supports the LSP_ATTRIBUTES object and the Attributes Flags TLV, and also recognizes the "LSP stitching desired" flag bit, but cannot support the requested stitching behavior, then it MUST send back a PathErr message with an error code of "Routing Problem" and an error sub- code=16 (TBD) "Stitching unsupported" to the head-end node of the LSP segment. If an egress node receiving a Path message with the "LSP stitching desired" flag set, recognizes the object, the TLV and the flag and also supports the desired stitching behavior, then it MUST allocate a non-NULL label for that LSP segment in the corresponding Resv message. Now, so that the head-end node can ensure that the correct label actions will be carried out by the egress node and that the LSP segment can be used for stitching, the egress node MUST set the "LSP segment stitching ready" bit defined in the RRO Attribute sub-object. Also, when the egress node for the LSP segment receives a Path message for an e2e LSP using this LSP segment, it SHOULD first check if it is also the egress for the e2e LSP. If the egress node is the egress for both the LSP segment as well as the e2e TE LSP, and this is a packet LSP which requires Penultimate Hop Popping (PHP), then the node MUST send back a Resv refresh for the LSP segment with a new label corresponding to the NULL label. Finally, if the egress node for the LSP segment supports the LSP_ATTRIBUTES object but does not recognize the Attributes Flags TLV, or supports the TLV as well but does not recognize this particular flag bit, then it SHOULD simply ignore the above request. An ingress node requesting LSP stitching MUST examine the RRO Attributes sub-object flag corresponding to the egress node for the LSP segment, to make sure that stitching actions were carried out at the egress node. It MUST NOT use the LSP segment for stitching if the "LSP segment stitching ready" flag is cleared. The egress node MUST not allocate any Label in the Resv message for the e2e TE LSP. Similarly, in case of bidirectional e2e TE LSP, no Upstream Label is allocated over the LSP segment in the corresponding Path message. An ingress node stitching an e2e TE LSP to an LSP segment MUST ignore any Label object received in the Resv for the e2e TE LSP. Ayyangar and Vasseur [Page 6] draft-ayyangar-ccamp-lsp-stitching-00.txt February 2005 5. Summary of LSP Stitching procedures 5.1. LSP segment setup A GMPLS node that originates an LSP segment may decide to use this LSP segment for stitching. The creation of this LSP segment and its use for stitching may be dictated either by configuration or dynamically on arrival of an LSP setup request at the GMPLS node. Successful completion of signaling procedures for the LSP segment as described in Section 3.1 will allow the GMPLS node to : a) advertise this LSP segment as a TE link with the bandwidth of the LSP as the unreserved bandwidth in the IGP and b) carry out stitching procedures to actually stitch an e2e LSP to the LSP segment. Similar to setup, tearing down the LSP segment may also be decided either via local configuration or due to the fact that there is no longer an e2e LSP stitched to the LSP segment. E.g. Let us consider an LSP segment LSP- AB being setup between two nodes A and B. A sends a Path message for the LSP-AB with "LSP stitching desired". If on the egress node B, stitching procedures are successfully carried out, then B will set the "LSP segment stitching ready" in the RRO sent in the Resv. Once A receives the Resv for LSP-AB and sees this bit set in the RRO, it can then use LSP-AB for stitching. 5.2. Setup of e2e LSP Other nodes in the network (in the same domain) trying to setup an e2e LSP across the network may see the LSP segment as a TE link in their TE databases and may compute a path over this TE link. In case of an inter-domain e2e LSP, however, the LSP segment TE link, like any other basic TE link in the domain will probably not be advertised outside the domain. In this case, either per-domain path computation ([INTER-DOMAIN-PD-PATH-COMP]) or PCE based computation will permit setting up e2e LSPs over LSP segments in other domains. The LSP segment TE link may be identified as an ERO hop in the Path message of the e2e LSP message. E.g. Let us consider an e2e LSP LSP1-2 starting one hop before A on R1 and ending on node R2. R1 may compute a path for LSP1-2 over the LSP segment LSP-AB and identify the LSP-AB hop in the ERO. 5.3. Stitching of e2e LSP into an LSP segment When the Path message for an e2e LSP arrives at the GMPLS stitching node, the LSP segment to stitch the e2e LSP to is determined. The Path message for the e2e LSP is then sent directly to the LSP segment end node with the destination IP address of the Path message set to the address of the LSP segment end node. The Router Alert option MUST not be set in this case. Furthermore, when the message arrives at the end node, RSVP TTL checks MUST be disabled. The LSP segment MUST be Ayyangar and Vasseur [Page 7] draft-ayyangar-ccamp-lsp-stitching-00.txt February 2005 identified in the IF_ID RSVP_HOP (PHOP) object of the Path message. It is assumed that the receiver of this Path message can identify the LSP segment based on the data interface identification in the IF_ID RSVP_HOP. When the Resv is sent back for the e2e LSP, no Label is allocated on the LSP segment hop. E.g. When the Path message for the e2e LSP LSP1-2 arrives at node A, and the LSP segment LSP-AB to stitch LSP1-2 to has been identified (either based on explicit hop in ERO or due to local decision), then Path message for LSP1-2 is sent directly to node B with the IF_ID RSVP_HOP identifying the LSP segment LSP-AB. When B receives this Path message for LSP1-2, if B is also the egress for LSP1-2, and if this is a packet LSP requiring PHP, then B will send a Resv refresh for LSP-AB with the NULL Label. If B is not the egress, then Path message for LSP1-2 is propagated to R2. The Resv for LSP1-2 is sent back from B directly to A with no Label in it. Node A then propagates the Resv to R1. This stitches an e2e LSP LSP1-2 to an LSP segment LSP-AB between nodes A and B. In the data plane, this yields a series of label swaps from R1 to R2 along LSP LSP1-2. 6. Security Considerations Similar to [LSP-HIERARCHY], this document permits that the control interface over which RSVP messages are sent or received need not be the same as the data interface which the message identifies for switching traffic. Also, the 'sending interface' and 'receiving interface' may change as routing changes. So, these cannot be used to establish security association between neighbors. Mechanisms described in [RFC2747] should be re-examined and may need to be altered to define new security associations based on receiver's IP address instead of the sending and receiving interfaces. Also, this document allows the IP destination address of Path and PathTear messages to be the IP address of a nexthop node (receiver's address) instead of the RSVP session destination address. So, [RFC2747] should be revisited to check if IPSec AH is now a viable means of securing RSVP-TE messages. Ayyangar and Vasseur [Page 8] draft-ayyangar-ccamp-lsp-stitching-00.txt February 2005 7. IANA Considerations The following values have to be defined by IANA for this document. The registry is, http://www.iana.org/assignments/rsvp-parameters. 7.1. Attribute Flags for LSP_ATTRIBUTES object The following new flag bit is being defined for the Attributes Flags TLV in the LSP_ATTRIBUTES object. The numeric value should be assigned by IANA. LSP stitching desired bit - 0x02 (Suggested value) This flag bit is only to be used in the Attributes Flags TLV on a Path message. The 'LSP stitching desired bit' has a corresponding 'LSP segment stitching ready' bit to be used in the RRO Attributes sub-object. 7.2. New Error Codes The following new error sub-code is being defined under the RSVP error-code "Routing Problem" (24). The numeric error sub-code value should be assigned by IANA. Stitching unsupported - sub-code 16 (Suggested value) This error code is to be used only in a RSVP PathErr. 8. Acknowledgements The authors would like to thank Adrian Farrel and Kireeti Kompella for their comments and suggestions. 9. References 9.1. Normative References [LSP-HIERARCHY] Kompella K., Rekhter Y., "LSP Hierarchy with Generalized MPLS TE", (work in progress). [LSP-ATTRIBUTES] Farrel A. et al, "Encoding of Attributes for Multiprotocol Label Switching (MPLS) Label Switched Path (LSP) Establishment Using RSVP-TE", (work in progress). [RSVP-GMPLS] L. Berger, et al, "Generalized Multi-Protocol Label Ayyangar and Vasseur [Page 9] draft-ayyangar-ccamp-lsp-stitching-00.txt February 2005 Switching (GMPLS) Signaling Resource ReserVation Protocol-Traffic Engineering (RSVP-TE) Extensions", RFC 3473, January 2003. [RSVP-TE] Awduche, et al, "Extensions to RSVP for LSP Tunnels", RFC 3209, December 2001. [RFC2747] Baker, F., Lindell, B., and M. Talwar, "RSVP Cryptographic Authentication", RFC 2747, January 2000. 9.2. Informative References [P2MP-RSVP] R. Agarwal, et al, "Extensions to RSVP-TE for Point to Multipoint TE LSPs", (work in progress). [INTER-DOMAIN-RSVP] Ayyangar A., Vasseur JP, "Inter domain GMPLS Traffic Engineering - RSVP-TE extensions", (work in progress). [RSVP-UNNUM] Kompella K., Rekhter Y., "Signalling Unnumbered Links in Resource ReSerVation Protocol - Traffic Engineering (RSVP-TE)", RFC 3477, January 2003. [BUNDLING] Kompella K., Rekhter Y., "Link Bundling in MPLS Traffic Engineering", (work in progress). [INTER-DOMAIN-PD-PATH-COMP] Vasseur JP, Ayyangar A.,Zhang R., "A Per- domain path computation method for computing Inter-domain Traffic Engineering Label Switched Path", (work in progress). Author's addresses Arthi Ayyangar Juniper Networks, Inc. 1194 N.Mathilda Ave Sunnyvale, CA 94089 USA e-mail: arthi@juniper.net Jean Philippe Vasseur Cisco Systems, Inc. 300 Beaver Brook Road Boxborough , MA - 01719 USA e-mail: jpv@cisco.com Ayyangar and Vasseur [Page 10] draft-ayyangar-ccamp-lsp-stitching-00.txt February 2005 Intellectual Property Statement The IETF takes no position regarding the validity or scope of any Intellectual Property Rights 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; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat 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 implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf- ipr@ietf.org. Disclaimer of Validity This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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. Copyright Statement Copyright (C) The Internet Society (2005). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. Ayyangar and Vasseur [Page 11] draft-ayyangar-ccamp-lsp-stitching-00.txt February 2005 Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society. Ayyangar and Vasseur [Page 12]