| rfc9612.original | rfc9612.txt | |||
|---|---|---|---|---|
| MPLS Working Group G. Mirsky | Internet Engineering Task Force (IETF) G. Mirsky | |||
| Internet-Draft Ericsson | Request for Comments: 9612 Ericsson | |||
| Intended status: Experimental J. Tantsura | Category: Experimental J. Tantsura | |||
| Expires: 14 November 2024 NVIDIA | ISSN: 2070-1721 NVIDIA | |||
| I. Varlashkin | I. Varlashkin | |||
| M. Chen | M. Chen | |||
| Huawei | Huawei | |||
| 13 May 2024 | July 2024 | |||
| Bidirectional Forwarding Detection (BFD) Directed Return Path for MPLS | Bidirectional Forwarding Detection (BFD) Reverse Path for MPLS Label | |||
| Label Switched Paths (LSPs) | Switched Paths (LSPs) | |||
| draft-ietf-mpls-bfd-directed-31 | ||||
| Abstract | Abstract | |||
| Bidirectional Forwarding Detection (BFD) is expected to be able to | Bidirectional Forwarding Detection (BFD) is expected to be able to | |||
| monitor a wide variety of encapsulations of paths between systems. | monitor a wide variety of encapsulations of paths between systems. | |||
| When a BFD session monitors an explicitly routed unidirectional path | When a BFD session monitors an explicitly routed unidirectional path, | |||
| there may be a need to direct the egress BFD peer to use a specific | there may be a need to direct the egress BFD peer to use a specific | |||
| path for the reverse direction of the BFD session. This document | path for the reverse direction of the BFD session. This document | |||
| describes an extension to the MPLS Label Switched Path (LSP) echo | describes an extension to the MPLS Label Switched Path (LSP) echo | |||
| request that allows a BFD system to request that the remote BFD peer | request that allows a BFD system to request that the remote BFD peer | |||
| transmits BFD control packets over the specified LSP. | transmit BFD control packets over the specified LSP. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This document is not an Internet Standards Track specification; it is | |||
| provisions of BCP 78 and BCP 79. | published for examination, experimental implementation, and | |||
| evaluation. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document defines an Experimental Protocol for the Internet | |||
| and may be updated, replaced, or obsoleted by other documents at any | community. This document is a product of the Internet Engineering | |||
| time. It is inappropriate to use Internet-Drafts as reference | Task Force (IETF). It represents the consensus of the IETF | |||
| material or to cite them other than as "work in progress." | community. It has received public review and has been approved for | |||
| publication by the Internet Engineering Steering Group (IESG). Not | ||||
| all documents approved by the IESG are candidates for any level of | ||||
| Internet Standard; see Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 14 November 2024. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9612. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2024 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 1.1. Conventions used in this document . . . . . . . . . . . . 3 | 1.1. Conventions Used in This document | |||
| 1.1.1. Terminology . . . . . . . . . . . . . . . . . . . . . 3 | 1.1.1. Terminology | |||
| 1.1.2. Requirements Language . . . . . . . . . . . . . . . . 3 | 1.1.2. Requirements Language | |||
| 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Problem Statement | |||
| 3. Control of the Reverse BFD Path . . . . . . . . . . . . . . . 4 | 3. Control of the BFD Reverse Path | |||
| 3.1. BFD Reverse Path TLV . . . . . . . . . . . . . . . . . . 4 | 3.1. BFD Reverse Path TLV | |||
| 3.2. Return Codes . . . . . . . . . . . . . . . . . . . . . . 6 | 3.2. Return Codes | |||
| 3.3. Failure Characterization . . . . . . . . . . . . . . . . 6 | 3.3. Failure Characterization | |||
| 4. Use Case Scenario . . . . . . . . . . . . . . . . . . . . . . 7 | 4. Use Case Scenario | |||
| 5. Operational Considerations . . . . . . . . . . . . . . . . . 7 | 5. Operational Considerations | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 6. IANA Considerations | |||
| 6.1. BFD Reverse Path TLV . . . . . . . . . . . . . . . . . . 8 | 6.1. BFD Reverse Path TLV | |||
| 6.2. Return Code . . . . . . . . . . . . . . . . . . . . . . . 8 | 6.2. Return Codes | |||
| 7. Implementation Status . . . . . . . . . . . . . . . . . . . . 9 | 7. Security Considerations | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 8. Normative References | |||
| 9. Normative References . . . . . . . . . . . . . . . . . . . . 10 | Acknowledgments | |||
| 10. Informative References . . . . . . . . . . . . . . . . . . . 11 | Authors' Addresses | |||
| Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 11 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
| 1. Introduction | 1. Introduction | |||
| [RFC5880], [RFC5881], and [RFC5883] established the Bidirectional | [RFC5880], [RFC5881], and [RFC5883] established the Bidirectional | |||
| Forwarding Detection (BFD) protocol for IP networks. [RFC5884] and | Forwarding Detection (BFD) protocol for IP networks. [RFC5884] and | |||
| [RFC7726] set rules for using BFD Asynchronous mode over MPLS Label | [RFC7726] set rules for using BFD Asynchronous mode over MPLS Label | |||
| Switched Paths (LSPs), while not defining means to control the path | Switched Paths (LSPs), while not defining means to control the path | |||
| an egress BFD system uses to send BFD control packets towards the | that an egress BFD system uses to send BFD control packets towards | |||
| ingress BFD system. | the ingress BFD system. | |||
| When BFD is used to detect defects of the traffic-engineered LSP, the | When BFD is used to detect defects of the traffic-engineered LSP, the | |||
| path of the BFD control packets transmitted by the egress BFD system | path of the BFD control packets transmitted by the egress BFD system | |||
| toward the ingress may be disjoint from the monitored LSP in the | toward the ingress may be disjoint from the monitored LSP in the | |||
| forward direction. The fact that BFD control packets are not | forward direction. The fact that BFD control packets are not | |||
| guaranteed to follow the same links and nodes in both forward and | guaranteed to follow the same links and nodes in both forward and | |||
| reverse directions may be one of the factors contributing to | reverse directions may be one of the factors contributing to false | |||
| producing false positive defect notifications, i.e., false alarms, at | positive defect notifications (i.e., false alarms) at the ingress BFD | |||
| the ingress BFD peer. Ensuring that both directions of the BFD | peer. Ensuring that both directions of the BFD session use co-routed | |||
| session use co-routed paths may, in some environments, improve the | paths may, in some environments, improve the determinism of the | |||
| determinism of the failure detection and localization. | failure detection and localization. | |||
| This document defines the BFD Reverse Path TLV as an extension to LSP | This document defines the BFD Reverse Path TLV as an extension to LSP | |||
| Ping [RFC8029] and proposes that it is to be used to instruct the | ping [RFC8029] and proposes that it be used to instruct the egress | |||
| egress BFD system to use an explicit path for its BFD control packets | BFD system to use an explicit path for its BFD control packets | |||
| associated with a particular BFD session. The TLV will be allocated | associated with a particular BFD session. IANA has registered this | |||
| from the TLV and sub-TLV registry defined in [RFC8029]. As a special | TLV in the "TLVs" registry defined by [RFC8029] (see Section 6.1). | |||
| case, forward and reverse directions of the BFD session can form a | As a special case, forward and reverse directions of the BFD session | |||
| bi-directional co-routed associated channel. | can form a bidirectional co-routed associated channel. | |||
| The LSP ping extension, described in this document, was developed and | The LSP ping extension described in this document was developed and | |||
| implemented resulting from the operational experiment. The lessons | implemented as a result of an operational experiment. The lessons | |||
| learned from the operational experiment enabled the use between | learned from the operational experiment enabled the use of this | |||
| systems conforming to this specification. More implementations are | extension between systems conforming to this specification. Further | |||
| encouraged to understand better the operational impact of the | implementation is encouraged to better understand the operational | |||
| mechanism described in the document. | impact of the mechanism described in the document. | |||
| 1.1. Conventions used in this document | 1.1. Conventions Used in This document | |||
| 1.1.1. Terminology | 1.1.1. Terminology | |||
| BFD: Bidirectional Forwarding Detection | BFD: Bidirectional Forwarding Detection | |||
| FEC: Forwarding Equivalency Class | FEC: Forwarding Equivalence Class | |||
| LSP: Label Switched Path | LSP: Label Switched Path | |||
| LSR: Label-Switching router | LSR: Label Switching Router | |||
| 1.1.2. Requirements Language | 1.1.2. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 2. Problem Statement | 2. Problem Statement | |||
| When BFD is used to monitor an explicitly routed unidirectional path, | When BFD is used to monitor an explicitly routed unidirectional path | |||
| e.g., MPLS-TE LSP, BFD control packets in the forward direction would | (e.g., MPLS-TE LSP), BFD control packets in the forward direction | |||
| be in-band using the mechanism defined in [RFC5884]. However, the | would be in-band using the mechanism defined in [RFC5884]. However, | |||
| reverse direction of the BFD session would follow the shortest path | the reverse direction of the BFD session would follow the shortest | |||
| route, which could be completely or partially disjoint from the | path route, which could be completely or partially disjoint from the | |||
| forward path. This creates the potential for the failure of a | forward path. This creates the potential for the failure of a | |||
| disjoint resource on the reverse path to trigger a BFD failure | disjoint resource on the reverse path to trigger a BFD failure | |||
| detection, even though the forward path is unaffected. | detection, even though the forward path is unaffected. | |||
| If the reverse path is congruent with the forward path, the potential | If the reverse path is congruent with the forward path, the potential | |||
| for such false positives is greatly reduced. For this purpose, this | for such false positives is greatly reduced. For this purpose, this | |||
| specification provides a means for the egress BFD peer to be | specification provides a means for the egress BFD peer to be | |||
| instructed to use a specific path for BFD control packets. | instructed to use a specific path for BFD control packets. | |||
| 3. Control of the Reverse BFD Path | 3. Control of the BFD Reverse Path | |||
| To bootstrap a BFD session over an MPLS LSP, LSP ping, defined in | To bootstrap a BFD session over an MPLS LSP, LSP ping [RFC8029] MUST | |||
| [RFC8029], MUST be used with BFD Discriminator TLV [RFC5884]. This | be used with the BFD Discriminator TLV [RFC5884]. This document | |||
| document defines a new TLV, BFD Reverse Path TLV, that MAY contain | defines a new TLV, the BFD Reverse Path TLV, that can be used to | |||
| none, one or more sub-TLVs that can be used to carry information | carry information about the reverse path for the BFD session that is | |||
| about the reverse path for the BFD session that is specified by the | specified by the value in the BFD Discriminator TLV. The BFD Reverse | |||
| value in BFD Discriminator TLV. | Path TLV MAY contain zero or more sub-TLVs. | |||
| 3.1. BFD Reverse Path TLV | 3.1. BFD Reverse Path TLV | |||
| The BFD Reverse Path TLV is an optional TLV within the LSP ping | The BFD Reverse Path TLV is an optional TLV within the LSP ping | |||
| [RFC8029]. However, if used, the BFD Discriminator TLV MUST be | [RFC8029]. However, if used, the BFD Discriminator TLV MUST be | |||
| included in an Echo Request message as well. If the BFD | included in an echo request message as well. If the BFD | |||
| Discriminator TLV is not present when the BFD Reverse Path TLV is | Discriminator TLV is not present when the BFD Reverse Path TLV is | |||
| included; then it MUST be treated as malformed Echo Request, as | included, then it MUST be treated as a malformed echo request, as | |||
| described in [RFC8029]. | described in [RFC8029]. | |||
| The BFD Reverse Path TLV carries information about the path onto | The BFD Reverse Path TLV carries information about the path onto | |||
| which the egress BFD peer of the BFD session referenced by the BFD | which the egress BFD peer of the BFD session referenced by the BFD | |||
| Discriminator TLV MUST transmit BFD control packets. The format of | Discriminator TLV MUST transmit BFD control packets. The format of | |||
| the BFD Reverse Path TLV is as presented in Figure 1. | the BFD Reverse Path TLV is presented in Figure 1. | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | BFD Reverse Path TLV Type | Length | | | BFD Reverse Path TLV Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Reverse Path | | | Reverse Path | | |||
| ~ ~ | ~ ~ | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 1: BFD Reverse Path TLV | Figure 1: BFD Reverse Path TLV | |||
| BFD Reverse Path TLV Type is two octets in length and has a value of | BFD Reverse Path TLV Type: | |||
| TBD1 (to be assigned by IANA as requested in Section 6). | This two-octet field has a value of 16384 (see Section 6). | |||
| Length field is two octets long and defines the length in octets of | Length: | |||
| the Reverse Path field. | This two-octet field defines the length in octets of the Reverse | |||
| Path field. | ||||
| Reverse Path field contains none, one, or more sub-TLVs. Only non- | Reverse Path: | |||
| multicast Target FEC Stack sub-TLVs (already defined, or to be | This field contains zero or more sub-TLVs. Only non-multicast | |||
| defined in the future) for TLV Types 1, 16, and 21 of MPLS LSP Ping | Target FEC Stack sub-TLVs (already defined or to be defined in the | |||
| Parameters registry are permitted to be used in this field. Any | future) for TLV Types 1, 16, and 21 in the "Multiprotocol Label | |||
| other sub-TLV MUST NOT be used. (This implies that Multicast Target | Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters" | |||
| FEC Stack sub-TLVs, i.e., p2mp and mp2mp, are not permitted in the | registry are permitted to be used in this field. Other sub-TLVs | |||
| Reverse Path field.) If the egress Label-Switching Router (LSR) | MUST NOT be used. (This implies that multicast Target FEC Stack | |||
| finds multicast Target Stack sub-TLV, it MUST send echo reply with | sub-TLVs, e.g., the Multicast P2MP LDP FEC Stack sub-TLV and the | |||
| the received Reverse Path TLV, BFD Discriminator TLV and set the | Multicast MP2MP LDP FEC Stack sub-TLV, are not permitted in the | |||
| Return Code to "Inappropriate Target FEC Stack sub-TLV present" | Reverse Path field.) | |||
| (Section 3.2). The BFD Reverse Path TLV includes none, one or more | ||||
| sub-TLVs. However, the number of sub-TLVs in the Reverse Path field | ||||
| MUST be limited. The default limit is 128 sub-TLV entries, but an | ||||
| implementation MAY be able to control that limit. An empty BFD | ||||
| Reverse Path TLV, i.e., no sub-TLVs present, is used as withdrawal of | ||||
| any previously set reverse path for the BFD session identified in the | ||||
| BFD Discriminator TLV. If no sub-TLVs are found in the BFD Reverse | ||||
| Path TLV, the egress BFD peer MUST revert to using the local policy- | ||||
| based decision as described in Section 7 of [RFC5884], i.e., routed | ||||
| over IP network. | ||||
| If the egress peer LSR cannot find the path specified in the Reverse | If the egress LSR finds a multicast Target FEC Stack sub-TLV, it MUST | |||
| Path TLV, it MUST send Echo Reply with the received BFD Discriminator | send an echo reply with the received BFD Reverse Path TLV and BFD | |||
| TLV, Reverse Path TLV, and set the Return Code to "Failed to | Discriminator TLV and set the Return Code to 192 ("Inappropriate | |||
| establish the BFD session. The specified reverse path was not found" | Target FEC Stack sub-TLV present") (see Section 3.2). The BFD | |||
| (Section 3.2). If an implementation provides additional | Reverse Path TLV includes zero or more sub-TLVs. However, the number | |||
| configuration options, these can control actions at the egress BFD | of sub-TLVs in the Reverse Path field MUST be limited. The default | |||
| peer, including when the path specified in the Reverse Path TLV | limit is 128 sub-TLV entries, but an implementation MAY be able to | |||
| cannot be found. For example, optionally, if the egress peer LSR | control that limit. An empty BFD Reverse Path TLV (i.e., a BFD | |||
| cannot find the path specified in the Reverse Path TLV, it MAY | Reverse Path TLV with no sub-TLVs) is used to withdraw any previously | |||
| establish the BFD session over an IP network, as defined in | set reverse path for the BFD session identified in the BFD | |||
| [RFC5884]. Note that the return code required by the MUST clause | Discriminator TLV. If no sub-TLVs are found in the BFD Reverse Path | |||
| does not preclude the session from being established over a different | TLV, the egress BFD peer MUST revert to using the decision based on | |||
| path as discussed in the MAY clause. | local policy, i.e., routing over an IP network, as described in | |||
| Section 7 of [RFC5884]. | ||||
| The BFD Reverse Path TLV MAY be used in the bootstrapping of a BFD | If the egress peer LSR cannot find the path specified in the BFD | |||
| session process described in Section 6 of [RFC5884]. A system that | Reverse Path TLV, it MUST send an echo reply with the received BFD | |||
| supports this specification MUST support using the BFD Reverse Path | Discriminator TLV and BFD Reverse Path TLV and set the Return Code to | |||
| TLV after the BFD session has been established. If a system that | 193 ("Failed to establish the BFD session. The specified reverse | |||
| supports this specification receives an LSP Ping with the BFD | path was not found.") (see Section 3.2). If an implementation | |||
| provides additional configuration options, these can control actions | ||||
| at the egress BFD peer, including when the path specified in the BFD | ||||
| Reverse Path TLV cannot be found. For example, if the egress peer | ||||
| LSR cannot find the path specified in the BFD Reverse Path TLV, it | ||||
| MAY establish the BFD session over an IP network, as defined in | ||||
| [RFC5884]. Note that the Return Code required by the "MUST" clause | ||||
| in this paragraph does not preclude the session from being | ||||
| established over a different path as discussed in the "MAY" clause. | ||||
| The BFD Reverse Path TLV MAY be used in the process of bootstrapping | ||||
| the BFD session as described in Section 6 of [RFC5884]. A system | ||||
| that supports this specification MUST support using the BFD Reverse | ||||
| Path TLV after the BFD session has been established. If a system | ||||
| that supports this specification receives an LSP ping with the BFD | ||||
| Discriminator TLV and no BFD Reverse Path TLV even though the reverse | Discriminator TLV and no BFD Reverse Path TLV even though the reverse | |||
| path for the specified BFD session has been established according to | path for the specified BFD session was established according to the | |||
| the previously received BFD Reverse Path TLV, the egress BFD peer | previously received BFD Reverse Path TLV, the egress BFD peer MUST | |||
| MUST transition to transmitting periodic BFD Control messages as | transition to transmitting periodic BFD Control messages as described | |||
| defined in Section 7 of [RFC5884]. If a BFD system that received an | in Section 7 of [RFC5884]. If a BFD system that received an LSP ping | |||
| LSP Ping with the BFD Reverse Path TLV does not support this | with the BFD Reverse Path TLV does not support this specification, it | |||
| specification, it will "result in the Return Code of 2 ("One or more | will result in an echo response with the Return Code set to 2 ("One | |||
| of the TLVs was not understood") being sent in the echo response" | or more of the TLVs was not understood"), as described in Section 3 | |||
| (Section 3 of [RFC8029]). | of [RFC8029]. | |||
| 3.2. Return Codes | 3.2. Return Codes | |||
| This document defines the following Return Codes for MPLS LSP Echo | This document defines the following Return Codes for the MPLS LSP | |||
| Reply: | echo reply: | |||
| * "Inappropriate Target FEC Stack sub-TLV present" (TBD3). When | "Inappropriate Target FEC Stack sub-TLV present" (192): | |||
| multicast Target FEC Stack sub-TLV found in the received Echo | When a multicast Target FEC Stack sub-TLV is found in the received | |||
| Request, the egress BFD peer sends an Echo Reply with the return | echo request, the egress BFD peer sends an echo reply with the | |||
| code set to "Inappropriate Target FEC Stack sub-TLV present" to | Return Code set to 192 ("Inappropriate Target FEC Stack sub-TLV | |||
| the ingress BFD peer Section 3.1. | present") to the ingress BFD peer, as described in Section 3.1. | |||
| * "Failed to establish the BFD session. The specified reverse path | "Failed to establish the BFD session. The specified reverse path | |||
| was not found" (TBD4). When a specified reverse path is | was not found." (193): | |||
| unavailable, the egress BFD peer sends an Echo Reply with the | When a specified reverse path is unavailable, the egress BFD peer | |||
| return code set to "Failed to establish the BFD session. The | sends an echo reply with the Return Code set to 193 ("Failed to | |||
| specified reverse path was not found" to the ingress BFD peer | establish the BFD session. The specified reverse path was not | |||
| Section 3.1. | found.") to the ingress BFD peer, as described in Section 3.1. | |||
| 3.3. Failure Characterization | 3.3. Failure Characterization | |||
| A failure detected by a BFD session that uses the BFD Reverse Path | A failure detected by a BFD session that uses the BFD Reverse Path | |||
| TLV could be due to a change in the FEC used in the BFD Reverse Path | TLV could be due to a change in the FEC used in the BFD Reverse Path | |||
| TLV. The ingress BFD peer, upon detection of the network failure, | TLV. Upon detection of the network failure, the ingress BFD peer | |||
| MUST transmit the LSP Ping Echo request with Return Path TLV to | MUST transmit the LSP ping echo request with the Reply Path TLV | |||
| verify whether the FEC is still valid. If the failure was caused by | [RFC7110] to verify whether the FEC is still valid. If the failure | |||
| the change in the FEC used for the reverse direction of the BFD | was caused by a change in the FEC used for the reverse direction of | |||
| session, the ingress BFD peer MUST re-direct the reverse path of the | the BFD session, the ingress BFD peer MUST redirect the reverse path | |||
| BFD session using another FEC in BFD Reverse Path TLV, and notify an | of the BFD session using another FEC in the BFD Reverse Path TLV and | |||
| operator. | notify an operator. | |||
| 4. Use Case Scenario | 4. Use Case Scenario | |||
| In the network presented in Figure 2, ingress LSR peer A monitors two | In the network presented in Figure 2, ingress LSR peer A monitors two | |||
| tunnels to the egress LSR peer H: A-B-C-D-G-H and A-B-E-F-G-H. To | tunnels to egress LSR peer H: A-B-C-D-G-H and A-B-E-F-G-H. To | |||
| bootstrap a BFD session to monitor the first tunnel, the ingress LSR | bootstrap a BFD session to monitor the first tunnel, ingress LSR peer | |||
| peer A includes a BFD Discriminator TLV with Discriminator value | A includes a BFD Discriminator TLV with a Discriminator value (e.g., | |||
| (e.g., foobar-1). Peer A includes a BFD Reverse Path TLV referencing | foobar-1) [RFC7726]. Ingress LSR peer A includes a BFD Reverse Path | |||
| the H-G-D-C-B-A tunnel to control the path from the egress LSR. To | TLV referencing the H-G-D-C-B-A tunnel to control the path from the | |||
| bootstrap a BFD session to monitor the second tunnel, ingress LSR | egress LSR. To bootstrap a BFD session to monitor the second tunnel, | |||
| peer A, includes a BFD Discriminator TLV with a different | ingress LSR peer A includes a BFD Discriminator TLV with a different | |||
| Discriminator value (e.g., foobar-2) [RFC7726] and a BFD Reverse Path | Discriminator value (e.g., foobar-2) and a BFD Reverse Path TLV that | |||
| TLV that references the H-G-F-E-B-A tunnel. | references the H-G-F-E-B-A tunnel. | |||
| C---------D | C---------D | |||
| | | | | | | |||
| A-------B G-----H | A-------B G-----H | |||
| | | | | | | |||
| E---------F | E---------F | |||
| Figure 2: Use Case for BFD Reverse Path TLV | Figure 2: Use Case for BFD Reverse Path TLV | |||
| If an operator needs egress LSR peer H to monitor a path to the | If an operator needs egress LSR peer H to monitor a path to ingress | |||
| ingress LSR peer A, e.g., H-G-D-C-B-A tunnel, then by looking up the | LSR peer A, e.g., the H-G-D-C-B-A tunnel, then by looking up the list | |||
| list of known Reverse Paths, it MAY find and use the existing BFD | of known reverse paths, it MAY find and use the existing BFD session. | |||
| session. | ||||
| 5. Operational Considerations | 5. Operational Considerations | |||
| When an explicit path is set either as Static or RSVP-TE LSP, | When an explicit path is set as either Static or RSVP-TE LSP, | |||
| corresponding sub-TLVs, defined in [RFC7110], MAY be used to identify | corresponding sub-TLVs (defined in [RFC7110]) MAY be used to identify | |||
| the explicit reverse path for the BFD session. If a particular set | the explicit reverse path for the BFD session. If a particular set | |||
| of sub-TLVs composes the Return Path TLV [RFC7110] and does not | of sub-TLVs composes the Reply Path TLV [RFC7110] and does not | |||
| increase the length of the Maximum Transmission Unit for the given | increase the length of the Maximum Transmission Unit for the given | |||
| LSP, that set can be safely used in the BFD Reverse Path TLV. If any | LSP, that set can be safely used in the BFD Reverse Path TLV. If any | |||
| of defined in [RFC7110] sub-TLVs used in BFD Reverse Path TLV, then | of the sub-TLVs defined in [RFC7110] are used in the BFD Reverse Path | |||
| the periodic verification of the control plane against the data | TLV, then the periodic verification of the control plane against the | |||
| plane, as recommended in Section 4 of [RFC5884], MUST use the Return | data plane, as recommended in Section 4 of [RFC5884], MUST use the | |||
| Path TLV, as per [RFC7110], with that sub-TLV. By using the LSP Ping | Reply Path TLV, as per [RFC7110], with that sub-TLV. By using the | |||
| with Return Path TLV, an operator monitors whether at the egress BFD | LSP ping with the Reply Path TLV, an operator monitors whether the | |||
| node the reverse LSP is mapped to the same FEC as the BFD session. | reverse LSP is mapped to the same FEC as the BFD session at the | |||
| Selection and control of the rate of LSP Ping with Return Path TLV | egress BFD node. Selection and control of the rate of the LSP ping | |||
| follows the recommendation of [RFC5884]: "The rate of generation of | with the Reply Path TLV follows the recommendation in [RFC5884]: | |||
| these LSP Ping Echo request messages SHOULD be significantly less | ||||
| than the rate of generation of the BFD Control packets. An | ||||
| implementation MAY provide configuration options to control the rate | ||||
| of generation of the periodic LSP Ping Echo request messages." | ||||
| Suppose an operator planned network maintenance activity that | ||||
| possibly affects FEC used in the BFD Reverse Path TLV. In that case, | ||||
| the operator can avoid the unnecessary disruption by using the LSP | ||||
| Ping with a new FEC in the BFD Reverse Path TLV. But in some | ||||
| scenarios, proactive measures cannot be taken. Because the frequency | ||||
| of LSP Ping messages will be lower than the defect detection time | ||||
| provided by the BFD session. As a result, a change in the reverse- | ||||
| path FEC will first be detected as the BFD session's failure. An | ||||
| operator will be notified as described in Section 3.3. | ||||
| 6. IANA Considerations | ||||
| 6.1. BFD Reverse Path TLV | ||||
| The IANA is requested to assign a new value for BFD Reverse Path TLV | ||||
| from the 16384-31739 range in the "TLVs" registry of "Multiprotocol | ||||
| Label Switching Architecture (MPLS) Label Switched Paths (LSPs) Ping | ||||
| Parameters" registry. | ||||
| +=======+=======+=============+====================================+ | ||||
| |Type |TLV |Reference | Sub-TLV Registry | | ||||
| | |Name | | | | ||||
| +=======+=======+=============+====================================+ | ||||
| | (TBD1)|BFD |This document| Only non-multicast sub-TLV | | ||||
| | |Reverse| | (already defined or to be defined | | ||||
| | |Path | | in the future) at | | ||||
| | |TLV | | [https://www.iana.org/assignments/ | | ||||
| | | | | mpls-lsp-ping-parameters/mpls-lsp- | | ||||
| | | | | ping-parameters.xml#sub-tlv- | | ||||
| | | | | 1-16-21] | | ||||
| | | | | (https://www.iana.org/assignments/ | | ||||
| | | | | mpls-lsp-ping-parameters/mpls-lsp- | | ||||
| | | | | ping-parameters.xml#sub-tlv- | | ||||
| | | | | 1-16-21) are permitted to be used | | ||||
| | | | | in this field. Any other sub-TLV | | ||||
| | | | | MUST NOT be used. | | ||||
| +-------+-------+-------------+------------------------------------+ | ||||
| Table 1: New BFD Reverse Type TLV | ||||
| 6.2. Return Code | ||||
| The IANA is requested to assign new Return Code values from the range | ||||
| 192-247 of the "Return Codes" registry of the "Multi-Protocol Label | ||||
| Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters", as in | ||||
| Table 2. | ||||
| +=========+=============================+===============+ | ||||
| | Value | Description | Reference | | ||||
| +=========+=============================+===============+ | ||||
| | (TBD3) | Inappropriate Target FEC | This document | | ||||
| | | Stack sub-TLV present. | | | ||||
| +---------+-----------------------------+---------------+ | ||||
| | (TBD4) | Failed to establish the BFD | This document | | ||||
| | | session. The specified | | | ||||
| | | reverse path was not found. | | | ||||
| +---------+-----------------------------+---------------+ | ||||
| Table 2: New Return Code | ||||
| 7. Implementation Status | ||||
| Note to RFC Editor: This section MUST be removed before publication | ||||
| of the document. | ||||
| This section records the status of known implementations of the | ||||
| protocol defined by this specification at the time of posting of this | ||||
| Internet-Draft, and is based on a proposal described in [RFC7942]. | ||||
| The description of implementations in this section is intended to | ||||
| assist the IETF in its decision processes in progressing drafts to | ||||
| RFCs. Please note that the listing of any individual implementation | ||||
| here does not imply endorsement by the IETF. Furthermore, no effort | ||||
| has been spent to verify the information presented here that was | ||||
| supplied by IETF contributors. This is not intended as, and must not | ||||
| be construed to be, a catalog of available implementations or their | ||||
| features. Readers are advised to note that other implementations may | ||||
| exist. | ||||
| According to [RFC7942], "this will allow reviewers and working groups | | The rate of generation of these LSP Ping Echo request messages | |||
| to assign due consideration to documents that have the benefit of | | SHOULD be significantly less than the rate of generation of the | |||
| running code, which may serve as evidence of valuable experimentation | | BFD Control packets. An implementation MAY provide configuration | |||
| and feedback that have made the implemented protocols more mature. | | options to control the rate of generation of the periodic LSP Ping | |||
| It is up to the individual working groups to use this information as | | Echo request messages. | |||
| they see fit". | ||||
| - The organization responsible for the implementation: ZTE | Suppose an operator planned a network maintenance activity that | |||
| Corporation. | possibly affects the FEC used in the BFD Reverse Path TLV. In that | |||
| case, the operator can avoid unnecessary disruption by using the LSP | ||||
| ping with a new FEC in the BFD Reverse Path TLV. But in some | ||||
| scenarios, proactive measures cannot be taken because the frequency | ||||
| of LSP ping messages is lower than the defect detection time provided | ||||
| by the BFD session. As a result, a change in the reverse-path FEC | ||||
| will first be detected as the BFD session's failure. An operator | ||||
| will be notified as described in Section 3.3. | ||||
| - The implementation's name ROSng empowers commonly used routers, | 6. IANA Considerations | |||
| e.g., ZXCTN 6000. | ||||
| - A brief general description: A Return Path can be specified for a | 6.1. BFD Reverse Path TLV | |||
| BFD session over RSVP tunnel or LSP. The same can be specified for a | ||||
| backup RSVP tunnel/LSP. | ||||
| The implementation's level of maturity: production. | IANA has assigned the following value for the BFD Reverse Path TLV | |||
| from the 16384-31739 range in the "TLVs" subregistry within the | ||||
| "Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs) | ||||
| Ping Parameters" registry. | ||||
| - Coverage: RSVP LSP (no support for Static LSP) | +=======+=========+===========+====================================+ | |||
| | Type | TLV | Reference | Sub-TLV Registry | | ||||
| | | Name | | | | ||||
| +=======+=========+===========+====================================+ | ||||
| | 16384 | BFD | RFC 9612 | Only non-multicast sub-TLVs | | ||||
| | | Reverse | | (already defined or to be defined | | ||||
| | | Path | | in the future) in the "Sub-TLVs | | ||||
| | | | | for TLV Types 1, 16, and 21" | | ||||
| | | | | registry at | | ||||
| | | | | <https://www.iana.org/assignments/ | | ||||
| | | | | mpls-lsp-ping-parameters/mpls-lsp- | | ||||
| | | | | ping-parameters.xml#sub-tlv- | | ||||
| | | | | 1-16-21> are permitted to be used | | ||||
| | | | | in this field. Other sub-TLVs | | ||||
| | | | | MUST NOT be used. | | ||||
| +-------+---------+-----------+------------------------------------+ | ||||
| - Version compatibility: draft-ietf-mpls-bfd-directed-10. | Table 1: New BFD Reverse Path TLV | |||
| - Licensing: proprietary. | 6.2. Return Codes | |||
| - Implementation experience: simple once you support RFC 7110. | IANA has assigned the following Return Code values from the 192-247 | |||
| range in the "Return Codes" subregistry within the "Multiprotocol | ||||
| Label Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters" | ||||
| registry. | ||||
| - Contact information: Qian Xin qian.xin2@zte.com.cn | +=======+===========================================+===========+ | |||
| | Value | Meaning | Reference | | ||||
| +=======+===========================================+===========+ | ||||
| | 192 | Inappropriate Target FEC Stack sub-TLV | RFC 9612 | | ||||
| | | present | | | ||||
| +-------+-------------------------------------------+-----------+ | ||||
| | 193 | Failed to establish the BFD session. The | RFC 9612 | | ||||
| | | specified reverse path was not found. | | | ||||
| +-------+-------------------------------------------+-----------+ | ||||
| - The date when information about this particular implementation was | Table 2: New Return Codes | |||
| last updated: 12/16/2019 | ||||
| 8. Security Considerations | 7. Security Considerations | |||
| Security considerations discussed in [RFC5880], [RFC5884], [RFC7726], | Security considerations discussed in [RFC5880], [RFC5884], [RFC7726], | |||
| [RFC8029], and [RFC7110] apply to this document. | [RFC8029], and [RFC7110] apply to this document. | |||
| BFD Reverse Path TLV may be exploited as an attack vector by | The BFD Reverse Path TLV may be exploited as an attack vector by | |||
| inflating the number of included sub-TLVs. The number of sub-TLVs | inflating the number of included sub-TLVs. The number of sub-TLVs | |||
| MUST be limited to mitigate that threat. The default limit for the | MUST be limited to mitigate that threat. The default limit for the | |||
| number of sub-TLVs is set in Section 3.1 to 128. An implementation | number of sub-TLVs is set to 128 (see Section 3.1). An | |||
| MAY use a mechanism to control that limit. | implementation MAY use a mechanism to control that limit. | |||
| 9. Normative References | 8. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
| (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | |||
| <https://www.rfc-editor.org/info/rfc5880>. | <https://www.rfc-editor.org/info/rfc5880>. | |||
| skipping to change at page 11, line 31 ¶ | skipping to change at line 440 ¶ | |||
| [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., | [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., | |||
| Aldrin, S., and M. Chen, "Detecting Multiprotocol Label | Aldrin, S., and M. Chen, "Detecting Multiprotocol Label | |||
| Switched (MPLS) Data-Plane Failures", RFC 8029, | Switched (MPLS) Data-Plane Failures", RFC 8029, | |||
| DOI 10.17487/RFC8029, March 2017, | DOI 10.17487/RFC8029, March 2017, | |||
| <https://www.rfc-editor.org/info/rfc8029>. | <https://www.rfc-editor.org/info/rfc8029>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| 10. Informative References | Acknowledgments | |||
| [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | ||||
| Code: The Implementation Status Section", BCP 205, | ||||
| RFC 7942, DOI 10.17487/RFC7942, July 2016, | ||||
| <https://www.rfc-editor.org/info/rfc7942>. | ||||
| Appendix A. Acknowledgments | ||||
| The authors greatly appreciate a thorough review and the most helpful | The authors greatly appreciate the thorough reviews and helpful | |||
| comments from Eric Gray and Carlos Pignataro. The authors much | comments from Eric Gray and Carlos Pignataro. The authors much | |||
| appreciate the help of Qian Xin, who provided information about the | appreciate the help of Qian Xin, who provided information about the | |||
| implementation of this specification. | implementation of this specification. | |||
| Authors' Addresses | Authors' Addresses | |||
| Greg Mirsky | Greg Mirsky | |||
| Ericsson | Ericsson | |||
| Email: gregimirsky@gmail.com | Email: gregimirsky@gmail.com | |||
| Jeff Tantsura | Jeff Tantsura | |||
| NVIDIA | NVIDIA | |||
| Email: jefftant.ietf@gmail.com | Email: jefftant.ietf@gmail.com | |||
| Ilya Varlashkin | Ilya Varlashkin | |||
| Email: imv@google.com | Email: imv@google.com | |||
| Mach(Guoyi) Chen | Mach(Guoyi) Chen | |||
| Huawei | Huawei | |||
| End of changes. 59 change blocks. | ||||
| 300 lines changed or deleted | 248 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||