draft-ietf-mpls-lsp-ping-lag-multipath-04.txt   draft-ietf-mpls-lsp-ping-lag-multipath-05.txt 
Internet Engineering Task Force N. Akiya Internet Engineering Task Force N. Akiya
Internet-Draft Big Switch Networks Internet-Draft Big Switch Networks
Updates: 8029 (if approved) G. Swallow Updates: 8029 (if approved) G. Swallow
Intended status: Standards Track Cisco Systems Intended status: Standards Track Cisco Systems
Expires: December 6, 2018 S. Litkowski Expires: April 26, 2019 S. Litkowski
B. Decraene B. Decraene
Orange Orange
J. Drake J. Drake
Juniper Networks Juniper Networks
M. Chen M. Chen
Huawei Huawei
June 04, 2018 October 23, 2018
Label Switched Path (LSP) Ping/Trace Multipath Support for Label Switched Path (LSP) Ping/Trace Multipath Support for
Link Aggregation Group (LAG) Interfaces Link Aggregation Group (LAG) Interfaces
draft-ietf-mpls-lsp-ping-lag-multipath-04 draft-ietf-mpls-lsp-ping-lag-multipath-05
Abstract Abstract
This document defines an extension to the MPLS Label Switched Path This document defines extensions to the MPLS Label Switched Path
(LSP) Ping and Traceroute as specified in RFC 8029. The extension (LSP) Ping and Traceroute mechanisms as specified in RFC 8029. The
allows the MPLS LSP Ping and Traceroute to discover and exercise extensions allow the MPLS LSP Ping and Traceroute mechanisms to
specific paths of Layer 2 (L2) Equal-Cost Multipath (ECMP) over Link discover and exercise specific paths of Layer 2 (L2) Equal-Cost
Aggregation Group (LAG) interfaces. Multipath (ECMP) over Link Aggregation Group (LAG) interfaces.
Additionally, a mechanism is defined to enable determination of the
capabilities of an LSR supported.
This document updates RFC8029. This document updates RFC8029.
Requirements Language Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
document are to be interpreted as described in RFC 2119 [RFC2119]. "OPTIONAL" in this document are to be interpreted as described in
BCP14 [RFC2119][RFC8174] when, and only when, they appear in all
capitals, as shown here.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 6, 2018.
This Internet-Draft will expire on April 26, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 26 skipping to change at page 2, line 32
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Background . . . . . . . . . . . . . . . . . . . . . . . 3 1.2. Background . . . . . . . . . . . . . . . . . . . . . . . 3
2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Overview of Solution . . . . . . . . . . . . . . . . . . . . 4
3. LSR Capability Discovery . . . . . . . . . . . . . . . . . . 6 3. LSR Capability Discovery . . . . . . . . . . . . . . . . . . 6
3.1. Initiator LSR Procedures . . . . . . . . . . . . . . . . 7
3.2. Responder LSR Procedures . . . . . . . . . . . . . . . . 7
4. Mechanism to Discover L2 ECMP Multipath . . . . . . . . . . . 7 4. Mechanism to Discover L2 ECMP Multipath . . . . . . . . . . . 7
4.1. Initiator LSR Procedures . . . . . . . . . . . . . . . . 7 4.1. Initiator LSR Procedures . . . . . . . . . . . . . . . . 7
4.2. Responder LSR Procedures . . . . . . . . . . . . . . . . 7 4.2. Responder LSR Procedures . . . . . . . . . . . . . . . . 8
4.3. Additional Initiator LSR Procedures . . . . . . . . . . . 9 4.3. Additional Initiator LSR Procedures . . . . . . . . . . . 10
5. Mechanism to Validate L2 ECMP Traversal . . . . . . . . . . . 10 5. Mechanism to Validate L2 ECMP Traversal . . . . . . . . . . . 11
5.1. Incoming LAG Member Links Verification . . . . . . . . . 11 5.1. Incoming LAG Member Links Verification . . . . . . . . . 11
5.1.1. Initiator LSR Procedures . . . . . . . . . . . . . . 11 5.1.1. Initiator LSR Procedures . . . . . . . . . . . . . . 11
5.1.2. Responder LSR Procedures . . . . . . . . . . . . . . 11 5.1.2. Responder LSR Procedures . . . . . . . . . . . . . . 12
5.1.3. Additional Initiator LSR Procedures . . . . . . . . . 12 5.1.3. Additional Initiator LSR Procedures . . . . . . . . . 12
5.2. Individual End-to-End Path Verification . . . . . . . . . 13 5.2. Individual End-to-End Path Verification . . . . . . . . . 13
6. LSR Capability TLV . . . . . . . . . . . . . . . . . . . . . 14 6. LSR Capability TLV . . . . . . . . . . . . . . . . . . . . . 14
7. LAG Description Indicator Flag: G . . . . . . . . . . . . . . 15 7. LAG Description Indicator Flag: G . . . . . . . . . . . . . . 15
8. Local Interface Index Sub-TLV . . . . . . . . . . . . . . . . 16 8. Local Interface Index Sub-TLV . . . . . . . . . . . . . . . . 16
9. Remote Interface Index Sub-TLV . . . . . . . . . . . . . . . 16 9. Remote Interface Index Sub-TLV . . . . . . . . . . . . . . . 17
10. Detailed Interface and Label Stack TLV . . . . . . . . . . . 17 10. Detailed Interface and Label Stack TLV . . . . . . . . . . . 17
10.1. Sub-TLVs . . . . . . . . . . . . . . . . . . . . . . . . 19 10.1. Sub-TLVs . . . . . . . . . . . . . . . . . . . . . . . . 19
10.1.1. Incoming Label Stack Sub-TLV . . . . . . . . . . . . 19 10.1.1. Incoming Label Stack Sub-TLV . . . . . . . . . . . . 19
10.1.2. Incoming Interface Index Sub-TLV . . . . . . . . . . 19 10.1.2. Incoming Interface Index Sub-TLV . . . . . . . . . . 20
11. Security Considerations . . . . . . . . . . . . . . . . . . . 20 11. Security Considerations . . . . . . . . . . . . . . . . . . . 21
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21
12.1. LSR Capability TLV . . . . . . . . . . . . . . . . . . . 21 12.1. LSR Capability TLV . . . . . . . . . . . . . . . . . . . 21
12.1.1. LSR Capability Flags . . . . . . . . . . . . . . . . 21 12.1.1. LSR Capability Flags . . . . . . . . . . . . . . . . 21
12.2. Local Interface Index Sub-TLV . . . . . . . . . . . . . 21 12.2. Local Interface Index Sub-TLV . . . . . . . . . . . . . 22
12.2.1. Interface Index Flags . . . . . . . . . . . . . . . 22 12.2.1. Interface Index Flags . . . . . . . . . . . . . . . 22
12.3. Remote Interface Index Sub-TLV . . . . . . . . . . . . . 22 12.3. Remote Interface Index Sub-TLV . . . . . . . . . . . . . 22
12.4. Detailed Interface and Label Stack TLV . . . . . . . . . 22 12.4. Detailed Interface and Label Stack TLV . . . . . . . . . 23
12.4.1. Sub-TLVs for TLV Type TBD4 . . . . . . . . . . . . . 23 12.4.1. Sub-TLVs for TLV Type TBD4 . . . . . . . . . . . . . 23
12.5. DS Flags . . . . . . . . . . . . . . . . . . . . . . . . 23 12.5. DS Flags . . . . . . . . . . . . . . . . . . . . . . . . 23
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 24
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 24
14.1. Normative References . . . . . . . . . . . . . . . . . . 24 14.1. Normative References . . . . . . . . . . . . . . . . . . 24
14.2. Informative References . . . . . . . . . . . . . . . . . 24 14.2. Informative References . . . . . . . . . . . . . . . . . 24
Appendix A. LAG with L2 Switch Issues . . . . . . . . . . . . . 25 Appendix A. LAG with intermediate L2 Switch Issues . . . . . . . 25
A.1. Equal Numbers of LAG Members . . . . . . . . . . . . . . 25 A.1. Equal Numbers of LAG Members . . . . . . . . . . . . . . 25
A.2. Deviating Numbers of LAG Members . . . . . . . . . . . . 25 A.2. Deviating Numbers of LAG Members . . . . . . . . . . . . 25
A.3. LAG Only on Right . . . . . . . . . . . . . . . . . . . . 25 A.3. LAG Only on Right . . . . . . . . . . . . . . . . . . . . 26
A.4. LAG Only on Left . . . . . . . . . . . . . . . . . . . . 25 A.4. LAG Only on Left . . . . . . . . . . . . . . . . . . . . 26
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26
1. Introduction 1. Introduction
1.1. Terminology 1.1. Terminology
The following acronyms/terms are used in this document: The following acronyms/terms are used in this document:
o MPLS - Multiprotocol Label Switching. o MPLS - Multiprotocol Label Switching.
skipping to change at page 3, line 43 skipping to change at page 3, line 49
o LAG - Link Aggregation Group. o LAG - Link Aggregation Group.
o Initiator LSR - LSR which sends MPLS echo request. o Initiator LSR - LSR which sends MPLS echo request.
o Responder LSR - LSR which receives MPLS echo request and sends o Responder LSR - LSR which receives MPLS echo request and sends
MPLS echo reply. MPLS echo reply.
1.2. Background 1.2. Background
The MPLS Label Switched Path (LSP) Ping and Traceroute as specified The MPLS Label Switched Path (LSP) Ping and Traceroute mechanisms
in [RFC8029] are powerful tools designed to diagnose all available [RFC8029] are powerful tools designed to diagnose all available Layer
layer 3 (L3) paths of LSPs, i.e., provides diagnostic coverage of L3 3 (L3) paths of LSPs, including diagnostic coverage of L3 Equal-Cost
Equal-Cost Multipath (ECMP). In many MPLS networks, Link Aggregation Multipath (ECMP). In many MPLS networks, Link Aggregation Group
Group (LAG) as defined in [IEEE802.1AX], which provide Layer 2 (L2) (LAG) as defined in [IEEE802.1AX], which provides Layer 2 (L2) ECMP,
ECMP, are often used for various reasons. MPLS LSP Ping and is often used for various reasons. MPLS LSP Ping and Traceroute
Traceroute tools were not designed to discover and exercise specific tools were not designed to discover and exercise specific paths of L2
paths of L2 ECMP. The result raises a limitation for following ECMP. This raises a limitation for the following scenario when an
scenario when LSP X traverses over LAG Y: LSP traverses over a LAG:
o Label switching of LSP X over one or more member links of LAG Y
have succeeded.
o Label switching of LSP X over one or more member links of LAG Y o Label switching over some member links of the LAG is successful,
have failed. but will be failed over other member links of the LAG.
o MPLS echo request for LSP X over LAG Y is load balanced over a o MPLS echo request for the LSP over the LAG is load balanced on one
member link which is label switching successfully. of the member links which is label switching successfully.
With the above scenario, MPLS LSP Ping and Traceroute will not be With the above scenarios, MPLS LSP Ping and Traceroute will not be
able to detect the label switching failure of problematic member able to detect the label switching failure of the problematic member
link(s) of the LAG. In other words, lack of L2 ECMP diagnostic link(s) of the LAG. In other words, lack of L2 ECMP diagnostic
coverage can produce an outcome where MPLS LSP Ping and Traceroute coverage can produce an outcome where MPLS LSP Ping and Traceroute
can be blind to label switching failures over problematic LAG can be blind to label switching failures over a problematic LAG
interface. It is, thus, desirable to extend the MPLS LSP Ping and interface. It is, thus, desirable to extend the MPLS LSP Ping and
Traceroute to have deterministic diagnostic coverage of LAG Traceroute to have deterministic diagnostic coverage of LAG
interfaces. interfaces.
Creation of this document was motivated by issues encountered in live The need for a solution of this problem was motivated by issues
networks. encountered in live networks.
2. Overview 2. Overview of Solution
This document defines an extension to the MPLS LSP Ping and This document defines an optional TLV to discover the capabilities of
Traceroute to describe Multipath Information for LAG member links a responder LSR and extensions for use with the MPLS LSP Ping and
separately, thus allowing MPLS LSP Ping and Traceroute to discover Traceroute mechanisms to describe Multipath Information for
and exercise specific paths of L2 ECMP over LAG interfaces. Reader individual LAG member links, thus allowing MPLS LSP Ping and
is expected to be familiar with mechanics of Downstream Mapping Traceroute to discover and exercise specific paths of L2 ECMP over
described in Section 3.3 of [RFC8029] and Downstream Detailed Mapping LAG interfaces. The reader is expected to be familiar with mechanics
TLV (DDMAP) described in Section 3.4 of [RFC8029]. 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 The solution consists of the MPLS echo request containing a DDMAP TLV
that separate load balancing information for each L2 nexthop over LAG and the optional LSR capability TLV to indicate that separate load
is desired in MPLS echo reply. Responder LSR places the same balancing information for each L2 nexthop over LAG is desired in the
optional TLV in the MPLS echo reply to provide acknowledgement back MPLS echo reply. The Responder LSR places the same optional LSR
to the initiator. It also adds, for each downstream LAG member, a capability TLV in the MPLS echo reply to provide acknowledgement back
load balance information (i.e. multipath information and interface to the initiator LSR. It also adds, for each downstream LAG member,
index). The following figure and the texts provides an example using load balance information (i.e., multipath information and interface
an LDP network. However the problem and the mechanism is applicable index). This mechanism is applicable to all types of LSPs which can
to all types of LSPs which can traverse over LAG interfaces. traverse over LAG interfaces. Many LAGs are built from p2p links,
with router X and router X+1 having direct connectivity and the same
number of LAG members. It is possible to build LAGs asymmetrically
by using Ethernet switches between two routers. Appendix A lists
some use cases for which the mechanisms defined in this document may
not be applicable. Note that the mechanisms described in this
document do not impose any changes to scenarios where an LSP is
pinned down to a particular LAG member (i.e. the LAG is not treated
as one logical interface by the LSP).
The following figure and description provides an example using an LDP
network.
<----- LDP Network -----> <----- LDP Network ----->
+-------+ +-------+
| | | |
A-------B=======C-------E A-------B=======C-------E
| | | |
+-------D-------+ +-------D-------+
---- Non-LAG ---- Non-LAG
skipping to change at page 5, line 31 skipping to change at page 5, line 40
1. Downstream C over Non-LAG (upper path). 1. Downstream C over Non-LAG (upper path).
2. First Downstream C over LAG (middle path). 2. First Downstream C over LAG (middle path).
3. Second Downstream C over LAG (middle path). 3. Second Downstream C over LAG (middle path).
4. Downstream D over Non-LAG (lower path). 4. Downstream D over Non-LAG (lower path).
This document defines: This document defines:
o In Section 3, a mechanism discover capabilities of responder LSRs; o In Section 3, a mechanism to discover capabilities of responder
LSRs;
o In Section 4, a mechanism to discover L2 ECMP multipath o In Section 4, a mechanism to discover L2 ECMP multipath
information; information;
o In Section 5, a mechanism to validate L2 ECMP traversal in some o In Section 5, a mechanism to validate L2 ECMP traversal;
LAG provisioning models;
o In Section 6, the LSR Capability TLV; o In Section 6, the LSR Capability TLV;
o In Section 7, the LAG Description Indicator flag; o In Section 7, the LAG Description Indicator flag;
o In Section 8, the Local Interface Index Sub-TLV; o In Section 8, the Local Interface Index Sub-TLV;
o In Section 9, the Remote Interface Index Sub-TLV; o In Section 9, the Remote Interface Index Sub-TLV;
o In Section 10, the Detailed Interface and Label Stack TLV; o In Section 10, the Detailed Interface and Label Stack TLV;
o In Appendix A, issues with LAG having an L2 Switch.
Note that the mechanism described in this document does not impose
any changes to scenarios where an LSP is pinned down to a particular
LAG member (i.e. the LAG is not treated as one logical interface by
the LSP).
Also note that many LAGs are built from p2p links, and thus router X
and router X+1 have the same number of LAG members. It is possible
to build LAGs asymmetrically by using Ethernet switches in the
middle. Appendix A lists some cases which this document does not
address; if an operator deploys LAGs in a manner similar to what's
shown in Appendix A, the mechanisms in this document may not suit
them.
3. LSR Capability Discovery 3. LSR Capability Discovery
The MPLS Ping operates by an initiator LSR sending an MPLS echo The MPLS Ping operates by an initiator LSR sending an MPLS echo
request message and receiving back a corresponding MPLS echo reply request message and receiving back a corresponding MPLS echo reply
message from a responder LSR. The MPLS Traceroute operates in a message from a responder LSR. The MPLS Traceroute operates in a
similar way except the initiator LSR potentially sends multiple MPLS similar way except the initiator LSR potentially sends multiple MPLS
echo request messages with incrementing TTL values. echo request messages with incrementing TTL values.
There has been many extensions to the MPLS Ping and Traceroute There have been many extensions to the MPLS Ping and Traceroute
mechanism over the years. Thus it is often useful, and sometimes mechanism over the years. Thus it is often useful, and sometimes
necessary, for the initiator LSR to deterministically disambiguate necessary, for the initiator LSR to deterministically disambiguate
the difference between: the differences between:
o The responder LSR sent the MPLS echo reply message with contents C o The responder LSR sent the MPLS echo reply message with contents C
because it has feature X, Y and Z implemented. because it has feature X, Y and Z implemented.
o The responder LSR sent the MPLS echo reply message with contents C o The responder LSR sent the MPLS echo reply message with contents C
because it has subset of features X, Y and Z implemented but not because it has subset of features X, Y and Z implemented but not
all. all.
o The responder LSR sent the MPLS echo reply message with contents C o The responder LSR sent the MPLS echo reply message with contents C
because it does not have features X, Y and Z implemented. because it does not have features X, Y and Z implemented.
To allow the initiator LSR to disambiguate the above differences, To allow the initiator LSR to disambiguate the above differences,
this document defines the LSR Capability TLV (described in this document defines the LSR Capability TLV (described in
Section 6). When the initiator LSR wishes to discover the Section 6). When the initiator LSR wishes to discover the
capabilities of the responder LSR, the initiator LSR includes the LSR capabilities of the responder LSR, the initiator LSR includes the LSR
Capability TLV in the MPLS echo request message. When the responder Capability TLV in the MPLS echo request message. When the responder
LSR receives an MPLS echo request 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 included, if it knows the LSR Capability TLV, then it MUST include
in the MPLS echo reply message with the LSR Capability TLV describing the LSR Capability TLV in the MPLS echo reply message with the LSR
features and extensions supported by the local LSR. Capability TLV describing features and extensions supported by the
local LSR. Otherwise, an MPLS echo reply MUST be sent back to the
initiator LSR with the return code set to "One or more of the TLVs
was not understood". Then the initiator LSR can send another MPLS
echo request without including the LSR Capability TLV.
It is RECOMMENDED that implementations supporting the LAG Multipath It is RECOMMENDED that implementations supporting the LAG Multipath
extensions defined in this document include the LSR Capability TLV in extensions defined in this document include the LSR Capability TLV in
MPLS echo request messages. MPLS echo request messages.
4. Mechanism to Discover L2 ECMP Multipath 3.1. Initiator LSR Procedures
4.1. Initiator LSR Procedures If an initiator LSR does not know what capabilities a responder LSR
can support, it can send an MPLS each request message and carry the
LSR Capability TLV to the responder to discover the capabilities that
the responder LSR can support.
The MPLS echo request carries a DDMAP with the "LAG Description 3.2. Responder LSR Procedures
Indicator flag" (G) set in the DS Flags to indicate that separate
load balancing information for each L2 nexthop over LAG is desired in
MPLS echo reply. The new "LAG Description Indicator flag" is
described in Section 7.
4.2. Responder LSR Procedures When a responder LSR received an MPLS echo request message that
carries the LSR Capability TLV, the following procedures are used:
This section describes the handling of the new TLVs by nodes which If the responder knows how to process the LSR Capability TLV, the
understand the "LAG Description Indicator flag". There are two cases following procedures are used:
- nodes which understand the "LAG Description Indicator flag" but
which for some reason cannot describe LAG members separately, and
nodes which both understand the "LAG Description Indicator flag" and
are able to describe LAG members separately. Note that Section 6,
Section 8 and Section 9 describe the new TLVs referenced by this
section , and looking over the definition of the new TLVs first may
make it easier to read this section.
A responder LSR that understand the "LAG Description Indicator flag" o The responder LSR MUST include the LSR Capability TLV in the MPLS
but is not capable of describing outgoing LAG member links separately echo reply message.
uses the following procedures:
o If the received MPLS echo request message had the LSR Capability o If the responder LSR understands the "LAG Description Indicator
TLV, the responder LSR MUST include the LSR Capability TLV in the flag":
MPLS echo reply message.
o The responder LSR MUST clear the "Downstream LAG Info * Set the "Downstream LAG Info Accommodation flag" if the
Accommodation flag" in the LSR Capability Flags field of the LSR responder LSR is capable of describing outgoing LAG member
Capability TLV. This will allow the initiator LSR to understand links separately; otherwise, clear the "Downstream LAG Info
that the responder LSR cannot describe outgoing LAG member links Accommodation flag".
separately in the DDMAP.
A responder LSR that understands the "LAG Description Indicator flag" * Set the "Upstream LAG Info Accommodation flag" if responder LSR
and is capable of describing outgoing LAG member links separately is capable of describing incoming LAG member links separately;
uses the follow procedures, regardless of whether or not outgoing otherwise, clear the "Upstream LAG Info Accommodation flag".
interfaces include LAG interfaces:
o If the received MPLS echo request message had the LSR Capability o If the responder LSR does not understand the "LAG Description
TLV, the responder LSR MUST include the LSR Capability TLV in the Indicator flag":
MPLS echo reply message.
o The responder LSR MUST set the "Downstream LAG Info Accommodation * Clear both the "Downstream LAG Info Accommodation flag" and the
flag" in the LSR Capability Flags field of the LSR Capability TLV. "Upstream LAG Info Accommodation flag".
If the responder does not know the LSR Capability TLV, an MPLS echo
reply with the return code set to "One or more of the TLVs was not
understood" MUST be sent back to the initiator LSR.
4. Mechanism to Discover L2 ECMP Multipath
4.1. Initiator LSR Procedures
Through the "LSR Capability Discovery" as defined in Section 3, the
initiator LSR can understand whether the responder LSR can describe
incoming/outgoing LAG member links separately in the DDMAP TLV.
Once the initiator LSR knows the capabilities that a responder
supports, then it sends an MPLS echo request carrying a DDMAP with
the "LAG Description Indicator flag" (G) set to the responder LSR.
The "LAG Description Indicator flag" (G) indicates that separate load
balancing information for each L2 nexthop over a LAG is desired in
the MPLS echo reply. The new "LAG Description Indicator flag" is
described in Section 7.
4.2. Responder LSR Procedures
When a responder LSR received an MPLS echo request message with the
"LAG Description Indicator flag" set, if the responder LSR
understands the "LAG Description Indicator flag" and is capable of
describing outgoing LAG member links separately, the following
procedures are used, regardless of whether or not outgoing interfaces
include LAG interfaces:
o For each downstream that is a LAG interface: o For each downstream that is a LAG interface:
* The responder LSR MUST add DDMAP in the MPLS echo reply. * The responder LSR MUST include a DDMAP TLV when sending the
MPLS echo reply.
* The responder LSR MUST set the "LAG Description Indicator flag" * The responder LSR MUST set the "LAG Description Indicator flag"
in the DS Flags field of the DDMAP. in the DS Flags field of the DDMAP TLV.
* In the DDMAP, Local Interface Index Sub-TLV, Remote Interface * In the DDMAP TLV, the Local Interface Index Sub-TLV, Remote
Index Sub-TLV and Multipath Data Sub-TLV are to describe each Interface Index Sub-TLV and Multipath Data Sub-TLV are used to
LAG member link. All other fields of the DDMAP are to describe describe each LAG member link. All other fields of the DDMAP
the LAG interface. TLV are used to describe the LAG interface.
* For each LAG member link of this LAG interface: * For each LAG member link of the LAG interface:
+ The responder LSR MUST add a Local Interface Index Sub-TLV + The responder LSR MUST add a Local Interface Index Sub-TLV
(described in Section 8) with the "LAG Member Link Indicator (described in Section 8) with the "LAG Member Link Indicator
flag" set in the Interface Index Flags field, describing the flag" set in the Interface Index Flags field, describing the
interface index of this outgoing LAG member link (the local interface index of this outgoing LAG member link (the local
interface index is assigned by the local LSR). interface index is assigned by the local LSR).
+ The responder LSR MAY add a Remote Interface Index Sub-TLV + The responder LSR MAY add a Remote Interface Index Sub-TLV
(described in Section 9) with the "LAG Member Link Indicator (described in Section 9) with the "LAG Member Link Indicator
flag" set in the Interface Index Flags field, describing the flag" set in the Interface Index Flags field, describing the
interface index of the incoming LAG member link on the interface index of the incoming LAG member link on the
downstream LSR (this interface index is assigned by the downstream LSR (this interface index is assigned by the
downstream LSR). How the local LSR obtains the interface downstream LSR). How the local LSR obtains the interface
index of the LAG member link on the downstream LSR is index of the LAG member link on the downstream LSR is
outside the scope of this document. outside the scope of this document.
+ The responder LSR MUST add an Multipath Data Sub-TLV for + The responder LSR MUST add an Multipath Data Sub-TLV for
this LAG member link, if received DDMAP requested multipath this LAG member link, if the received DDMAP TLV requested
information. multipath information.
Based on the procedures described above, every LAG member link will Based on the procedures described above, every LAG member link will
have a Local Interface Index Sub-TLV and a Multipath Data Sub-TLV have a Local Interface Index Sub-TLV and a Multipath Data Sub-TLV
entries in the DDMAP. The order of the Sub-TLVs in the DDMAP for a entries in the DDMAP TLV. The order of the Sub-TLVs in the DDMAP TLV
LAG member link MUST be Local Interface Index Sub-TLV immediately for a LAG member link MUST be Local Interface Index Sub-TLV
followed by Multipath Data Sub-TLV. A LAG member link may also have immediately followed by Multipath Data Sub-TLV. A LAG member link
a corresponding Remote Interface Index Sub-TLV. When a Local may also have a corresponding Remote Interface Index Sub-TLV. When a
Interface Index Sub-TLV, a Remote Interface Index-Sub-TLV and a Local Interface Index Sub-TLV, a Remote Interface Index-Sub-TLV and a
Multipath Data Sub-TLV are placed in the DDMAP to describe a LAG Multipath Data Sub-TLV are placed in the DDMAP TLV to describe a LAG
member link, they MUST be placed in the order of Local Interface member link, they MUST be placed in the order of Local Interface
Index Sub-TLV, Remote Interface Index-Sub-TLV and Multipath Data Sub- Index Sub-TLV, Remote Interface Index-Sub-TLV and Multipath Data Sub-
TLV. TLV.
A responder LSR possessing a LAG interface with two member links A responder LSR possessing a LAG interface with two member links
would send the following DDMAP for this LAG interface: would send the following DDMAP for this LAG interface:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 9, line 30 skipping to change at page 9, line 49
|[MANDATORY] Multipath Data Sub-TLV LAG member link #2 | |[MANDATORY] Multipath Data Sub-TLV LAG member link #2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label Stack Sub-TLV | | Label Stack Sub-TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Example of DDMAP in MPLS Echo Reply Figure 2: Example of DDMAP in MPLS Echo Reply
When none of the received multipath information maps to a particular When none of the received multipath information maps to a particular
LAG member link, then the responder LSR MUST still place the Local LAG member link, then the responder LSR MUST still place the Local
Interface Index Sub-TLV and the Multipath Data Sub-TLV for that LAG Interface Index Sub-TLV and the Multipath Data Sub-TLV for that LAG
member link in the DDMAP, with the Multipath Length field of the member link in the DDMAP TLV, the value of Multipath Length field of
Multipath Data Sub-TLV being zero. the Multipath Data Sub-TLV is set to zero.
4.3. Additional Initiator LSR Procedures 4.3. Additional Initiator LSR Procedures
The procedures above allow an initiator LSR to: The procedures above allow an initiator LSR to:
o Identify whether or not the responder LSR can describe outgoing o Identify whether or not the responder LSR can describe outgoing
LAG member links separately, by looking at the LSR Capability TLV. LAG member links separately, by looking at the LSR Capability TLV.
o Utilize the value of the "LAG Description Indicator flag" in DS o Utilize the value of the "LAG Description Indicator flag" in DS
Flags to identify whether each received DDMAP describes a LAG Flags to identify whether each received DDMAP TLV describes a LAG
interface or a non-LAG interface. interface or a non-LAG interface.
o Obtain multipath information which is expected to traverse the o Obtain multipath information which is expected to traverse the
specific LAG member link described by corresponding interface specific LAG member link described by corresponding interface
index. index.
When an initiator LSR receives a DDMAP containing LAG member When an initiator LSR receives a DDMAP containing LAG member
information from a downstream LSR with TTL=n, then the subsequent information from a downstream LSR with TTL=n, then the subsequent
DDMAP sent by the initiator LSR to the downstream LSR with TTL=n+1 DDMAP sent by the initiator LSR to the downstream LSR with TTL=n+1
through a particular LAG member link MUST be updated with following through a particular LAG member link MUST be updated with following
skipping to change at page 10, line 16 skipping to change at page 10, line 37
DDMAP. DDMAP.
o If the Remote Interface Index Sub-TLVs were present and the o If the Remote Interface Index Sub-TLVs were present and the
initiator LSR is traversing over a specific LAG member link, then initiator LSR is traversing over a specific LAG member link, then
the Remote Interface Index Sub-TLV corresponding to the LAG member the Remote Interface Index Sub-TLV corresponding to the LAG member
link being traversed SHOULD be included in the sending DDMAP. All link being traversed SHOULD be included in the sending DDMAP. All
other Remote Interface Index Sub-TLVs MUST be removed from the other Remote Interface Index Sub-TLVs MUST be removed from the
sending DDMAP. sending DDMAP.
o The Multipath Data Sub-TLVs MUST be updated to include just one o The Multipath Data Sub-TLVs MUST be updated to include just one
Multipath Data Sub-TLV. The initiator MAY keep just the Multipath Multipath Data Sub-TLV. The initiator LSR MAY just keep the
Data Sub-TLV corresponding to the LAG member link being traversed, Multipath Data Sub-TLV corresponding to the LAG member link being
or combine the Multipath Data Sub-TLVs for all LAG member links traversed, or combine the Multipath Data Sub-TLVs for all LAG
into a single Multipath Data Sub-TLV when diagnosing further member links into a single Multipath Data Sub-TLV when diagnosing
downstream LSRs. further downstream LSRs.
o All other fields of the DDMAP are to comply with procedures o All other fields of the DDMAP are to comply with procedures
described in [RFC8029]. described in [RFC8029].
Using the DDMAP example described in the Figure 2, the DDMAP being Figure 3 is an example that shows how to use the DDMAP TLV to notify
sent by the initiator LSR through LAG member link #1 to the next which member link (link #1 in the example) will be chosen to send the
downstream LSR should be: MPLS echo request message to the next downstream LSR:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ DDMAP fields describing LAG interface with DS Flags G set ~ ~ DDMAP fields describing LAG interface with DS Flags G set ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|[OPTIONAL] Remote Interface Index Sub-TLV of LAG member link #1| |[OPTIONAL] Remote Interface Index Sub-TLV of LAG member link #1|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Multipath Data Sub-TLV LAG member link #1 | | Multipath Data Sub-TLV LAG member link #1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label Stack Sub-TLV | | Label Stack Sub-TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: Example of DDMAP in MPLS Echo Request Figure 3: Example of DDMAP in MPLS Echo Request
5. Mechanism to Validate L2 ECMP Traversal 5. Mechanism to Validate L2 ECMP Traversal
Section 4 defines the responder LSR procedures to constructs a DDMAP Section 4 defines the responder LSR procedures to constructs a DDMAP
for a downstream LAG, and also defines that inclusion of the Remote for a downstream LAG. The Remote Interface Index Sub-TLVs that
Interface Index Sub-TLVs describing the incoming LAG member links of describes the incoming LAG member links of the downstream LSR is
the downstream LSR is optional. The reason why it is optional for optional, because this information from the downstream LSR is often
the responder LSR to include the Remote Interface Index Sub-TLVs is not available on the responder LSR. In such case, the traversal of
that this information from the downstream LSR is often not available LAG member links can be validated with procedures described in
on the responder LSR. In such case, the traversal of LAG member Section 5.1. If LSRs can provide the Remote Interface Index Sub-
links can be validated with procedures described in Section 5.1. If TLVs, then the validation procedures described in Section 5.2 can be
LSRs can provide the Remote Interface Index Sub-TLVs in DDMAP used.
objects, then the validation procedures described in Section 5.2 can
be used.
5.1. Incoming LAG Member Links Verification 5.1. Incoming LAG Member Links Verification
Without downstream LSRs returning remote Interface Index Sub-TLVs in Without downstream LSRs returning remote Interface Index Sub-TLVs in
the DDMAP, validation of the LAG member link traversal requires that the DDMAP, validation of the LAG member link traversal requires that
initiator LSR traverses all available LAG member links and taking the initiator LSR traverses all available LAG member links and taking the
results through a logic. This section provides the mechanism for the results through a logic. This section provides the mechanism for the
initiator LSR to obtain additional information from the downstream initiator LSR to obtain additional information from the downstream
LSRs and describes the additional logic in the initiator LSR to LSRs and describes the additional logic in the initiator LSR to
validate the L2 ECMP traversal. validate the L2 ECMP traversal.
5.1.1. Initiator LSR Procedures 5.1.1. Initiator LSR Procedures
The MPLS echo request is sent with a DDMAP with the "Interface and An MPLS echo request carrying a DDMAP TLV with the "Interface and
Label Stack Object Request flag" and "LAG Description Indicator flag" Label Stack Object Request flag" and "LAG Description Indicator flag"
set in the DS Flags to indicate the request for Detailed Interface set is sent to indicate the request for Detailed Interface and Label
and Label Stack TLV with additional LAG member link information (i.e. Stack TLV with additional LAG member link information (i.e.
interface index) in the MPLS echo reply. interface index) in the MPLS echo reply.
5.1.2. Responder LSR Procedures 5.1.2. Responder LSR Procedures
A responder LSR that understands the "LAG Description Indicator flag" A responder LSR that understands the "LAG Description Indicator flag"
but is not capable of describing incoming LAG member link is to use
following procedures:
o If the received MPLS echo request message had the LSR Capability
TLV, the responder LSR MUST include the LSR Capability TLV in the
MPLS echo reply message.
o The responder LSR MUST clear the "Upstream LAG Info Accommodation
flag" in the LSR Capability Flags field of the LSR Capability TLV.
This will allow the initiator LSR to understand that the responder
LSR cannot describe incoming LAG member link.
A responder LSR that understands the "LAG Description Indicator flag"
and is capable of describing incoming LAG member link MUST use the and is capable of describing incoming LAG member link MUST use the
following procedures, regardless of whether or not incoming interface following procedures, regardless of whether or not incoming interface
was a LAG interface: was a LAG interface:
o If the received MPLS echo request message had the LSR Capability o When the "I" flag ( "Interface and Label Stack Object Request
TLV, the responder LSR MUST include the LSR Capability TLV in the flag") of the DDMAP TLV in the received MPLS echo request is set:
MPLS echo reply message.
o The responder LSR MUST set the "Upstream LAG Info Accommodation
flag" in the LSR Capability Flags field of the LSR Capability TLV.
o When the received DDMAP had "Interface and Label Stack Object * The responder LSR MUST add the Detailed Interface and Label
Request flag" set in the DS Flags field, the responder LSR MUST Stack TLV (described in Section 10) in the MPLS echo reply.
add the Detailed Interface and Label Stack TLV (described in
Section 10) in the MPLS echo reply.
o When the received DDMAP had "Interface and Label Stack Object * If the incoming interface is a LAG, the responder LSR MUST add
Request flag" set in the DS Flags field and the incoming interface the Incoming Interface Index Sub-TLV (described in
was a LAG, the responder LSR MUST add the Incoming Interface Index Section 10.1.2) in the Detailed Interface and Label Stack TLV.
Sub-TLV (described in Section 10.1.2) in the Detailed Interface The "LAG Member Link Indicator flag" MUST be set in the
and Label Stack TLV. The "LAG Member Link Indicator flag" MUST be Interface Index Flags field, and the Interface Index field set
set in the Interface Index Flags field, and the Interface Index to the LAG member link which received the MPLS echo request.
field set to the LAG member link which received the MPLS echo
request.
These procedures allow initiator LSR to: These procedures allow initiator LSR to:
o Identify whether or not the responder LSR can describe the
incoming LAG member link, by looking at the LSR Capability TLV.
o Utilize the Incoming Interface Index Sub-TLV in the Detailed o Utilize the Incoming Interface Index Sub-TLV in the Detailed
Interface and Label Stack TLV to identify, if the incoming Interface and Label Stack TLV to derive, if the incoming interface
interface was a LAG, the identity of the incoming LAG member. is a LAG, the identity of the incoming LAG member.
5.1.3. Additional Initiator LSR Procedures 5.1.3. Additional Initiator LSR Procedures
Along with procedures described in Section 4, the procedures Along with procedures described in Section 4, the procedures
described in this section will allow an initiator LSR to know: described in this section will allow an initiator LSR to know:
o The expected load balance information of every LAG member link, at o The expected load balance information of every LAG member link, at
LSR with TTL=n. LSR with TTL=n.
o With specific entropy, the expected interface index of the o With specific entropy, the expected interface index of the
skipping to change at page 12, line 49 skipping to change at page 13, line 5
o With specific entropy, the interface index of the incoming LAG o With specific entropy, the interface index of the incoming LAG
member link at TTL=n+1. member link at TTL=n+1.
Expectation is that there's a relationship between the interface Expectation is that there's a relationship between the interface
index of the outgoing LAG member link at TTL=n and the interface index of the outgoing LAG member link at TTL=n and the interface
index of the incoming LAG member link at TTL=n+1 for all discovered index of the incoming LAG member link at TTL=n+1 for all discovered
entropies. In other words, set of entropies that load balances to 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 outgoing LAG member link X at TTL=n should all reach the nexthop on
same incoming LAG member link Y at TTL=n+1. same incoming LAG member link Y at TTL=n+1.
With additional logics, the initiator LSR can perform following With additional logics, the initiator LSR can perform the following
checks in a scenario where the initiator knows that there is a LAG, checks in a scenario where the initiator LSR knows that there is a
with two LAG members, between TTL=n and TTL=n+1, and has the LAG, with two LAG members, between TTL=n and TTL=n+1, and has the
multipath information to traverse the two LAG members. multipath information to traverse the two LAG member links.
The initiator LSR sends two MPLS echo request messages to traverse The initiator LSR sends two MPLS echo request messages to traverse
the two LAG members at TTL=n+1: the two LAG member links at TTL=n+1:
o Success case: o Success case:
* One MPLS echo request message reaches TTL=n+1 on an LAG member * One MPLS echo request message reaches TTL=n+1 on an LAG member
1. link 1.
* The other MPLS echo request message reaches TTL=n+1 on an LAG * The other MPLS echo request message reaches TTL=n+1 on an LAG
member 2. member link 2.
The two MPLS echo request messages sent by the initiator LSR reach The two MPLS echo request messages sent by the initiator LSR reach
two different LAG members at the immediate downstream LSR. at the immediate downstream LSR from two different LAG member
links.
o Error case: o Error case:
* One MPLS echo request message reaches TTL=n+1 on an LAG member * One MPLS echo request message reaches TTL=n+1 on an LAG member
1. link 1.
* The other MPLS echo request message also reaches TTL=n+1 on an * The other MPLS echo request message also reaches TTL=n+1 on an
LAG member 1. LAG member link 1.
One or two MPLS echo request messages sent by the initiator LSR One or two MPLS echo request messages sent by the initiator LSR
does not reach the immediate downstream LSR, or the two MPLS echo cannot reach the immediate downstream LSR, or the two MPLS echo
request messages reach a same LAG member at the immediate request messages reach at the immediate downstream LSR from the
downstream LSR. same LAG member link.
Note that defined procedures will provide a deterministic result for Note that the above defined procedures will provide a deterministic
LAG interfaces that are back-to-back connected between routers (i.e. result for LAG interfaces that are back-to-back connected between
no L2 switch in between). If there is a L2 switch between LSR at LSRs (i.e. no L2 switch in between). If there is a L2 switch between
TTL=n and LSR at TTL=n+1, there is no guarantee that traversal of the LSR at TTL=n and the LSR at TTL=n+1, there is no guarantee that
every LAG member link at TTL=n will result in reaching different traversal of every LAG member link at TTL=n will result in reaching
interface index at TTL=n+1. Issues resulting from LAG with L2 switch from different interface at TTL=n+1. Issues resulting from LAG with
in between are further described in Appendix A. LAG provisioning L2 switch in between are further described in Appendix A. LAG
models in operated network should be considered when analyzing the provisioning models in operated network should be considered when
output of LSP Traceroute exercising L2 ECMPs. analyzing the output of LSP Traceroute exercising L2 ECMPs.
5.2. Individual End-to-End Path Verification 5.2. Individual End-to-End Path Verification
When the Remote Interface Index Sub-TLVs are available from an LSR When the Remote Interface Index Sub-TLVs are available from an LSR
with TTL=n, then the validation of LAG member link traversal can be with TTL=n, then the validation of LAG member link traversal can be
performed by the downstream LSR of TTL=n+1. The initiator LSR performed by the downstream LSR of TTL=n+1. The initiator LSR
follows the procedures described in Section 4.3. follows the procedures described in Section 4.3.
The DDMAP validation procedures by the downstream responder LSR are The DDMAP validation procedures for the downstream responder LSR are
then updated to include the comparison of the incoming LAG member then updated to include the comparison of the incoming LAG member
link (which MPLS echo request was received on) to the interface index link to the interface index described in the Remote Interface Index
described in the Remote Interface Index Sub-TLV in the DDMAP. Sub-TLV in the DDMAP TLV. Failure of this comparison results in the
return code being set to "Downstream Mapping Mismatch (5)".
Failure of this comparison results in the return code being set to 6. LSR Capability TLV
"Downstream Mapping Mismatch (5)".
A responder LSR that is not able to perform the above additional This document defines a new optional TLV which is referred to as the
DDMAP validation procedures is considered to lack the upstream LAG "LSR Capability TLV. It MAY be included in the MPLS echo request
capability. Thus, if the received MPLS echo request contained the message and the MPLS echo reply message. An MPLS echo request
LSR Capability TLV, then the responder LSR MUST include the LSR message and an MPLS echo reply message MUST NOT include more than one
Capability TLV in the MPLS echo reply and the LSR Capability TLV MUST LSR Capability TLV. The presence of an LSR Capability TLV in an MPLS
have the "Upstream LAG Info Accomodation flag" cleared. echo request message is a request that a responder LSR includes an
LSR Capability TLV in the MPLS echo reply message, with the LSR
Capability TLV describing features and extensions that the responder
LSR supports.
6. LSR Capability TLV When a responder LSR received an MPLS echo request message that
carries an LSR Capability TLV, if the responder LSR knows how to
process the LSR Capability TLV, an LSR Capability TLV MUST be
included in the MPLS echo reply message. Otherwise, if the responder
does not know the LSR Capability TLV, an MPLS echo reply with the
return code set to "One or more of the TLVs was not understood" MUST
be sent back to the initiator LSR.
The LSR Capability object is a new TLV that MAY be included in the The format of the LSR Capability TLV is as below:
MPLS echo request message and the MPLS echo reply message. An MPLS
echo request message and an MPLS echo reply message MUST NOT include
more than one LSR Capability object. Presence of an LSR Capability
object in an MPLS echo request message is a request that a responder
LSR includes an LSR Capability object in the MPLS echo reply message,
with the LSR Capability object describing features and extensions
supported. When the received MPLS echo request message contains an
LSR Capability object, an responder LSR MUST include the LSR
Capability object in the MPLS echo reply message.
LSR Capability TLV Type is TBD1. Length is 4. The value field of LSR Capability TLV Type is TBD1. Length is 4. The value field of
the LSR Capability TLV has following format: the LSR Capability TLV has following format:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LSR Capability Flags | | LSR Capability Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: LSR Capability TLV Figure 4: LSR Capability TLV
LSR Capability Flags Where:
The LSR Capability Flags field is a bit vector with following The Type is 2 octets in length and the value is TBD1.
format:
The Length filed is 2 octets in length, and the value is 4.
The LSR Capability Flags is 4 octets in length, this document
defines following flags:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Must Be Zero (Reserved) |U|D| | Must Be Zero (Reserved) |U|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Two flags are defined: U and D. The remaining flags MUST be set
to zero when sending and ignored on receipt. Both U and D flags This document defines two flags. The remaining flags MUST be set
MUST be cleared in MPLS echo request message when sending, and to zero when sending and ignored on receipt. Both the U and the D
ignored on receipt. Neither, either or both U and D flags MAY be flag MUST be cleared in the MPLS echo request message when
set in MPLS echo reply message. sending, and ignored on receipt. Neither, either or both the U
and the D flag MAY be set in the MPLS echo reply message.
Flag Name and Meaning Flag Name and Meaning
---- ---------------- ---- ----------------
U Upstream LAG Info Accommodation U Upstream LAG Info Accommodation
An LSR sets this flag when the node is capable of An LSR sets this flag when the LSR is capable of
describing a LAG member link in the Incoming Interface describing a LAG member link in the Incoming Interface
Index Sub-TLV in the Detailed Interface and Index Sub-TLV in the Detailed Interface and
Label Stack TLV. Label Stack TLV.
D Downstream LAG Info Accommodation D Downstream LAG Info Accommodation
An LSR sets this flag when the node is capable of An LSR sets this flag when the LSR is capable of
describing LAG member links in the Local Interface describing LAG member links in the Local Interface
Index Sub-TLV and the Multipath Data Sub-TLV in the Index Sub-TLV and the Multipath Data Sub-TLV in the
Downstream Detailed Mapping TLV. Downstream Detailed Mapping TLV.
7. LAG Description Indicator Flag: G 7. LAG Description Indicator Flag: G
One flag, G, is added in DS Flags field of the DDMAP TLV. The G flag This document defines a flag, the "G" flag (LAG Description
of the DS Flags field in the MPLS echo request message indicates the Indicator), in the DS Flags field of the DDMAP TLV.
request for detailed LAG information from the responder LSR. In the
MPLS echo reply message, the G flag MUST be set if the DDMAP TLV The "G" flag in the MPLS echo request message indicates the request
for detailed LAG information from the responder LSR. In the MPLS
echo reply message, the "G" flag MUST be set if the DDMAP TLV
describes a LAG interface. It MUST be cleared otherwise. describes a LAG interface. It MUST be cleared otherwise.
DS Flags The "G" flag is defined as below:
DS Flags G is added, in Bit Number TBD5, in DS Flags bit vector. The Bit Number is TBD5.
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
| MBZ |G|MBZ|I|N| | MBZ |G|MBZ|I|N|
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
RFC-Editor-Note: Please update above figure to place the flag G in RFC-Editor-Note: Please update above figure to place the G flag in
the bit number TBD5. the bit number TBD5.
Flag Name and Meaning Flag Name and Meaning
---- ---------------- ---- ----------------
G LAG Description Indicator G LAG Description Indicator
When this flag is set in the MPLS echo request, responder is When this flag is set in the MPLS echo request, the responder LSR
requested to respond with detailed LAG information. When this is requested to respond with detailed LAG information. When this
flag is set in the MPLS echo reply, the corresponding DDMAP flag is set in the MPLS echo reply, the corresponding DDMAP TLV
describes a LAG interface. describes a LAG interface.
8. Local Interface Index Sub-TLV 8. Local Interface Index Sub-TLV
The Local Interface Index object is a Sub-TLV that MAY be included in The Local Interface Index Sub-TLV is an optional TLV, it describes
a DDMAP TLV. Zero or more Local Interface Index object MAY appear in the interface index assigned by the local LSR to an egress interface.
a DDMAP TLV. The Local Interface Index Sub-TLV describes the index One or more Local Interface Index sub-TLVs MAY appear in a DDMAP TLV.
assigned by the local LSR to the egress interface.
The Local Interface Index Sub-TLV Type is TBD2. Length is 8, and the The format of the Local Interface Index Sub-TLV is below:
Value field has following format:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Interface Index | | Local Interface Index |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5: Local Interface Index Sub-TLV Figure 5: Local Interface Index Sub-TLV
Local Interface Index Where:
An Index assigned by the LSR to this interface. o The "Type" field is 2 octets in length, the value is TBD2.
o The "Length" filed 2 octets in length, and the value is 4.
o The "Local Interface Index" field is 4 octets in length, it is an
interface index assigned by a local LSR to an egress interface.
9. Remote Interface Index Sub-TLV 9. Remote Interface Index Sub-TLV
The Remote Interface Index object is a Sub-TLV that MAY be included The Remote Interface Index Sub-TLV is an optional TLV, it describes
in a DDMAP TLV. Zero or more Remote Interface Index object MAY the interface index assigned by a downstream LSR to an ingress
appear in a DDMAP TLV. The Remote Interface Index Sub-TLV describes interface. One or more Remote Interface Index sub-TLVs MAY appear in
the index assigned by the downstream LSR to the ingress interface. a DDMAP TLV.
The Remote Interface Index Sub-TLV Type is TBD3. Length is 8, and The format of the Remote Interface Index Sub-TLV is as below:
the Value field has following format:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote Interface Index | | Remote Interface Index |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6: Remote Interface Index Sub-TLV Figure 6: Remote Interface Index Sub-TLV
Remote Interface Index Where:
An Index assigned by the downstream LSR to the ingress interface. o The "Type" field is 2 octets in length, and the value is TBD3.
o The "Length" field is 2 octets in length, and the value is 4.
o The "Remote Interface Index" is 4 octets in length, it is an
interface index assigned by a downstream LSR to an ingress
interface.
10. Detailed Interface and Label Stack TLV 10. Detailed Interface and Label Stack TLV
The "Detailed Interface and Label Stack" object is a TLV that MAY be 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 included in an MPLS echo reply message to report the interface on
which the MPLS echo request message was received and the label stack 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 that was on the packet when it was received. A responder LSR MUST
NOT insert more than one instance of this TLV. This TLV allows the NOT insert more than one instance of this TLV into the MPLS echo
initiator LSR to obtain the exact interface and label stack reply message. This TLV allows the initiator LSR to obtain the exact
information as it appears at the responder LSR. interface and label stack information as it appears at the responder
LSR.
Detailed Interface and Label Stack TLV Type is TBD4. Length is K + Detailed Interface and Label Stack TLV Type is TBD4. Length is K +
Sub-TLV Length (sum of Sub-TLVs). K is the sum of all fields of this Sub-TLV Length (sum of Sub-TLVs). K is the sum of all fields of this
TLV prior to Sub-TLVs, but the length of K depends on the Address TLV prior to Sub-TLVs, but the length of K depends on the Address
Type. Details of this information is described below. The Value Type. Details of this information is described below. The Value
field has following format: field has following format:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 18, line 7 skipping to change at page 18, line 25
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. . . .
. List of Sub-TLVs . . List of Sub-TLVs .
. . . .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7: Detailed Interface and Label Stack TLV Figure 7: Detailed Interface and Label Stack TLV
The Detailed Interface and Label Stack TLV format is derived from the The Detailed Interface and Label Stack TLV format is derived from the
Interface and Label Stack TLV format (from [RFC8029]). Two changes Interface and Label Stack TLV format (from [RFC8029]). Two changes
are introduced. First is that label stack, which is of variable are introduced. The first is that the label stack is converted into
length, is converted into a sub-TLV. Second is that a new sub-TLV is a sub-TLV. The second is that a new sub-TLV is added to describe an
added to describe an interface index. The fields of Detailed interface index. These fields of Detailed Interface and Label Stack
Interface and Label Stack TLV have the same use and meaning as in TLV have the same use and meaning as in [RFC8029]. A summary of
[RFC8029]. A summary of the fields taken from the Interface and these fields is as below:
Label Stack TLV is as below:
Address Type Address Type
The Address Type indicates if the interface is numbered or The Address Type indicates if the interface is numbered or
unnumbered. It also determines the length of the IP Address unnumbered. It also determines the length of the IP Address
and Interface fields. The resulting total for the initial part and Interface fields. The resulting total length of the
of the TLV is listed in the table below as "K Octets". The initial part of the TLV is listed as "K Octets". The Address
Address Type is set to one of the following values: Type is set to one of the following values:
Type # Address Type K Octets Type # Address Type K Octets
------ ------------ -------- ------ ------------ --------
1 IPv4 Numbered 16 1 IPv4 Numbered 16
2 IPv4 Unnumbered 16 2 IPv4 Unnumbered 16
3 IPv6 Numbered 40 3 IPv6 Numbered 40
4 IPv6 Unnumbered 28 4 IPv6 Unnumbered 28
IP Address and Interface IP Address and Interface
skipping to change at page 19, line 8 skipping to change at page 19, line 20
LSR's Router ID, and the Interface MUST be set to the index LSR's Router ID, and the Interface MUST be set to the index
assigned to the interface. assigned to the interface.
Note: Usage of IPv6 Unnumbered has the same issue as [RFC8029], Note: Usage of IPv6 Unnumbered has the same issue as [RFC8029],
described in Section 3.4.2 of [RFC7439]. A solution should be described in Section 3.4.2 of [RFC7439]. A solution should be
considered an applied to both [RFC8029] and this document. considered an applied to both [RFC8029] and this document.
10.1. Sub-TLVs 10.1. Sub-TLVs
This section defines the sub-TLVs that MAY be included as part of the This section defines the sub-TLVs that MAY be included as part of the
Detailed Interface and Label Stack TLV. Detailed Interface and Label Stack TLV. Two sub-TLVs are defined:
Sub-Type Value Field Sub-Type Sub-TLV Name
--------- ------------ --------- ------------
1 Incoming Label stack 1 Incoming Label stack
2 Incoming Interface Index 2 Incoming Interface Index
10.1.1. Incoming Label Stack Sub-TLV 10.1.1. Incoming Label Stack Sub-TLV
The Incoming Label Stack sub-TLV contains the label stack as received The Incoming Label Stack sub-TLV contains the label stack as received
by the LSR. If any TTL values have been changed by this LSR, they by an LSR. If any TTL values have been changed by this LSR, they
SHOULD be restored. SHOULD be restored.
Incoming Label Stack Sub-TLV Type is 1. Length is variable, and the Incoming Label Stack Sub-TLV Type is 1. Length is variable, and its
Value field has following format: format is as below:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label | TC |S| TTL | | Label | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. . . .
. . . .
skipping to change at page 19, line 44 skipping to change at page 20, line 9
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label | TC |S| TTL | | Label | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 8: Incoming Label Stack Sub-TLV Figure 8: Incoming Label Stack Sub-TLV
10.1.2. Incoming Interface Index Sub-TLV 10.1.2. Incoming Interface Index Sub-TLV
The Incoming Interface Index object is a Sub-TLV that MAY be included The Incoming Interface Index object is a Sub-TLV that MAY be included
in a Detailed Interface and Label Stack TLV. The Incoming Interface in a Detailed Interface and Label Stack TLV. The Incoming Interface
Index Sub-TLV describes the index assigned by this LSR to the Index Sub-TLV describes the index assigned by a local LSR to the
interface which received the MPLS echo request message. interface which received the MPLS echo request message.
Incoming Interface Index Sub-TLV Type is 2. Length is 8, and the Incoming Interface Index Sub-TLV Type is 2. Length is 8, and its
Value field has the same format as the Local Interface Index Sub-TLV format is as below:
described in Section 8, and has following format:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Interface Index Flags | Must Be Zero | | Interface Index Flags | Must Be Zero |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Incoming Interface Index | | Incoming Interface Index |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 20, line 48 skipping to change at page 21, line 11
Incoming Interface Index Incoming Interface Index
An Index assigned by the LSR to this interface. An Index assigned by the LSR to this interface.
11. Security Considerations 11. Security Considerations
This document extends LSP Traceroute mechanism to discover and This document extends LSP Traceroute mechanism to discover and
exercise L2 ECMP paths. As a result of supporting the code points exercise L2 ECMP paths. As a result of supporting the code points
and procedures described in this document, additional processing are and procedures described in this document, additional processing are
required by initiator LSRs and responder LSRs, especially to compute required by initiator LSRs and responder LSRs, especially to compute
and handle increasing number of multipath information. Due to and handle the additional multipath information. Due to additional
additional processing, it is critical that proper security measures processing, it is critical that proper security measures described in
described in [RFC8029] are followed. [RFC8029] are followed.
The LSP Traceroute allows an initiator LSR to discover the paths of The LSP Traceroute allows an initiator LSR to discover the paths of
tested LSPs, providing deep knowledge of the MPLS network. Exposing tested LSPs, providing detailed knowledge of the MPLS network.
such information to a malicious user is considered dangerous. To Exposing such information to a malicious user is considered
prevent leakage of vital information to untrusted users, a responder dangerous. To prevent leakage of vital information to untrusted
LSR MUST only accept MPLS echo request messages from trusted sources users, a responder LSR MUST only accept MPLS echo request messages
via filtering source IP address field of received MPLS echo request from trusted sources via filtering source IP address field of
messages. received MPLS echo request messages.[RFC8029] provides additional
recommendations to avoid attacks and recommendations to follow if an
operator desires to prevent tracing.
12. IANA Considerations 12. IANA Considerations
12.1. LSR Capability TLV 12.1. LSR Capability TLV
The IANA is requested to assign new value TBD1 for LSR Capability TLV The IANA is requested to assign new value TBD1 for LSR Capability TLV
from the "Multiprotocol Label Switching Architecture (MPLS) Label from the "Multiprotocol Label Switching Architecture (MPLS) Label
Switched Paths (LSPs) Ping Parameters - TLVs" registry. Switched Paths (LSPs) Ping Parameters - TLVs" registry.
Value Meaning Reference Value Meaning Reference
skipping to change at page 23, line 28 skipping to change at page 23, line 39
Sub-Type Name Reference Sub-Type Name Reference
----------- -------------------------------------- --------- ----------- -------------------------------------- ---------
1 Incoming Label Stack this document 1 Incoming Label Stack this document
2 Incoming Interface Index this document 2 Incoming Interface Index this document
3-16383 Unassigned (mandatory TLVs) 3-16383 Unassigned (mandatory TLVs)
16384-31743 Experimental 16384-31743 Experimental
32768-49161 Unassigned (optional TLVs) 32768-49161 Unassigned (optional TLVs)
49162-64511 Experimental 49162-64511 Experimental
Assignments of Sub-Types in the mandatory and optional spaces are are Assignments of Sub-Types in the mandatory and optional spaces are via
via Standards Action [RFC8126]. Assignments of Sub-Types in the Standards Action [RFC8126]. Assignments of Sub-Types in the
experimental space is via Specification Required [RFC8126]. experimental space is via Specification Required [RFC8126].
12.5. DS Flags 12.5. DS Flags
The IANA is requested to assign a new bit number from the "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 sub-registry from the "Multi-Protocol Label Switching (MPLS) Label
Switched Paths (LSPs) Ping Parameters - TLVs" registry Switched Paths (LSPs) Ping Parameters - TLVs" registry
([IANA-MPLS-LSP-PING]). ([IANA-MPLS-LSP-PING]).
Note: the "DS flags" sub-registry is created by [RFC8029]. Note: the "DS flags" sub-registry is created by [RFC8029].
Bit number Name Reference Bit number Name Reference
---------- ---------------------------------------- --------- ---------- ---------------------------------------- ---------
TBD5 G: LAG Description Indicator this document TBD5 G: LAG Description Indicator this document
13. Acknowledgements 13. Acknowledgements
The authors would like to thank Nagendra Kumar and Sam Aldrin for The authors would like to thank Nagendra Kumar, Sam Aldrin, for
providing useful comments and suggestions. The authors would like to providing useful comments and suggestions. The authors would like to
thank Loa Andersson for performing a detailed review and providing thank Loa Andersson for performing a detailed review and providing
number of comments. number of comments.
The authors also would like to extend sincere thanks to the MPLS RT The authors also would like to extend sincere thanks to the MPLS RT
review members who took time to review and provide comments. The review members who took time to review and provide comments. The
members are Eric Osborne, Mach Chen and Yimin Shen. The suggestion members are Eric Osborne, Mach Chen and Yimin Shen. The suggestion
by Mach Chen to generalize and create the LSR Capability TLV was by Mach Chen to generalize and create the LSR Capability TLV was
tremendously helpful for this document and likely for future tremendously helpful for this document and likely for future
documents extending the MPLS LSP Ping and Traceroute mechanism. The documents extending the MPLS LSP Ping and Traceroute mechanism. The
skipping to change at page 24, line 29 skipping to change at page 24, line 40
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N.,
Aldrin, S., and M. Chen, "Detecting Multiprotocol Label Aldrin, S., and M. Chen, "Detecting Multiprotocol Label
Switched (MPLS) Data-Plane Failures", RFC 8029, Switched (MPLS) Data-Plane Failures", RFC 8029,
DOI 10.17487/RFC8029, March 2017, DOI 10.17487/RFC8029, March 2017,
<https://www.rfc-editor.org/info/rfc8029>. <https://www.rfc-editor.org/info/rfc8029>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
14.2. Informative References 14.2. Informative References
[IANA-MPLS-LSP-PING] [IANA-MPLS-LSP-PING]
IANA, "Multi-Protocol Label Switching (MPLS) Label IANA, "Multi-Protocol Label Switching (MPLS) Label
Switched Paths (LSPs) Ping Parameters", Switched Paths (LSPs) Ping Parameters",
<http://www.iana.org/assignments/mpls-lsp-ping-parameters/ <http://www.iana.org/assignments/mpls-lsp-ping-parameters/
mpls-lsp-ping-parameters.xhtml>. mpls-lsp-ping-parameters.xhtml>.
[IEEE802.1AX] [IEEE802.1AX]
IEEE Std. 802.1AX, "IEEE Standard for Local and IEEE Std. 802.1AX, "IEEE Standard for Local and
skipping to change at page 25, line 5 skipping to change at page 25, line 20
[RFC7439] George, W., Ed. and C. Pignataro, Ed., "Gap Analysis for [RFC7439] George, W., Ed. and C. Pignataro, Ed., "Gap Analysis for
Operating IPv6-Only MPLS Networks", RFC 7439, Operating IPv6-Only MPLS Networks", RFC 7439,
DOI 10.17487/RFC7439, January 2015, DOI 10.17487/RFC7439, January 2015,
<https://www.rfc-editor.org/info/rfc7439>. <https://www.rfc-editor.org/info/rfc7439>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26, Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017, RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>. <https://www.rfc-editor.org/info/rfc8126>.
Appendix A. LAG with L2 Switch Issues Appendix A. LAG with intermediate L2 Switch Issues
Several flavors of "LAG with L2 switch" provisioning models are Several flavors of "LAG with L2 switch" provisioning models and the
described in this section, with MPLS data plane ECMP traversal corresponding MPLS data plane ECMP traversal validation issues are
validation issues with each. described in this section .
A.1. Equal Numbers of LAG Members A.1. Equal Numbers of LAG Members
R1 ==== S1 ==== R2 R1 ==== S1 ==== R2
The issue with this LAG provisioning model is that packets traversing The issue with this LAG provisioning model is that packets traversing
a LAG member from R1 to S1 can get load balanced by S1 towards R2. a LAG member from Router 1 (R1) to intermediate L2 switch (S1) can
Therefore, MPLS echo request messages traversing specific LAG member get load balanced by S1 towards Router 2 (R2). Therefore, MPLS echo
from R1 to S1 can actually reach R2 via any LAG members, and sender request messages traversing a specific LAG member from R1 to S1 can
of MPLS echo request messages have no knowledge of this nor no way to actually reach R2 via any of the LAG members, and the sender of MPLS
control this traversal. In the worst case, MPLS echo request echo request messages has no knowledge of this nor no way to control
messages with specific entropies to exercise every LAG members from this traversal. In the worst case, MPLS echo request messages with
R1 to S1 can all reach R2 via same LAG member. Thus it is impossible specific entropies to exercise every LAG members from R1 to S1 can
for MPLS echo request sender to verify that packets intended to all reach R2 via same LAG member. Thus it is impossible for MPLS
traverse specific LAG member from R1 to S1 did actually traverse that echo request sender to verify that packets intended to traverse
LAG member, and to deterministically exercise "receive" processing of specific LAG member from R1 to S1 did actually traverse that LAG
member, and to deterministically exercise "receive" processing of
every LAG member on R2. every LAG member on R2.
A.2. Deviating Numbers of LAG Members A.2. Deviating Numbers of LAG Members
____ ____
R1 ==== S1 ==== R2 R1 ==== S1 ==== R2
There are deviating number of LAG members on the two sides of the L2 There are deviating number of LAG members on the two sides of the L2
switch. The issue with this LAG provisioning model is the same as switch. The issue with this LAG provisioning model is the same as
previous model, sender of MPLS echo request messages have no previous model, sender of MPLS echo request messages have no
 End of changes. 117 change blocks. 
332 lines changed or deleted 350 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/