One document matched: draft-ietf-mpls-lsp-ping-reply-mode-simple-00.xml
<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
(Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
(using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-ietf-mpls-lsp-ping-reply-mode-simple-00"
ipr="trust200902" updates="4379">
<!-- category values: std, bcp, info, exp, and historic
ipr values: full3667, noModification3667, noDerivatives3667
you can add the attributes updates="NNNN" and obsoletes="NNNN"
they will automatically be output with "(if approved)" -->
<!-- ***** FRONT MATTER ***** -->
<front>
<title abbrev="LSP Ping Reply Mode Simplification">Label Switched Path
(LSP) Ping/Traceroute Reply Mode Simplification</title>
<!-- add 'role="editor"' below for the editors if appropriate -->
<!-- Another author who claims to be an editor -->
<author fullname="Nobo Akiya" initials="N." surname="Akiya">
<organization>Cisco Systems</organization>
<address>
<email>nobo@cisco.com</email>
</address>
</author>
<author fullname="George Swallow" initials="G." surname="Swallow">
<organization>Cisco Systems</organization>
<address>
<email>swallow@cisco.com</email>
</address>
</author>
<author fullname="Carlos Pignataro" initials="C." surname="Pignataro">
<organization>Cisco Systems</organization>
<address>
<email>cpignata@cisco.com</email>
</address>
</author>
<author fullname="Loa Andersson" initials="L." surname="Andersson">
<organization>Huawei</organization>
<address>
<email>loa@mail01.huawei.com</email>
</address>
</author>
<author fullname="Mach(Guoyi) Chen" initials="M." surname="Chen">
<organization>Huawei</organization>
<address>
<email>mach.chen@huawei.com</email>
</address>
</author>
<date year="2014"/>
<area>MPLS Working Group</area>
<workgroup>Internet Engineering Task Force</workgroup>
<!-- WG name at the upperleft corner of the doc,
IETF is fine for individual submissions.
If this element is not present, the default is "Network Working Group",
which is used by the RFC Editor as a nod to the history of the IETF. -->
<keyword>MPLS</keyword>
<keyword>LSP Ping</keyword>
<keyword>Reply Mode</keyword>
<!-- Keywords will be incorporated into HTML output
files in a meta tag but they have no effect on text or nroff
output. If you submit your draft to the RFC Editor, the
keywords will be used for the search engine. -->
<abstract>
<t>The Multiprotocol Label Switching (MPLS) Label Switched Path (LSP) 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 Reply Mode
field to indicate reverse LSP. This document also adds an optional TLV
which can carry ordered list of Reply Mode values.</t>
<t>This document updates RFC4379.</t>
</abstract>
<note title="Requirements Language">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in <xref
target="RFC2119">RFC 2119</xref>.</t>
</note>
</front>
<middle>
<section anchor="INTRO" title="Introduction">
<t>The MPLS LSP Ping, described in <xref target="RFC4379"/>, allows an
initiator to encode instructions (Reply Mode) on how a responder should
send the response back to the initiator. <xref target="RFC7110"/> also
allows the initiator to encode a TLV (Reply Path TLV) which can instruct
the responder to use specific LSP to send the response back to the
initiator. Both approaches are powerful as they provide the ability for
the initiator to control the return path.</t>
<t>However, it is becoming increasingly difficult for an initiator 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 MPLS
LSP echo reply will not get back to the initiator. This results in a
false failure of MPLS LSP Ping and Traceroute operation. In an effort to
minimize such false failures, different implementations have chosen
different default return path encoding for different LSP types and LSP
operations. The problem with implementations having different default
return path encoding is that the MPLS echo reply will not work in many
cases, and the default value may not be the preferred choice by the
operators.</t>
<t>This document further describes the problem in <xref target="_PROB"/>, and
proposes a solution in <xref target="_SOL"/> to minimizes false failure
scenarios while accommodating operator preferences. Additionally, <xref target="_EXAMPLE" /> provides examples of scenarios where the mechanism described in this document provides benefits.</t>
</section>
<section anchor="_PROB" title="Problem Statements">
<t>It is becoming increasingly difficult for implementations to
automatically supply a workable return path encoding for all MPLS LSP
Ping and Traceroute operations across all LSP types. There are several
factors which are contributing to this complication. <list
style="symbols">
<t>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
the reverse direction, and some do not.</t>
<t>LSRs on some LSPs can have different available return path(s).
Available return path(s) can depend on whether the responder is a
transit LSR or an egress LSR. In case of a bi-directional LSP,
available return path(s) on transit LSRs can also depend on whether
LSP is completely co-routed, partially co-routed or associated
(i.e., LSPs in the two directions are not co-routed).</t>
<t>MPLS echo request packets may incorrectly terminate on an
unintended target, which can have different available return path(s)
than the intended target.</t>
<t>The MPLS LSP Ping operation is expected to terminate on egress
LSR. However, the MPLS LSP Ping operation with specific TTL values
and MPLS LSP Traceroute operation can terminate on both transit
LSR(s) and the egress LSR.</t>
</list>Except for the case where the responder node does not have an
IP route back to the initiator, it is possible to use Reply Mode of
value 2 (Reply via an IPv4/IPv6 UDP packet) in all cases. However, some
operators are preferring control-channel and reverse LSP as default
return path if they are available, which is not always the case.</t>
<t>When specific return path encoding is supplied by users or
applications, then there are no issues in choosing the return path
encoding. When specific return path encoding is not supplied by users or
applications, then implementations use extra logic to compute, and
sometimes guess, the default return path encodings. If a responder node
receives an MPLS echo request containing return path instructions
which cannot be accommodated due to unavailability, then the responder often
drops such packets. This results in the initiator not receiving the MPLS
LSP echo reply packets back. This consequence may be acceptable for
failure cases (e.g., broken LSPs) where the MPLS echo request
terminated on unintended target. However, the initiator not receiving
back MPLS echo reply packets, even when the intended target received
and verified the requests, is not desirable as false failures will be
conveyed to users.</t>
<t>Many operators prefer some return path(s) over others for specific
LSP types. To accommodate this, implementations may default to operator
preferred return path (or allow default return path to be configured)
for a specific operation. However, if the sender of MPLS 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 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 successful
case). What would be beneficial, for a given operation, is for the
sender of the MPLS echo request to determine which return path(s) can
and cannot be used ahead of time.</t>
<t>This document adds one Reply Mode value to describe the reverse LSP,
and one optional TLV to describe an ordered list of reply modes. Based
on operational needs, the TLV can describe multiple Reply Mode values in
a preferred order to allow the responder to use the first available
Reply Mode from the list. This eliminates the need for the initiator to
compute, or sometimes guess, the default return path encoding. And that
will result in simplified implementations across vendors, and result in
improved usability to fit operational needs.</t>
</section>
<section anchor="_SOL" title="Solution">
<t>This document adds one reply mode to indicate reverse LSP, to be used
by the MPLS LSP Ping
and Traceroute. This document also adds an optional TLV which can carry
ordered list of reply modes.</t>
<section title="Reply via reverse LSP">
<t>Some LSP types are capable of having related LSP in reverse
direction, through signaling or other association mechanisms. 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 of such LSP types. Note that this document restricts the
scope of "Reverse LSP" applicability to those reverse LSPs which are
capable and allowed to carry the IP encapsulated MPLS echo
reply.</t>
<t>This document adds one Reply Mode to be used by MPLS LSP Ping and
Traceroute operations. <figure align="left">
<preamble/>
<artwork align="left"><![CDATA[
Value Meaning
----- -------
TBD1 Reply via reverse LSP
]]></artwork>
</figure></t>
<t>MPLS echo request with TBD1 (Reply via reverse LSP) in the
Reply Mode field may be used to instruct responder to use reverse LSP
to send MPLS echo reply. Reverse LSP is in relation to the last
FEC specified in the Target FEC Stack TLV.</t>
<t>When a responder is using this Reply Mode, transmitting MPLS echo
reply packet MUST use IP destination address of 127/8 for IPv4 and
0:0:0:0:0:FFFF:7F00/104 for IPv6.</t>
</section>
<section title="Reply Mode Order TLV">
<t>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
value(s) in preferred order. The first Reply Mode value is the most
preferred and the last Reply Mode value is the least preferred.
Following rules apply when using Reply Mode Order TLV. <list
style="numbers">
<t>Reply Mode Order TLV MAY be included in MPLS echo request.</t>
<t>Reply Mode Order TLV MUST NOT be included in MPLS echo
reply.</t>
<t>Reply Mode field of MPLS echo request MUST be set to a valid
value when supplying Reply Mode Order TLV in transmitting MPLS
echo request. The initiator SHOULD set Reply Mode field of MPLS
echo request to a value that corresponds to a return path which
most likely to be available, in case responder does not understand
the Reply Mode Order TLV.</t>
<t>If a responder node understands the Reply Mode Order TLV and the TLV
is valid, then the responder MUST consider Reply Mode values described
in the TLV and MUST NOT use the value described in the Reply Mode field of
received MPLS echo request.</t>
<t>If a responder node understands the Reply Mode Order TLV but the TLV is
not valid (due to conditions listed below), then the responder MUST
only use the value described in the Reply Mode field of received MPLS echo
request.</t>
<t>Reply Mode Order TLV MUST contain at least one Reply Mode
value, and SHOULD contain at least two Reply Mode values.</t>
<t>A Reply Mode value MUST NOT be repeated (i.e. MUST NOT appear
multiple times) in the Reply Mode Order TLV.</t>
<t>Reply Mode value 1 (Do not reply) SHOULD NOT be used in the
Reply Mode Order TLV.</t>
</list> The responding node is to select the first available return
path in this TLV. Reply Mode value corresponding to selected return
path MUST be set in Reply Mode field of MPLS echo reply to
communicate back to the initiator which return path was chosen.</t>
<t>The format of the TLV is as follows:<figure align="left">
<preamble/>
<artwork align="left"><![CDATA[
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reply Mode Order TLV Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reply mode 1 | Reply mode 2 | Reply mode 3 | Reply mode 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1 Reply Mode Order TLV
]]></artwork>
</figure></t>
<t>This is a variable length optional TLV. Each Reply Mode field is 1
octet.</t>
</section>
</section>
<section title="Relations to Other LSP Ping/Trace Features">
<section title="Reply Path TLV">
<t><xref target="RFC7110"/> defines a new Reply Mode (5 - Reply via
Specified Path). This Reply Mode specified in MPLS echo request
indicates that MPLS echo reply be sent on one specific path described
by the Reply Path TLV. The Flags field of the Reply Path TLV can
indicate B (Bidirectional) bit to describe reverse direction of the
tested bidirectional LSP. However, it is desired to have a new Reply
Mode (TBD1 - Reply via reverse LSP) to indicate reverse direction of
the tested bidirectional LSP without requiring to include additional
TLV (i.e. Reply Path TLV). Therefore, a new Reply Mode (TBD1 - Reply
via reverse LSP) has been added.</t>
<section title="Reply Mode Order TLV Usage Example with Reply Path TLV">
<t>If the initiator was interested in encoding following return paths:
<list style="numbers">
<t>Reply via application level control channel</t>
<t>FEC X</t>
<t>FEC Y</t>
<t>Reply via an IPv4/IPv6 UDP packet</t>
</list>
Then the MPLS echo request message is to carry:
<list style="symbols">
<t>The Reply Mode Order TLV carrying Reply Modes {4, 5, 2}</t>
<t>The Reply Path TLV carrying {FEC X, FEC Y}</t>
</list>
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 prefer "Reply via application level control channel (4)", followed by FEC X, FEC Y and then "Reply via an IPv4/IPv6 UDP packet (2)".
</t>
</section>
</section>
<section title="Proxy LSP Ping">
<t>The mechanism defined in this document will work with Proxy LSP
Ping defined by <xref target="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 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 receiving MPLS echo reply, MUST copy Reply Mode value
into MPLS proxy 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 MPLS proxy ping request.</t>
</section>
</section>
<section anchor="Security" title="Security Considerations">
<t>Beyond those specified in <xref target="RFC4379"/>, there are no
further security measures required.</t>
</section>
<section anchor="IANA" title="IANA Considerations">
<section title="New Reply Mode">
<t>IANA is requested to assign one reply modes from the "Reply Mode"
sub-registry within the "Multiprotocol Label Switching Architecture
(MPLS)" registry. <figure align="left">
<preamble/>
<artwork align="left"><![CDATA[
Value Meaning Reference
----- ------- ---------
TBD1 Reply via reverse LSP this document
]]></artwork>
</figure></t>
</section>
<section title="New Reply Mode Order TLV">
<t>IANA is requested to assign a new TLV type value from the "TLVs"
sub-registry within the "Multiprotocol Label Switching Architecture
(MPLS)" registry, for the "Reply Mode Order TLV".</t>
<t>The new TLV Type value should be assigned from the range
(32768-49161) specified in <xref target="RFC4379"/> section 3 that
allows the TLV type to be silently dropped if not recognized. <figure
align="left">
<preamble/>
<artwork align="left"><![CDATA[
Type Meaning Reference
---- ------- ---------
TBD2 Reply Mode Order TLV this document
]]></artwork>
</figure></t>
</section>
</section>
<section title="Acknowledgements">
<t>Authors would like to thank Santiago Alvarez and Faisal Iqbal for
discussions which motivated creation of this document. Authors would
also like to thank Sam Aldrin, Curtis Villamizar, Ross Callon, Jeffrey Zhang, Jeremy Whittaker and Mustapha Alissaoui for providing
valuable comments to influence the contents of the draft.</t>
</section>
<section title="Contributing Authors">
<t>Shaleen Saxena <vspace blankLines="0"/> Cisco Systems <vspace
blankLines="0"/> Email: ssaxena@cisco.com</t>
</section>
</middle>
<!-- *****BACK MATTER ***** -->
<back>
<!-- References split into informative and normative -->
<references title="Normative References">
<?rfc include="reference.RFC.2119"?>
<?rfc include="reference.RFC.4379"?>
</references>
<references title="Informative References">
<?rfc include="reference.RFC.7110"?>
<?rfc include="reference.I-D.ietf-mpls-proxy-lsp-ping"?>
</references>
<!-- Change Log
v00-a 2013-08-23 Nobo: Initial version
v00-b 2013-09-13 Shaleen: Added "Reply Mode Order" TLV
v00-c 2013-09-19 Nobo: Addressed comments from all Authors
v01-a 2013-11-14 Nobo: Addressed comments received at IETF88
v02-a 2014-03-05 Nobo: Addressed comments from Sam Aldrin
-->
<section title="Reply Mode Order TLV Beneficial Scenarios" anchor="_EXAMPLE">
<t>This section lists examples of how the Reply Mode Order TLV can benefit.</t>
<section title="Incorrect Forwarding Scenario">
<t>A network has a following LSP, and the LSP has a control channel.
<figure align="left"><preamble></preamble><artwork align="left">
A------B------C------D------E
|
|
F
Forward Paths: A-B-C-D-E
Figure 2: Incorrect Forwarding
</artwork></figure>
Imagine that D is incorrectly label switching to F (instead of E). In this scenario, LSP Traceroute with "Reply via application level control channel (4)" will result in following result.
<list style="empty"><?rfc subcompact="yes" ?>
<t>Success (Reply from B)</t>
<t>Success (Reply from C)</t>
<t>Success (Reply from D)</t>
<t>Timeout...</t>
<t>Complete</t>
</list><?rfc subcompact="no" ?>
This is because F does not have a control channel to send the MPLS echo reply message. With the extension described in this document, same procedures can be performed with the Reply Mode Order TLV carrying {4, 2}. When LSP Traceroute is issued, then following output may be displayed without any unnecessary timeout.
<list style="empty"><?rfc subcompact="yes" ?>
<t>Success (Reply from B, Reply Mode: 4)</t>
<t>Success (Reply from C, Reply Mode: 4)</t>
<t>Success (Reply from D, Reply Mode: 4)</t>
<t>FEC Mismatch (Reply from F, Reply Mode: 2)</t>
<t>Complete</t>
</list><?rfc subcompact="no" ?>
The result provides more diagnostic information to the initiator, and without any delay (i.e. timeout from one or more downstream LSRs).</t>
</section>
<section title="Non-Co-Routed Bidirectional LSP Scenario">
<t>A network has a following bidirectional LSP where the forward LSP and the reverse LSP are not fully co-routed.
<figure align="left"><preamble></preamble><artwork align="left">
+----C------D----+
/ \
A------B G------H
\ /
+----E------F----+
Forward Paths: A-B-C-D-G-H (upper path)
Reverse Paths: H-G-F-E-B-A (lower path)
Figure 3: Non-Co-Routed Bidirectional LSP
</artwork></figure>
Some operators may prefer and configure the system to default the Reply Mode to "Reply via reverse LSP (TBD1)" when MPLS echo request messages are sent on bidirectional LSPs. Without extensions described in this document, following behaviors will be seen:
<list style="symbols">
<t>When LSP Ping is issued from A, reply will come back on the reverse LSP from H.</t>
<t>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 and D as there are no reverse LSP on those nodes.</t>
<t>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 (i.e. whether or not MPLS echo request terminates on a node that has reverse LSP).</t>
</list>
One can argue that the initiator can automatically generate a same MPLS echo request with different Reply Mode value to those nodes that timeout. However, such mechanism will result in extended time for the entire operation to complete (i.e. multiple seconds to multiple minutes). This is undesirable, and perhaps unacceptable if the "user" is an application.</t>
<t>With the extension described in this document, same procedures can be performed with the Reply Mode Order TLV carrying {TBD1, 2}. When LSP Traceroute is issued, then following output may be displayed without any unnecessary timeout.
<list style="empty"><?rfc subcompact="yes" ?>
<t>Success (Reply Mode: TBD1)</t>
<t>Success (Reply Mode: 2)</t>
<t>Success (Reply Mode: 2)</t>
<t>Success (Reply Mode: TBD1)</t>
<t>Success (Reply Mode: TBD1)</t>
<t>Complete</t>
</list><?rfc subcompact="no" ?>
</t>
</section>
</section>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-23 04:52:55 |