idnits 2.17.1 draft-ietf-mpls-lsp-ping-lag-multipath-04.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 (June 04, 2018) is 2146 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) No issues found here. Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Engineering Task Force N. Akiya 3 Internet-Draft Big Switch Networks 4 Updates: 8029 (if approved) G. Swallow 5 Intended status: Standards Track Cisco Systems 6 Expires: December 6, 2018 S. Litkowski 7 B. Decraene 8 Orange 9 J. Drake 10 Juniper Networks 11 M. Chen 12 Huawei 13 June 04, 2018 15 Label Switched Path (LSP) Ping/Trace Multipath Support for 16 Link Aggregation Group (LAG) Interfaces 17 draft-ietf-mpls-lsp-ping-lag-multipath-04 19 Abstract 21 This document defines an extension to the MPLS Label Switched Path 22 (LSP) Ping and Traceroute as specified in RFC 8029. The extension 23 allows the MPLS LSP Ping and Traceroute to discover and exercise 24 specific paths of Layer 2 (L2) Equal-Cost Multipath (ECMP) over Link 25 Aggregation Group (LAG) interfaces. 27 This document updates RFC8029. 29 Requirements Language 31 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 32 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 33 document are to be interpreted as described in RFC 2119 [RFC2119]. 35 Status of This Memo 37 This Internet-Draft is submitted in full conformance with the 38 provisions of BCP 78 and BCP 79. 40 Internet-Drafts are working documents of the Internet Engineering 41 Task Force (IETF). Note that other groups may also distribute 42 working documents as Internet-Drafts. The list of current Internet- 43 Drafts is at https://datatracker.ietf.org/drafts/current/. 45 Internet-Drafts are draft documents valid for a maximum of six months 46 and may be updated, replaced, or obsoleted by other documents at any 47 time. It is inappropriate to use Internet-Drafts as reference 48 material or to cite them other than as "work in progress." 49 This Internet-Draft will expire on December 6, 2018. 51 Copyright Notice 53 Copyright (c) 2018 IETF Trust and the persons identified as the 54 document authors. All rights reserved. 56 This document is subject to BCP 78 and the IETF Trust's Legal 57 Provisions Relating to IETF Documents 58 (https://trustee.ietf.org/license-info) in effect on the date of 59 publication of this document. Please review these documents 60 carefully, as they describe your rights and restrictions with respect 61 to this document. Code Components extracted from this document must 62 include Simplified BSD License text as described in Section 4.e of 63 the Trust Legal Provisions and are provided without warranty as 64 described in the Simplified BSD License. 66 Table of Contents 68 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 69 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 70 1.2. Background . . . . . . . . . . . . . . . . . . . . . . . 3 71 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4 72 3. LSR Capability Discovery . . . . . . . . . . . . . . . . . . 6 73 4. Mechanism to Discover L2 ECMP Multipath . . . . . . . . . . . 7 74 4.1. Initiator LSR Procedures . . . . . . . . . . . . . . . . 7 75 4.2. Responder LSR Procedures . . . . . . . . . . . . . . . . 7 76 4.3. Additional Initiator LSR Procedures . . . . . . . . . . . 9 77 5. Mechanism to Validate L2 ECMP Traversal . . . . . . . . . . . 10 78 5.1. Incoming LAG Member Links Verification . . . . . . . . . 11 79 5.1.1. Initiator LSR Procedures . . . . . . . . . . . . . . 11 80 5.1.2. Responder LSR Procedures . . . . . . . . . . . . . . 11 81 5.1.3. Additional Initiator LSR Procedures . . . . . . . . . 12 82 5.2. Individual End-to-End Path Verification . . . . . . . . . 13 83 6. LSR Capability TLV . . . . . . . . . . . . . . . . . . . . . 14 84 7. LAG Description Indicator Flag: G . . . . . . . . . . . . . . 15 85 8. Local Interface Index Sub-TLV . . . . . . . . . . . . . . . . 16 86 9. Remote Interface Index Sub-TLV . . . . . . . . . . . . . . . 16 87 10. Detailed Interface and Label Stack TLV . . . . . . . . . . . 17 88 10.1. Sub-TLVs . . . . . . . . . . . . . . . . . . . . . . . . 19 89 10.1.1. Incoming Label Stack Sub-TLV . . . . . . . . . . . . 19 90 10.1.2. Incoming Interface Index Sub-TLV . . . . . . . . . . 19 91 11. Security Considerations . . . . . . . . . . . . . . . . . . . 20 92 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 93 12.1. LSR Capability TLV . . . . . . . . . . . . . . . . . . . 21 94 12.1.1. LSR Capability Flags . . . . . . . . . . . . . . . . 21 95 12.2. Local Interface Index Sub-TLV . . . . . . . . . . . . . 21 96 12.2.1. Interface Index Flags . . . . . . . . . . . . . . . 22 98 12.3. Remote Interface Index Sub-TLV . . . . . . . . . . . . . 22 99 12.4. Detailed Interface and Label Stack TLV . . . . . . . . . 22 100 12.4.1. Sub-TLVs for TLV Type TBD4 . . . . . . . . . . . . . 23 101 12.5. DS Flags . . . . . . . . . . . . . . . . . . . . . . . . 23 102 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23 103 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 104 14.1. Normative References . . . . . . . . . . . . . . . . . . 24 105 14.2. Informative References . . . . . . . . . . . . . . . . . 24 106 Appendix A. LAG with L2 Switch Issues . . . . . . . . . . . . . 25 107 A.1. Equal Numbers of LAG Members . . . . . . . . . . . . . . 25 108 A.2. Deviating Numbers of LAG Members . . . . . . . . . . . . 25 109 A.3. LAG Only on Right . . . . . . . . . . . . . . . . . . . . 25 110 A.4. LAG Only on Left . . . . . . . . . . . . . . . . . . . . 25 111 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 113 1. Introduction 115 1.1. Terminology 117 The following acronyms/terms are used in this document: 119 o MPLS - Multiprotocol Label Switching. 121 o LSP - Label Switched Path. 123 o LSR - Label Switching Router. 125 o ECMP - Equal-Cost Multipath. 127 o LAG - Link Aggregation Group. 129 o Initiator LSR - LSR which sends MPLS echo request. 131 o Responder LSR - LSR which receives MPLS echo request and sends 132 MPLS echo reply. 134 1.2. Background 136 The MPLS Label Switched Path (LSP) Ping and Traceroute as specified 137 in [RFC8029] are powerful tools designed to diagnose all available 138 layer 3 (L3) paths of LSPs, i.e., provides diagnostic coverage of L3 139 Equal-Cost Multipath (ECMP). In many MPLS networks, Link Aggregation 140 Group (LAG) as defined in [IEEE802.1AX], which provide Layer 2 (L2) 141 ECMP, are often used for various reasons. MPLS LSP Ping and 142 Traceroute tools were not designed to discover and exercise specific 143 paths of L2 ECMP. The result raises a limitation for following 144 scenario when LSP X traverses over LAG Y: 146 o Label switching of LSP X over one or more member links of LAG Y 147 have succeeded. 149 o Label switching of LSP X over one or more member links of LAG Y 150 have failed. 152 o MPLS echo request for LSP X over LAG Y is load balanced over a 153 member link which is label switching successfully. 155 With the above scenario, MPLS LSP Ping and Traceroute will not be 156 able to detect the label switching failure of problematic member 157 link(s) of the LAG. In other words, lack of L2 ECMP diagnostic 158 coverage can produce an outcome where MPLS LSP Ping and Traceroute 159 can be blind to label switching failures over problematic LAG 160 interface. It is, thus, desirable to extend the MPLS LSP Ping and 161 Traceroute to have deterministic diagnostic coverage of LAG 162 interfaces. 164 Creation of this document was motivated by issues encountered in live 165 networks. 167 2. Overview 169 This document defines an extension to the MPLS LSP Ping and 170 Traceroute to describe Multipath Information for LAG member links 171 separately, thus allowing MPLS LSP Ping and Traceroute to discover 172 and exercise specific paths of L2 ECMP over LAG interfaces. Reader 173 is expected to be familiar with mechanics of Downstream Mapping 174 described in Section 3.3 of [RFC8029] and Downstream Detailed Mapping 175 TLV (DDMAP) described in Section 3.4 of [RFC8029]. 177 MPLS echo request carries a DDMAP and an optional TLV to indicate 178 that separate load balancing information for each L2 nexthop over LAG 179 is desired in MPLS echo reply. Responder LSR places the same 180 optional TLV in the MPLS echo reply to provide acknowledgement back 181 to the initiator. It also adds, for each downstream LAG member, a 182 load balance information (i.e. multipath information and interface 183 index). The following figure and the texts provides an example using 184 an LDP network. However the problem and the mechanism is applicable 185 to all types of LSPs which can traverse over LAG interfaces. 187 <----- LDP Network -----> 189 +-------+ 190 | | 191 A-------B=======C-------E 192 | | 193 +-------D-------+ 195 ---- Non-LAG 196 ==== LAG comprising of two member links 198 Figure 1: Example LDP Network 200 When node A is initiating LSP Traceroute to node E, node B will 201 return to node A load balance information for following entries. 203 1. Downstream C over Non-LAG (upper path). 205 2. First Downstream C over LAG (middle path). 207 3. Second Downstream C over LAG (middle path). 209 4. Downstream D over Non-LAG (lower path). 211 This document defines: 213 o In Section 3, a mechanism discover capabilities of responder LSRs; 215 o In Section 4, a mechanism to discover L2 ECMP multipath 216 information; 218 o In Section 5, a mechanism to validate L2 ECMP traversal in some 219 LAG provisioning models; 221 o In Section 6, the LSR Capability TLV; 223 o In Section 7, the LAG Description Indicator flag; 225 o In Section 8, the Local Interface Index Sub-TLV; 227 o In Section 9, the Remote Interface Index Sub-TLV; 229 o In Section 10, the Detailed Interface and Label Stack TLV; 231 o In Appendix A, issues with LAG having an L2 Switch. 233 Note that the mechanism described in this document does not impose 234 any changes to scenarios where an LSP is pinned down to a particular 235 LAG member (i.e. the LAG is not treated as one logical interface by 236 the LSP). 238 Also note that many LAGs are built from p2p links, and thus router X 239 and router X+1 have the same number of LAG members. It is possible 240 to build LAGs asymmetrically by using Ethernet switches in the 241 middle. Appendix A lists some cases which this document does not 242 address; if an operator deploys LAGs in a manner similar to what's 243 shown in Appendix A, the mechanisms in this document may not suit 244 them. 246 3. LSR Capability Discovery 248 The MPLS Ping operates by an initiator LSR sending an MPLS echo 249 request message and receiving back a corresponding MPLS echo reply 250 message from a responder LSR. The MPLS Traceroute operates in a 251 similar way except the initiator LSR potentially sends multiple MPLS 252 echo request messages with incrementing TTL values. 254 There has been many extensions to the MPLS Ping and Traceroute 255 mechanism over the years. Thus it is often useful, and sometimes 256 necessary, for the initiator LSR to deterministically disambiguate 257 the difference between: 259 o The responder LSR sent the MPLS echo reply message with contents C 260 because it has feature X, Y and Z implemented. 262 o The responder LSR sent the MPLS echo reply message with contents C 263 because it has subset of features X, Y and Z implemented but not 264 all. 266 o The responder LSR sent the MPLS echo reply message with contents C 267 because it does not have features X, Y and Z implemented. 269 To allow the initiator LSR to disambiguate the above differences, 270 this document defines the LSR Capability TLV (described in 271 Section 6). When the initiator LSR wishes to discover the 272 capabilities of the responder LSR, the initiator LSR includes the LSR 273 Capability TLV in the MPLS echo request message. When the responder 274 LSR receives an MPLS echo request message with the LSR Capability TLV 275 included, then the responder LSR MUST include the LSR Capability TLV 276 in the MPLS echo reply message with the LSR Capability TLV describing 277 features and extensions supported by the local LSR. 279 It is RECOMMENDED that implementations supporting the LAG Multipath 280 extensions defined in this document include the LSR Capability TLV in 281 MPLS echo request messages. 283 4. Mechanism to Discover L2 ECMP Multipath 285 4.1. Initiator LSR Procedures 287 The MPLS echo request carries a DDMAP with the "LAG Description 288 Indicator flag" (G) set in the DS Flags to indicate that separate 289 load balancing information for each L2 nexthop over LAG is desired in 290 MPLS echo reply. The new "LAG Description Indicator flag" is 291 described in Section 7. 293 4.2. Responder LSR Procedures 295 This section describes the handling of the new TLVs by nodes which 296 understand the "LAG Description Indicator flag". There are two cases 297 - nodes which understand the "LAG Description Indicator flag" but 298 which for some reason cannot describe LAG members separately, and 299 nodes which both understand the "LAG Description Indicator flag" and 300 are able to describe LAG members separately. Note that Section 6, 301 Section 8 and Section 9 describe the new TLVs referenced by this 302 section , and looking over the definition of the new TLVs first may 303 make it easier to read this section. 305 A responder LSR that understand the "LAG Description Indicator flag" 306 but is not capable of describing outgoing LAG member links separately 307 uses the following procedures: 309 o If the received MPLS echo request message had the LSR Capability 310 TLV, the responder LSR MUST include the LSR Capability TLV in the 311 MPLS echo reply message. 313 o The responder LSR MUST clear the "Downstream LAG Info 314 Accommodation flag" in the LSR Capability Flags field of the LSR 315 Capability TLV. This will allow the initiator LSR to understand 316 that the responder LSR cannot describe outgoing LAG member links 317 separately in the DDMAP. 319 A responder LSR that understands the "LAG Description Indicator flag" 320 and is capable of describing outgoing LAG member links separately 321 uses the follow procedures, regardless of whether or not outgoing 322 interfaces include LAG interfaces: 324 o If the received MPLS echo request message had the LSR Capability 325 TLV, the responder LSR MUST include the LSR Capability TLV in the 326 MPLS echo reply message. 328 o The responder LSR MUST set the "Downstream LAG Info Accommodation 329 flag" in the LSR Capability Flags field of the LSR Capability TLV. 331 o For each downstream that is a LAG interface: 333 * The responder LSR MUST add DDMAP in the MPLS echo reply. 335 * The responder LSR MUST set the "LAG Description Indicator flag" 336 in the DS Flags field of the DDMAP. 338 * In the DDMAP, Local Interface Index Sub-TLV, Remote Interface 339 Index Sub-TLV and Multipath Data Sub-TLV are to describe each 340 LAG member link. All other fields of the DDMAP are to describe 341 the LAG interface. 343 * For each LAG member link of this LAG interface: 345 + The responder LSR MUST add a Local Interface Index Sub-TLV 346 (described in Section 8) with the "LAG Member Link Indicator 347 flag" set in the Interface Index Flags field, describing the 348 interface index of this outgoing LAG member link (the local 349 interface index is assigned by the local LSR). 351 + The responder LSR MAY add a Remote Interface Index Sub-TLV 352 (described in Section 9) with the "LAG Member Link Indicator 353 flag" set in the Interface Index Flags field, describing the 354 interface index of the incoming LAG member link on the 355 downstream LSR (this interface index is assigned by the 356 downstream LSR). How the local LSR obtains the interface 357 index of the LAG member link on the downstream LSR is 358 outside the scope of this document. 360 + The responder LSR MUST add an Multipath Data Sub-TLV for 361 this LAG member link, if received DDMAP requested multipath 362 information. 364 Based on the procedures described above, every LAG member link will 365 have a Local Interface Index Sub-TLV and a Multipath Data Sub-TLV 366 entries in the DDMAP. The order of the Sub-TLVs in the DDMAP for a 367 LAG member link MUST be Local Interface Index Sub-TLV immediately 368 followed by Multipath Data Sub-TLV. A LAG member link may also have 369 a corresponding Remote Interface Index Sub-TLV. When a Local 370 Interface Index Sub-TLV, a Remote Interface Index-Sub-TLV and a 371 Multipath Data Sub-TLV are placed in the DDMAP to describe a LAG 372 member link, they MUST be placed in the order of Local Interface 373 Index Sub-TLV, Remote Interface Index-Sub-TLV and Multipath Data Sub- 374 TLV. 376 A responder LSR possessing a LAG interface with two member links 377 would send the following DDMAP for this LAG interface: 379 0 1 2 3 380 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 381 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 382 ~ DDMAP fields describing LAG interface with DS Flags G set ~ 383 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 384 |[MANDATORY] Local Interface Index Sub-TLV of LAG member link #1| 385 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 386 |[OPTIONAL] Remote Interface Index Sub-TLV of LAG member link #1| 387 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 388 |[MANDATORY] Multipath Data Sub-TLV LAG member link #1 | 389 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 390 |[MANDATORY] Local Interface Index Sub-TLV of LAG member link #2| 391 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 392 |[OPTIONAL] Remote Interface Index Sub-TLV of LAG member link #2| 393 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 394 |[MANDATORY] Multipath Data Sub-TLV LAG member link #2 | 395 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 396 | Label Stack Sub-TLV | 397 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 399 Figure 2: Example of DDMAP in MPLS Echo Reply 401 When none of the received multipath information maps to a particular 402 LAG member link, then the responder LSR MUST still place the Local 403 Interface Index Sub-TLV and the Multipath Data Sub-TLV for that LAG 404 member link in the DDMAP, with the Multipath Length field of the 405 Multipath Data Sub-TLV being zero. 407 4.3. Additional Initiator LSR Procedures 409 The procedures above allow an initiator LSR to: 411 o Identify whether or not the responder LSR can describe outgoing 412 LAG member links separately, by looking at the LSR Capability TLV. 414 o Utilize the value of the "LAG Description Indicator flag" in DS 415 Flags to identify whether each received DDMAP describes a LAG 416 interface or a non-LAG interface. 418 o Obtain multipath information which is expected to traverse the 419 specific LAG member link described by corresponding interface 420 index. 422 When an initiator LSR receives a DDMAP containing LAG member 423 information from a downstream LSR with TTL=n, then the subsequent 424 DDMAP sent by the initiator LSR to the downstream LSR with TTL=n+1 425 through a particular LAG member link MUST be updated with following 426 procedures: 428 o The Local Interface Index Sub-TLVs MUST be removed in the sending 429 DDMAP. 431 o If the Remote Interface Index Sub-TLVs were present and the 432 initiator LSR is traversing over a specific LAG member link, then 433 the Remote Interface Index Sub-TLV corresponding to the LAG member 434 link being traversed SHOULD be included in the sending DDMAP. All 435 other Remote Interface Index Sub-TLVs MUST be removed from the 436 sending DDMAP. 438 o The Multipath Data Sub-TLVs MUST be updated to include just one 439 Multipath Data Sub-TLV. The initiator MAY keep just the Multipath 440 Data Sub-TLV corresponding to the LAG member link being traversed, 441 or combine the Multipath Data Sub-TLVs for all LAG member links 442 into a single Multipath Data Sub-TLV when diagnosing further 443 downstream LSRs. 445 o All other fields of the DDMAP are to comply with procedures 446 described in [RFC8029]. 448 Using the DDMAP example described in the Figure 2, the DDMAP being 449 sent by the initiator LSR through LAG member link #1 to the next 450 downstream LSR should be: 452 0 1 2 3 453 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 454 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 455 ~ DDMAP fields describing LAG interface with DS Flags G set ~ 456 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 457 |[OPTIONAL] Remote Interface Index Sub-TLV of LAG member link #1| 458 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 459 | Multipath Data Sub-TLV LAG member link #1 | 460 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 461 | Label Stack Sub-TLV | 462 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 464 Figure 3: Example of DDMAP in MPLS Echo Request 466 5. Mechanism to Validate L2 ECMP Traversal 468 Section 4 defines the responder LSR procedures to constructs a DDMAP 469 for a downstream LAG, and also defines that inclusion of the Remote 470 Interface Index Sub-TLVs describing the incoming LAG member links of 471 the downstream LSR is optional. The reason why it is optional for 472 the responder LSR to include the Remote Interface Index Sub-TLVs is 473 that this information from the downstream LSR is often not available 474 on the responder LSR. In such case, the traversal of LAG member 475 links can be validated with procedures described in Section 5.1. If 476 LSRs can provide the Remote Interface Index Sub-TLVs in DDMAP 477 objects, then the validation procedures described in Section 5.2 can 478 be used. 480 5.1. Incoming LAG Member Links Verification 482 Without downstream LSRs returning remote Interface Index Sub-TLVs in 483 the DDMAP, validation of the LAG member link traversal requires that 484 initiator LSR traverses all available LAG member links and taking the 485 results through a logic. This section provides the mechanism for the 486 initiator LSR to obtain additional information from the downstream 487 LSRs and describes the additional logic in the initiator LSR to 488 validate the L2 ECMP traversal. 490 5.1.1. Initiator LSR Procedures 492 The MPLS echo request is sent with a DDMAP with the "Interface and 493 Label Stack Object Request flag" and "LAG Description Indicator flag" 494 set in the DS Flags to indicate the request for Detailed Interface 495 and Label Stack TLV with additional LAG member link information (i.e. 496 interface index) in the MPLS echo reply. 498 5.1.2. Responder LSR Procedures 500 A responder LSR that understands the "LAG Description Indicator flag" 501 but is not capable of describing incoming LAG member link is to use 502 following procedures: 504 o If the received MPLS echo request message had the LSR Capability 505 TLV, the responder LSR MUST include the LSR Capability TLV in the 506 MPLS echo reply message. 508 o The responder LSR MUST clear the "Upstream LAG Info Accommodation 509 flag" in the LSR Capability Flags field of the LSR Capability TLV. 510 This will allow the initiator LSR to understand that the responder 511 LSR cannot describe incoming LAG member link. 513 A responder LSR that understands the "LAG Description Indicator flag" 514 and is capable of describing incoming LAG member link MUST use the 515 following procedures, regardless of whether or not incoming interface 516 was a LAG interface: 518 o If the received MPLS echo request message had the LSR Capability 519 TLV, the responder LSR MUST include the LSR Capability TLV in the 520 MPLS echo reply message. 522 o The responder LSR MUST set the "Upstream LAG Info Accommodation 523 flag" in the LSR Capability Flags field of the LSR Capability TLV. 525 o When the received DDMAP had "Interface and Label Stack Object 526 Request flag" set in the DS Flags field, the responder LSR MUST 527 add the Detailed Interface and Label Stack TLV (described in 528 Section 10) in the MPLS echo reply. 530 o When the received DDMAP had "Interface and Label Stack Object 531 Request flag" set in the DS Flags field and the incoming interface 532 was a LAG, the responder LSR MUST add the Incoming Interface Index 533 Sub-TLV (described in Section 10.1.2) in the Detailed Interface 534 and Label Stack TLV. The "LAG Member Link Indicator flag" MUST be 535 set in the Interface Index Flags field, and the Interface Index 536 field set to the LAG member link which received the MPLS echo 537 request. 539 These procedures allow initiator LSR to: 541 o Identify whether or not the responder LSR can describe the 542 incoming LAG member link, by looking at the LSR Capability TLV. 544 o Utilize the Incoming Interface Index Sub-TLV in the Detailed 545 Interface and Label Stack TLV to identify, if the incoming 546 interface was a LAG, the identity of the incoming LAG member. 548 5.1.3. Additional Initiator LSR Procedures 550 Along with procedures described in Section 4, the procedures 551 described in this section will allow an initiator LSR to know: 553 o The expected load balance information of every LAG member link, at 554 LSR with TTL=n. 556 o With specific entropy, the expected interface index of the 557 outgoing LAG member link at TTL=n. 559 o With specific entropy, the interface index of the incoming LAG 560 member link at TTL=n+1. 562 Expectation is that there's a relationship between the interface 563 index of the outgoing LAG member link at TTL=n and the interface 564 index of the incoming LAG member link at TTL=n+1 for all discovered 565 entropies. In other words, set of entropies that load balances to 566 outgoing LAG member link X at TTL=n should all reach the nexthop on 567 same incoming LAG member link Y at TTL=n+1. 569 With additional logics, the initiator LSR can perform following 570 checks in a scenario where the initiator knows that there is a LAG, 571 with two LAG members, between TTL=n and TTL=n+1, and has the 572 multipath information to traverse the two LAG members. 574 The initiator LSR sends two MPLS echo request messages to traverse 575 the two LAG members at TTL=n+1: 577 o Success case: 579 * One MPLS echo request message reaches TTL=n+1 on an LAG member 580 1. 582 * The other MPLS echo request message reaches TTL=n+1 on an LAG 583 member 2. 585 The two MPLS echo request messages sent by the initiator LSR reach 586 two different LAG members at the immediate downstream LSR. 588 o Error case: 590 * One MPLS echo request message reaches TTL=n+1 on an LAG member 591 1. 593 * The other MPLS echo request message also reaches TTL=n+1 on an 594 LAG member 1. 596 One or two MPLS echo request messages sent by the initiator LSR 597 does not reach the immediate downstream LSR, or the two MPLS echo 598 request messages reach a same LAG member at the immediate 599 downstream LSR. 601 Note that defined procedures will provide a deterministic result for 602 LAG interfaces that are back-to-back connected between routers (i.e. 603 no L2 switch in between). If there is a L2 switch between LSR at 604 TTL=n and LSR at TTL=n+1, there is no guarantee that traversal of 605 every LAG member link at TTL=n will result in reaching different 606 interface index at TTL=n+1. Issues resulting from LAG with L2 switch 607 in between are further described in Appendix A. LAG provisioning 608 models in operated network should be considered when analyzing the 609 output of LSP Traceroute exercising L2 ECMPs. 611 5.2. Individual End-to-End Path Verification 613 When the Remote Interface Index Sub-TLVs are available from an LSR 614 with TTL=n, then the validation of LAG member link traversal can be 615 performed by the downstream LSR of TTL=n+1. The initiator LSR 616 follows the procedures described in Section 4.3. 618 The DDMAP validation procedures by the downstream responder LSR are 619 then updated to include the comparison of the incoming LAG member 620 link (which MPLS echo request was received on) to the interface index 621 described in the Remote Interface Index Sub-TLV in the DDMAP. 623 Failure of this comparison results in the return code being set to 624 "Downstream Mapping Mismatch (5)". 626 A responder LSR that is not able to perform the above additional 627 DDMAP validation procedures is considered to lack the upstream LAG 628 capability. Thus, if the received MPLS echo request contained the 629 LSR Capability TLV, then the responder LSR MUST include the LSR 630 Capability TLV in the MPLS echo reply and the LSR Capability TLV MUST 631 have the "Upstream LAG Info Accomodation flag" cleared. 633 6. LSR Capability TLV 635 The LSR Capability object is a new TLV that MAY be included in the 636 MPLS echo request message and the MPLS echo reply message. An MPLS 637 echo request message and an MPLS echo reply message MUST NOT include 638 more than one LSR Capability object. Presence of an LSR Capability 639 object in an MPLS echo request message is a request that a responder 640 LSR includes an LSR Capability object in the MPLS echo reply message, 641 with the LSR Capability object describing features and extensions 642 supported. When the received MPLS echo request message contains an 643 LSR Capability object, an responder LSR MUST include the LSR 644 Capability object in the MPLS echo reply message. 646 LSR Capability TLV Type is TBD1. Length is 4. The value field of 647 the LSR Capability TLV has following format: 649 0 1 2 3 650 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 651 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 652 | Type | Length | 653 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 654 | LSR Capability Flags | 655 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 657 Figure 4: LSR Capability TLV 659 LSR Capability Flags 661 The LSR Capability Flags field is a bit vector with following 662 format: 664 0 1 2 3 665 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 666 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 667 | Must Be Zero (Reserved) |U|D| 668 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 669 Two flags are defined: U and D. The remaining flags MUST be set 670 to zero when sending and ignored on receipt. Both U and D flags 671 MUST be cleared in MPLS echo request message when sending, and 672 ignored on receipt. Neither, either or both U and D flags MAY be 673 set in MPLS echo reply message. 675 Flag Name and Meaning 676 ---- ---------------- 678 U Upstream LAG Info Accommodation 680 An LSR sets this flag when the node is capable of 681 describing a LAG member link in the Incoming Interface 682 Index Sub-TLV in the Detailed Interface and 683 Label Stack TLV. 685 D Downstream LAG Info Accommodation 687 An LSR sets this flag when the node is capable of 688 describing LAG member links in the Local Interface 689 Index Sub-TLV and the Multipath Data Sub-TLV in the 690 Downstream Detailed Mapping TLV. 692 7. LAG Description Indicator Flag: G 694 One flag, G, is added in DS Flags field of the DDMAP TLV. The G flag 695 of the DS Flags field in the MPLS echo request message indicates the 696 request for detailed LAG information from the responder LSR. In the 697 MPLS echo reply message, the G flag MUST be set if the DDMAP TLV 698 describes a LAG interface. It MUST be cleared otherwise. 700 DS Flags 702 DS Flags G is added, in Bit Number TBD5, in DS Flags bit vector. 704 0 1 2 3 4 5 6 7 705 +-+-+-+-+-+-+-+-+ 706 | MBZ |G|MBZ|I|N| 707 +-+-+-+-+-+-+-+-+ 709 RFC-Editor-Note: Please update above figure to place the flag G in 710 the bit number TBD5. 712 Flag Name and Meaning 713 ---- ---------------- 715 G LAG Description Indicator 717 When this flag is set in the MPLS echo request, responder is 718 requested to respond with detailed LAG information. When this 719 flag is set in the MPLS echo reply, the corresponding DDMAP 720 describes a LAG interface. 722 8. Local Interface Index Sub-TLV 724 The Local Interface Index object is a Sub-TLV that MAY be included in 725 a DDMAP TLV. Zero or more Local Interface Index object MAY appear in 726 a DDMAP TLV. The Local Interface Index Sub-TLV describes the index 727 assigned by the local LSR to the egress interface. 729 The Local Interface Index Sub-TLV Type is TBD2. Length is 8, and the 730 Value field has following format: 732 0 1 2 3 733 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 734 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 735 | Type | Length | 736 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 737 | Local Interface Index | 738 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 740 Figure 5: Local Interface Index Sub-TLV 742 Local Interface Index 744 An Index assigned by the LSR to this interface. 746 9. Remote Interface Index Sub-TLV 748 The Remote Interface Index object is a Sub-TLV that MAY be included 749 in a DDMAP TLV. Zero or more Remote Interface Index object MAY 750 appear in a DDMAP TLV. The Remote Interface Index Sub-TLV describes 751 the index assigned by the downstream LSR to the ingress interface. 753 The Remote Interface Index Sub-TLV Type is TBD3. Length is 8, and 754 the Value field has following format: 756 0 1 2 3 757 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 758 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 759 | Type | Length | 760 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 761 | Remote Interface Index | 762 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 764 Figure 6: Remote Interface Index Sub-TLV 766 Remote Interface Index 768 An Index assigned by the downstream LSR to the ingress interface. 770 10. Detailed Interface and Label Stack TLV 772 The "Detailed Interface and Label Stack" object is a TLV that MAY be 773 included in a MPLS echo reply message to report the interface on 774 which the MPLS echo request message was received and the label stack 775 that was on the packet when it was received. A responder LSR MUST 776 NOT insert more than one instance of this TLV. This TLV allows the 777 initiator LSR to obtain the exact interface and label stack 778 information as it appears at the responder LSR. 780 Detailed Interface and Label Stack TLV Type is TBD4. Length is K + 781 Sub-TLV Length (sum of Sub-TLVs). K is the sum of all fields of this 782 TLV prior to Sub-TLVs, but the length of K depends on the Address 783 Type. Details of this information is described below. The Value 784 field has following format: 786 0 1 2 3 787 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 788 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 789 | Type | Length | 790 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 791 | Address Type | Must Be Zero | 792 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 793 | IP Address (4 or 16 octets) | 794 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 795 | Interface (4 or 16 octets) | 796 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 797 . . 798 . List of Sub-TLVs . 799 . . 800 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 802 Figure 7: Detailed Interface and Label Stack TLV 804 The Detailed Interface and Label Stack TLV format is derived from the 805 Interface and Label Stack TLV format (from [RFC8029]). Two changes 806 are introduced. First is that label stack, which is of variable 807 length, is converted into a sub-TLV. Second is that a new sub-TLV is 808 added to describe an interface index. The fields of Detailed 809 Interface and Label Stack TLV have the same use and meaning as in 810 [RFC8029]. A summary of the fields taken from the Interface and 811 Label Stack TLV is as below: 813 Address Type 815 The Address Type indicates if the interface is numbered or 816 unnumbered. It also determines the length of the IP Address 817 and Interface fields. The resulting total for the initial part 818 of the TLV is listed in the table below as "K Octets". The 819 Address Type is set to one of the following values: 821 Type # Address Type K Octets 822 ------ ------------ -------- 823 1 IPv4 Numbered 16 824 2 IPv4 Unnumbered 16 825 3 IPv6 Numbered 40 826 4 IPv6 Unnumbered 28 828 IP Address and Interface 830 IPv4 addresses and interface indices are encoded in 4 octets; 831 IPv6 addresses are encoded in 16 octets. 833 If the interface upon which the echo request message was 834 received is numbered, then the Address Type MUST be set to IPv4 835 Numbered or IPv6 Numbered, the IP Address MUST be set to either 836 the LSR's Router ID or the interface address, and the Interface 837 MUST be set to the interface address. 839 If the interface is unnumbered, the Address Type MUST be either 840 IPv4 Unnumbered or IPv6 Unnumbered, the IP Address MUST be the 841 LSR's Router ID, and the Interface MUST be set to the index 842 assigned to the interface. 844 Note: Usage of IPv6 Unnumbered has the same issue as [RFC8029], 845 described in Section 3.4.2 of [RFC7439]. A solution should be 846 considered an applied to both [RFC8029] and this document. 848 10.1. Sub-TLVs 850 This section defines the sub-TLVs that MAY be included as part of the 851 Detailed Interface and Label Stack TLV. 853 Sub-Type Value Field 854 --------- ------------ 855 1 Incoming Label stack 856 2 Incoming Interface Index 858 10.1.1. Incoming Label Stack Sub-TLV 860 The Incoming Label Stack sub-TLV contains the label stack as received 861 by the LSR. If any TTL values have been changed by this LSR, they 862 SHOULD be restored. 864 Incoming Label Stack Sub-TLV Type is 1. Length is variable, and the 865 Value field has following format: 867 0 1 2 3 868 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 869 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 870 | Type | Length | 871 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 872 | Label | TC |S| TTL | 873 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 874 . . 875 . . 876 . . 877 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 878 | Label | TC |S| TTL | 879 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 881 Figure 8: Incoming Label Stack Sub-TLV 883 10.1.2. Incoming Interface Index Sub-TLV 885 The Incoming Interface Index object is a Sub-TLV that MAY be included 886 in a Detailed Interface and Label Stack TLV. The Incoming Interface 887 Index Sub-TLV describes the index assigned by this LSR to the 888 interface which received the MPLS echo request message. 890 Incoming Interface Index Sub-TLV Type is 2. Length is 8, and the 891 Value field has the same format as the Local Interface Index Sub-TLV 892 described in Section 8, and has following format: 894 0 1 2 3 895 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 896 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 897 | Type | Length | 898 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 899 | Interface Index Flags | Must Be Zero | 900 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 901 | Incoming Interface Index | 902 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 904 Figure 9: Incoming Interface Index Sub-TLV 906 Interface Index Flags 908 Interface Index Flags field is a bit vector with following format. 910 0 1 911 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 912 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 913 | Must Be Zero (Reserved) |M| 914 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 916 One flag is defined: M. The remaining flags MUST be set to zero 917 when sending and ignored on receipt. 919 Flag Name and Meaning 920 ---- ---------------- 922 M LAG Member Link Indicator 924 When this flag is set, interface index described in 925 this sub-TLV is a member of a LAG. 927 Incoming Interface Index 929 An Index assigned by the LSR to this interface. 931 11. Security Considerations 933 This document extends LSP Traceroute mechanism to discover and 934 exercise L2 ECMP paths. As a result of supporting the code points 935 and procedures described in this document, additional processing are 936 required by initiator LSRs and responder LSRs, especially to compute 937 and handle increasing number of multipath information. Due to 938 additional processing, it is critical that proper security measures 939 described in [RFC8029] are followed. 941 The LSP Traceroute allows an initiator LSR to discover the paths of 942 tested LSPs, providing deep knowledge of the MPLS network. Exposing 943 such information to a malicious user is considered dangerous. To 944 prevent leakage of vital information to untrusted users, a responder 945 LSR MUST only accept MPLS echo request messages from trusted sources 946 via filtering source IP address field of received MPLS echo request 947 messages. 949 12. IANA Considerations 951 12.1. LSR Capability TLV 953 The IANA is requested to assign new value TBD1 for LSR Capability TLV 954 from the "Multiprotocol Label Switching Architecture (MPLS) Label 955 Switched Paths (LSPs) Ping Parameters - TLVs" registry. 957 Value Meaning Reference 958 ----- ------- --------- 959 TBD1 LSR Capability TLV this document 961 12.1.1. LSR Capability Flags 963 The IANA is requested to create and maintain a registry entitled "LSR 964 Capability Flags" with following registration procedures: 966 Registry Name: LAG Interface Info Flags 968 Bit number Name Reference 969 ---------- ---------------------------------------- --------- 970 31 D: Downstream LAG Info Accommodation this document 971 30 U: Upstream LAG Info Accommodation this document 972 0-29 Unassigned 974 Assignments of LSR Capability Flags are via Standards Action 975 [RFC8126]. 977 12.2. Local Interface Index Sub-TLV 979 The IANA is requested to assign new value TBD2 (from the range 980 4-31743) for the Local Interface Index Sub-TLV from the 981 "Multiprotocol Label Switching Architecture (MPLS) Label Switched 982 Paths (LSPs) Ping Parameters - TLVs" registry, "Sub-TLVs for TLV 983 Types 20" sub-registry. 985 Value Meaning Reference 986 ----- ------- --------- 987 TBD2 Local Interface Index Sub-TLV this document 989 12.2.1. Interface Index Flags 991 The IANA is requested to create and maintain a registry entitled 992 "Interface Index Flags" with following registration procedures: 994 Registry Name: Interface Index Flags 996 Bit number Name Reference 997 ---------- ---------------------------------------- --------- 998 15 M: LAG Member Link Indicator this document 999 0-14 Unassigned 1001 Assignments of Interface Index Flags are via Standards Action 1002 [RFC8126]. 1004 Note that this registry is used by the Interface Index Flags field of 1005 following Sub-TLVs: 1007 o The Local Interface Index Sub-TLV which may be present in the 1008 "Downstream Detailed Mapping" TLV. 1010 o The Remote Interface Index Sub-TLV which may be present in the 1011 "Downstream Detailed Mapping" TLV. 1013 o The Incoming Interface Index Sub-TLV which may be present in the 1014 "Detailed Interface and Label Stack" TLV. 1016 12.3. Remote Interface Index Sub-TLV 1018 The IANA is requested to assign new value TBD3 (from the range 1019 32768-49161) for the Remote Interface Index Sub-TLV from the 1020 "Multiprotocol Label Switching Architecture (MPLS) Label Switched 1021 Paths (LSPs) Ping Parameters - TLVs" registry, "Sub-TLVs for TLV 1022 Types 20" sub-registry. 1024 Value Meaning Reference 1025 ----- ------- --------- 1026 TBD3 Remote Interface Index Sub-TLV this document 1028 12.4. Detailed Interface and Label Stack TLV 1030 The IANA is requested to assign new value TBD4 for Detailed Interface 1031 and Label Stack TLV from the "Multiprotocol Label Switching 1032 Architecture (MPLS) Label Switched Paths (LSPs) Ping Parameters - 1033 TLVs" registry ([IANA-MPLS-LSP-PING]). 1035 Value Meaning Reference 1036 ----- ------- --------- 1037 TBD4 Detailed Interface and Label Stack TLV this document 1039 12.4.1. Sub-TLVs for TLV Type TBD4 1041 The IANA is requested to create and maintain a sub-registry entitled 1042 "Sub-TLVs for TLV Type TBD4" under "Multiprotocol Label Switching 1043 Architecture (MPLS) Label Switched Paths (LSPs) Ping Parameters - 1044 TLVs" registry. 1046 Initial values for this sub-registry, "Sub-TLVs for TLV Types TBD4", 1047 are described below. 1049 Sub-Type Name Reference 1050 ----------- -------------------------------------- --------- 1051 1 Incoming Label Stack this document 1052 2 Incoming Interface Index this document 1053 3-16383 Unassigned (mandatory TLVs) 1054 16384-31743 Experimental 1055 32768-49161 Unassigned (optional TLVs) 1056 49162-64511 Experimental 1058 Assignments of Sub-Types in the mandatory and optional spaces are are 1059 via Standards Action [RFC8126]. Assignments of Sub-Types in the 1060 experimental space is via Specification Required [RFC8126]. 1062 12.5. DS Flags 1064 The IANA is requested to assign a new bit number from the "DS flags" 1065 sub-registry from the "Multi-Protocol Label Switching (MPLS) Label 1066 Switched Paths (LSPs) Ping Parameters - TLVs" registry 1067 ([IANA-MPLS-LSP-PING]). 1069 Note: the "DS flags" sub-registry is created by [RFC8029]. 1071 Bit number Name Reference 1072 ---------- ---------------------------------------- --------- 1073 TBD5 G: LAG Description Indicator this document 1075 13. Acknowledgements 1077 The authors would like to thank Nagendra Kumar and Sam Aldrin for 1078 providing useful comments and suggestions. The authors would like to 1079 thank Loa Andersson for performing a detailed review and providing 1080 number of comments. 1082 The authors also would like to extend sincere thanks to the MPLS RT 1083 review members who took time to review and provide comments. The 1084 members are Eric Osborne, Mach Chen and Yimin Shen. The suggestion 1085 by Mach Chen to generalize and create the LSR Capability TLV was 1086 tremendously helpful for this document and likely for future 1087 documents extending the MPLS LSP Ping and Traceroute mechanism. The 1088 suggestion by Yimin Shen to create two separate validation procedures 1089 had a big impact to the contents of this document. 1091 14. References 1093 14.1. Normative References 1095 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1096 Requirement Levels", BCP 14, RFC 2119, 1097 DOI 10.17487/RFC2119, March 1997, 1098 . 1100 [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., 1101 Aldrin, S., and M. Chen, "Detecting Multiprotocol Label 1102 Switched (MPLS) Data-Plane Failures", RFC 8029, 1103 DOI 10.17487/RFC8029, March 2017, 1104 . 1106 14.2. Informative References 1108 [IANA-MPLS-LSP-PING] 1109 IANA, "Multi-Protocol Label Switching (MPLS) Label 1110 Switched Paths (LSPs) Ping Parameters", 1111 . 1114 [IEEE802.1AX] 1115 IEEE Std. 802.1AX, "IEEE Standard for Local and 1116 metropolitan area networks - Link Aggregation", November 1117 2008. 1119 [RFC7439] George, W., Ed. and C. Pignataro, Ed., "Gap Analysis for 1120 Operating IPv6-Only MPLS Networks", RFC 7439, 1121 DOI 10.17487/RFC7439, January 2015, 1122 . 1124 [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for 1125 Writing an IANA Considerations Section in RFCs", BCP 26, 1126 RFC 8126, DOI 10.17487/RFC8126, June 2017, 1127 . 1129 Appendix A. LAG with L2 Switch Issues 1131 Several flavors of "LAG with L2 switch" provisioning models are 1132 described in this section, with MPLS data plane ECMP traversal 1133 validation issues with each. 1135 A.1. Equal Numbers of LAG Members 1137 R1 ==== S1 ==== R2 1139 The issue with this LAG provisioning model is that packets traversing 1140 a LAG member from R1 to S1 can get load balanced by S1 towards R2. 1141 Therefore, MPLS echo request messages traversing specific LAG member 1142 from R1 to S1 can actually reach R2 via any LAG members, and sender 1143 of MPLS echo request messages have no knowledge of this nor no way to 1144 control this traversal. In the worst case, MPLS echo request 1145 messages with specific entropies to exercise every LAG members from 1146 R1 to S1 can all reach R2 via same LAG member. Thus it is impossible 1147 for MPLS echo request sender to verify that packets intended to 1148 traverse specific LAG member from R1 to S1 did actually traverse that 1149 LAG member, and to deterministically exercise "receive" processing of 1150 every LAG member on R2. 1152 A.2. Deviating Numbers of LAG Members 1154 ____ 1155 R1 ==== S1 ==== R2 1157 There are deviating number of LAG members on the two sides of the L2 1158 switch. The issue with this LAG provisioning model is the same as 1159 previous model, sender of MPLS echo request messages have no 1160 knowledge of L2 load balance algorithm nor entropy values to control 1161 the traversal. 1163 A.3. LAG Only on Right 1165 R1 ---- S1 ==== R2 1167 The issue with this LAG provisioning model is that there is no way 1168 for MPLS echo request sender to deterministically exercise both LAG 1169 members from S1 to R2. And without such, "receive" processing of R2 1170 on each LAG member cannot be verified. 1172 A.4. LAG Only on Left 1174 R1 ==== S1 ---- R2 1175 MPLS echo request sender has knowledge of how to traverse both LAG 1176 members from R1 to S1. However, both types of packets will terminate 1177 on the non-LAG interface at R2. It becomes impossible for MPLS echo 1178 request sender to know that MPLS echo request messages intended to 1179 traverse a specific LAG member from R1 to S1 did indeed traverse that 1180 LAG member. 1182 Authors' Addresses 1184 Nobo Akiya 1185 Big Switch Networks 1187 Email: nobo.akiya.dev@gmail.com 1189 George Swallow 1190 Cisco Systems 1192 Email: swallow@cisco.com 1194 Stephane Litkowski 1195 Orange 1197 Email: stephane.litkowski@orange.com 1199 Bruno Decraene 1200 Orange 1202 Email: bruno.decraene@orange.com 1204 John E. Drake 1205 Juniper Networks 1207 Email: jdrake@juniper.net 1209 Mach(Guoyi) Chen 1210 Huawei 1212 Email: mach.chen@huawei.com