draft-ietf-mpls-lsp-ping-reply-mode-simple-00.txt | draft-ietf-mpls-lsp-ping-reply-mode-simple-01.txt | |||
---|---|---|---|---|
Internet Engineering Task Force N. Akiya | Internet Engineering Task Force N. Akiya | |||
Internet-Draft G. Swallow | Internet-Draft G. Swallow | |||
Updates: 4379 (if approved) C. Pignataro | Updates: 4379,7110 (if approved) C. Pignataro | |||
Intended status: Standards Track Cisco Systems | Intended status: Standards Track Cisco Systems | |||
Expires: March 9, 2015 L. Andersson | Expires: July 9, 2015 L. Andersson | |||
M. Chen | M. Chen | |||
Huawei | Huawei | |||
September 5, 2014 | January 5, 2015 | |||
Label Switched Path (LSP) Ping/Traceroute Reply Mode Simplification | Label Switched Path (LSP) Ping/Traceroute Reply Mode Simplification | |||
draft-ietf-mpls-lsp-ping-reply-mode-simple-00 | draft-ietf-mpls-lsp-ping-reply-mode-simple-01 | |||
Abstract | Abstract | |||
The Multiprotocol Label Switching (MPLS) Label Switched Path (LSP) | The Multiprotocol Label Switching (MPLS) Label Switched Path (LSP) | |||
Ping and Traceroute use the Reply Mode field to signal the method to | Ping and Traceroute use the Reply Mode field to signal the method to | |||
be used in the MPLS echo reply. This document adds one value to the | be used in the MPLS echo reply. This document updates the "Reply via | |||
Reply Mode field to indicate reverse LSP. This document also adds an | Specified Path (5)" Reply Mode value to easily indicate the reverse | |||
optional TLV which can carry ordered list of Reply Mode values. | LSP. This document also adds an optional TLV which can carry ordered | |||
list of Reply Mode values. | ||||
This document updates RFC4379. | This document updates RFC4379 and RFC7110. | |||
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 | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
skipping to change at page 1, line 46 | skipping to change at page 1, line 47 | |||
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 March 9, 2015. | This Internet-Draft will expire on July 9, 2015. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2014 IETF Trust and the persons identified as the | Copyright (c) 2015 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 | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
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 . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Problem Statements . . . . . . . . . . . . . . . . . . . . . 3 | 2. Problem Statements . . . . . . . . . . . . . . . . . . . . . 3 | |||
3. Solution . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Solution . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3.1. Reply via reverse LSP . . . . . . . . . . . . . . . . . . 5 | 3.1. Reply via Specified Path Update . . . . . . . . . . . . . 5 | |||
3.2. Reply Mode Order TLV . . . . . . . . . . . . . . . . . . 5 | 3.2. Reply Mode Order TLV . . . . . . . . . . . . . . . . . . 6 | |||
4. Relations to Other LSP Ping/Trace Features . . . . . . . . . 6 | 4. Relations to Other LSP Ping/Trace Features . . . . . . . . . 7 | |||
4.1. Reply Path TLV . . . . . . . . . . . . . . . . . . . . . 6 | 4.1. Reply Path TLV . . . . . . . . . . . . . . . . . . . . . 7 | |||
4.1.1. Reply Mode Order TLV Usage Example with Reply Path | 4.1.1. Example 1: Reply Mode Order TLV Usage with Reply Path | |||
TLV . . . . . . . . . . . . . . . . . . . . . . . . . 7 | TLV . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
4.2. Proxy LSP Ping . . . . . . . . . . . . . . . . . . . . . 7 | 4.1.2. Example 2: Reply Mode Order TLV Usage with Reply Path | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | TLV . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 4.2. Proxy LSP Ping . . . . . . . . . . . . . . . . . . . . . 8 | |||
6.1. New Reply Mode . . . . . . . . . . . . . . . . . . . . . 8 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
6.2. New Reply Mode Order TLV . . . . . . . . . . . . . . . . 8 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 | 6.1. New Reply Mode Order TLV . . . . . . . . . . . . . . . . 9 | |||
8. Contributing Authors . . . . . . . . . . . . . . . . . . . . 8 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 8. Contributing Authors . . . . . . . . . . . . . . . . . . . . 9 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 8 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 9 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
Appendix A. Reply Mode Order TLV Beneficial Scenarios . . . . . 9 | 9.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
A.1. Incorrect Forwarding Scenario . . . . . . . . . . . . . . 9 | Appendix A. Reply Mode Order TLV Beneficial Scenarios . . . . . 10 | |||
A.2. Non-Co-Routed Bidirectional LSP Scenario . . . . . . . . 10 | A.1. Incorrect Forwarding Scenario . . . . . . . . . . . . . . 10 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | A.2. Non-Co-Routed Bidirectional LSP Scenario . . . . . . . . 11 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | ||||
1. Introduction | 1. Introduction | |||
The MPLS LSP Ping, described in [RFC4379], allows an initiator to | The MPLS LSP Ping, described in [RFC4379], allows an initiator LSR to | |||
encode instructions (Reply Mode) on how a responder should send the | encode instructions (Reply Mode) on how a responder LSR should send | |||
response back to the initiator. [RFC7110] also allows the initiator | the response back to the initiator LSR. [RFC7110] also allows the | |||
to encode a TLV (Reply Path TLV) which can instruct the responder to | initiator LSR to encode a TLV (Reply Path TLV) which can instruct the | |||
use specific LSP to send the response back to the initiator. Both | responder LSR to use specific LSP to send the response back to the | |||
approaches are powerful as they provide the ability for the initiator | initiator LSR. Both approaches are powerful as they provide the | |||
to control the return path. | ability for the initiator LSR to control the return path. | |||
However, it is becoming increasingly difficult for an initiator to | However, it is becoming increasingly difficult for an initiator LSR | |||
select a valid return path to encode in the MPLS LSP echo request | to select a valid return path to encode in the MPLS LSP echo request | |||
packets. If the initiator does not select a valid return path, the | packets. If the initiator LSR does not select a valid return path, | |||
MPLS LSP echo reply will not get back to the initiator. This results | the MPLS LSP echo reply will not get back to the initiator LSR. This | |||
in a false failure of MPLS LSP Ping and Traceroute operation. In an | results in a false failure of MPLS LSP Ping and Traceroute operation. | |||
effort to minimize such false failures, different implementations | In an effort to minimize such false failures, different | |||
have chosen different default return path encoding for different LSP | implementations have chosen different default return path encoding | |||
types and LSP operations. The problem with implementations having | for different LSP types and LSP operations. The problem with | |||
different default return path encoding is that the MPLS echo reply | implementations having different default return path encoding is that | |||
will not work in many cases, and the default value may not be the | the MPLS echo reply will not work in many cases, and the default | |||
preferred choice by the operators. | value may not be the preferred choice by the operators. | |||
This document further describes the problem in Section 2, and | This document describes: | |||
proposes a solution in Section 3 to minimizes false failure scenarios | ||||
while accommodating operator preferences. Additionally, Appendix A | o In Section 2, further description of the problems; | |||
provides examples of scenarios where the mechanism described in this | ||||
document provides benefits. | o In Section 3, a solution to minimize false failures while | |||
accommodating operator preferences; | ||||
o In Section 4, relationships to other LSP Ping/Traceroute features; | ||||
o In Appendix A, examples of scenarios where the mechanism described | ||||
in this document provides benefits. | ||||
2. Problem Statements | 2. Problem Statements | |||
It is becoming increasingly difficult for implementations to | It is becoming increasingly difficult for implementations to | |||
automatically supply a workable return path encoding for all MPLS LSP | automatically supply a workable return path encoding for all MPLS LSP | |||
Ping and Traceroute operations across all LSP types. There are | Ping and Traceroute operations across all LSP types. There are | |||
several factors which are contributing to this complication. | several factors which are contributing to this complication. | |||
o Some LSPs have a control-channel, and some do not. Some LSPs have | o Some LSPs have a control-channel, and some do not. Some LSPs have | |||
a reverse LSP, and some do not. Some LSPs have IP reachability in | a reverse LSP, and some do not. Some LSPs have IP reachability in | |||
the reverse direction, and some do not. | the reverse direction, and some do not. | |||
o LSRs on some LSPs can have different available return path(s). | o LSRs on some LSPs can have different available return path(s). | |||
Available return path(s) can depend on whether the responder is a | Available return path(s) can depend on whether the responder LSR | |||
transit LSR or an egress LSR. In case of a bi-directional LSP, | is a transit LSR or an egress LSR. In case of a bi-directional | |||
available return path(s) on transit LSRs can also depend on | LSP, available return path(s) on transit LSRs can also depend on | |||
whether LSP is completely co-routed, partially co-routed or | whether LSP is completely co-routed, partially co-routed or | |||
associated (i.e., LSPs in the two directions are not co-routed). | associated (i.e., LSPs in the two directions are not co-routed). | |||
o MPLS echo request packets may incorrectly terminate on an | o MPLS echo request packets may incorrectly terminate on an | |||
unintended target, which can have different available return | unintended target, which can have different available return | |||
path(s) than the intended target. | path(s) than the intended target. | |||
o The MPLS LSP Ping operation is expected to terminate on egress | o The MPLS LSP Ping operation is expected to terminate on egress | |||
LSR. However, the MPLS LSP Ping operation with specific TTL | LSR. However, the MPLS LSP Ping operation with specific TTL | |||
values and MPLS LSP Traceroute operation can terminate on both | values and MPLS LSP Traceroute operation can terminate on both | |||
transit LSR(s) and the egress LSR. | transit LSR(s) and the egress LSR. | |||
Except for the case where the responder node does not have an IP | Except for the case where the responder LSR does not have an IP route | |||
route back to the initiator, it is possible to use Reply Mode of | back to the initiator LSR, it is possible to use the "Reply via an | |||
value 2 (Reply via an IPv4/IPv6 UDP packet) in all cases. However, | IPv4/IPv6 UDP packet (2)" Reply Mode value in all cases. However, | |||
some operators are preferring control-channel and reverse LSP as | some operators are preferring control-channel and reverse LSP as | |||
default return path if they are available, which is not always the | default return path if they are available, which is not always the | |||
case. | case. | |||
When specific return path encoding is supplied by users or | When specific return path encoding is supplied by users or | |||
applications, then there are no issues in choosing the return path | applications, then there are no issues in choosing the return path | |||
encoding. When specific return path encoding is not supplied by | encoding. When specific return path encoding is not supplied by | |||
users or applications, then implementations use extra logic to | users or applications, then implementations use extra logic to | |||
compute, and sometimes guess, the default return path encodings. If | compute, and sometimes guess, the default return path encodings. If | |||
a responder node receives an MPLS echo request containing return path | a responder LSR receives an MPLS echo request containing return path | |||
instructions which cannot be accommodated due to unavailability, then | instructions which cannot be accommodated due to unavailability, then | |||
the responder often drops such packets. This results in the | the responder LSR often drops such packets. This results in the | |||
initiator not receiving the MPLS LSP echo reply packets back. This | initiator LSR not receiving the MPLS LSP echo reply packets back. | |||
consequence may be acceptable for failure cases (e.g., broken LSPs) | This consequence may be acceptable for failure cases (e.g., broken | |||
where the MPLS echo request terminated on unintended target. | LSPs) where the MPLS echo request terminated on unintended target. | |||
However, the initiator not receiving back MPLS echo reply packets, | However, the initiator LSR not receiving back MPLS echo reply | |||
even when the intended target received and verified the requests, is | packets, even when the intended target received and verified the | |||
not desirable as false failures will be conveyed to users. | requests, is not desirable as false failures will be conveyed to | |||
users. | ||||
Many operators prefer some return path(s) over others for specific | Many operators prefer some return path(s) over others for specific | |||
LSP types. To accommodate this, implementations may default to | LSP types. To accommodate this, implementations may default to | |||
operator preferred return path (or allow default return path to be | operator preferred return path (or allow default return path to be | |||
configured) for a specific operation. However, if the sender of MPLS | configured) for a specific operation. However, if the sender of MPLS | |||
echo request knew that preferred return path will not be available at | echo request knew that preferred return path will not be available at | |||
the intended target node, then it is not very beneficial to use a | the intended target node, then it is not very beneficial to use a | |||
Reply Mode corresponding to preferred return path (i.e., the sender | Reply Mode corresponding to preferred return path (i.e., the sender | |||
of the MPLS echo request will not receive the MPLS echo reply in the | of the MPLS echo request will not receive the MPLS echo reply in the | |||
successful case). What would be beneficial, for a given operation, | successful case). What would be beneficial, for a given operation, | |||
is for the sender of the MPLS echo request to determine which return | is for the sender of the MPLS echo request to determine which return | |||
path(s) can and cannot be used ahead of time. | path(s) can and cannot be used ahead of time. | |||
This document adds one Reply Mode value to describe the reverse LSP, | This document adds one Reply Mode value to describe the reverse LSP, | |||
and one optional TLV to describe an ordered list of reply modes. | and one optional TLV to describe an ordered list of reply modes. | |||
Based on operational needs, the TLV can describe multiple Reply Mode | Based on operational needs, the TLV can describe multiple Reply Mode | |||
values in a preferred order to allow the responder to use the first | values in a preferred order to allow the responder LSR to use the | |||
available Reply Mode from the list. This eliminates the need for the | first available Reply Mode from the list. This eliminates the need | |||
initiator to compute, or sometimes guess, the default return path | for the initiator LSR to compute, or sometimes guess, the default | |||
encoding. And that will result in simplified implementations across | return path encoding. And that will result in simplified | |||
vendors, and result in improved usability to fit operational needs. | implementations across vendors, and result in improved usability to | |||
fit operational needs. | ||||
3. Solution | 3. Solution | |||
This document adds one reply mode to indicate reverse LSP, to be used | This document updates "Reply via Specified Path (5)" Reply Mode to | |||
by the MPLS LSP Ping and Traceroute. This document also adds an | easily indicate the reverse LSP. This document also adds an optional | |||
optional TLV which can carry ordered list of reply modes. | TLV which can carry ordered list of reply modes. | |||
3.1. Reply via reverse LSP | 3.1. Reply via Specified Path Update | |||
Some LSP types are capable of having related LSP in reverse | Some LSP types are capable of having related LSP in reverse | |||
direction, through signaling or other association mechanisms. | direction, through signaling or other association mechanisms. | |||
Examples of such LSP types are RSVP LSPs and TP LSPs. This document | Examples of such LSP types are RSVP LSPs and TP LSPs. This document | |||
uses the term "Reverse LSP" to refer to the LSP in reverse direction | uses the term "Reverse LSP" to refer to the LSP in reverse direction | |||
of such LSP types. Note that this document restricts the scope of | of such LSP types. Note that this document restricts the scope of | |||
"Reverse LSP" applicability to those reverse LSPs which are capable | "Reverse LSP" applicability to those reverse LSPs which are capable | |||
and allowed to carry the IP encapsulated MPLS echo reply. | and allowed to carry the IP encapsulated MPLS echo reply. | |||
This document adds one Reply Mode to be used by MPLS LSP Ping and | [RFC7110] has defined the Reply Mode "Reply via Specified Path (5)" | |||
Traceroute operations. | which allows the initiator LSR to instruct the responder LSR to send | |||
the MPLS echo reply message on the reverse LSP. However, the | ||||
instruction also requires the initiator LSR to include the "Reply | ||||
Path TLV" with the B bit (Bidirectional bit) set in the Flags field. | ||||
Additionally, [RFC7110] defines the usage of the "Reply via Specified | ||||
Path (5)" Reply Mode without inclusion of the "Reply Path TLV" to be | ||||
invalid. | ||||
Value Meaning | This document updates the "Reply via Specified Path (5)" Reply Mode | |||
----- ------- | as follows: | |||
TBD1 Reply via reverse LSP | ||||
MPLS echo request with TBD1 (Reply via reverse LSP) in the Reply Mode | o The usage of the "Reply via Specified Path (5)" without inclusion | |||
field may be used to instruct responder to use reverse LSP to send | of a "Reply Path TLV" is no longer invalid. | |||
MPLS echo reply. Reverse LSP is in relation to the last FEC | ||||
specified in the Target FEC Stack TLV. | ||||
When a responder is using this Reply Mode, transmitting MPLS echo | o The usage of the "Reply via Specified Path (5)" without inclusion | |||
of a "Reply Path TLV" implies the reverse LSP. In other words, | ||||
the usage of the "Reply via Specified Path (5)" without inclusion | ||||
of a "Reply Path TLV" has the same semantics as the usage of the | ||||
"Reply via Specified Path (5)" with inclusion of a "Reply Path | ||||
TLV" with the B bit set in the Flags field. | ||||
Note that the reverse LSP is in relation to the last FEC specified in | ||||
the Target FEC Stack TLV. | ||||
When a responder LSR is using this Reply Mode, transmitting MPLS echo | ||||
reply packet MUST use IP destination address of 127/8 for IPv4 and | reply packet MUST use IP destination address of 127/8 for IPv4 and | |||
0:0:0:0:0:FFFF:7F00/104 for IPv6. | 0:0:0:0:0:FFFF:7F00/104 for IPv6. | |||
3.2. Reply Mode Order TLV | 3.2. Reply Mode Order TLV | |||
This document also introduces a new optional TLV to describe list of | This document also introduces a new optional TLV to describe list of | |||
Reply Mode values. The new TLV will contain one or more Reply Mode | Reply Mode values. The new TLV will contain one or more Reply Mode | |||
value(s) in preferred order. The first Reply Mode value is the most | value(s) in preferred order. The first Reply Mode value is the most | |||
preferred and the last Reply Mode value is the least preferred. | preferred and the last Reply Mode value is the least preferred. | |||
Following rules apply when using Reply Mode Order TLV. | Following rules apply when using Reply Mode Order TLV. | |||
1. Reply Mode Order TLV MAY be included in MPLS echo request. | 1. Reply Mode Order TLV MAY be included in MPLS echo request. | |||
2. Reply Mode Order TLV MUST NOT be included in MPLS echo reply. | 2. Reply Mode Order TLV MUST NOT be included in MPLS echo reply. | |||
3. Reply Mode field of MPLS echo request MUST be set to a valid | 3. Reply Mode field of MPLS echo request MUST be set to a valid | |||
value when supplying Reply Mode Order TLV in transmitting MPLS | value when supplying Reply Mode Order TLV in transmitting MPLS | |||
echo request. The initiator SHOULD set Reply Mode field of MPLS | echo request. The initiator LSR SHOULD set Reply Mode field of | |||
echo request to a value that corresponds to a return path which | MPLS echo request to a value that corresponds to a return path | |||
most likely to be available, in case responder does not | which most likely to be available, in case the responder LSR does | |||
understand the Reply Mode Order TLV. | not understand the Reply Mode Order TLV. | |||
4. If a responder node understands the Reply Mode Order TLV and the | 4. If a responder LSR understands the Reply Mode Order TLV and the | |||
TLV is valid, then the responder MUST consider Reply Mode values | TLV is valid, then the responder LSR MUST consider Reply Mode | |||
described in the TLV and MUST NOT use the value described in the | values described in the TLV and MUST NOT use the value described | |||
Reply Mode field of received MPLS echo request. | in the Reply Mode field of received MPLS echo request. | |||
5. If a responder node understands the Reply Mode Order TLV but the | 5. If a responder LSR understands the Reply Mode Order TLV but the | |||
TLV is not valid (due to conditions listed below), then the | TLV is not valid (due to conditions listed below), then the | |||
responder MUST only use the value described in the Reply Mode | responder LSR MUST only use the value described in the Reply Mode | |||
field of received MPLS echo request. | field of received MPLS echo request. | |||
6. Reply Mode Order TLV MUST contain at least one Reply Mode value, | 6. Reply Mode Order TLV MUST contain at least one Reply Mode value, | |||
and SHOULD contain at least two Reply Mode values. | and SHOULD contain at least two Reply Mode values. | |||
7. A Reply Mode value MUST NOT be repeated (i.e. MUST NOT appear | 7. A Reply Mode value MUST NOT be repeated (i.e. MUST NOT appear | |||
multiple times) in the Reply Mode Order TLV. | multiple times) in the Reply Mode Order TLV. | |||
8. Reply Mode value 1 (Do not reply) SHOULD NOT be used in the Reply | 8. Reply Mode value 1 (Do not reply) SHOULD NOT be used in the Reply | |||
Mode Order TLV. | Mode Order TLV. | |||
The responding node is to select the first available return path in | The responding node is to select the first available return path in | |||
this TLV. Reply Mode value corresponding to selected return path | this TLV. Reply Mode value corresponding to selected return path | |||
MUST be set in Reply Mode field of MPLS echo reply to communicate | MUST be set in Reply Mode field of MPLS echo reply to communicate | |||
back to the initiator which return path was chosen. | back to the initiator LSR which return path was chosen. | |||
The format of the TLV is as follows: | The format of the TLV is as follows: | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Reply Mode Order TLV Type | Length | | | Reply Mode Order TLV Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Reply mode 1 | Reply mode 2 | Reply mode 3 | Reply mode 4 | | | Reply mode 1 | Reply mode 2 | Reply mode 3 | Reply mode 4 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 1 Reply Mode Order TLV | Figure 1 Reply Mode Order TLV | |||
This is a variable length optional TLV. Each Reply Mode field is 1 | This is a variable length optional TLV. Each Reply Mode field is 1 | |||
octet. | octet. | |||
4. Relations to Other LSP Ping/Trace Features | 4. Relations to Other LSP Ping/Trace Features | |||
4.1. Reply Path TLV | 4.1. Reply Path TLV | |||
[RFC7110] defines a new Reply Mode (5 - Reply via Specified Path). | [RFC7110] has defined that the "Reply Path TLV" can include Sub-TLVs | |||
This Reply Mode specified in MPLS echo request indicates that MPLS | describing multiple FECs, from which the responder LSR can chose the | |||
echo reply be sent on one specific path described by the Reply Path | FEC to send the MPLS echo reply message on. [RFC7110] has also | |||
TLV. The Flags field of the Reply Path TLV can indicate B | defined that Sub-TLVs, within the "Reply Path TLV", describing FECs | |||
(Bidirectional) bit to describe reverse direction of the tested | for return paths SHOULD be ignored when the B bit is set in the Flags | |||
bidirectional LSP. However, it is desired to have a new Reply Mode | field. Therefore, when the initiator LSR wants to use the Reply Mode | |||
(TBD1 - Reply via reverse LSP) to indicate reverse direction of the | Order TLV to describe the reverse LSP and other FECs for return | |||
tested bidirectional LSP without requiring to include additional TLV | paths, then the initiator SHOULD include two "Reply via Specified | |||
(i.e. Reply Path TLV). Therefore, a new Reply Mode (TBD1 - Reply | Path (5)" Reply Mode values and two "Reply Path TLV" objects (one | |||
via reverse LSP) has been added. | "Reply Path TLV" corresponding to each "Reply via Specified Path | |||
(5)"). | ||||
4.1.1. Reply Mode Order TLV Usage Example with Reply Path TLV | o The reverse LSP is described by the "Reply via Specified Path (5)" | |||
Reply Mode value and the corresponding "Reply Path TLV" with the B | ||||
bit set in the Flags field. In this "Reply Path TLV", no Sub-TLVs | ||||
are present. | ||||
If the initiator was interested in encoding following return paths: | o Other return FECs are described by the "Reply via Specified Path | |||
(5)" Reply Mode value and the corresponding "Reply Path TLV" | ||||
describing the FECs for return paths. In this "Reply Path TLV", | ||||
the B bit is cleared in the Flags field. | ||||
4.1.1. Example 1: Reply Mode Order TLV Usage with Reply Path TLV | ||||
If the initiator LSR was interested in encoding following return | ||||
paths: | ||||
1. Reply via application level control channel | 1. Reply via application level control channel | |||
2. FEC X | 2. FEC X | |||
3. FEC Y | 3. FEC Y | |||
4. Reply via an IPv4/IPv6 UDP packet | 4. Reply via an IPv4/IPv6 UDP packet | |||
Then the MPLS echo request message is to carry: | Then the MPLS echo request message is to carry: | |||
o The Reply Mode Order TLV carrying Reply Modes {4, 5, 2} | o The Reply Mode Order TLV carrying Reply Modes {4, 5, 2} | |||
o The Reply Path TLV carrying {FEC X, FEC Y} | o The Reply Path TLV carrying {FEC X, FEC Y} | |||
Described encoding of the Reply Mode Order TLV and the Reply Path TLV | Described encoding of the Reply Mode Order TLV and the Reply Path TLV | |||
in the MPLS echo request message will result in the responder to | in the MPLS echo request message will result in the responder LSR to | |||
prefer "Reply via application level control channel (4)", followed by | prefer "Reply via application level control channel (4)", followed by | |||
FEC X, FEC Y and then "Reply via an IPv4/IPv6 UDP packet (2)". | FEC X, FEC Y and then "Reply via an IPv4/IPv6 UDP packet (2)". | |||
4.1.2. Example 2: Reply Mode Order TLV Usage with Reply Path TLV | ||||
If the initiator LSR was interested in encoding following return | ||||
paths: | ||||
1. Reverse LSP | ||||
2. Reply via an IPv4/IPv6 UDP packet | ||||
3. FEC X | ||||
4. FEC Y | ||||
Then the MPLS echo request message is to carry: | ||||
o The Reply Mode Order TLV carrying Reply Modes {5, 2, 5} | ||||
o One Reply Path TLV with the B bit set. | ||||
o One Reply Path TLV carrying {FEC X, FEC Y} | ||||
Described encoding of the Reply Mode Order TLV and the Reply Path TLV | ||||
in the MPLS echo request message will result in the responder LSR to | ||||
prefer the reverse LSP, followed by "Reply via an IPv4/IPv6 UDP | ||||
packet (2)", FEC X and then FEC Y. | ||||
4.2. Proxy LSP Ping | 4.2. Proxy LSP Ping | |||
The mechanism defined in this document will work with Proxy LSP Ping | The mechanism defined in this document will work with Proxy LSP Ping | |||
defined by [I-D.ietf-mpls-proxy-lsp-ping]. MPLS proxy ping request | defined by [I-D.ietf-mpls-proxy-lsp-ping]. MPLS proxy ping request | |||
can carry a Reply Mode value and the Reply Mode Order TLV with list | can carry a Reply Mode value and the Reply Mode Order TLV with list | |||
of Reply Mode values. Proxy LSR MUST copy both Reply Mode value and | of Reply Mode values. Proxy LSR MUST copy both Reply Mode value and | |||
the Reply Mode Order TLV into MPLS echo request. Proxy LSR, upon | the Reply Mode Order TLV into MPLS echo request. Proxy LSR, upon | |||
receiving MPLS echo reply, MUST copy Reply Mode value into MPLS proxy | receiving MPLS echo reply, MUST copy Reply Mode value into MPLS proxy | |||
ping reply. With these procedures, Reply Mode used by the MPLS echo | ping reply. With these procedures, Reply Mode used by the MPLS echo | |||
reply sender is propagated in the Reply Mode field to the sender of | reply sender is propagated in the Reply Mode field to the sender of | |||
MPLS proxy ping request. | MPLS proxy ping request. | |||
5. Security Considerations | 5. Security Considerations | |||
Beyond those specified in [RFC4379], there are no further security | Beyond those specified in [RFC4379], there are no further security | |||
measures required. | measures required. | |||
6. IANA Considerations | 6. IANA Considerations | |||
6.1. New Reply Mode | ||||
IANA is requested to assign one reply modes from the "Reply Mode" | 6.1. New Reply Mode Order TLV | |||
sub-registry within the "Multiprotocol Label Switching Architecture | ||||
(MPLS)" registry. | ||||
Value Meaning Reference | ||||
----- ------- --------- | ||||
TBD1 Reply via reverse LSP this document | ||||
6.2. New Reply Mode Order TLV | ||||
IANA is requested to assign a new TLV type value from the "TLVs" sub- | IANA is requested to assign a new TLV type value from the "TLVs" sub- | |||
registry within the "Multiprotocol Label Switching Architecture | registry within the "Multiprotocol Label Switching Architecture | |||
(MPLS)" registry, for the "Reply Mode Order TLV". | (MPLS)" registry, for the "Reply Mode Order TLV". | |||
The new TLV Type value should be assigned from the range | The new TLV Type value should be assigned from the range | |||
(32768-49161) specified in [RFC4379] section 3 that allows the TLV | (32768-49161) specified in [RFC4379] section 3 that allows the TLV | |||
type to be silently dropped if not recognized. | type to be silently dropped if not recognized. | |||
Type Meaning Reference | Type Meaning Reference | |||
---- ------- --------- | ---- ------- --------- | |||
TBD2 Reply Mode Order TLV this document | TBD1 Reply Mode Order TLV this document | |||
7. Acknowledgements | 7. Acknowledgements | |||
Authors would like to thank Santiago Alvarez and Faisal Iqbal for | Authors would like to thank Santiago Alvarez and Faisal Iqbal for | |||
discussions which motivated creation of this document. Authors would | discussions which motivated creation of this document. Authors would | |||
also like to thank Sam Aldrin, Curtis Villamizar, Ross Callon, | also like to thank Sam Aldrin, Curtis Villamizar, Ross Callon, | |||
Jeffrey Zhang, Jeremy Whittaker and Mustapha Alissaoui for providing | Jeffrey Zhang, Jeremy Whittaker and Mustapha Alissaoui for providing | |||
valuable comments to influence the contents of the draft. | valuable comments to influence the contents of the draft. | |||
8. Contributing Authors | 8. Contributing Authors | |||
Shaleen Saxena | Shaleen Saxena | |||
Cisco Systems | Brocade | |||
Email: ssaxena@cisco.com | Email: ssaxena@brocade.com | |||
9. References | 9. References | |||
9.1. Normative References | 9.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
[RFC4379] Kompella, K. and G. Swallow, "Detecting Multi-Protocol | [RFC4379] Kompella, K. and G. Swallow, "Detecting Multi-Protocol | |||
Label Switched (MPLS) Data Plane Failures", RFC 4379, | Label Switched (MPLS) Data Plane Failures", RFC 4379, | |||
February 2006. | February 2006. | |||
[RFC7110] Chen, M., Cao, W., Ning, S., Jounay, F., and S. Delord, | ||||
"Return Path Specified Label Switched Path (LSP) Ping", | ||||
RFC 7110, January 2014. | ||||
9.2. Informative References | 9.2. Informative References | |||
[I-D.ietf-mpls-proxy-lsp-ping] | [I-D.ietf-mpls-proxy-lsp-ping] | |||
Swallow, G., Lim, V., and S. Aldrin, "Proxy MPLS Echo | Swallow, G., Lim, V., and S. Aldrin, "Proxy MPLS Echo | |||
Request", draft-ietf-mpls-proxy-lsp-ping-02 (work in | Request", draft-ietf-mpls-proxy-lsp-ping-02 (work in | |||
progress), July 2014. | progress), July 2014. | |||
[RFC7110] Chen, M., Cao, W., Ning, S., Jounay, F., and S. Delord, | ||||
"Return Path Specified Label Switched Path (LSP) Ping", | ||||
RFC 7110, January 2014. | ||||
Appendix A. Reply Mode Order TLV Beneficial Scenarios | Appendix A. Reply Mode Order TLV Beneficial Scenarios | |||
This section lists examples of how the Reply Mode Order TLV can | This section lists examples of how the Reply Mode Order TLV can | |||
benefit. | benefit. | |||
A.1. Incorrect Forwarding Scenario | A.1. Incorrect Forwarding Scenario | |||
A network has a following LSP, and the LSP has a control channel. | A network has a following LSP, and the LSP has a control channel. | |||
A------B------C------D------E | A------B------C------D------E | |||
skipping to change at page 10, line 7 | skipping to change at page 11, line 7 | |||
same procedures can be performed with the Reply Mode Order TLV | same procedures can be performed with the Reply Mode Order TLV | |||
carrying {4, 2}. When LSP Traceroute is issued, then following output | carrying {4, 2}. When LSP Traceroute is issued, then following output | |||
may be displayed without any unnecessary timeout. | may be displayed without any unnecessary timeout. | |||
Success (Reply from B, Reply Mode: 4) | Success (Reply from B, Reply Mode: 4) | |||
Success (Reply from C, Reply Mode: 4) | Success (Reply from C, Reply Mode: 4) | |||
Success (Reply from D, Reply Mode: 4) | Success (Reply from D, Reply Mode: 4) | |||
FEC Mismatch (Reply from F, Reply Mode: 2) | FEC Mismatch (Reply from F, Reply Mode: 2) | |||
Complete | Complete | |||
The result provides more diagnostic information to the initiator, and | The result provides more diagnostic information to the initiator LSR, | |||
without any delay (i.e. timeout from one or more downstream LSRs). | and without any delay (i.e. timeout from one or more downstream | |||
LSRs). | ||||
A.2. Non-Co-Routed Bidirectional LSP Scenario | A.2. Non-Co-Routed Bidirectional LSP Scenario | |||
A network has a following bidirectional LSP where the forward LSP and | A network has a following bidirectional LSP where the forward LSP and | |||
the reverse LSP are not fully co-routed. | the reverse LSP are not fully co-routed. | |||
+----C------D----+ | +----C------D----+ | |||
/ \ | / \ | |||
A------B G------H | A------B G------H | |||
\ / | \ / | |||
+----E------F----+ | +----E------F----+ | |||
Forward Paths: A-B-C-D-G-H (upper path) | Forward Paths: A-B-C-D-G-H (upper path) | |||
Reverse Paths: H-G-F-E-B-A (lower path) | Reverse Paths: H-G-F-E-B-A (lower path) | |||
Figure 3: Non-Co-Routed Bidirectional LSP | Figure 3: Non-Co-Routed Bidirectional LSP | |||
Some operators may prefer and configure the system to default the | Some operators may prefer and configure the system to default the | |||
Reply Mode to "Reply via reverse LSP (TBD1)" when MPLS echo request | Reply Mode to indicate the reverse LSP when MPLS echo request | |||
messages are sent on bidirectional LSPs. Without extensions | messages are sent on bidirectional LSPs. Without extensions | |||
described in this document, following behaviors will be seen: | described in this document, following behaviors will be seen: | |||
o When LSP Ping is issued from A, reply will come back on the | o When LSP Ping is issued from A, reply will come back on the | |||
reverse LSP from H. | reverse LSP from H. | |||
o When LSP Traceroute is issued from A, reply will come back on the | o When LSP Traceroute is issued from A, reply will come back on the | |||
reverse LSP from B, G and H, but will encounter a timeout from C | reverse LSP from B, G and H, but will encounter a timeout from C | |||
and D as there are no reverse LSP on those nodes. | and D as there are no reverse LSP on those nodes. | |||
o When LSP Ping with specific TTL value is issued from A, whether a | o When LSP Ping with specific TTL value is issued from A, whether a | |||
timeout will be encountered depends on the value of the TTL used | timeout will be encountered depends on the value of the TTL used | |||
(i.e. whether or not MPLS echo request terminates on a node that | (i.e. whether or not MPLS echo request terminates on a node that | |||
has reverse LSP). | has reverse LSP). | |||
One can argue that the initiator can automatically generate a same | One can argue that the initiator LSR can automatically generate a | |||
MPLS echo request with different Reply Mode value to those nodes that | same MPLS echo request with different Reply Mode value to those nodes | |||
timeout. However, such mechanism will result in extended time for | that timeout. However, such mechanism will result in extended time | |||
the entire operation to complete (i.e. multiple seconds to multiple | for the entire operation to complete (i.e. multiple seconds to | |||
minutes). This is undesirable, and perhaps unacceptable if the | multiple minutes). This is undesirable, and perhaps unacceptable if | |||
"user" is an application. | the "user" is an application. | |||
With the extension described in this document, same procedures can be | With the extension described in this document, same procedures can be | |||
performed with the Reply Mode Order TLV carrying {TBD1, 2}. When LSP | performed with the Reply Mode Order TLV carrying {5, 2}. When LSP | |||
Traceroute is issued, then following output may be displayed without | Traceroute is issued, then following output may be displayed without | |||
any unnecessary timeout. | any unnecessary timeout. | |||
Success (Reply Mode: TBD1) | Success (Reply Mode: 5) | |||
Success (Reply Mode: 2) | Success (Reply Mode: 2) | |||
Success (Reply Mode: 2) | Success (Reply Mode: 2) | |||
Success (Reply Mode: TBD1) | Success (Reply Mode: 5) | |||
Success (Reply Mode: TBD1) | Success (Reply Mode: 5) | |||
Complete | Complete | |||
Authors' Addresses | Authors' Addresses | |||
Nobo Akiya | Nobo Akiya | |||
Cisco Systems | Cisco Systems | |||
Email: nobo@cisco.com | Email: nobo@cisco.com | |||
George Swallow | George Swallow | |||
End of changes. 47 change blocks. | ||||
141 lines changed or deleted | 193 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/ |