MPLS Working Group Adrian Farrel (editor) Internet Draft Movaz Networks, Inc. Document: draft-iwata-mpls-crankback-05.txt Expiration Date: September 2003 Atsushi Iwata Norihito Fujita NEC Corporation Gerald R. Ash AT&T Simon Marshall-Unitt Data Connection Ltd. March 2003 Crankback Routing Extensions for MPLS Signaling 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. Abstract Recently, several routing protocol extensions for advertising resource information in addition to topology information have been proposed for use in distributed constraint-based routing. In such a distributed routing environment, however, the information used to compute a constraint-based path may be out of date. This means that LSP setup requests may be blocked by links or nodes without sufficient resources. This draft specifies crankback routing extensions for use in Multi-Protocol Label Switching (MPLS) signaling using RSVP-TE as defined in "RSVP-TE: Extensions to RSVP for LSP Tunnels", RFC3209, so that the LSP setup request can be retried on an alternate path that detours around the blocked link or node upon a setup failure. Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 1] Internet Draft March 2003 Furthermore, crankback routing schemes can also be applied to LSP restoration by indicating the location of the failure link or node. This would significantly improve the successful recovery ratio for failed LSPs, especially in situations where a large number of setup requests are triggered at the same time. Crankback has been identified by the ITU-T as requirement for the Automatically Switched Optical Network (ASON) and should be added to the GMPLS signaling protocols to meet this requirement. Table of Contents 1. Summary for Sub-IP Area 3 1.1. Summary 3 1.2. Related documents 3 1.3. Where does it fit in the Picture of the Sub-IP Work 3 1.4. Why is it Targeted at this WG 3 1.5. Justification 3 2. Changes and Further Work 4 2.1. Changes from the Previous Version 4 2.2. Future Work 4 3. Introduction 4 4. Explicit Versus Implicit Rerouting Indications 6 5. Overview of Crankback Function 8 6. Existing Support for Crankback Rerouting 10 6.1. RSVP-TE 10 6.2. GMPLS 10 6.3. Information Required for Rerouting 10 6.4. Signaling a New Route 11 7. MPLS Signaling Protocol Independent Information and Procedures 11 7.1. Requesting Crankback and Controlling In-Network Rerouting 11 7.2. Action on Detecting a Failure 12 7.3. Required Information 12 7.3.1 Link TLV 13 7.3.2 Node TLV 16 7.4. Action on Receiving Crankback Information 17 7.4.1 Reroute Attempts 17 7.4.2 Location Identifiers of Blocked Links or Nodes 18 7.4.3 Locating Errors within Loose or Abstract Nodes 18 7.4.4 When Rerouting Fails 19 7.5. Limiting Rerouting Attempts 19 7.5.1 New Status Codes for Rerouting 19 8. RSVP-TE Extensions for Crankback 19 8.1. Overview 19 8.1.1 ResvErr Processing 20 8.1.2 Notify Message Processing 21 8.2. Indication of Rerouting Behavior 21 8.3. Rerouting Object 23 8.4. Error Values 24 8.5. Backward Compatibility 24 9. Routing Protocol Interactions 25 10. LSP Restoration Considerations 25 10.1. Upstream of the Fault 25 10.2. Downstream of the Fault 26 Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 2] Internet Draft March 2003 11. Security Considerations 27 11.1. RSVP-TE 27 12. Acknowledgments 27 13. Normative References 27 14. Informational References 28 15. Authors' Addresses 28 16. Full Copyright Statement 29 1. Summary for Sub-IP Area 1.1. Summary This document describes requirements, procedures and protocol extensions for Crankback Routing in MPLS and GMPLS networks. These extensions address some of the requirements laid out by the ITU-T for the Automatically Switched Optical Network (ASON). 1.2. Related documents See the Reference Section 1.3. Where does it fit in the Picture of the Sub-IP Work This work is applicable to MPLS and GMPLS signaling protocols. 1.4. Why is it Targeted at this WG MPLS is a product of the MPLS WG. This draft extends the MPLS signaling protocols. At past IETF gatherings it has been suggested that this draft might equally be handled by the CCAMP WG. We await further direction from the WG chairs and the ADs. 1.5. Justification Crankback Routing is a requirement in large and multi- area networks, in networks with rapidly changing topologies or resource usage, or in networks where setup latency may be high. The requirement for Crankback Routing in the Automatically Switched Optical Network (ASON) has been identified by the ITU-T. It is therefore appropriate to consider if and how GMPLS can be extended to provide the function. Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 3] Internet Draft March 2003 2. Changes and Further Work This section to be removed before the draft progresses to RFC. 2.1. Changes from the Previous Version The main changes are: - minor typographical - retirement of all references to CR-LDP - additional work items to consider changing signaling mechanisms to utilize the IF-ID ErrorSpec present in [GMPLS-RSVP] - update references. 2.2. Future Work The following work items have been identified. - Extend crankback information to allow it to report on individual links from bundles, labels and specific resources. - Provide a mechanism to limit the number of rerouting attempts that should be made in total, within an area and at an individual node. - Add and explain methods for controlling which nodes in a network and on an LSP may make rerouting attempts. - The final versions of [GMPLS-RSVP] introduced the IF-ID ErrorSpec where failure information beyond the basic failure reason and reporting node id can be included in TLVs within the ErrorSpec object in a PathErr, ResvErr or notify message. This mechanism is ideal for the propagation of crankback failure information. It is likely that this document will be updated to use that mechanism rather than the one currently described. 3. Introduction RSVP-TE (RSVP Extensions for LSP Tunnel) [RSVP-TE] can be used for establishing explicitly routed LSPs in an MPLS network. Using RSVP-TE, resources can also be reserved along a path to guarantee or control QoS for traffic carried on the LSP. To designate an explicit path that satisfies QoS constraints, it is necessary to discern the resources available to each link or node in the network. For the collection of such resource information, routing protocols, such as OSPF [OSPF] and IS-IS [ISIS], can be extended to distribute additional state information [AWDUCHE1]. Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 4] Internet Draft March 2003 Explicit paths can be computed based on the distributed information at the LSR initiating a LSP and signaled as Explicit Routes during LSP establishment. Explicit Routes may contain 'loose hops' and 'abstract nodes' that convey routing through any of a collection of nodes. This mechanism may be used to devolve parts of the path computation to intermediate nodes such as area border LSRs. In a distributed routing environment, however, the resource information used to compute a constraint-based path may be out of date. This means that a setup request may be blocked, for example, because a link or node along the selected path has insufficient resources. In RSVP-TE, a blocked LSP setup may result in a PathErr message sent to the initiator or a ResvErr sent to the terminator (egress LSR). These messages may result in the LSP setup being abandoned. In Generalized MPLS [GMPLS-RSVP] the Notify message can be used in RSVP-TE networks to expedite notification of LSP failures to ingress and egress LSRs, or to a specific "repair point". These existing mechanisms provide a certain amount of information about the path of the failed LSP. If the ingress LSR or intermediate area border LSR knows the location of the blocked link or node, the LSR can designate an alternate path and then reissue the setup request, which can be achieved by the mechanism known as crankback routing [PNNI, ASH1]. We propose the use of crankback routing in RSVP-TE. Crankback routing requires notifying an upstream LSR of the location of the blocked link or node. In some cases this requires more information than is currently available in the signaling protocols. On the other hand, various restoration schemes for link or node failures have been proposed in [MAKAM, SHARMA] and others. Fast restoration by pre-establishing a backup LSP is useful for failures on a primary LSP. If both the primary and backup paths fail, however, it is necessary to reestablish the LSP on an end-to-end basis. End-to-end restoration for alternate routing requires the location of the failed link or node. Crankback routing schemes could also be used to notify upstream LSRs of the location of the failure. Furthermore, in situations where many link or node failures occur at the same time, the difference between the distributed routing information and the real-time network state becomes much greater than in normal LSP setups. LSP restoration must therefore be performed with inaccurate information, which is likely to cause setup blocking. Crankback routing would improve failure recovery in these situations. Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 5] Internet Draft March 2003 Generalized MPLS [GMPLS] extends MPLS into networks that manage TDM and lambda resources. In a network without wavelength converters, setup requests are likely to be blocked more often than in a conventional MPLS environment because the same wavelength must be allocated at each OXC on an end-to-end explicit path. Furthermore, end-to-end restoration is the only way to recover LSP failures. This implies that crankback routing would also be useful in an GMPLS network. Crankback has been identified by the ITU-T as requirement for the Automatically Switched Optical Network (ASON) [G8080] and should be added to the GMPLS signaling protocols to meet this requirement. Once crankback information has been supplied to the repair point, it may compute a new path to route around the problem. It may be, however, that the repair point does not have sufficient topology information to compute an Explicit Route that is guaranteed to avoid the failed link or node. In this case, Route Exclusions [LEE] may be particularly helpful. That is, when computing a path loose hops and abstract nodes may be used, and [LEE] offers the opportunity to use route exclusions to force avoidance of the failed node, link or resource. This draft proposes a crankback routing system that is an extension of RSVP-TE and discusses the identification of blocked links or nodes in an MPLS network. 4. Explicit Versus Implicit Rerouting Indications There have been problems in service provider networks when "inferring" from indirect information that rerouting is allowed. In the case of using an explicit rerouting indication, rerouting is explicitly authorized and not inferred. Various protocol options and exchanges including the error values of PathErr message [RSVP, RSVP-TE] and the Notify message [GMPLS-RSVP] allow an implementation to infer a situation where rerouting can be done. This allows for recovery from network errors or resource contention. However, such inference of recovery signaling is not always desirable since it may be doomed to failure. Experience of using release messages in TDM-based networks for analogous purposes provides some guidance. One can use the receipt of a release message with a cause value (CV) indicating "link congestion" (a CV already standardized in ISUP, for example) to trigger a rerouting attempt at the originating node. However, this sometimes leads to problems. Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 6] Internet Draft March 2003 *--------------------* *-----------------* | | | | | N2 ----------- N3-|--|----- AT--- EO2 | | | | \| | / | | | | | |--|- / | | | | | | | \/ | | | | | | | /\ | | | | | |--|- \ | | | | | /| | \ | | | N1 ----------- N4-|--|----- EO1 | | | | | *--------------------* *-----------------* AS-1 AS-2 Figure 1. Example of network topology Figure 1 is illustrates five examples based on service- provider experiences with respect to crankback (i.e., explicit indication) versus implicit indication through release/CV, or "no bandwidth available" (NBA). In this example, N1, N2,N3, and N4 are located in one area (AS- 1), and AT, EO1, and EO2 are in another area (AS-2). Note that two distinct areas are used in this example to expose the issues clearly. In fact, the issues are not limited to multi-area networks, but arise whenever path computation is distributed throughout the network. For example where loose routes, AS routes or path computation domains are used. 1. A connection request from node N1 to EO1 may route to N4 and then find "all circuits busy" (equivalent to NBA). N4 returns a release message to N1 with cause value (CV) 34 (indicates all circuits busy/NBA). Normally a node such as N1 is programmed to block a connection request when receiving CV34, although there is good reason to try to alternate route the connection request via N2 and N3. Some service providers have implemented a technique called route advance (RA), where if a node that is RA capable receives a release message with CV34 then it will try to find an alternate route for the connection request if possible. In this example alternate route N1-N2-N3-EO1 can be tried and may well succeed. 2. Now suppose a connection request goes from N2 to N3 to AT trying to reach EO2 and is blocked at link AT-EO2. Node AT returns a CV34, however N2 will not realize where this blocking occurred based on the CV34, and in this case there is no point in further alternate routing. However with RA it may try to route N2-N1-N4-AT-EO2, but of course this fails again. In this scenario, CV34 should be used and correctly interpreted to indicate that the LSP should be blocked and not re-signaled. If RA was required, it would be indicated by the use of crankback. Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 7] Internet Draft March 2003 3. However in another case of a connection request from N2 to E02, suppose that link N3-AT is blocked, then in this case N3 should return a crankback (and not CV34) so that N2 can alternate route to N1-N4-AT-EO2, which may well be successful. 4. In a final example, for a connection request from EO1 to N2, EO1 first tries to route the connection request directly to N3. However, node N3 may reject the connection request even if there is bandwidth available on link N3-EO1 (perhaps for priority routing considerations, e.g., reserving bandwidth for high priority connection requests). However when N3 returns CV34 in the release message, EO1 blocks the connection request (a normal response to CV34, given that E01-N4 is already known blocked due to NBA) rather than trying to alternate route through AT-N3-N2, which may well be successful. Had N3 returned a crankback, the EO1 could respond by trying the alternate route. It is certainly the case that with topology exchange, such as OSPF, the ingress LSR could infer the rerouting condition. However, convergence of routing information is typically slow with respect to desired LSP setup times. One of the reasons for crankback is to avoid the overhead or available-link-bandwidth (ALB) flooding to more efficiently use local state information to direct alternate routing at the ingress-LSR. [ASH1] shows how event-dependent-routing (EDR) can just use crankback, and not ALB flooding as required by state- dependent-routing (SDR), to decide on the path in the network through "learning models". Reducing the ALB flooding reduces overhead and can lead to the ability to support much larger AS sizes. Therefore, the alternate routing should be indicated based on an explicit indication (as in examples 3 and 4), and it is best to know the following information separately: a) where blockage/congestion occurred (as in examples 1-2) and b) whether alternate routing "should" be attempted even if there is no "blockage" (as in example 4). 5. Overview of Crankback Function Crankback routing is performed when an LSP setup request is blocked along the path, as described in the following procedures. Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 8] Internet Draft March 2003 When an LSP setup request is blocked due to unavailable resources, an error response with the location identifier of the blockage, should be returned to the LSR initiating the LSP setup (ingress LSR), the area border LSR, or some other repair point. This error response carries an error specification as standard - this indicates the cause of the error and the node/link on which the error occurred. In a flat network without segmentation, when the ingress LSR receives the error response it designates an alternate path around the blocked link or node to satisfy QoS constraints using link state information about the area. If an alternate path is found, a new LSP setup request is sent over this path. On the other hand, in a network segmented into areas such as with hierarchical OSPF, the following procedures can be used. The error response is generated as described, but the area border LSR may terminate the error response and perform alternate routing within the area for which the LSR is an ingress. In a third scenario, any node within an area may act as a repair point. In this case, the LSR behaves much as an area border LSR described above. It can terminate the error response and perform alternate routing. This may be particularly useful where domains of computation are applied within the network, but care must be taken to prevent all nodes in the network behaving in this way or rerouting thrash may occur. This scenario is somewhat like `MPLS fast reroute', in which any node in the MPLS domain can establish `local repair' LSPs after failure notification. The repair point LSR that computes the alternate path should store the location identifiers of the blockages indicated in the error indication until the LSP is successfully established or until the LSR abandons rerouting attempts. Since the crankback routing may happen more than once while establishing a specific LSP, the history table of all experienced blockages for this LSP should be maintained to perform an accurate path computation to detour the blockages. If a second error response is received by a repair point while it is performing crankback rerouting, it should update the history table and use the entire gathered information when making a further rerouting attempt. The maximum number of crankback rerouting attempts allowed may be limited for any one LSP at any single node. This is useful to prevent an endless repetition of crankback routing in certain error conditions or during periods of high congestion. It is also useful for reducing the number of unnecessary retries, which do not Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 9] Internet Draft March 2003 improve the performance. When a repair point receives more than the maximum number of error responses, it processes the last error response as an ordinary (non- crankback) error response, does not attempt further rerouting and forwards the error upstream if it is not the ingress. When a non-ingress LSR experiences this situation, it sends an error response to the ingress LSR and specifies the error "Maximum number of reroutings aborted". The ingress LSR, upon receiving this message, may attempt to find a wholly disjoint route (perhaps through another area) or reports the LSP as failed. 6. Existing Support for Crankback Rerouting As already described, RSVP-TE includes error notifications from which a rerouting requirement can be inferred. These notifications also contain information about the failed steps in the path. This section outlines what information is carried and shows how in some circumstances this may not be enough to properly facilitate crankback rerouting. 6.1. RSVP-TE In RSVP-TE a failed LSP setup attempt results in a PathErr message returned upstream. The PathErr carries an ErrSpec Object which indicates the node or interface reporting the error and the reason for the failure. Crankback rerouting can now be performed explicitly avoiding the node or interface reported. 6.2. GMPLS GMPLS extends the error reporting described above by allowing LSRs to report the errored interface in addition to the identity of the node reporting the error. This information would typically only be used in response to an LSP request that included the IF_ID (PHOP 3) object to identify the data link to which the signaling applies. This further enhances the ability of a recomputing node to route around the error. 6.3. Information Required for Rerouting In order to correctly compute a route that avoids the blocking problem in the network, a repair point LSR must gain as much crankback information as possible. Ideally, the repair node will be given the node, link and reason for the failure. Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 10] Internet Draft March 2003 However, this information may not be enough to help with recomputation. Consider an explicit route that contains an abstract node or a loose hop. In this case, the failed node and link is not necessarily enough to tell the repair point which hop in the explicit route has failed. The crankback information needs to provide context into the explicit route. 6.4. Signaling a New Route If a new route can be computed it can be signaled as an explicit route that will avoid the blocking issues. Sometimes, however, the repair point may not always be able to compute a route. For example, it may not have sufficient topology information about the part of the network where the failure occurred. In this case, the repair point may still attempt to re- signal the LSP using the route exclusion procedures described in [LEE]. 7. MPLS Signaling Protocol Independent Information and Procedures 7.1. Requesting Crankback and Controlling In-Network Rerouting When a request is made to setup an LSP tunnel, the ingress LSR should specify whether it wants crankback information to be collected in the event of a failure and whether it requests rerouting attempts by the intermediate nodes. A Rerouting Flag field is added to the protocol setup request messages. Three values for the Rerouting Flag are defined. These values are mutually exclusive. No Rerouting Intermediate nodes SHOULD NOT attempt rerouting after failure. Nodes detecting failures are not requested to supply crankback information. End-to-end Rerouting Intermediate nodes SHOULD NOT attempt rerouting after failure. Nodes detecting failures SHOULD supply full crankback information. ARB Rerouting Intermediate nodes MAY attempt rerouting after failure only if they are Area Border Routers. Nodes detecting failures SHOULD supply full crankback information. Segment-based Rerouting Intermediate nodes MAY attempt rerouting after failure. Nodes detecting failures SHOULD supply full crankback information. Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 11] Internet Draft March 2003 7.2. Action on Detecting a Failure A node that detects the failure to setup an LSP or the failure of an established LSP SHOULD act according to the Rerouting Flag passed on the LSP setup request. If Segment-based Rerouting is allowed, the detecting node MAY immediately attempt to reroute. If End-to-end Rerouting is indicated, or if Segment-based Rerouting is allowed and the detecting node chooses not to make rerouting attempts (or has exhausted all possible rerouting attempts), the detecting node returns a protocol error indication and SHOULD include full crankback information. 7.3. Required Information As described above, full crankback information should indicate the node, link and other resources which have been attempted but have failed because of allocation issues or network failure. These details are reported in the Rerouting Information. The following information is carried in Routing Information: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ TLVs ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Where each TLV 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Value ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 16 bits Indicates type of interface being identified. Defined values are: Type Meaning Description --------------------------------------------------- 1 Link TLV The Value describes a Link 2 Node TLV The Value describes a Node Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 12] Internet Draft March 2003 Length: 16 bits Indicates the total length of the TLV, i.e., 4 + the length of the value field in octets. A value field whose length is not a multiple of four MUST be zero-padded so that the TLV is four-octet aligned. 7.3.1 Link TLV When the TLV type is 1 (one) indicating a link TLV, the value 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Protocol Type | Num | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Link Identifier Components 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ............ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Link Identifier Components N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Protocol Type A one-octet unsigned integer containing the unique identifier of the protocol used for QoS routing. The following type numbers are defined. If a constraint-based route is to be calculated with no routing protocols, type 1 should be used. A location is identified using ER-Hop TLVs, independent of protocols. A type value other than 1 is only permitted if the Rerouting Flag in the LSP setup request indicated support for ABR or segment-based rerouting. 1: ER-Hop 2: OSPFv2 for IPv4 [OSPF] 3: Integrated IS-IS (or IS-IS) for IPv4 [ISIS] 4: OSPF for IPv6 [OSPF6] 5: Integrated IS-IS (or IS-IS) for IPv6 [ISIS6] 128-255: Reserved for private and experimental use. Note that if adjacent Areas use different routing protocols, the ABR is responsible for mapping the rerouting information. In general, the correct procedure is to convert to ER-Hop (1) when transitioning such Areas. Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 13] Internet Draft March 2003 Num: Number of Link Identifier Components A one-octet unsigned integer specifying the number of Link Identifier Components included in the TLV. One or more Link Identifier Components A variable length field containing link identifiers for relevant protocol types. When the type is ER-Hop (1), the following format is used. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | First ER-Hop TLV | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Second ER-Hop TLV | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ First ER-Hop TLV The first hop in the explicit route received by the reporting LSR. Second ER-Hop TLV The second hop in the explicit route received by the reporting LSR. Together with the First ER-Hop, this assists the repair point to locate the error within the context of the explicit route that it sent out. When the protocol type is OSPFv2 for IPv4 (2), the following 8-octet format is used. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Link ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Router ID The same value as the Router ID used in OSPFv2 for IPv4. Link ID The same value as the Link ID used in OSPFv2 for IPv4. When the protocol type is OSPF for IPv6 (4), the following 8-octet format is used. Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 14] Internet Draft March 2003 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Router ID The same value as the Router ID used in OSPF for IPv6. Interface ID The same value as the Interface ID used in OSPF for IPv6. When the protocol type is IS-IS for IPv4 (3), the following 12-octet format is used. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + System ID +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP Interface Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ System ID The same value as System ID used in IS-IS for IPv4 (3). IP Interface Address The IP address assigned to the interface advertised in IS-IS for IPv4 (3). When the protocol type is IS-IS for IPv6 (5), the following 24-octet format is used. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + System ID +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + IP Interface Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ System ID The same value as System ID used in IS-IS for IPv6 (5). Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 15] Internet Draft March 2003 IP Interface Address The IP address assigned to the interface advertised in IS-IS for IPv6 (5). 7.3.2 Node TLV In case of crankback rerouting, the Node TLV is used to identify a node or an abstract node where a setup blockage is detected. In the case of LSP restoration, the Node TLV is included to identify a node or an abstract node where a fault is detected. When the TLV type is 2 indicating a node TLV, the value 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Protocol Type | Num | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Node Identifier Components 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ............ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Node Identifier Components N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Protocol Type A one-octet unsigned integer containing the unique identifier of the protocol used for QoS routing. The same values as defined for the Link TLV are used. Num: Number of Node Identifier Components A one-octet unsigned integer specifying the number of Node Identifier Components included in the TLV. One or mode Node Identifier Components A variable length field containing the node identifier for relevant protocol types. When the type is ER-Hop (1), the following format is used. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | First ER-Hop TLV | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ First ER-Hop The first hop in the explicit route received by the reporting node. When the protocol type is OSPFv2 for IPv4 (2) or OSPF for IPv6 (4), the following 4-octet format is used. Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 16] Internet Draft March 2003 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Router ID The same value as the Router ID used in OSPFv2 for IPv4 or in OSPF for IPv6. When the protocol type is IS-IS for IPv4 (3) or IS-IS for IPv6 (5), the following 8-octet format is used. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + System ID +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ System ID The same value as the System ID used in IS- IS for IPv4 (3) or in IS-IS for IPv6 (5). 7.4. Action on Receiving Crankback Information 7.4.1 Reroute Attempts As described in section 3, a node receiving crankback information in an error response must first check to see whether it is allowed to perform rerouting. This is indicated by the Rerouting Flags in the LSP setup request. If a node is not allowed to perform rerouting it should forward the error upstream, or if it is the ingress report the LSP as having failed. If rerouting is allowed, the node should attempt to compute a path to the destination using the constraints of the original (received) explicit path excluding the failed/blocked node/link. The new path should be added to an LSP setup request as an explicit route and signaled. LSRs performing crankback rerouting should store all received crankback information for an LSP until the LSP is successfully established or until the node abandons its attempts to reroute the LSP. This allows it to combine crankback information from multiple failures when computing a new path. Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 17] Internet Draft March 2003 7.4.2 Location Identifiers of Blocked Links or Nodes In order to compute an alternate path by crankback rerouting, it is necessary to identify where blocked links or nodes are. The common identifier of each link or node in an MPLS network should be specified. Both protocol-independent and protocol- dependent identifiers may be specified. Although a general identifier that is independent of other protocols is preferable, there are a couple of restrictions on its use as described in the following subsection. In link state protocols such as OSPF [OSPF] and IS-IS [ISIS], each link and node in a network can be uniquely identified. For example, the OSPF protocol uses Router ID as the node identifier and the combination of Router ID and Link ID as the link identifier. If the topology and resource information obtained by OSPF advertisements is used to compute a constraint-based path, the location of a blockage can be represented by such identifiers. Routing-protocol-specific link or node identifiers that can be used for multiple routing protocols. Note that, when the routing-protocol-specific link identifiers are used, the Routing Flag on the LSP setup request must have been set to 0010 or 0100 (or both), which implies support for ABR or segment-based rerouting (hierarchical rerouting). In this draft, we specify routing protocol specific link and node identifiers for OSPFv2 for IPv4, IS-IS for IPv4, OSPF for IPv6, and IS-IS for IPv6. These identifiers may only be used if segment-based rerouting (hierarchical rerouting) is supported, as indicated by the Routing Behavior flag on the LSP setup request. If the link blockage occurs in the upstream direction because the downstream node has no resources available on that link, the downstream node can use the LSP setup request message-sender's IP address to generate an ER-TLV for the upstream node (it can use this generated ER-Hop TLV with the first ER-Hop TLV to identify the link). 7.4.3 Locating Errors within Loose or Abstract Nodes The explicit route on the original LSP setup request may contain a loose hop or an Abstract Node. In these cases, the crankback information may refer to links or nodes that were not in the original explicit route. In order to compute a new path, the repair point may need to identify the pair of hops (or nodes) in the explicit route between which the error/blockage occurred. Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 18] Internet Draft March 2003 To assist this, the crankback information reports the top two hops of the explicit route as received at the reporting node. The first hop will likely identify the node or the link, the second hop will identify a 'next' hop from the original explicit route. 7.4.4 When Rerouting Fails When a node cannot or chooses not to perform crankback rerouting it must forward the error response further upstream. However, when a node was responsible for expanding or replacing the explicit route as the LSP setup was processed it MUST update the crankback information with regard to the explicit route that it received. Only if this is done will the upstream nodes stand a chance of successfully routing around the problem. 7.5. Limiting Rerouting Attempts Each repair point should apply a locally configurable limit to the number of attempts it makes to reroute an LSP. This helps to prevent excessive network usage in the event of significant faults and allows back-off to other repair points which may have a better chance of routing around the problem. 7.5.1 New Status Codes for Rerouting A new status/error code is used to identify that a node has abandoned crankback rerouting because a it has reached a threshold for retry attempts. A node receiving an error response with this status code MAY also attempt crankback rerouting, but it is RECOMMENDED that such attempts be limited to the ingress LSR. 8. RSVP-TE Extensions for Crankback 8.1. Overview Crankback rerouting is appropriate for use with RSVP-TE. 1) Path establishment may fail because of an inability to route, perhaps because links are down. In this case a PathErr is returned to the initiator. 2) Path establishment may fail because resources are unavailable. This is particularly relevant in GMPLS where explicit label control may be in use. Again, a PathErr is returned to the initiator. Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 19] Internet Draft March 2003 3) Resource reservation may fail on the reverse path, as the Resv is processed, and resources are reserved. If resources are not available on the required link or at a specific node, a ResvErr message is returned to the egress node indicating "Admission Control failure" [RSVP]. The egress is allowed to change the Rspec and try again, but in the event that this is not practical or not supported, the egress may choose to take any one of the following actions. - Ignore the situation and allow recovery to happen through Path refresh and refresh timeout [RSVP]. - Send a PathErr towards router-A indicating "Admission Control failure". - Send ResvTear towards router-A to abort the LSP setup. Note that in multi-area networks, the ResvErr might be intercepted and acted on at an area border router. 4) It is also possible to make resource reservations on the forward path as the Path message is processed. This choice is made in any RSVP-TE implementations and is compatible with LSP setup in optical networks [GMPLS]. In this case if resources are not available, a PathErr message is returned to router-A indicating "Admission Control failure". Crankback information would be useful to an upstream node (such as the ingress) if it is supplied on a PathErr or a Notify message that is sent upstream. 8.1.1 ResvErr Processing As described above, the resource allocation failure for RSVP-TE may occur on the reverse path when the Resv message is being processed. In this case, it is still useful to collect the crankback information and return it to the ingress LSR. However, it is the intention of RSVP is that such errors are propagated to the egress using a ResvErr message to allow the egress the option of re- issuing the Resv with different resource requirements (although not on an alternate path). This means that a PathErr with crankback information must not be issued as soon as the error is detected at a transit node, but that the crankback information must be encoded in the ResvErr and passed back to the egress for action. When a ResvErr carrying crankback information is received at an egress LSR, the egress LSR MAY ignore this object and perform the same actions as for any other ResvErr. However, if the egress LSR supports the crankback extensions defined in this draft, and after all local recovery procedures have failed, it SHOULD generate a PathErr message carrying the crankback information and send it to the ingress LSR. Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 20] Internet Draft March 2003 If a ResvErr reports on more than one filter spec (because the Resv carried more than one filter spec) then only one set of crankback information should be present in the ResvErr and it should apply to all filter specs carried. In this case it may be necessary to generate more than one PathErr according to the normal rules of RSVP. 8.1.2 Notify Message Processing [GMPLS-RSVP] defines a new message, the Notify message, to enhance error reporting in RSVP-TE networks. The Notify message is sent to addresses requested on the Path and Resv messages. These addresses could (but need not) identify the ingress and egress LSRs respectively. When a network error occurs, such as the failure of link hardware, the LSRs that detect the error MAY send Notify messages to the requested addresses. The type of error that causes a Notify message to be sent is an implementation detail. The Notify message is not intended to replace the PathErr and ResvErr messages. In the event of a failure an LSR that supports [GMPLS- RSVP] and the crankback extensions defined in this draft MAY choose to send a Notify message carrying crankback information. This would ensure a speedier report of the error to the ingress/egress LSRs and might make LSP restoration faster. 8.2. Indication of Rerouting Behavior The behavior specified by the Routing Flag of section 7.1 is achieved in RSVP-TE by a change to the LSP_TUNNEL Session Attribute Object. New values for the Flags field are defined. The object is now specified as follows. class = SESSION_ATTRIBUTE, LSP_TUNNEL C-Type = 7 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Setup Prio | Holding Prio | Flags | Name Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // Session Name (NULL padded display string) // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 21] Internet Draft March 2003 Setup Priority The priority of the session with respect to taking resources, in the range of 0 to 7. The value 0 is the highest priority. The Setup Priority is used in deciding whether this session can preempt another session. Holding Priority The priority of the session with respect to holding resources, in the range of 0 to 7. The value 0 is the highest priority. Holding Priority is used in deciding whether this session can be preempted by another session. Flags 0x01 Local protection desired This flag permits transit routers to use a local repair mechanism which may result in violation of the explicit route object. When a fault is detected on an adjacent downstream link or node, a transit router can reroute traffic for fast service restoration. 0x02 Label recording desired This flag indicates that label information should be included when doing a route record. 0x04 SE Style desired This flag indicates that the tunnel ingress node may choose to reroute this tunnel without tearing it down. A tunnel egress node SHOULD use the SE Style when responding with a Resv message. 0x08 End-to-end rerouting desired This flag indicates the end-to-end rerouting behavior for an LSP under establishment. This can also be used for specifying the behavior of end-to- end LSP restoration for established LSPs. 0x10 ABR (hierarchical) rerouting desired. This flag indicates the Area Border Router rerouting (hierarchical rerouting) behavior for an LSP under establishment. This can also be used for specifying the segment-based (hierarchical) LSP restoration for established LSPs. Iwata, et al. draft-iwata-mpls-crankback-05.txt [Page 22] Internet Draft March 2003 0x20 Segment-based (hierarchical) rerouting desired. This flag indicates the segment-based rerouting (hierarchical rerouting) behavior for an LSP under establishment. This can also be used for specifying the segment-based (hierarchical) LSP restoration for established LSPs. Name Length The length of the display string before padding, in bytes. Session Name A null padded string of characters. 8.3. Rerouting Object We define a new object, the "Rerouting Object" (analogous to the "Rerouting TLV" defined for CR-LDP), to carry crankback information. The new object is added to the definition of the PathErr, ResvErr and Notify messages, specifying it as optional. The altered messages are defined as follows. Note that the forms used are from [GMPLS-RSVP] - the inclusion of [ ] is equally applicable to standard RSVP-TE [RSVP-TE]. ::= [ ] [ [ | ] ... ] [ ] [ ... ] [ ] [ ...] [ ] ::= [ ] [ [ | ] ... ] [ ] [ ] [ ... ] [ ] [ ...]