idnits 2.17.1 draft-ietf-mpls-bfd-directed-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (March 2, 2016) is 2977 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-06) exists of draft-kumarkini-mpls-spring-lsp-ping-05 ** Obsolete normative reference: RFC 4379 (Obsoleted by RFC 8029) Summary: 1 error (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 MPLS Working Group G. Mirsky 3 Internet-Draft J. Tantsura 4 Intended status: Standards Track Ericsson 5 Expires: September 3, 2016 I. Varlashkin 6 Google 7 M. Chen 8 Huawei 9 March 2, 2016 11 Bidirectional Forwarding Detection (BFD) Directed Return Path 12 draft-ietf-mpls-bfd-directed-02 14 Abstract 16 Bidirectional Forwarding Detection (BFD) is expected to monitor bi- 17 directional paths. When a BFD session monitors an explicit routed 18 path there is a need to be able to direct egress BFD peer to use 19 specific path for the reverse direction of the BFD session. 21 Status of This Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at http://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on September 3, 2016. 38 Copyright Notice 40 Copyright (c) 2016 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (http://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the Simplified BSD License. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 56 1.1. Conventions used in this document . . . . . . . . . . . . 3 57 1.1.1. Terminology . . . . . . . . . . . . . . . . . . . . . 3 58 1.1.2. Requirements Language . . . . . . . . . . . . . . . . 3 59 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 60 3. Direct Reverse BFD Path . . . . . . . . . . . . . . . . . . . 4 61 3.1. Case of MPLS Data Plane . . . . . . . . . . . . . . . . . 4 62 3.1.1. BFD Reverse Path TLV . . . . . . . . . . . . . . . . 4 63 3.1.2. Static and RSVP-TE sub-TLVs . . . . . . . . . . . . . 5 64 3.1.3. Segment Routing: MPLS Data Plane Case . . . . . . . . 5 65 3.2. Segment Routing: IPv6 Data Plane Case . . . . . . . . . . 6 66 3.3. Bootstrapping BFD session with BFD Reverse Path over 67 Segment Routed tunnel . . . . . . . . . . . . . . . . . . 6 68 3.4. Return Codes . . . . . . . . . . . . . . . . . . . . . . 7 69 4. Use Case Scenario . . . . . . . . . . . . . . . . . . . . . . 7 70 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 71 5.1. TLV . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 72 5.2. Sub-TLV . . . . . . . . . . . . . . . . . . . . . . . . . 8 73 5.3. Return Codes . . . . . . . . . . . . . . . . . . . . . . 9 74 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 75 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 76 8. Normative References . . . . . . . . . . . . . . . . . . . . 9 77 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 79 1. Introduction 81 RFC 5880 [RFC5880], RFC 5881 [RFC5881], and RFC 5883 [RFC5883] 82 established the BFD protocol for IP networks and RFC 5884 [RFC5884] 83 set rules of using BFD asynchronous mode over IP/MPLS LSPs. These 84 four standards implicitly assume that the egress BFD peer will use 85 the shortest path route regardless of route being used to send BFD 86 control packets towards it. 88 For the case where an LSP is explicitly routed, if it is desired that 89 BFD control packets follow the same path in the reverse direction 90 (for support of common fault detection for explicitly routed 91 bidirectional co-routed LSPs, for example), it is likely that the 92 shortest return path to the ingress BFD peer may not follow the same 93 path as the LSP in the forward direction. The fact that BFD control 94 packets are not guaranteed to cross the same links and nodes in both 95 forward and reverse directions is a significant factor in producing 96 false positive defect notifications, i.e. false alarms, if used by 97 the ingress BFD peer to deduce the state of the forward direction. 99 This document defines the BFD Reverse Path TLV as an extension to LSP 100 Ping [RFC4379] and proposes that it to be used to instruct the egress 101 BFD peer to use explicit path for its BFD control packets associated 102 with the particular BFD session. The TLV will be allocated from the 103 TLV and sub-TLV registry defined by RFC 4379 [RFC4379]. As a special 104 case, forward and reverse directions of the BFD session can form a 105 bi-directional co-routed associated channel. 107 1.1. Conventions used in this document 109 1.1.1. Terminology 111 BFD: Bidirectional Forwarding Detection 113 MPLS: Multiprotocol Label Switching 115 LSP: Label Switching Path 117 LoC: Loss of Continuity 119 1.1.2. Requirements Language 121 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 122 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 123 "OPTIONAL" in this document are to be interpreted as described in 124 [RFC2119]. 126 2. Problem Statement 128 BFD is best suited to monitor bi-directional co-routed paths. In 129 most cases, given stable environments, the forward and reverse 130 directions between two nodes are likely to be co-routed, thus 131 fulfilling the implicit BFD requirement. If BFD is used to monitor 132 unidirectional explicitly routed path, e.g. MPLS-TE LSP, BFD control 133 packets in forward direction would be in-band using the mechanism 134 defined in [RFC5884] and [RFC5586]. But the reverse direction of the 135 BFD session would still follow the shortest path route and that might 136 lead to the following problem in detecting failures on a 137 unidirectional explicit path: 139 o a failure detection by ingress node on the reverse path cannot be 140 interpreted as bi-directional failure with all the certainty and 141 thus trigger, for example, protection switchover of the forward 142 direction without possibility of being a false positive defect 143 notification. 145 To address this scenario the egress BFD peer should be instructed to 146 use a specific path for BFD control packets. 148 3. Direct Reverse BFD Path 150 3.1. Case of MPLS Data Plane 152 LSP ping, defined in [RFC4379], uses BFD Discriminator TLV [RFC5884] 153 to bootstrap a BFD session over an MPLS LSP. This document defines a 154 new TLV, BFD Reverse Path TLV, that MUST contain a single sub-TLV 155 that can be used to carry information about the reverse path for the 156 BFD session that is specified by value in BFD Discriminator TLV. 158 3.1.1. BFD Reverse Path TLV 160 The BFD Reverse Path TLV is an optional TLV within the LSP ping 161 protocol. However, if used, the BFD Discriminator TLV MUST be 162 included in an Echo Request message as well. If the BFD 163 Discriminator TLV is not present when the BFD Reverse Path TLV is 164 included, then it MUST be treated as malformed Echo Request, as 165 described in [RFC4379]. 167 The BFD Reverse Path TLV carries information about the path onto 168 which the egress BFD peer of the BFD session referenced by the BFD 169 Discriminator TLV MUST transmit BFD control packets. The format of 170 the BFD Reverse Path TLV is as presented in Figure 1. 172 0 1 2 3 173 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 174 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 175 | BFD Reverse Path TLV Type | Length | 176 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 177 | Reverse Path | 178 ~ ~ 179 | | 180 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 182 Figure 1: BFD Reverse Path TLV 184 BFD Reverse Path TLV Type is 2 octets in length and has a value of 185 TB1 (to be assigned by IANA as requested in Section 5). 187 Length field is 2 octets long and defines the length in octets of the 188 Reverse Path field. 190 Reverse Path field contains a sub-TLV. Any Target FEC sub-TLV 191 (already defined, or to be defined in the future) for TLV Types 1, 192 16, and 21 of MPLS LSP Ping Parameters registry MAY be used in this 193 field. Exactly one sub-TLV MUST be included in the Reverse Path TLV. 194 If more than one sub-TLV is present in the Reverse Path TLV, then, in 195 order to avoid ambiguity of which of TLVs to use, the egress BFD peer 196 MUST send Echo Reply with the received Reverse Path TLVs and set the 197 Return Code to "Too Many TLVs Detected" Section 3.4. 199 If the egress LSR cannot find the path specified in the Reverse Path 200 TLV it MUST send Echo Reply with the received Reverse Path TLV and 201 set the Return Code to "Failed to establish the BFD session. The 202 specified reverse path was not found" Section 3.4. The egress BFD 203 peer MAY establish the BFD session over IP network as defined in 204 [RFC5884]. 206 3.1.2. Static and RSVP-TE sub-TLVs 208 When an explicit path on an MPLS data plane is set either as Static 209 or RSVP-TE LSP respective sub-TLVs defined in [RFC7110] MAY be used 210 to identify the explicit reverse path for the BFD session. 212 3.1.3. Segment Routing: MPLS Data Plane Case 214 In addition to Static and RSVP-TE, Segment Routing with MPLS data 215 plane can be used to set an explicit path. In this case a new sub- 216 TLV is defined in this document as presented in Figure 2. 218 0 1 2 3 219 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 220 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 221 | SegRouting MPLS sub-TLV Type | Length | 222 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 223 | Label Entry 1 | 224 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 225 | Label Entry 2 | 226 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 227 ~ ~ 228 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 229 | Label Entry N | 230 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 232 Figure 2: Segment Routing MPLS Tunnel sub-TLV 234 The Segment Routing Tunnel sub-TLV Type is two octets in length, and 235 has a value of TB2 (to be assigned by IANA as requested in 236 Section 5). 238 The egress LSR MUST use the Value field as label stack for BFD 239 control packets for the BFD session identified by the source IP 240 address of the MPLS LSP Ping packet and the value in the BFD 241 Discriminator TLV. Label Entries MUST be in network order. 243 The Segment Routing Tunnel sub-TLV MAY be used in Reply Path TLV 244 defined in [RFC7110] 246 3.2. Segment Routing: IPv6 Data Plane Case 248 IPv6 can be used as the data plane of choice for Segment Routed 249 tunnels [I-D.previdi-6man-segment-routing-header]. In this case the 250 BFD Reverse Path TLV described in Section 3.1.1 can be used as well. 251 To specify the reverse path of a BFD session for an IPv6 explicitly 252 routed path the BFD Discriminator TLV MUST be used along with the BFD 253 Reverse Path TLV. The BFD Reverse Path TLV in IPv6 network MUST 254 include the Segment Routing IPv6 Tunnel sub-TLV. 256 0 1 2 3 257 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 258 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 259 | SegRouting IPv6 sub-TLV Type | Length | 260 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 261 | | 262 | IPv6 Prefix | 263 | | 264 | | 265 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 266 | | 267 | IPv6 Prefix | 268 | | 269 | | 270 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 271 ~ ~ 272 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 274 Figure 3: Segment Routing IPv6 Tunnel sub-TLV 276 The Segment Routing IPv6 Tunnel sub-TLV Type is two octets in length, 277 and has a value of TB3 (to be assigned by IANA as requested in 278 Section 5). 280 3.3. Bootstrapping BFD session with BFD Reverse Path over Segment 281 Routed tunnel 283 As discussed in [I-D.kumarkini-mpls-spring-lsp-ping] introduction of 284 Segment Routing network domains with an MPLS data plane adds three 285 new sub-TLVs that MAY be used with Target FEC TLV. Section 6.1 286 addresses use of the new sub-TLVs in Target FEC TLV in LSP ping and 287 LSP traceroute. For the case of LSP ping the 288 [I-D.kumarkini-mpls-spring-lsp-ping] states that: 290 "Initiator MUST include FEC(s) corresponding to the destination 291 segment. " 293 "Initiator, i.e. ingress LSR, MAY include FECs corresponding to some 294 or all of segments imposed in the label stack by the ingress LSR to 295 communicate the segments traversed. " 297 When LSP ping is used to bootstrap BFD session this document updates 298 the statement and defines that LSP Ping MUST include the FEC 299 corresponding to the destination segment and SHOULD NOT include FECs 300 corresponding to some or all of other segments imposed by the ingress 301 LSR. Operationally such restriction would not cause any problem or 302 uncertainty as LSP ping with FECs corresponding to some or all 303 segments or traceroute that validate the segment route MAY precede 304 the LSP ping that bootstraps the BFD session. 306 3.4. Return Codes 308 This document defines the following Return Codes for MPLS LSP Echo 309 Reply: 311 o "Too Many TLVs Detected", (TBD4). When more than one Reverse Path 312 TLV found in the recieved Echo Request by the egress BFD peer, an 313 Echo Reply with the return code set to "Too Many TLVs Detected" 314 MUST be sent to the ingress BFD peer Section 3.1.1. 316 o "Failed to establish the BFD session. The specified reverse path 317 was not found", (TBD5). When a specified reverse path is not 318 available at the egress BFD peer, an Echo Reply with the return 319 code set to "Failed to establish the BFD session. The specified 320 reverse path was not found" MUST be sent back to the ingress BFD 321 peer Section 3.1.1. 323 4. Use Case Scenario 325 In the network presented in Figure 4 node A monitors two tunnels to 326 node H: A-B-C-D-G-H and A-B-E-F-G-H. To bootstrap a BFD session to 327 monitor the first tunnel, node A MUST include a BFD Discriminator TLV 328 with Discriminator value (e.g. foobar-1) and MAY include a BFD 329 Reverse Path TLV that references H-G-D-C-B-A tunnel. To bootstrap a 330 BFD session to monitor the second tunnel, node A MUST include a BFD 331 Discriminator TLV with a different Discriminator value (e.g. foobar- 332 2) [RFC7726] and MAY include a BFD Reverse Path TLV that references 333 H-G-F-E-B-A tunnel. 335 C---------D 336 | | 337 A-------B G-----H 338 | | 339 E---------F 341 Figure 4: Use Case for BFD Reverse Path TLV 343 If an operator needs node H to monitor a path to node A, e.g. 344 H-G-D-C-B-A tunnel, then by looking up list of known Reverse Paths it 345 MAY find and use the existing BFD session. 347 5. IANA Considerations 349 5.1. TLV 351 The IANA is requested to assign a new value for BFD Reverse Path TLV 352 from the "Multiprotocol Label Switching Architecture (MPLS) Label 353 Switched Paths (LSPs) Ping Parameters - TLVs" registry, "TLVs and 354 sub-TLVs" sub-registry. 356 +----------+----------------------+---------------+ 357 | Value | Description | Reference | 358 +----------+----------------------+---------------+ 359 | X (TBD1) | BFD Reverse Path TLV | This document | 360 +----------+----------------------+---------------+ 362 Table 1: New BFD Reverse Type TLV 364 5.2. Sub-TLV 366 The IANA is requested to assign two new sub-TLV types from 367 "Multiprotocol Label Switching Architecture (MPLS) Label Switched 368 Paths (LSPs) Ping Parameters - TLVs" registry, "Sub-TLVs for TLV 369 Types 1, 16, and 21" sub-registry. 371 +----------+-------------------------------------+---------------+ 372 | Value | Description | Reference | 373 +----------+-------------------------------------+---------------+ 374 | X (TBD2) | Segment Routing MPLS Tunnel sub-TLV | This document | 375 | X (TBD3) | Segment Routing IPv6 Tunnel sub-TLV | This document | 376 +----------+-------------------------------------+---------------+ 378 Table 2: New Segment Routing Tunnel sub-TLV 380 5.3. Return Codes 382 The IANA is requested to assign a new Return Code value from the 383 "Multi-Protocol Label Switching (MPLS) Label Switched Paths (LSPs) 384 Ping Parameters" registry, "Return Codes" sub-registry, as follows 385 using a Standards Action value. 387 +----------+----------------------------------------+---------------+ 388 | Value | Description | Reference | 389 +----------+----------------------------------------+---------------+ 390 | X (TBD4) | Too Many TLVs Detected. | This document | 391 | X (TBD5) | Failed to establish the BFD session. | This document | 392 | | The specified reverse path was not | | 393 | | found. | | 394 +----------+----------------------------------------+---------------+ 396 Table 3: New Return Code 398 6. Security Considerations 400 Security considerations discussed in [RFC5880], [RFC5884], and 401 [RFC4379], apply to this document. 403 7. Acknowledgements 405 Authors greatly appreciate thorough review and the most helpful 406 comments from Eric Gray. 408 8. Normative References 410 [I-D.kumarkini-mpls-spring-lsp-ping] 411 Kumar, N., Swallow, G., Pignataro, C., Akiya, N., Kini, 412 S., Gredler, H., and M. Chen, "Label Switched Path (LSP) 413 Ping/Trace for Segment Routing Networks Using MPLS 414 Dataplane", draft-kumarkini-mpls-spring-lsp-ping-05 (work 415 in progress), January 2016. 417 [I-D.previdi-6man-segment-routing-header] 418 Previdi, S., Filsfils, C., Field, B., Leung, I., Linkova, 419 J., Kosugi, T., Vyncke, E., and D. Lebrun, "IPv6 Segment 420 Routing Header (SRH)", draft-previdi-6man-segment-routing- 421 header-08 (work in progress), October 2015. 423 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 424 Requirement Levels", BCP 14, RFC 2119, 425 DOI 10.17487/RFC2119, March 1997, 426 . 428 [RFC4379] Kompella, K. and G. Swallow, "Detecting Multi-Protocol 429 Label Switched (MPLS) Data Plane Failures", RFC 4379, 430 DOI 10.17487/RFC4379, February 2006, 431 . 433 [RFC5586] Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed., 434 "MPLS Generic Associated Channel", RFC 5586, 435 DOI 10.17487/RFC5586, June 2009, 436 . 438 [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 439 (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, 440 . 442 [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 443 (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, 444 DOI 10.17487/RFC5881, June 2010, 445 . 447 [RFC5883] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 448 (BFD) for Multihop Paths", RFC 5883, DOI 10.17487/RFC5883, 449 June 2010, . 451 [RFC5884] Aggarwal, R., Kompella, K., Nadeau, T., and G. Swallow, 452 "Bidirectional Forwarding Detection (BFD) for MPLS Label 453 Switched Paths (LSPs)", RFC 5884, DOI 10.17487/RFC5884, 454 June 2010, . 456 [RFC7110] Chen, M., Cao, W., Ning, S., Jounay, F., and S. Delord, 457 "Return Path Specified Label Switched Path (LSP) Ping", 458 RFC 7110, DOI 10.17487/RFC7110, January 2014, 459 . 461 [RFC7726] Govindan, V., Rajaraman, K., Mirsky, G., Akiya, N., and S. 462 Aldrin, "Clarifying Procedures for Establishing BFD 463 Sessions for MPLS Label Switched Paths (LSPs)", RFC 7726, 464 DOI 10.17487/RFC7726, January 2016, 465 . 467 Authors' Addresses 469 Greg Mirsky 470 Ericsson 472 Email: gregory.mirsky@ericsson.com 473 Jeff Tantsura 474 Ericsson 476 Email: jeff.tantsura@ericsson.com 478 Ilya Varlashkin 479 Google 481 Email: Ilya@nobulus.com 483 Mach(Guoyi) Chen 484 Huawei 486 Email: mach.chen@huawei.com