draft-akiya-mpls-lsp-ping-lag-multipath-03.txt | draft-akiya-mpls-lsp-ping-lag-multipath-04.txt | |||
---|---|---|---|---|
Internet Engineering Task Force N. Akiya | Internet Engineering Task Force N. Akiya | |||
Internet-Draft G. Swallow | Internet-Draft G. Swallow | |||
Updates: 4379,6424 (if approved) Cisco Systems | Updates: 4379,6424 (if approved) Cisco Systems | |||
Intended status: Standards Track S. Litkowski | Intended status: Standards Track S. Litkowski | |||
Expires: May 26, 2015 B. Decraene | Expires: June 2, 2015 B. Decraene | |||
Orange | Orange | |||
J. Drake | J. Drake | |||
Juniper Networks | Juniper Networks | |||
November 22, 2014 | November 29, 2014 | |||
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-akiya-mpls-lsp-ping-lag-multipath-03 | draft-akiya-mpls-lsp-ping-lag-multipath-04 | |||
Abstract | Abstract | |||
This document defines an extension to the Multiprotocol Label | This document defines an extension to the MPLS Label Switched Path | |||
Switching (MPLS) Label Switched Path (LSP) Ping and Traceroute to | (LSP) Ping and Traceroute as specified in RFC 4379. The extension | |||
describe Multipath Information for Link Aggregation (LAG) member | allows the MPLS LSP Ping and Traceroute to discover and exercise | |||
links separately, thus allowing MPLS LSP Ping and Traceroute 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 LAG interfaces. | ||||
This document updates RFC4379 and RFC6424. | This document updates RFC4379 and RFC6424. | |||
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", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 1, line 49 | skipping to change at page 1, line 48 | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on May 26, 2015. | This Internet-Draft will expire on June 2, 2015. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2014 IETF Trust and the persons identified as the | Copyright (c) 2014 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 27 | skipping to change at page 2, line 27 | |||
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 . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3. Mechanism to Discover L2 ECMP Multipath . . . . . . . . . . . 5 | 3. Mechanism to Discover L2 ECMP Multipath . . . . . . . . . . . 5 | |||
4. Mechanism to Validate L2 ECMP Traversal . . . . . . . . . . . 7 | 3.1. Initiator LSR Procedures . . . . . . . . . . . . . . . . 5 | |||
5. LAG Interface Info TLV . . . . . . . . . . . . . . . . . . . 9 | 3.2. Responder LSR Procedures . . . . . . . . . . . . . . . . 5 | |||
6. DDMAP TLV DS Flags: G . . . . . . . . . . . . . . . . . . . . 11 | 3.3. Additional Initiator LSR Procedures . . . . . . . . . . . 7 | |||
7. Interface Index Sub-TLV . . . . . . . . . . . . . . . . . . . 11 | 4. Mechanism to Validate L2 ECMP Traversal . . . . . . . . . . . 8 | |||
8. Detailed Interface and Label Stack TLV . . . . . . . . . . . 12 | 4.1. Initiator LSR Procedures . . . . . . . . . . . . . . . . 8 | |||
8.1. Sub-TLVs . . . . . . . . . . . . . . . . . . . . . . . . 14 | 4.2. Responder LSR Procedures . . . . . . . . . . . . . . . . 9 | |||
8.1.1. Incoming Label Stack Sub-TLV . . . . . . . . . . . . 14 | 4.3. Additional Initiator LSR Procedures . . . . . . . . . . . 9 | |||
8.1.2. Incoming Interface Index Sub-TLV . . . . . . . . . . 15 | 5. LAG Interface Info TLV . . . . . . . . . . . . . . . . . . . 11 | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | 6. DDMAP TLV DS Flags: G . . . . . . . . . . . . . . . . . . . . 12 | |||
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | 7. Interface Index Sub-TLV . . . . . . . . . . . . . . . . . . . 12 | |||
10.1. LAG Interface Info TLV . . . . . . . . . . . . . . . . . 16 | 8. Detailed Interface and Label Stack TLV . . . . . . . . . . . 13 | |||
10.2. Interface Index Sub-TLV . . . . . . . . . . . . . . . . 16 | 8.1. Sub-TLVs . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
10.3. Detailed Interface and Label Stack TLV . . . . . . . . . 17 | 8.1.1. Incoming Label Stack Sub-TLV . . . . . . . . . . . . 15 | |||
10.4. DS Flags . . . . . . . . . . . . . . . . . . . . . . . . 17 | 8.1.2. Incoming Interface Index Sub-TLV . . . . . . . . . . 16 | |||
10.5. New Sub-Registry . . . . . . . . . . . . . . . . . . . . 17 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | |||
10.5.1. Sub-TLVs for TLV Type TBD3 . . . . . . . . . . . . . 17 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | |||
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18 | 10.1. LAG Interface Info TLV . . . . . . . . . . . . . . . . . 17 | |||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 10.1.1. LAG Interface Info Flags . . . . . . . . . . . . . . 18 | |||
12.1. Normative References . . . . . . . . . . . . . . . . . . 18 | 10.2. Interface Index Sub-TLV . . . . . . . . . . . . . . . . 18 | |||
12.2. Informative References . . . . . . . . . . . . . . . . . 18 | 10.2.1. Interface Index Flags . . . . . . . . . . . . . . . 18 | |||
Appendix A. LAG with L2 Switch Issues . . . . . . . . . . . . . 19 | 10.3. Detailed Interface and Label Stack TLV . . . . . . . . . 19 | |||
A.1. Equal Numbers of LAG Members . . . . . . . . . . . . . . 19 | 10.3.1. Sub-TLVs for TLV Type TBD3 . . . . . . . . . . . . . 19 | |||
A.2. Deviating Numbers of LAG Members . . . . . . . . . . . . 19 | 10.4. DS Flags . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
A.3. LAG Only on Right . . . . . . . . . . . . . . . . . . . . 19 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20 | |||
A.4. LAG Only on Left . . . . . . . . . . . . . . . . . . . . 19 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 20 | |||
12.2. Informative References . . . . . . . . . . . . . . . . . 20 | ||||
Appendix A. LAG with L2 Switch Issues . . . . . . . . . . . . . 21 | ||||
A.1. Equal Numbers of LAG Members . . . . . . . . . . . . . . 21 | ||||
A.2. Deviating Numbers of LAG Members . . . . . . . . . . . . 21 | ||||
A.3. LAG Only on Right . . . . . . . . . . . . . . . . . . . . 21 | ||||
A.4. LAG Only on Left . . . . . . . . . . . . . . . . . . . . 22 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | ||||
1. Introduction | 1. Introduction | |||
1.1. Terminology | 1.1. Terminology | |||
The following acronyms/terminologies are used in this document: | The following acronyms/terminologies are used in this document: | |||
o MPLS - Multiprotocol Label Switching. | o MPLS - Multiprotocol Label Switching. | |||
o LSP - Label Switched Path. | o LSP - Label Switched Path. | |||
o LSR - Label Switching Router. | o LSR - Label Switching Router. | |||
o ECMP - Equal-Cost Multipath. | o ECMP - Equal-Cost Multipath. | |||
o LAG - Link Aggregation. | o LAG - Link Aggregation Group. | |||
o Initiating 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 Multiprotocol Label Switching (MPLS) Label Switched Path (LSP) | The MPLS Label Switched Path (LSP) Ping and Traceroute as specified | |||
Ping and Traceroute [RFC4379] are powerful tools designed to diagnose | in [RFC4379] are powerful tools designed to diagnose all available | |||
all available layer 3 (L3) paths of LSPs, i.e. provides diagnostic | layer 3 (L3) paths of LSPs, i.e. provides diagnostic coverage of L3 | |||
coverage of L3 Equal-Cost Multipath (ECMP). In many MPLS networks, | Equal-Cost Multipath (ECMP). In many MPLS networks, Link Aggregation | |||
Link Aggregation (LAG) as defined in [IEEE802.1AX], which provide | Group (LAG) as defined in [IEEE802.1AX], which provide Layer 2 (L2) | |||
layer 2 (L2) ECMP, are often used for various reasons. MPLS LSP Ping | ECMP, are often used for various reasons. MPLS LSP Ping and | |||
and Traceroute tools were not designed to discover and exercise | Traceroute tools were not designed to discover and exercise specific | |||
specific paths of L2 ECMP. Result raises a limitation for following | paths of L2 ECMP. Result raises a limitation for following scenario | |||
scenario when LSP X traverses over LAG Y: | when LSP X traverses over LAG Y: | |||
o MPLS switching of LSP X over one or more member links of LAG Y is | o Label switching of LSP X over one or more member links of LAG Y is | |||
succeeding. | succeeding. | |||
o MPLS switching of LSP X over one or more member links of LAG Y is | o Label switching of LSP X over one or more member links of LAG Y is | |||
failing. | failing. | |||
o MPLS echo request for LSP X over LAG Y is load balanced over a | o MPLS echo request for LSP X over LAG Y is load balanced over a | |||
member link which is MPLS switching successfully. | member link which is label switching successfully. | |||
With above scenario, MPLS LSP Ping and Traceroute will not be able to | With above scenario, MPLS LSP Ping and Traceroute will not be able to | |||
detect the MPLS switching failure of problematic member link(s) of | detect the MPLS switching failure of problematic member link(s) of | |||
the LAG. In other words, lack of L2 ECMP discovery and exercise | the LAG. In other words, lack of L2 ECMP discovery and exercise | |||
capability can produce an outcome where MPLS LSP Ping and Traceroute | capability can produce an outcome where MPLS LSP Ping and Traceroute | |||
can be blind to MPLS switching failures over LAG interface that are | can be blind to label switching failures over LAG interface that are | |||
impacting MPLS traffic. It is, thus, desirable to extend the MPLS | impacting MPLS traffic. It is, thus, desirable to extend the MPLS | |||
LSP Ping and Traceroute to have deterministic diagnostic coverage of | LSP Ping and Traceroute to have deterministic diagnostic coverage of | |||
LAG interfaces. | LAG interfaces. | |||
Creation of this document was motivated by issues encountered in live | ||||
networks. | ||||
2. Overview | 2. Overview | |||
This document defines an extension to the MPLS LSP Ping and | This document defines an extension to the MPLS LSP Ping and | |||
Traceroute to describe Multipath Information for LAG member links | Traceroute to describe Multipath Information for LAG member links | |||
separately, thus allowing MPLS LSP Ping and Traceroute to discover | separately, thus allowing MPLS LSP Ping and Traceroute to discover | |||
and exercise specific paths of L2 ECMP over LAG interfaces. Reader | and exercise specific paths of L2 ECMP over LAG interfaces. Reader | |||
is expected to be familiar with mechanics of the MPLS LSP Ping and | is expected to be familiar with mechanics of the MPLS LSP Ping and | |||
Traceroute described in Section 3.3 of [RFC4379] and Downstream | Traceroute described in Section 3.3 of [RFC4379] and Downstream | |||
Detailed Mapping TLV (DDMAP) described in Section 3.3 of [RFC6424]. | Detailed Mapping TLV (DDMAP) described in Section 3.3 of [RFC6424]. | |||
MPLS echo request carries a DDMAP and an optional TLV to indicate | MPLS echo request carries a DDMAP and an optional TLV to indicate | |||
that separate load balancing information for each L2 nexthop over LAG | that separate load balancing information for each L2 nexthop over LAG | |||
is desired in MPLS echo reply. Responder LSR places the same | is desired in MPLS echo reply. Responder LSR places the same | |||
optional TLV in the MPLS echo reply to provide acknowledgement back | optional TLV in the MPLS echo reply to provide acknowledgement back | |||
to the initiator. It also adds, for each downstream LAG member, a | to the initiator. It also adds, for each downstream LAG member, a | |||
load balance information (i.e. multipath information and interface | load balance information (i.e. multipath information and interface | |||
index). For example: | 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. | ||||
<----- 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 28 | skipping to change at page 5, line 41 | |||
o In Appendix A, issues with LAG having an L2 Switch. | o In Appendix A, issues with LAG having an L2 Switch. | |||
Note that the mechanism described in this document does not impose | Note that the mechanism described in this document does not impose | |||
any changes to scenarios where an LSP is pinned down to a particular | 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 | LAG member (i.e. the LAG is not treated as one logical interface by | |||
the LSP). | the LSP). | |||
3. Mechanism to Discover L2 ECMP Multipath | 3. Mechanism to Discover L2 ECMP Multipath | |||
3.1. Initiator LSR Procedures | ||||
The MPLS echo request carries a DDMAP and the LAG Interface Info TLV | The MPLS echo request carries a DDMAP and the LAG Interface Info TLV | |||
(described in Section 5) to indicate that separate load balancing | (described in Section 5) to indicate that separate load balancing | |||
information for each L2 nexthop over LAG is desired in MPLS echo | information for each L2 nexthop over LAG is desired in MPLS echo | |||
reply. Responder LSRs that understand the LAG Interface Info TLV but | reply. | |||
unable to describe outgoing LAG member links separately MUST add the | ||||
LAG Interface Info TLV in the MPLS echo reply to provide | ||||
acknowledgement back to the initiating LSR. The Downstream LAG Info | ||||
Accommodation flag MUST NOT be set in LAG Interface Info Flags. The | ||||
responder LSRs that understands the LAG Interface Info TLV and able | ||||
to describe outgoing LAG member links separately MUST use the follow | ||||
procedures, regardless of whether or not outgoing interfaces include | ||||
LAG interfaces: | ||||
o MUST add the LAG Interface Info TLV in the MPLS echo reply to | 3.2. Responder LSR Procedures | |||
provide acknowledgement back to the initiator. The Downstream LAG | ||||
Info Accommodation flag MUST be set in the LAG Interface Info | Responder LSRs that understand the LAG Interface Info TLV but are | |||
Flags field. | unable to describe outgoing LAG member links separately are to use | |||
the following procedures: | ||||
o The responder LSR MUST add the LAG Interface Info TLV in the MPLS | ||||
echo reply. This will allow the initiator LSR to understand that | ||||
the responder LSR understood the LAG Interface Info TLV. | ||||
o The responder LSR MUST clear the Downstream LAG Info Accommodation | ||||
flag in the LAG Interface Info Flags field of the LAG Interface | ||||
Info TLV. This will allow the initiator LSR to understand that | ||||
the responder LSR understood the LAG Interface Info TLV but cannot | ||||
describe outgoing LAG member links separately in the DDMAP. | ||||
The responder LSRs that understands the LAG Interface Info TLV and | ||||
are able to describe outgoing LAG member links separately are to use | ||||
the follow procedures, regardless of whether or not outgoing | ||||
interfaces include LAG interfaces: | ||||
o The responder LSR MUST add the LAG Interface Info TLV in the MPLS | ||||
echo reply. | ||||
o The responder LSR MUST set the Downstream LAG Info Accommodation | ||||
flag in the LAG Interface Info Flags field of the LAG Interface | ||||
Info TLV. | ||||
o For each downstream that is a LAG interface: | o For each downstream that is a LAG interface: | |||
* MUST add DDMAP in the MPLS echo reply. | * The responder LSR MUST add DDMAP in the MPLS echo reply. | |||
* MUST set the LAG Description Indicator flag in the DS Flags | * The responder LSR MUST set the LAG Description Indicator flag | |||
field (described in Section 6) of the DDMAP. | in the DS Flags field (described in Section 6) of the DDMAP. | |||
* In the DDMAP, Interface Index Sub-TLV and Multipath Data Sub- | * In the DDMAP, Interface Index Sub-TLV and Multipath Data Sub- | |||
TLV are to describe each LAG member link. All other fields of | TLV are to describe each LAG member link. All other fields of | |||
the DDMAP are to describe the LAG interface. | the DDMAP are to describe the LAG interface. | |||
* For each LAG member link of this LAG interface: | * For each LAG member link of this LAG interface: | |||
+ MUST add an Interface Index Sub-TLV (described in Section 7) | + The responder LSR MUST add an Interface Index Sub-TLV | |||
with the LAG Member Link Indicator flag set in the Interface | (described in Section 7) with the LAG Member Link Indicator | |||
Index Flags field, describing this LAG member link. | flag set in the Interface Index Flags field, describing this | |||
LAG member link. | ||||
+ MUST add an Multipath Data Sub-TLV for this LAG member link, | + The responder LSR MUST add an Multipath Data Sub-TLV for | |||
if received DDMAP requested multipath information. | this LAG member link, if received DDMAP requested multipath | |||
information. | ||||
When both the Interface Index Sub-TLV and the Multipath Data Sub-TLV | Based on the procedures described above, every LAG member link will | |||
is placed in the DDMAP to describe a LAG member link, Interface Index | have the Interface Index Sub-TLV and the Multipath Data Sub-TLV | |||
Sub-TLV MUST be added first with Multipath Data Sub-TLV immediately | entries in the DDMAP. When both the Interface Index Sub-TLV and the | |||
following. | Multipath Data Sub-TLV are placed in the DDMAP to describe a LAG | |||
member link, Interface Index Sub-TLV MUST be added first with | ||||
Multipath Data Sub-TLV immediately following. | ||||
For example, a responder LSR possessing a LAG interface with two | For example, a responder LSR possessing a LAG interface with two | |||
member links would send the following DDMAP for this LAG interface: | member links 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| DDMAP fields describing LAG interface with DS Flags G set | | | DDMAP fields describing LAG interface with DS Flags G set | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Interface Index Sub-TLV of LAG member link #1 | | | Interface Index Sub-TLV of LAG member link #1 | | |||
skipping to change at page 6, line 44 | skipping to change at page 7, line 28 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Interface Index Sub-TLV of LAG member link #2 | | | Interface Index Sub-TLV of LAG member link #2 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Multipath Data Sub-TLV LAG member link #2 | | | 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 | |||
These procedures allow initiating LSR to: | 3.3. Additional Initiator LSR Procedures | |||
o Mandate the responder LSR to always add the LAG Interface Info TLV | Above procedures allow an initiator LSR to: | |||
in the MPLS echo reply. This allows the initiating LSR to | ||||
identify whether or not the responder LSR understands the LAG | o Require the responder LSR to always add the LAG Interface Info TLV | |||
Interface Info TLV and can describe outgoing LAG member links | in the MPLS echo reply. This allows the initiator LSR to identify | |||
separately. | whether or not the responder LSR understands the LAG Interface | |||
Info TLV and can describe outgoing LAG member links separately. | ||||
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 DDMAP describes a LAG interface or | Flags to identify whether each DDMAP describes a LAG interface or | |||
a non-LAG interface. | 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 initiating 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 initiating 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 | |||
procedures: | procedures: | |||
o The Interface Index Sub-TLVs MUST NOT be present in the sending | o The Interface Index Sub-TLVs MUST NOT be present in the sending | |||
DDMAP. | DDMAP. | |||
o The Multipath Data Sub-TLVs SHOULD be updated to include just the | o The Multipath Data Sub-TLVs SHOULD be updated to include just the | |||
one corresponding to the LAG member link being traversed. The | one corresponding to the LAG member link being traversed. The | |||
initiating LSR MAY combine the Multipath Data Sub-TLVs for all LAG | initiator LSR MAY combine the Multipath Data Sub-TLVs for all LAG | |||
member links into a single Multipath Data Sub-TLV, but there MUST | member links into a single Multipath Data Sub-TLV, but there MUST | |||
be only one Multipath Data Sub-TLV in the sending DDMAP. | be only one Multipath Data Sub-TLV in the sending DDMAP. | |||
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 [RFC6424]. | described in [RFC6424]. | |||
Using the DDMAP example described in the Figure 2, the DDMAP being | Using the DDMAP example described in the Figure 2, the DDMAP being | |||
sent by the initiating LSR through LAG member link #1 to the next | sent by the initiator LSR through LAG member link #1 to the next | |||
downstream LSR should be: | downstream LSR should be: | |||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| 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 | |||
4. Mechanism to Validate L2 ECMP Traversal | 4. Mechanism to Validate L2 ECMP Traversal | |||
This document does not update the FEC validation procedures nor the | This document does not update the FEC validation procedures nor the | |||
DDMAP validation procedures. Rather this document provides the | DDMAP validation procedures, specified in [RFC4379] and [RFC6424] | |||
mechanism for the initiating LSR to obtain additional information | respectively. Rather this document provides the mechanism for the | |||
from the downstream LSRs when incoming and/or outgoing interfaces are | initiator LSR to obtain additional information from the downstream | |||
LAGs. With this additional information, it is the responsibility of | LSRs when incoming and/or outgoing interfaces are LAGs. With this | |||
the initiating LSR to validate the L2 ECMP traversal. | additional information, it is the responsibility of the initiator LSR | |||
to validate the L2 ECMP traversal. | ||||
4.1. Initiator LSR Procedures | ||||
The MPLS echo request is sent with a DDMAP with DS Flags I set and | The MPLS echo request is sent with a DDMAP with DS Flags I set and | |||
the optional LAG Interface Info TLV to indicate the request for | the optional LAG Interface Info TLV to indicate the request for | |||
Detailed Interface and Label Stack TLV with additional LAG member | Detailed Interface and Label Stack TLV with additional LAG member | |||
link information (i.e. interface index) in the MPLS echo reply. | link information (i.e. interface index) in the MPLS echo reply. | |||
4.2. Responder LSR Procedures | ||||
Responder LSRs that understands the LAG Interface Info TLV but unable | Responder LSRs that understands the LAG Interface Info TLV but unable | |||
to describe incoming LAG member link MUST add the LAG Interface Info | to describe incoming LAG member link are to use following procedures: | |||
TLV in the MPLS echo reply to provide acknowledgement back to the | ||||
initiator. The Upstream LAG Info Accommodation flag MUST NOT be set | o The responder LSR MUST add the LAG Interface Info TLV in the MPLS | |||
in LAG Interface Info Flags. The responder LSRs that understands the | echo reply. This will allow the initiator LSR to understand that | |||
LAG Interface Info TLV and able to describe incoming LAG member link | the responder LSR understood the LAG Interface Info TLV. | |||
MUST use the following procedures, regardless of whether or not | ||||
incoming interface was a LAG interface: | o The responder LSR MUST clear The Upstream LAG Info Accommodation | |||
flag in the LAG Interface Info Flags field of the LAG Interface | ||||
Info TLV. This will allow the initiator LSR to understand that | ||||
the responder LSR understood the LAG Interface Info TLV but cannot | ||||
describe incoming LAG member link. | ||||
The responder LSRs that understands the LAG Interface Info TLV and | ||||
able to describe incoming LAG member link MUST use the following | ||||
procedures, regardless of whether or not incoming interface was a LAG | ||||
interface: | ||||
o Add the LAG Interface Info TLV in the MPLS echo reply to provide | o Add the LAG Interface Info TLV in the MPLS echo reply to provide | |||
acknowledgement back to the initiator. The Upstream LAG Info | acknowledgement back to the initiator. The Upstream LAG Info | |||
Accommodation flag MUST be set in the LAG Interface Info Flags | Accommodation flag MUST be set in the LAG Interface Info Flags | |||
field. | field. | |||
o When the received DDMAP had DS Flags I set, add the Detailed | o When the received DDMAP had DS Flags I set, add the Detailed | |||
Interface and Label Stack TLV (described in Section 8) in the MPLS | Interface and Label Stack TLV (described in Section 8) in the MPLS | |||
echo reply. | echo reply. | |||
o When the received DDMAP had DS Flags I set and incoming interface | o When the received DDMAP had DS Flags I set and incoming interface | |||
was a LAG, add the Incoming Interface Index Sub-TLV (described in | was a LAG, add the Incoming Interface Index Sub-TLV (described in | |||
Section 8.1.2). The LAG Member Link Indicator flag MUST be set in | Section 8.1.2). The LAG Member Link Indicator flag MUST be set in | |||
the Interface Index Flags field, and the Interface Index field set | the Interface Index Flags field, and the Interface Index field set | |||
to the LAG member link which received the MPLS echo request. | to the LAG member link which received the MPLS echo request. | |||
These procedures allow initiating LSR to: | These procedures allow initiator LSR to: | |||
o Identify whether or not the responder LSR understands the LAG | o Identify whether or not the responder LSR understands the LAG | |||
Interface Info TLV and can describe the incoming LAG member links | Interface Info TLV and can describe the incoming LAG member links | |||
(the responder LSR is mandated to always add the LAG Interface | (the responder LSR is mandated to always add the LAG Interface | |||
Info TLV in the MPLS echo reply). | Info TLV in the MPLS echo reply). | |||
4.3. Additional Initiator LSR Procedures | ||||
Along with procedures described in Section 3, described procedures in | Along with procedures described in Section 3, described procedures in | |||
this section will allow an initiating LSR to know: | 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 | |||
outgoing LAG member link at TTL=n. | outgoing LAG member link at TTL=n. | |||
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 added in the initiating LSR, following checks | With additional logics added in the initiator LSR, following checks | |||
can be performed: | can be performed: | |||
o Success case: | o Success case: | |||
* Traversing LAG member=1 at TTL=n results in LAG member=1' as | * Traversing LAG member=1 at TTL=n results in LAG member=1' as | |||
the incoming interface at TTL=n+1. | the incoming interface at TTL=n+1. | |||
* Traversing LAG member=2 at TTL=n results in LAG member=2' as | * Traversing LAG member=2 at TTL=n results in LAG member=2' as | |||
the incoming interface at TTL=n+1. | the incoming interface at TTL=n+1. | |||
skipping to change at page 10, line 13 | skipping to change at page 11, line 22 | |||
document. If the responder LSR is able to accommodate this request, | document. If the responder LSR is able to accommodate this request, | |||
then the LAG Interface Info object MUST be included in the MPLS echo | then the LAG Interface Info object MUST be included in the MPLS echo | |||
reply message. | reply message. | |||
LAG Interface Info TLV Type is TBD1. Length is 4. The Value field | LAG Interface Info TLV Type is TBD1. Length is 4. The Value field | |||
of LAG Interface TLV has following format: | of LAG Interface 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 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| LAG Interface Info Flags | Must Be Zero | | | LAG Interface Info Flags | Must Be Zero | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 4: LAG Interface Info TLV | Figure 4: LAG Interface Info TLV | |||
LAG Interface Info Flags | LAG Interface Info Flags | |||
LAG Interface Info Flags field is a bit vector with following | LAG Interface Info Flags field is a bit vector with following | |||
format. | format. | |||
0 1 | 0 1 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| 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 | 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 | to zero when sending and ignored on receipt. Both U and D flags | |||
MUST be cleared in MPLS echo request message when sending, and | MUST be cleared in MPLS echo request message when sending, and | |||
ignored on receipt. Either or both U and D flags MAY be set in | ignored on receipt. Either or both U and D flags MAY be set in | |||
MPLS echo reply message. | MPLS echo reply message. | |||
Flag Name and Meaning | Flag Name and Meaning | |||
---- ---------------- | ---- ---------------- | |||
skipping to change at page 11, line 7 | skipping to change at page 12, line 22 | |||
the Detailed Interface and Label Stack TLV. | the Detailed Interface and Label Stack TLV. | |||
D Downstream LAG Info Accommodation | D Downstream LAG Info Accommodation | |||
When this flag is set, LSR is capable of placing Interface | When this flag is set, LSR is capable of placing Interface | |||
Index Sub-TLV and Multipath Data Sub-TLV, describing LAG | Index Sub-TLV and Multipath Data Sub-TLV, describing LAG | |||
member link, in the Downstream Detailed Mapping TLV. | member link, in the Downstream Detailed Mapping TLV. | |||
6. DDMAP TLV DS Flags: G | 6. DDMAP TLV DS Flags: G | |||
One flag, G, is added in DS Flags field of the DDMAP TLV. In the | One flag, G, is added in DS Flags field of the DDMAP TLV. The G flag | |||
MPLS echo request message, G flag MUST be cleared when sending, and | of the DS Flags field has no meaning in the MPLS echo request | |||
ignored on receipt. In the MPLS echo reply message, G flag MUST be | message. The G flag MUST therefore be cleared when sending, and | |||
set if the DDMAP TLV describes a LAG interface. It MUST be cleared | ignored on the receipt of the MPLS echo request message. In the MPLS | |||
otherwise. | echo reply message, G flag MUST be set if the DDMAP TLV describes a | |||
LAG interface. It MUST be cleared otherwise. | ||||
DS Flags | DS Flags | |||
DS Flags G is added, in Bit Number TBD4, in DS Flags bit vector. | DS Flags G is added, in Bit Number TBD4, in DS Flags bit vector. | |||
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| | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
skipping to change at page 11, line 45 | skipping to change at page 13, line 13 | |||
DDMAP TLV. Zero or more Interface Index object MAY appear in a DDMAP | DDMAP TLV. Zero or more Interface Index object MAY appear in a DDMAP | |||
TLV. The Interface Index Sub-TLV describes the index assigned by | TLV. The Interface Index Sub-TLV describes the index assigned by | |||
local LSR to the egress interface. | local LSR to the egress interface. | |||
Interface Index Sub-TLV Type is TBD2. Length is 8, and the Value | Interface Index Sub-TLV Type is TBD2. Length is 8, and 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Interface Index Flags | Must Be Zero | | | Interface Index Flags | Must Be Zero | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Interface Index | | | Interface Index | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 5: Interface Index Sub-TLV | Figure 5: Interface Index Sub-TLV | |||
Interface Index Flags | Interface Index Flags | |||
Interface Index Flags field is a bit vector with following format. | Interface Index Flags field is a bit vector with following format. | |||
0 1 | 0 1 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Must Be Zero (Reserved) |M| | | Must Be Zero (Reserved) |M| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
One flag is defined: M. The remaining flags MUST be set to zero | One flag is defined: M. The remaining flags MUST be set to zero | |||
when sending and ignored on receipt. | when sending and ignored on receipt. | |||
Flag Name and Meaning | Flag Name and Meaning | |||
---- ---------------- | ---- ---------------- | |||
M LAG Member Link Indicator | M LAG Member Link Indicator | |||
When this flag is set, interface index described in | When this flag is set, interface index described in | |||
this sub-TLV is member of a LAG. | this sub-TLV is member of a LAG. | |||
Interface Index | Interface Index | |||
Index assigned by the LSR to this interface. | Index assigned by the LSR to this interface. | |||
8. Detailed Interface and Label Stack TLV | 8. 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 a 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. This TLV allows the | |||
initiating LSR to obtain the exact interface and label stack | initiator LSR to obtain the exact interface and label stack | |||
information as it appears at the responder LSR. | information as it appears at the responder LSR. | |||
Detailed Interface and Label Stack TLV Type is TBD3. Length is K + | Detailed Interface and Label Stack TLV Type is TBD3. Length is K + | |||
Sub-TLV Length, and the Value field has following format: | 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 | ||||
Type. Details of this information is described 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 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Address Type | Must Be Zero | | | Address Type | Must Be Zero | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| IP Address (4 or 16 octets) | | | IP Address (4 or 16 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Interface (4 or 16 octets) | | | Interface (4 or 16 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Must Be Zero | Sub-TLV Length | | | Must Be Zero | Sub-TLV Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
. . | . . | |||
. List of Sub-TLVs . | . List of Sub-TLVs . | |||
skipping to change at page 15, line 8 | skipping to change at page 16, line 11 | |||
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 the 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 the | |||
Value field has following format: | 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 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Label | TC |S| TTL | | | Label | TC |S| TTL | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
. . | . . | |||
. . | . . | |||
. . | . . | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Label | TC |S| TTL | | | Label | TC |S| TTL | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 7: Incoming Label Stack Sub-TLV | Figure 7: Incoming Label Stack Sub-TLV | |||
8.1.2. Incoming Interface Index Sub-TLV | 8.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 this 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 the | |||
Value field has following format: | Value field has the same format as the Interface Index Sub-TLV | |||
described in Section 7, 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 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Interface Index Flags | Must Be Zero | | | Interface Index Flags | Must Be Zero | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Interface Index | | | Interface Index | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 8: Incoming Interface Index Sub-TLV | Figure 8: Incoming Interface Index Sub-TLV | |||
Interface Index Flags | Interface Index Flags | |||
Interface Index Flags field is a bit vector with following format. | Interface Index Flags field is a bit vector with following format. | |||
0 1 | 0 1 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Must Be Zero (Reserved) |M| | | Must Be Zero (Reserved) |M| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
One flag is defined: M. The remaining flags MUST be set to zero | One flag is defined: M. The remaining flags MUST be set to zero | |||
when sent and ignored on receipt. | when sent and ignored on receipt. | |||
Flag Name and Meaning | Flag Name and Meaning | |||
---- ---------------- | ---- ---------------- | |||
M LAG Member Link Indicator | M LAG Member Link Indicator | |||
When this flag is set, the interface index described in | When this flag is set, the interface index described in | |||
this sub-TLV is a member of a LAG. | this sub-TLV is a member of a LAG. | |||
Interface Index | Interface Index | |||
Index assigned by the LSR to this interface. | Index assigned by the LSR to this interface. | |||
9. Security Considerations | 9. Security Considerations | |||
This document extends LSP Traceroute mechanism to discover and | This document extends LSP Traceroute mechanism to discover and | |||
exercise L2 ECMP paths. Additional processing are required for | exercise L2 ECMP paths. As result of supporting the code points and | |||
initiating LSR and responder LSR, especially to compute and handle | procedures described in this document, additional processing are | |||
increasing number of multipath information. Due to additional | required by initiator LSRs and responder LSRs, especially to compute | |||
processing, it is critical that proper security measures described in | and handle increasing number of multipath information. Due to | |||
[RFC4379] and [RFC6424] are followed. | additional processing, it is critical that proper security measures | |||
described in [RFC4379] and [RFC6424] are followed. | ||||
The LSP Traceroute allows an initiator LSR to discover the paths of | ||||
tested LSPs, providing deep knowledge of the MPLS network. Exposing | ||||
such information to a malicious user is considered dangerous. To | ||||
prevent leakage of vital information to untrusted users, a responder | ||||
LSR MUST only accept MPLS echo request messages from trusted sources | ||||
via filtering source IP address field of received MPLS echo request | ||||
messages. | ||||
10. IANA Considerations | 10. IANA Considerations | |||
10.1. LAG Interface Info TLV | 10.1. LAG Interface Info TLV | |||
The IANA is requested to assign new value TBD1 for LAG Interface Info | The IANA is requested to assign new value TBD1 for LAG Interface Info | |||
TLV from the "Multiprotocol Label Switching Architecture (MPLS) Label | TLV 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 | |||
----- ------- --------- | ----- ------- --------- | |||
TBD1 LAG Interface Info TLV this document | TBD1 LAG Interface Info TLV this document | |||
10.1.1. LAG Interface Info Flags | ||||
The IANA is requested to create and maintain a registry entitled "LAG | ||||
Interface Info Flags" with following registration procedures: | ||||
Registry Name: LAG Interface Info Flags | ||||
Bit number Name Reference | ||||
---------- ---------------------------------------- --------- | ||||
15 D: Downstream LAG Info Accommodation this document | ||||
14 U: Upstream LAG Info Accommodation this document | ||||
0-13 Unassigned | ||||
Assignments of LAG Interface Info Flags are via Standards Action | ||||
[RFC5226]. | ||||
10.2. Interface Index Sub-TLV | 10.2. Interface Index Sub-TLV | |||
The IANA is requested to assign new value TBD2 for Interface Index | The IANA is requested to assign new value TBD2 for Interface Index | |||
Sub-TLV from the "Multiprotocol Label Switching Architecture (MPLS) | Sub-TLV from the "Multiprotocol Label Switching Architecture (MPLS) | |||
Label Switched Paths (LSPs) Ping Parameters - TLVs" registry, "Sub- | Label Switched Paths (LSPs) Ping Parameters - TLVs" registry, "Sub- | |||
TLVs for TLV Types 20" sub-registry. | TLVs for TLV Types 20" sub-registry. | |||
Value Meaning Reference | Value Meaning Reference | |||
----- ------- --------- | ----- ------- --------- | |||
TBD2 Interface Index Sub-TLV this document | TBD2 Interface Index Sub-TLV this document | |||
10.2.1. Interface Index Flags | ||||
The IANA is requested to create and maintain a registry entitled | ||||
"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]. | ||||
Note that this registry is used by the Interface Index Flags field of | ||||
the Interface Index Sub-TLV which may be present in the "Downstream | ||||
Detailed Mapping" TLV and the Incoming Interface Index Sub-TLV which | ||||
may be present in the "Detailed Interface and Label Stack" TLV. | ||||
10.3. Detailed Interface and Label Stack TLV | 10.3. Detailed Interface and Label Stack TLV | |||
The IANA is requested to assign new value TBD3 for Detailed Interface | The IANA is requested to assign new value TBD3 for Detailed Interface | |||
and Label Stack TLV from the "Multiprotocol Label Switching | and Label Stack TLV from the "Multiprotocol Label Switching | |||
Architecture (MPLS) Label Switched Paths (LSPs) Ping Parameters - | Architecture (MPLS) Label Switched Paths (LSPs) Ping Parameters - | |||
TLVs" registry ([IANA-MPLS-LSP-PING]). | TLVs" registry ([IANA-MPLS-LSP-PING]). | |||
Value Meaning Reference | Value Meaning Reference | |||
----- ------- --------- | ----- ------- --------- | |||
TBD3 Detailed Interface and Label Stack TLV this document | TBD3 Detailed Interface and Label Stack TLV this document | |||
10.3.1. Sub-TLVs for TLV Type TBD3 | ||||
The IANA is requested to create and maintain a sub-registry entitled | ||||
"Sub-TLVs for TLV Type TBD3" under "Multiprotocol Label Switching | ||||
Architecture (MPLS) Label Switched Paths (LSPs) Ping Parameters - | ||||
TLVs" registry. | ||||
Initial values for this sub-registry, "Sub-TLVs for TLV Types TBD3", | ||||
are described below. | ||||
Sub-Type Name Reference | ||||
--------- ---------------------------------------- --------- | ||||
1 Incoming Label Stack this document | ||||
2 Incoming Interface Index this document | ||||
4-65535 Unassigned | ||||
Assignments of Sub-Types are via Standards Action [RFC5226]. | ||||
10.4. DS Flags | 10.4. 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 | Note: the "DS flags" sub-registry is created by | |||
[I-D.ietf-mpls-lsp-ping-registry]. | [I-D.ietf-mpls-lsp-ping-registry]. | |||
Bit number Name Reference | Bit number Name Reference | |||
---------- ---------------------------------------- --------- | ---------- ---------------------------------------- --------- | |||
TBD4 G: LAG Description Indicator this document | TBD4 G: LAG Description Indicator this document | |||
10.5. New Sub-Registry | ||||
10.5.1. Sub-TLVs for TLV Type TBD3 | ||||
The IANA is requested to make a new "Sub-TLVs for TLV Type TBD3" sub- | ||||
registry under "Multiprotocol Label Switching Architecture (MPLS) | ||||
Label Switched Paths (LSPs) Ping Parameters - TLVs" registry. | ||||
Initial values for this sub-registry, "Sub-TLVs for TLV Types TBD3", | ||||
are described below. | ||||
Sub-Type Name Reference | ||||
--------- ---------------------------------------- --------- | ||||
1 Incoming Label Stack this document | ||||
2 Incoming Interface Index this document | ||||
4-65535 Unassigned | ||||
Assignments of Sub-Types are via Standards Action [RFC5226]. | ||||
11. Acknowledgements | 11. Acknowledgements | |||
Authors would like to thank Nagendra Kumar and Sam Aldrin for | Authors would like to thank Nagendra Kumar and Sam Aldrin for | |||
providing useful comments and suggestions. | providing useful comments and suggestions. Authors would like to | |||
thank Loa Andersson for performing a detailed review and providing | ||||
number of comments. | ||||
12. References | 12. References | |||
12.1. Normative References | 12.1. Normative References | |||
[I-D.ietf-mpls-lsp-ping-registry] | [I-D.ietf-mpls-lsp-ping-registry] | |||
Decraene, B., Akiya, N., Pignataro, C., Andersson, L., and | Decraene, B., Akiya, N., Pignataro, C., Andersson, L., and | |||
S. Aldrin, "IANA registries for LSP ping Code Points", | S. Aldrin, "IANA registries for LSP ping Code Points", | |||
draft-ietf-mpls-lsp-ping-registry-00 (work in progress), | draft-ietf-mpls-lsp-ping-registry-00 (work in progress), | |||
November 2014. | November 2014. | |||
skipping to change at page 18, line 35 | skipping to change at page 20, line 37 | |||
February 2006. | February 2006. | |||
[RFC6424] Bahadur, N., Kompella, K., and G. Swallow, "Mechanism for | [RFC6424] Bahadur, N., Kompella, K., and G. Swallow, "Mechanism for | |||
Performing Label Switched Path Ping (LSP Ping) over MPLS | Performing Label Switched Path Ping (LSP Ping) over MPLS | |||
Tunnels", RFC 6424, November 2011. | Tunnels", RFC 6424, November 2011. | |||
12.2. Informative References | 12.2. Informative References | |||
[I-D.ietf-mpls-ipv6-only-gap] | [I-D.ietf-mpls-ipv6-only-gap] | |||
George, W. and C. Pignataro, "Gap Analysis for Operating | George, W. and C. Pignataro, "Gap Analysis for Operating | |||
IPv6-only MPLS Networks", draft-ietf-mpls-ipv6-only-gap-03 | IPv6-only MPLS Networks", draft-ietf-mpls-ipv6-only-gap-04 | |||
(work in progress), October 2014. | (work in progress), November 2014. | |||
[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 | |||
metropolitan area networks - Link Aggregation", November | metropolitan area networks - Link Aggregation", November | |||
End of changes. 57 change blocks. | ||||
153 lines changed or deleted | 265 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |