--- 1/draft-ietf-mpls-lsp-ping-lag-multipath-03.txt 2018-06-03 19:13:14.201561032 -0700 +++ 2/draft-ietf-mpls-lsp-ping-lag-multipath-04.txt 2018-06-03 19:13:14.257562716 -0700 @@ -1,27 +1,27 @@ Internet Engineering Task Force N. Akiya Internet-Draft Big Switch Networks Updates: 8029 (if approved) G. Swallow Intended status: Standards Track Cisco Systems -Expires: June 3, 2018 S. Litkowski +Expires: December 6, 2018 S. Litkowski B. Decraene Orange J. Drake Juniper Networks M. Chen Huawei - November 30, 2017 + June 04, 2018 Label Switched Path (LSP) Ping/Trace Multipath Support for Link Aggregation Group (LAG) Interfaces - draft-ietf-mpls-lsp-ping-lag-multipath-03 + draft-ietf-mpls-lsp-ping-lag-multipath-04 Abstract This document defines an extension to the MPLS Label Switched Path (LSP) Ping and Traceroute as specified in RFC 8029. The extension allows the MPLS LSP Ping and Traceroute to discover and exercise specific paths of Layer 2 (L2) Equal-Cost Multipath (ECMP) over Link Aggregation Group (LAG) interfaces. This document updates RFC8029. @@ -39,25 +39,25 @@ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." - This Internet-Draft will expire on June 3, 2018. + This Internet-Draft will expire on December 6, 2018. Copyright Notice - Copyright (c) 2017 IETF Trust and the persons identified as the + Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as @@ -76,46 +76,46 @@ 4.3. Additional Initiator LSR Procedures . . . . . . . . . . . 9 5. Mechanism to Validate L2 ECMP Traversal . . . . . . . . . . . 10 5.1. Incoming LAG Member Links Verification . . . . . . . . . 11 5.1.1. Initiator LSR Procedures . . . . . . . . . . . . . . 11 5.1.2. Responder LSR Procedures . . . . . . . . . . . . . . 11 5.1.3. Additional Initiator LSR Procedures . . . . . . . . . 12 5.2. Individual End-to-End Path Verification . . . . . . . . . 13 6. LSR Capability TLV . . . . . . . . . . . . . . . . . . . . . 14 7. LAG Description Indicator Flag: G . . . . . . . . . . . . . . 15 8. Local Interface Index Sub-TLV . . . . . . . . . . . . . . . . 16 - 9. Remote Interface Index Sub-TLV . . . . . . . . . . . . . . . 17 - 10. Detailed Interface and Label Stack TLV . . . . . . . . . . . 18 - 10.1. Sub-TLVs . . . . . . . . . . . . . . . . . . . . . . . . 20 - 10.1.1. Incoming Label Stack Sub-TLV . . . . . . . . . . . . 20 - 10.1.2. Incoming Interface Index Sub-TLV . . . . . . . . . . 20 - 11. Security Considerations . . . . . . . . . . . . . . . . . . . 21 - 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 - 12.1. LSR Capability TLV . . . . . . . . . . . . . . . . . . . 22 - 12.1.1. LSR Capability Flags . . . . . . . . . . . . . . . . 22 - 12.2. Local Interface Index Sub-TLV . . . . . . . . . . . . . 22 - 12.2.1. Interface Index Flags . . . . . . . . . . . . . . . 23 + 9. Remote Interface Index Sub-TLV . . . . . . . . . . . . . . . 16 + 10. Detailed Interface and Label Stack TLV . . . . . . . . . . . 17 + 10.1. Sub-TLVs . . . . . . . . . . . . . . . . . . . . . . . . 19 + 10.1.1. Incoming Label Stack Sub-TLV . . . . . . . . . . . . 19 + 10.1.2. Incoming Interface Index Sub-TLV . . . . . . . . . . 19 + 11. Security Considerations . . . . . . . . . . . . . . . . . . . 20 + 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 + 12.1. LSR Capability TLV . . . . . . . . . . . . . . . . . . . 21 + 12.1.1. LSR Capability Flags . . . . . . . . . . . . . . . . 21 + 12.2. Local Interface Index Sub-TLV . . . . . . . . . . . . . 21 + 12.2.1. Interface Index Flags . . . . . . . . . . . . . . . 22 - 12.3. Remote Interface Index Sub-TLV . . . . . . . . . . . . . 23 - 12.4. Detailed Interface and Label Stack TLV . . . . . . . . . 23 - 12.4.1. Sub-TLVs for TLV Type TBD4 . . . . . . . . . . . . . 24 - 12.5. DS Flags . . . . . . . . . . . . . . . . . . . . . . . . 24 - 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 24 - 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 25 - 14.1. Normative References . . . . . . . . . . . . . . . . . . 25 - 14.2. Informative References . . . . . . . . . . . . . . . . . 25 - Appendix A. LAG with L2 Switch Issues . . . . . . . . . . . . . 26 - A.1. Equal Numbers of LAG Members . . . . . . . . . . . . . . 26 - A.2. Deviating Numbers of LAG Members . . . . . . . . . . . . 26 - A.3. LAG Only on Right . . . . . . . . . . . . . . . . . . . . 26 - A.4. LAG Only on Left . . . . . . . . . . . . . . . . . . . . 27 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27 + 12.3. Remote Interface Index Sub-TLV . . . . . . . . . . . . . 22 + 12.4. Detailed Interface and Label Stack TLV . . . . . . . . . 22 + 12.4.1. Sub-TLVs for TLV Type TBD4 . . . . . . . . . . . . . 23 + 12.5. DS Flags . . . . . . . . . . . . . . . . . . . . . . . . 23 + 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23 + 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 + 14.1. Normative References . . . . . . . . . . . . . . . . . . 24 + 14.2. Informative References . . . . . . . . . . . . . . . . . 24 + Appendix A. LAG with L2 Switch Issues . . . . . . . . . . . . . 25 + A.1. Equal Numbers of LAG Members . . . . . . . . . . . . . . 25 + A.2. Deviating Numbers of LAG Members . . . . . . . . . . . . 25 + A.3. LAG Only on Right . . . . . . . . . . . . . . . . . . . . 25 + A.4. LAG Only on Left . . . . . . . . . . . . . . . . . . . . 25 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 1. Introduction 1.1. Terminology The following acronyms/terms are used in this document: o MPLS - Multiprotocol Label Switching. o LSP - Label Switched Path. @@ -163,23 +163,23 @@ Creation of this document was motivated by issues encountered in live networks. 2. Overview This document defines an extension to the MPLS LSP Ping and Traceroute to describe Multipath Information for LAG member links separately, thus allowing MPLS LSP Ping and Traceroute to discover and exercise specific paths of L2 ECMP over LAG interfaces. Reader - is expected to be familiar with mechanics of the MPLS LSP Ping and - Traceroute described in Section 3.3 of [RFC8029] and Downstream - Detailed Mapping TLV (DDMAP) described in Section 3.4 of [RFC8029]. + is expected to be familiar with mechanics of Downstream Mapping + described in Section 3.3 of [RFC8029] and Downstream Detailed Mapping + TLV (DDMAP) described in Section 3.4 of [RFC8029]. MPLS echo request carries a DDMAP and an optional TLV to indicate that separate load balancing information for each L2 nexthop over LAG is desired in MPLS echo reply. Responder LSR places the same optional TLV in the MPLS echo reply to provide acknowledgement back to the initiator. It also adds, for each downstream LAG member, a load balance information (i.e. multipath information and interface index). The following figure and the texts provides an example using an LDP network. However the problem and the mechanism is applicable to all types of LSPs which can traverse over LAG interfaces. @@ -264,21 +264,21 @@ all. o The responder LSR sent the MPLS echo reply message with contents C because it does not have features X, Y and Z implemented. To allow the initiator LSR to disambiguate the above differences, this document defines the LSR Capability TLV (described in Section 6). When the initiator LSR wishes to discover the capabilities of the responder LSR, the initiator LSR includes the LSR Capability TLV in the MPLS echo request message. When the responder - LSR receives an MPLS echo reply message with the LSR Capability TLV + LSR receives an MPLS echo request message with the LSR Capability TLV included, then the responder LSR MUST include the LSR Capability TLV in the MPLS echo reply message with the LSR Capability TLV describing features and extensions supported by the local LSR. It is RECOMMENDED that implementations supporting the LAG Multipath extensions defined in this document include the LSR Capability TLV in MPLS echo request messages. 4. Mechanism to Discover L2 ECMP Multipath @@ -565,21 +565,21 @@ entropies. In other words, set of entropies that load balances to outgoing LAG member link X at TTL=n should all reach the nexthop on same incoming LAG member link Y at TTL=n+1. With additional logics, the initiator LSR can perform following checks in a scenario where the initiator knows that there is a LAG, with two LAG members, between TTL=n and TTL=n+1, and has the multipath information to traverse the two LAG members. The initiator LSR sends two MPLS echo request messages to traverse - the two LAG members at TTL=1: + the two LAG members at TTL=n+1: o Success case: * One MPLS echo request message reaches TTL=n+1 on an LAG member 1. * The other MPLS echo request message reaches TTL=n+1 on an LAG member 2. The two MPLS echo request messages sent by the initiator LSR reach @@ -672,21 +672,21 @@ ignored on receipt. Neither, either or both U and D flags MAY be set in MPLS echo reply message. Flag Name and Meaning ---- ---------------- U Upstream LAG Info Accommodation An LSR sets this flag when the node is capable of describing a LAG member link in the Incoming Interface - Index Sub-TLV in the in the Detailed Interface and + Index Sub-TLV in the Detailed Interface and Label Stack TLV. D Downstream LAG Info Accommodation An LSR sets this flag when the node is capable of describing LAG member links in the Local Interface Index Sub-TLV and the Multipath Data Sub-TLV in the Downstream Detailed Mapping TLV. 7. LAG Description Indicator Flag: G @@ -727,95 +727,49 @@ assigned by the local LSR to the egress interface. The Local Interface Index Sub-TLV Type is TBD2. Length is 8, and the Value field has following format: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Interface Index Flags | Must Be Zero | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local Interface Index | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 5: Local Interface Index Sub-TLV - Interface Index Flags - - Interface Index Flags field is a bit vector with following format. - - 0 1 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Must Be Zero (Reserved) |M| - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - - One flag is defined: M. The remaining flags MUST be set to zero - when sending and ignored on receipt. - - Flag Name and Meaning - ---- ---------------- - - M LAG Member Link Indicator - - When this flag is set, interface index described in - this sub-TLV is a member of a LAG. - Local Interface Index An Index assigned by the LSR to this interface. 9. Remote Interface Index Sub-TLV The Remote Interface Index object is a Sub-TLV that MAY be included in a DDMAP TLV. Zero or more Remote Interface Index object MAY appear in a DDMAP TLV. The Remote Interface Index Sub-TLV describes the index assigned by the downstream LSR to the ingress interface. The Remote Interface Index Sub-TLV Type is TBD3. Length is 8, and the Value field has following format: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Interface Index Flags | Must Be Zero | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Remote Interface Index | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 6: Remote Interface Index Sub-TLV - Interface Index Flags - - Interface Index Flags field is a bit vector with following format. - - 0 1 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Must Be Zero (Reserved) |M| - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - - One flag is defined: M. The remaining flags MUST be set to zero - when sending and ignored on receipt. - - Flag Name and Meaning - ---- ---------------- - - M LAG Member Link Indicator - - When this flag is set, interface index described in - this sub-TLV is a member of a LAG. - Remote Interface Index An Index assigned by the downstream LSR to the ingress interface. 10. Detailed Interface and Label Stack TLV The "Detailed Interface and Label Stack" object is a TLV that MAY be included in a MPLS echo reply message to report the interface on which the MPLS echo request message was received and the label stack that was on the packet when it was received. A responder LSR MUST @@ -833,22 +787,20 @@ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Address Type | Must Be Zero | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP Address (4 or 16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface (4 or 16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Must Be Zero | Sub-TLV Length | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . List of Sub-TLVs . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 7: Detailed Interface and Label Stack TLV The Detailed Interface and Label Stack TLV format is derived from the Interface and Label Stack TLV format (from [RFC8029]). Two changes are introduced. First is that label stack, which is of variable @@ -886,25 +838,20 @@ If the interface is unnumbered, the Address Type MUST be either IPv4 Unnumbered or IPv6 Unnumbered, the IP Address MUST be the LSR's Router ID, and the Interface MUST be set to the index assigned to the interface. Note: Usage of IPv6 Unnumbered has the same issue as [RFC8029], described in Section 3.4.2 of [RFC7439]. A solution should be considered an applied to both [RFC8029] and this document. - Sub-TLV Length - - Total length in octets of the sub-TLVs associated with this - TLV. - 10.1. Sub-TLVs This section defines the sub-TLVs that MAY be included as part of the Detailed Interface and Label Stack TLV. Sub-Type Value Field --------- ------------ 1 Incoming Label stack 2 Incoming Interface Index @@ -1018,21 +965,21 @@ Registry Name: LAG Interface Info Flags Bit number Name Reference ---------- ---------------------------------------- --------- 31 D: Downstream LAG Info Accommodation this document 30 U: Upstream LAG Info Accommodation this document 0-29 Unassigned Assignments of LSR Capability Flags are via Standards Action - [RFC5226]. + [RFC8126]. 12.2. Local Interface Index Sub-TLV The IANA is requested to assign new value TBD2 (from the range 4-31743) for the Local Interface Index Sub-TLV from the "Multiprotocol Label Switching Architecture (MPLS) Label Switched Paths (LSPs) Ping Parameters - TLVs" registry, "Sub-TLVs for TLV Types 20" sub-registry. Value Meaning Reference @@ -1045,21 +992,21 @@ "Interface Index Flags" with following registration procedures: Registry Name: Interface Index Flags Bit number Name Reference ---------- ---------------------------------------- --------- 15 M: LAG Member Link Indicator this document 0-14 Unassigned Assignments of Interface Index Flags are via Standards Action - [RFC5226]. + [RFC8126]. Note that this registry is used by the Interface Index Flags field of following Sub-TLVs: o The Local Interface Index Sub-TLV which may be present in the "Downstream Detailed Mapping" TLV. o The Remote Interface Index Sub-TLV which may be present in the "Downstream Detailed Mapping" TLV. @@ -1102,31 +1049,31 @@ Sub-Type Name Reference ----------- -------------------------------------- --------- 1 Incoming Label Stack this document 2 Incoming Interface Index this document 3-16383 Unassigned (mandatory TLVs) 16384-31743 Experimental 32768-49161 Unassigned (optional TLVs) 49162-64511 Experimental Assignments of Sub-Types in the mandatory and optional spaces are are - via Standards Action [RFC5226]. Assignments of Sub-Types in the - experimental space is via Specification Required [RFC5226]. + via Standards Action [RFC8126]. Assignments of Sub-Types in the + experimental space is via Specification Required [RFC8126]. 12.5. DS Flags The IANA is requested to assign a new bit number from the "DS flags" sub-registry from the "Multi-Protocol Label Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters - TLVs" registry ([IANA-MPLS-LSP-PING]). - Note: the "DS flags" sub-registry is created by [RFC7537]. + Note: the "DS flags" sub-registry is created by [RFC8029]. Bit number Name Reference ---------- ---------------------------------------- --------- TBD5 G: LAG Description Indicator this document 13. Acknowledgements The authors would like to thank Nagendra Kumar and Sam Aldrin for providing useful comments and suggestions. The authors would like to thank Loa Andersson for performing a detailed review and providing @@ -1143,54 +1090,49 @@ 14. References 14.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . - [RFC7537] Decraene, B., Akiya, N., Pignataro, C., Andersson, L., and - S. Aldrin, "IANA Registries for LSP Ping Code Points", - RFC 7537, DOI 10.17487/RFC7537, May 2015, - . - [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., Aldrin, S., and M. Chen, "Detecting Multiprotocol Label Switched (MPLS) Data-Plane Failures", RFC 8029, DOI 10.17487/RFC8029, March 2017, . 14.2. Informative References [IANA-MPLS-LSP-PING] IANA, "Multi-Protocol Label Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters", . [IEEE802.1AX] IEEE Std. 802.1AX, "IEEE Standard for Local and metropolitan area networks - Link Aggregation", November 2008. - [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an - IANA Considerations Section in RFCs", RFC 5226, - DOI 10.17487/RFC5226, May 2008, - . - [RFC7439] George, W., Ed. and C. Pignataro, Ed., "Gap Analysis for Operating IPv6-Only MPLS Networks", RFC 7439, DOI 10.17487/RFC7439, January 2015, . + [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for + Writing an IANA Considerations Section in RFCs", BCP 26, + RFC 8126, DOI 10.17487/RFC8126, June 2017, + . + Appendix A. LAG with L2 Switch Issues Several flavors of "LAG with L2 switch" provisioning models are described in this section, with MPLS data plane ECMP traversal validation issues with each. A.1. Equal Numbers of LAG Members R1 ==== S1 ==== R2