| < draft-ietf-mpls-bfd-directed-01.txt | draft-ietf-mpls-bfd-directed-02.txt > | |||
|---|---|---|---|---|
| MPLS Working Group G. Mirsky | MPLS Working Group G. Mirsky | |||
| Internet-Draft J. Tantsura | Internet-Draft J. Tantsura | |||
| Intended status: Standards Track Ericsson | Intended status: Standards Track Ericsson | |||
| Expires: March 11, 2016 I. Varlashkin | Expires: September 3, 2016 I. Varlashkin | |||
| M. Chen | M. Chen | |||
| Huawei | Huawei | |||
| September 8, 2015 | March 2, 2016 | |||
| Bidirectional Forwarding Detection (BFD) Directed Return Path | Bidirectional Forwarding Detection (BFD) Directed Return Path | |||
| draft-ietf-mpls-bfd-directed-01 | draft-ietf-mpls-bfd-directed-02 | |||
| Abstract | Abstract | |||
| Bidirectional Forwarding Detection (BFD) is expected to monitor bi- | Bidirectional Forwarding Detection (BFD) is expected to monitor bi- | |||
| directional paths. When a BFD session monitors in its forward | directional paths. When a BFD session monitors an explicit routed | |||
| direction an explicitly routed path there is a need to be able to | path there is a need to be able to direct egress BFD peer to use | |||
| direct egress BFD peer to use specific path as reverse direction of | specific path for the reverse direction of the BFD session. | |||
| the BFD session. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on March 11, 2016. | This Internet-Draft will expire on September 3, 2016. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2016 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 | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| skipping to change at page 2, line 20 ¶ | skipping to change at page 2, line 19 ¶ | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Conventions used in this document . . . . . . . . . . . . 3 | 1.1. Conventions used in this document . . . . . . . . . . . . 3 | |||
| 1.1.1. Terminology . . . . . . . . . . . . . . . . . . . . . 3 | 1.1.1. Terminology . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1.2. Requirements Language . . . . . . . . . . . . . . . . 3 | 1.1.2. Requirements Language . . . . . . . . . . . . . . . . 3 | |||
| 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Direct Reverse BFD Path . . . . . . . . . . . . . . . . . . . 4 | 3. Direct Reverse BFD Path . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.1. Case of MPLS Data Plane . . . . . . . . . . . . . . . . . 4 | 3.1. Case of MPLS Data Plane . . . . . . . . . . . . . . . . . 4 | |||
| 3.1.1. BFD Reverse Path TLV . . . . . . . . . . . . . . . . 4 | 3.1.1. BFD Reverse Path TLV . . . . . . . . . . . . . . . . 4 | |||
| 3.1.2. Static and RSVP-TE sub-TLVs . . . . . . . . . . . . . 5 | 3.1.2. Static and RSVP-TE sub-TLVs . . . . . . . . . . . . . 5 | |||
| 3.1.3. Segment Routing Tunnel sub-TLV . . . . . . . . . . . 5 | 3.1.3. Segment Routing: MPLS Data Plane Case . . . . . . . . 5 | |||
| 3.2. Case of IPv6 Data Plane . . . . . . . . . . . . . . . . . 6 | 3.2. Segment Routing: IPv6 Data Plane Case . . . . . . . . . . 6 | |||
| 3.3. Bootstrapping BFD session with BFD Reverse Path over | 3.3. Bootstrapping BFD session with BFD Reverse Path over | |||
| Segment Routed tunnel . . . . . . . . . . . . . . . . . . 6 | Segment Routed tunnel . . . . . . . . . . . . . . . . . . 6 | |||
| 3.4. Return Codes . . . . . . . . . . . . . . . . . . . . . . 7 | 3.4. Return Codes . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4. Use Case Scenario . . . . . . . . . . . . . . . . . . . . . . 7 | 4. Use Case Scenario . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.1. TLV . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 5.1. TLV . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.2. Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 5.2. Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.3. Return Codes . . . . . . . . . . . . . . . . . . . . . . 8 | 5.3. Return Codes . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 8. Normative References . . . . . . . . . . . . . . . . . . . . 9 | 8. Normative References . . . . . . . . . . . . . . . . . . . . 9 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 1. Introduction | 1. Introduction | |||
| RFC 5880 [RFC5880], RFC 5881 [RFC5881], and RFC 5883 [RFC5883] | RFC 5880 [RFC5880], RFC 5881 [RFC5881], and RFC 5883 [RFC5883] | |||
| established the BFD protocol for IP networks and RFC 5884 [RFC5884] | established the BFD protocol for IP networks and RFC 5884 [RFC5884] | |||
| set rules of using BFD asynchronous mode over IP/MPLS LSPs. All | set rules of using BFD asynchronous mode over IP/MPLS LSPs. These | |||
| standards implicitly assume that the egress BFD peer will use the | four standards implicitly assume that the egress BFD peer will use | |||
| shortest path route regardless of route being used to send BFD | the shortest path route regardless of route being used to send BFD | |||
| control packets towards it. As result, if the ingress BFD peer sends | control packets towards it. | |||
| its BFD control packets over explicit path that is diverging from the | ||||
| best route, then reverse direction of the BFD session is likely not | ||||
| to be on co-routed bi-directional path with the forward direction of | ||||
| the BFD session. And because BFD control packets are not guaranteed | ||||
| to cross the same links and nodes in both directions detection of | ||||
| Loss of Continuity (LoC) defect in forward direction may demonstrate | ||||
| positive negatives. | ||||
| This document defines the extension to LSP Ping [RFC4379], BFD | For the case where an LSP is explicitly routed, if it is desired that | |||
| Reverse Path TLV, and proposes that it to be used to instruct the | BFD control packets follow the same path in the reverse direction | |||
| egress BFD peer to use explicit path for its BFD control packets | (for support of common fault detection for explicitly routed | |||
| associated with the particular BFD session. The TLV will be | bidirectional co-routed LSPs, for example), it is likely that the | |||
| allocated from the TLV and sub-TLV registry defined by RFC 4379 | shortest return path to the ingress BFD peer may not follow the same | |||
| [RFC4379]. As a special case, forward and reverse directions of the | path as the LSP in the forward direction. The fact that BFD control | |||
| BFD session can form bi-directional co-routed associated channel. | packets are not guaranteed to cross the same links and nodes in both | |||
| forward and reverse directions is a significant factor in producing | ||||
| false positive defect notifications, i.e. false alarms, if used by | ||||
| the ingress BFD peer to deduce the state of the forward direction. | ||||
| This document defines the BFD Reverse Path TLV as an extension to LSP | ||||
| Ping [RFC4379] and proposes that it to be used to instruct the egress | ||||
| BFD peer to use explicit path for its BFD control packets associated | ||||
| with the particular BFD session. The TLV will be allocated from the | ||||
| TLV and sub-TLV registry defined by RFC 4379 [RFC4379]. As a special | ||||
| case, forward and reverse directions of the BFD session can form a | ||||
| bi-directional co-routed associated channel. | ||||
| 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 | |||
| MPLS: Multiprotocol Label Switching | MPLS: Multiprotocol Label Switching | |||
| LSP: Label Switching Path | LSP: Label Switching Path | |||
| skipping to change at page 3, line 36 ¶ | skipping to change at page 3, line 38 ¶ | |||
| 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 | "OPTIONAL" in this document are to be interpreted as described in | |||
| [RFC2119]. | [RFC2119]. | |||
| 2. Problem Statement | 2. Problem Statement | |||
| BFD is best suited to monitor bi-directional co-routed paths. In | BFD is best suited to monitor bi-directional co-routed paths. In | |||
| most cases, given stable environments, the forward and reverse | most cases, given stable environments, the forward and reverse | |||
| direction between two nodes is likely to be co-routed, this | directions between two nodes are likely to be co-routed, thus | |||
| fulfilling the implicit BFD requirements. If BFD is used to monitor | fulfilling the implicit BFD requirement. If BFD is used to monitor | |||
| unidirectional explicitly routed paths, e.g. MPLS-TE LSPs, its | unidirectional explicitly routed path, e.g. MPLS-TE LSP, BFD control | |||
| control packets in forward direction would be in-band using the | packets in forward direction would be in-band using the mechanism | |||
| mechanism defined in [RFC5884] and [RFC5586]. But the reverse | defined in [RFC5884] and [RFC5586]. But the reverse direction of the | |||
| direction of the BFD session would still follow the shortest path | BFD session would still follow the shortest path route and that might | |||
| route and that might lead to the following problem in detecting | lead to the following problem in detecting failures on a | |||
| failures on the unidirectional explicit path: | unidirectional explicit path: | |||
| o a failure detection by ingress node on the reverse path cannot be | o a failure detection by ingress node on the reverse path cannot be | |||
| interpreted as bi-directional failure with all the certainty and | interpreted as bi-directional failure with all the certainty and | |||
| thus trigger, for example, protection switchover of the forward | thus trigger, for example, protection switchover of the forward | |||
| direction without possibility of being false positive or false | direction without possibility of being a false positive defect | |||
| negative. | notification. | |||
| To address these challenges the egress BFD peer should be instructed | To address this scenario the egress BFD peer should be instructed to | |||
| to use specific path for its control packets. | use a specific path for BFD control packets. | |||
| 3. Direct Reverse BFD Path | 3. Direct Reverse BFD Path | |||
| 3.1. Case of MPLS Data Plane | 3.1. Case of MPLS Data Plane | |||
| LSP ping, defined in [RFC4379], uses BFD Discriminator TLV [RFC5884] | LSP ping, defined in [RFC4379], uses BFD Discriminator TLV [RFC5884] | |||
| to bootstrap a BFD session over an MPLS LSP. This document defines a | to bootstrap a BFD session over an MPLS LSP. This document defines a | |||
| new TLV, BFD Reverse Path TLV, that MUST contain a single sub-TLV | new TLV, BFD Reverse Path TLV, that MUST contain a single sub-TLV | |||
| that can be used to carry information about reverse path for the | that can be used to carry information about the reverse path for the | |||
| specified in BFD Discriminator TLV session. | BFD session that is specified by value in BFD Discriminator TLV. | |||
| 3.1.1. BFD Reverse Path TLV | 3.1.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 | |||
| protocol. However, if used, the BFD Discriminator TLV MUST be | protocol. 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 malformed Echo Request, as | |||
| described in [RFC4379]. | described in [RFC4379]. | |||
| The BFD Reverse Path TLV carries the specified path that BFD control | The BFD Reverse Path TLV carries information about the path onto | |||
| packets of the BFD session referenced in the BFD Discriminator TLV | which the egress BFD peer of the BFD session referenced by the BFD | |||
| are required to follow. The format of the BFD Reverse Path TLV is as | Discriminator TLV MUST transmit BFD control packets. The format of | |||
| presented in Figure 1. | the BFD Reverse Path TLV is as 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 2 octets in length and value to be | BFD Reverse Path TLV Type is 2 octets in length and has a value of | |||
| assigned by IANA. | TB1 (to be assigned by IANA as requested in Section 5). | |||
| Length is 2 octets in length and defines the length in octets of the | Length field is 2 octets long and defines the length in octets of the | |||
| Reverse Path field. | Reverse Path field. | |||
| Reverse Path field contains a sub-TLV. Any Target FEC sub-TLV, | Reverse Path field contains a sub-TLV. Any Target FEC sub-TLV | |||
| already or in the future defined, from IANA sub-registry Sub-TLVs for | (already defined, or to be defined in the future) for TLV Types 1, | |||
| TLV Types 1, 16, and 21 of MPLS LSP Ping Parameters registry MAY be | 16, and 21 of MPLS LSP Ping Parameters registry MAY be used in this | |||
| used in this field. Only one sub-TLV MUST be included in the Reverse | field. Exactly one sub-TLV MUST be included in the Reverse Path TLV. | |||
| Path TLV. If more than one sub-TLVs are present in the Reverse Path | If more than one sub-TLV is present in the Reverse Path TLV, then, in | |||
| TLV, then only the first sub-TLV MUST be used and the rest MUST be | order to avoid ambiguity of which of TLVs to use, the egress BFD peer | |||
| silently discarded. | MUST send Echo Reply with the received Reverse Path TLVs and set the | |||
| Return Code to "Too Many TLVs Detected" Section 3.4. | ||||
| If the egress LSR cannot find path specified in the Reverse Path TLV | If the egress LSR cannot find the path specified in the Reverse Path | |||
| it MUST send Echo Reply with the received Reverse Path TLV and set | TLV it MUST send Echo Reply with the received Reverse Path TLV and | |||
| the return code to "Failed to establish the BFD session. The | set the Return Code to "Failed to establish the BFD session. The | |||
| specified reverse path was not found" Section 3.4. The egress LSR | specified reverse path was not found" Section 3.4. The egress BFD | |||
| MAY establish the BFD session over IP network according to [RFC5884]. | peer MAY establish the BFD session over IP network as defined in | |||
| [RFC5884]. | ||||
| 3.1.2. Static and RSVP-TE sub-TLVs | 3.1.2. Static and RSVP-TE sub-TLVs | |||
| When explicit path on MPLS data plane set either as Static or RSVP-TE | When an explicit path on an MPLS data plane is set either as Static | |||
| LSP respective sub-TLVs defined in [RFC7110] identify explicit return | or RSVP-TE LSP respective sub-TLVs defined in [RFC7110] MAY be used | |||
| path. | to identify the explicit reverse path for the BFD session. | |||
| 3.1.3. Segment Routing Tunnel sub-TLV | 3.1.3. Segment Routing: MPLS Data Plane Case | |||
| In addition to Static and RSVP-TE, Segment Routing with MPLS data | In addition to Static and RSVP-TE, Segment Routing with MPLS data | |||
| plane can be used to set explicit path. In this case a new sub-TLV | plane can be used to set an explicit path. In this case a new sub- | |||
| is defined in this document as presented in Figure 2. | TLV is defined in this document as presented in Figure 2. | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | SegRouting MPLS sub-TLV Type | Length | | | SegRouting MPLS sub-TLV Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Label Entry 1 | | | Label Entry 1 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Label Entry 2 | | | Label Entry 2 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ~ ~ | ~ ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Label Entry N | | | Label Entry N | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 2: Segment Routing MPLS Tunnel sub-TLV | Figure 2: Segment Routing MPLS Tunnel sub-TLV | |||
| The Segment Routing Tunnel sub-TLV Type is two octets in length, and | The Segment Routing Tunnel sub-TLV Type is two octets in length, and | |||
| will be allocated by IANA. | has a value of TB2 (to be assigned by IANA as requested in | |||
| Section 5). | ||||
| The egress LSR MUST use the Value field as label stack for BFD | The egress LSR MUST use the Value field as label stack for BFD | |||
| control packets for the BFD session identified by source IP address | control packets for the BFD session identified by the source IP | |||
| and value in BFD Discriminator TLV. | address of the MPLS LSP Ping packet and the value in the BFD | |||
| Discriminator TLV. Label Entries MUST be in network order. | ||||
| The Segment Routing Tunnel sub-TLV MAY be used in Reply Path TLV | The Segment Routing Tunnel sub-TLV MAY be used in Reply Path TLV | |||
| defined in [RFC7110] | defined in [RFC7110] | |||
| 3.2. Case of IPv6 Data Plane | 3.2. Segment Routing: IPv6 Data Plane Case | |||
| IPv6 can be data plane of choice for Segment Routed tunnels | IPv6 can be used as the data plane of choice for Segment Routed | |||
| [I-D.previdi-6man-segment-routing-header]. In such networks the BFD | tunnels [I-D.previdi-6man-segment-routing-header]. In this case the | |||
| Reverse Path TLV described in Section 3.1.1 can be used as well. To | BFD Reverse Path TLV described in Section 3.1.1 can be used as well. | |||
| specify reverse path of a BFD session in IPv6 environment the BFD | To specify the reverse path of a BFD session for an IPv6 explicitly | |||
| Discriminator TLV MUST be used along with the BFD Reverse Path TLV. | routed path the BFD Discriminator TLV MUST be used along with the BFD | |||
| The BFD Reverse Path TLV in IPv6 network MUST include sub-TLV. | Reverse Path TLV. The BFD Reverse Path TLV in IPv6 network MUST | |||
| include the Segment Routing IPv6 Tunnel sub-TLV. | ||||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | SegRouting IPv6 sub-TLV Type | Length | | | SegRouting IPv6 sub-TLV Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| | IPv6 Prefix | | | IPv6 Prefix | | |||
| | | | | | | |||
| | | | | | | |||
| skipping to change at page 6, line 34 ¶ | skipping to change at page 6, line 40 ¶ | |||
| | | | | | | |||
| | IPv6 Prefix | | | IPv6 Prefix | | |||
| | | | | | | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ~ ~ | ~ ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 3: Segment Routing IPv6 Tunnel sub-TLV | Figure 3: Segment Routing IPv6 Tunnel sub-TLV | |||
| The Segment Routing IPv6 Tunnel sub-TLV Type is two octets in length, | ||||
| and has a value of TB3 (to be assigned by IANA as requested in | ||||
| Section 5). | ||||
| 3.3. Bootstrapping BFD session with BFD Reverse Path over Segment | 3.3. Bootstrapping BFD session with BFD Reverse Path over Segment | |||
| Routed tunnel | Routed tunnel | |||
| As discussed in [I-D.kumarkini-mpls-spring-lsp-ping] introduction of | As discussed in [I-D.kumarkini-mpls-spring-lsp-ping] introduction of | |||
| Segment Routing network domains with MPLS data plane adds three new | Segment Routing network domains with an MPLS data plane adds three | |||
| sub-TLVs that may be used with Target FEC TLV. Section 6.1 addresses | new sub-TLVs that MAY be used with Target FEC TLV. Section 6.1 | |||
| use of new sub-TLVs in Target FEC TLV in LSP ping and LSP traceroute. | addresses use of the new sub-TLVs in Target FEC TLV in LSP ping and | |||
| For the case of LSP ping the [I-D.kumarkini-mpls-spring-lsp-ping] | LSP traceroute. For the case of LSP ping the | |||
| states that: | [I-D.kumarkini-mpls-spring-lsp-ping] states that: | |||
| "Initiator MUST include FEC(s) corresponding to the destination | "Initiator MUST include FEC(s) corresponding to the destination | |||
| segment. | segment. " | |||
| Initiator, i.e. ingress LSR, MAY include FECs corresponding to some | "Initiator, i.e. ingress LSR, MAY include FECs corresponding to some | |||
| or all of segments imposed in the label stack by the ingress LSR to | or all of segments imposed in the label stack by the ingress LSR to | |||
| communicate the segments traversed. " | communicate the segments traversed. " | |||
| When LSP ping is used to bootstrap BFD session this document updates | When LSP ping is used to bootstrap BFD session this document updates | |||
| this and defines that LSP Ping MUST include the FEC corresponding to | the statement and defines that LSP Ping MUST include the FEC | |||
| the destination segment and SHOULD NOT include FECs corresponding to | corresponding to the destination segment and SHOULD NOT include FECs | |||
| some or all of segment imposed by the ingress LSR. Operationally | corresponding to some or all of other segments imposed by the ingress | |||
| such restriction would not cause any problem or uncertainty as LSP | LSR. Operationally such restriction would not cause any problem or | |||
| ping with FECs corresponding to some or all segments or traceroute | uncertainty as LSP ping with FECs corresponding to some or all | |||
| MAY precede the LSP ping that bootstraps the BFD session. | segments or traceroute that validate the segment route MAY precede | |||
| the LSP ping that bootstraps the BFD session. | ||||
| 3.4. Return Codes | 3.4. Return Codes | |||
| This document defines the following Return Codes: | This document defines the following Return Codes for MPLS LSP Echo | |||
| Reply: | ||||
| o "Too Many TLVs Detected", (TBD4). When more than one Reverse Path | ||||
| TLV found in the recieved Echo Request by the egress BFD peer, an | ||||
| Echo Reply with the return code set to "Too Many TLVs Detected" | ||||
| MUST be sent to the ingress BFD peer Section 3.1.1. | ||||
| o "Failed to establish the BFD session. The specified reverse path | o "Failed to establish the BFD session. The specified reverse path | |||
| was not found", (TBD4). When a specified reverse path is not | was not found", (TBD5). When a specified reverse path is not | |||
| available at the egress LSR, an Echo Reply with the return code | available at the egress BFD peer, an Echo Reply with the return | |||
| set to "Failed to establish the BFD session. The specified | code set to "Failed to establish the BFD session. The specified | |||
| reverse path was not found" MUST be sent back to the ingress LSR . | reverse path was not found" MUST be sent back to the ingress BFD | |||
| (Section 3.1.1) | peer Section 3.1.1. | |||
| 4. Use Case Scenario | 4. Use Case Scenario | |||
| In network presented in Figure 4 node A monitors two tunnels to node | In the network presented in Figure 4 node A monitors two tunnels to | |||
| H: A-B-C-D-G-H and A-B-E-F-G-H. To bootstrap BFD session to monitor | node H: A-B-C-D-G-H and A-B-E-F-G-H. To bootstrap a BFD session to | |||
| the first tunnel, node A MUST include BFD Discriminator TLV with | monitor the first tunnel, node A MUST include a BFD Discriminator TLV | |||
| Discriminator value foobar-1 and MAY include BFD Reverse Path TLV | with Discriminator value (e.g. foobar-1) and MAY include a BFD | |||
| that references H-G-D-C-B-A tunnel. To bootstrap BFD session to | Reverse Path TLV that references H-G-D-C-B-A tunnel. To bootstrap a | |||
| monitor the second tunnel, node A MUST include BFD Discriminator TLV | BFD session to monitor the second tunnel, node A MUST include a BFD | |||
| with Discriminator value foobar-2 | Discriminator TLV with a different Discriminator value (e.g. foobar- | |||
| [I-D.ietf-bfd-rfc5884-clarifications] and MAY include BFD Reverse | 2) [RFC7726] and MAY include a BFD Reverse Path TLV that references | |||
| Path TLV that references H-G-F-E-B-A tunnel. | H-G-F-E-B-A tunnel. | |||
| C---------D | C---------D | |||
| | | | | | | |||
| A-------B G-----H | A-------B G-----H | |||
| | | | | | | |||
| E---------F | E---------F | |||
| Figure 4: Use Case for BFD Reverse Path TLV | Figure 4: Use Case for BFD Reverse Path TLV | |||
| If an operator needs node H to monitor path to node A, e.g. | If an operator needs node H to monitor a path to node A, e.g. | |||
| H-G-D-C-B-A tunnel, then by looking up list of known Reverse Paths it | H-G-D-C-B-A tunnel, then by looking up list of known Reverse Paths it | |||
| MAY find and use existing BFD sessions. | MAY find and use the existing BFD session. | |||
| 5. IANA Considerations | 5. IANA Considerations | |||
| 5.1. TLV | 5.1. TLV | |||
| The IANA is requested to assign a new value for BFD Reverse Path TLV | The IANA is requested to assign a new value for BFD Reverse Path TLV | |||
| from the "Multiprotocol Label Switching Architecture (MPLS) Label | from the "Multiprotocol Label Switching Architecture (MPLS) Label | |||
| Switched Paths (LSPs) Ping Parameters - TLVs" registry, "TLVs and | Switched Paths (LSPs) Ping Parameters - TLVs" registry, "TLVs and | |||
| sub-TLVs" sub-registry. | sub-TLVs" sub-registry. | |||
| skipping to change at page 8, line 41 ¶ | skipping to change at page 9, line 15 ¶ | |||
| 5.3. Return Codes | 5.3. Return Codes | |||
| The IANA is requested to assign a new Return Code value from the | The IANA is requested to assign a new Return Code value from the | |||
| "Multi-Protocol Label Switching (MPLS) Label Switched Paths (LSPs) | "Multi-Protocol Label Switching (MPLS) Label Switched Paths (LSPs) | |||
| Ping Parameters" registry, "Return Codes" sub-registry, as follows | Ping Parameters" registry, "Return Codes" sub-registry, as follows | |||
| using a Standards Action value. | using a Standards Action value. | |||
| +----------+----------------------------------------+---------------+ | +----------+----------------------------------------+---------------+ | |||
| | Value | Description | Reference | | | Value | Description | Reference | | |||
| +----------+----------------------------------------+---------------+ | +----------+----------------------------------------+---------------+ | |||
| | X (TBD4) | Failed to establish the BFD session. | This document | | | X (TBD4) | Too Many TLVs Detected. | This document | | |||
| | X (TBD5) | Failed to establish the BFD session. | This document | | ||||
| | | The specified reverse path was not | | | | | The specified reverse path was not | | | |||
| | | found. | | | | | found. | | | |||
| +----------+----------------------------------------+---------------+ | +----------+----------------------------------------+---------------+ | |||
| Table 3: New Return Code | Table 3: New Return Code | |||
| 6. Security Considerations | 6. Security Considerations | |||
| Security considerations discussed in [RFC5880], [RFC5884], and | Security considerations discussed in [RFC5880], [RFC5884], and | |||
| [RFC4379], apply to this document. | [RFC4379], apply to this document. | |||
| 7. Acknowledgements | 7. Acknowledgements | |||
| 8. Normative References | Authors greatly appreciate thorough review and the most helpful | |||
| comments from Eric Gray. | ||||
| [I-D.ietf-bfd-rfc5884-clarifications] | 8. Normative References | |||
| Govindan, V., Rajaraman, K., Mirsky, G., Akiya, N., and S. | ||||
| Aldrin, "Clarifications to RFC 5884", draft-ietf-bfd- | ||||
| rfc5884-clarifications-02 (work in progress), June 2015. | ||||
| [I-D.kumarkini-mpls-spring-lsp-ping] | [I-D.kumarkini-mpls-spring-lsp-ping] | |||
| Kumar, N., Swallow, G., Pignataro, C., Akiya, N., Kini, | Kumar, N., Swallow, G., Pignataro, C., Akiya, N., Kini, | |||
| S., Gredler, H., and M. Chen, "Label Switched Path (LSP) | S., Gredler, H., and M. Chen, "Label Switched Path (LSP) | |||
| Ping/Trace for Segment Routing Networks Using MPLS | Ping/Trace for Segment Routing Networks Using MPLS | |||
| Dataplane", draft-kumarkini-mpls-spring-lsp-ping-04 (work | Dataplane", draft-kumarkini-mpls-spring-lsp-ping-05 (work | |||
| in progress), July 2015. | in progress), January 2016. | |||
| [I-D.previdi-6man-segment-routing-header] | [I-D.previdi-6man-segment-routing-header] | |||
| Previdi, S., Filsfils, C., Field, B., Leung, I., Vyncke, | Previdi, S., Filsfils, C., Field, B., Leung, I., Linkova, | |||
| E., and D. Lebrun, "IPv6 Segment Routing Header (SRH)", | J., Kosugi, T., Vyncke, E., and D. Lebrun, "IPv6 Segment | |||
| draft-previdi-6man-segment-routing-header-07 (work in | Routing Header (SRH)", draft-previdi-6man-segment-routing- | |||
| progress), July 2015. | header-08 (work in progress), October 2015. | |||
| [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, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC4379] Kompella, K. and G. Swallow, "Detecting Multi-Protocol | [RFC4379] Kompella, K. and G. Swallow, "Detecting Multi-Protocol | |||
| Label Switched (MPLS) Data Plane Failures", RFC 4379, | Label Switched (MPLS) Data Plane Failures", RFC 4379, | |||
| DOI 10.17487/RFC4379, February 2006, | DOI 10.17487/RFC4379, February 2006, | |||
| <http://www.rfc-editor.org/info/rfc4379>. | <http://www.rfc-editor.org/info/rfc4379>. | |||
| skipping to change at page 10, line 24 ¶ | skipping to change at page 10, line 38 ¶ | |||
| [RFC5884] Aggarwal, R., Kompella, K., Nadeau, T., and G. Swallow, | [RFC5884] Aggarwal, R., Kompella, K., Nadeau, T., and G. Swallow, | |||
| "Bidirectional Forwarding Detection (BFD) for MPLS Label | "Bidirectional Forwarding Detection (BFD) for MPLS Label | |||
| Switched Paths (LSPs)", RFC 5884, DOI 10.17487/RFC5884, | Switched Paths (LSPs)", RFC 5884, DOI 10.17487/RFC5884, | |||
| June 2010, <http://www.rfc-editor.org/info/rfc5884>. | June 2010, <http://www.rfc-editor.org/info/rfc5884>. | |||
| [RFC7110] Chen, M., Cao, W., Ning, S., Jounay, F., and S. Delord, | [RFC7110] Chen, M., Cao, W., Ning, S., Jounay, F., and S. Delord, | |||
| "Return Path Specified Label Switched Path (LSP) Ping", | "Return Path Specified Label Switched Path (LSP) Ping", | |||
| RFC 7110, DOI 10.17487/RFC7110, January 2014, | RFC 7110, DOI 10.17487/RFC7110, January 2014, | |||
| <http://www.rfc-editor.org/info/rfc7110>. | <http://www.rfc-editor.org/info/rfc7110>. | |||
| [RFC7726] Govindan, V., Rajaraman, K., Mirsky, G., Akiya, N., and S. | ||||
| Aldrin, "Clarifying Procedures for Establishing BFD | ||||
| Sessions for MPLS Label Switched Paths (LSPs)", RFC 7726, | ||||
| DOI 10.17487/RFC7726, January 2016, | ||||
| <http://www.rfc-editor.org/info/rfc7726>. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Greg Mirsky | Greg Mirsky | |||
| Ericsson | Ericsson | |||
| Email: gregory.mirsky@ericsson.com | Email: gregory.mirsky@ericsson.com | |||
| Jeff Tantsura | Jeff Tantsura | |||
| Ericsson | Ericsson | |||
| Email: jeff.tantsura@ericsson.com | Email: jeff.tantsura@ericsson.com | |||
| Ilya Varlashkin | Ilya Varlashkin | |||
| Email: Ilya@nobulus.com | Email: Ilya@nobulus.com | |||
| End of changes. 44 change blocks. | ||||
| 124 lines changed or deleted | 147 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||