<?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-akiya-mpls-lsp-ping-reply-mode-simple-01" 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/Trace 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="2013" />

    <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>This document adds one reply mode to indicate reverse LSP, to be used by  Multiprotocol Label Switching (MPLS) Label Switched Path (LSP) Ping and Traceroute. This document also adds an optional TLV which can carry ordered list of reply modes.</t>

<t>This document updates <xref target="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 title="Introduction" anchor="INTRO">

<t>MPLS LSP Ping, described in <xref target="RFC4379" />, allows initiator to encode instructions (Reply Mode) on how responder is to send response back to the initiator. <xref target="I-D.ietf-mpls-return-path-specified-lsp-ping" /> also allows initiator to encode a TLV (Reply Path TLV) which can instruct responder to use specific LSP to send response back to the initiator. Both approaches are powerful as they provide ability for the initiator to control the return path.</t>

<t>It is, however, becoming increasingly difficult for an initiator to select the &quot;right&quot; return path to encode in MPLS LSP echo request packets. Consequence of initiator not selecting the &quot;right&quot; return path encoding can result in false failure of MPLS LSP Ping and Traceroute operations, due to initiator not receiving back expected MPLS LSP echo reply. Resulting from an effort to minimize such false failures, implementations may result in having different &quot;default&quot; return path encoding per LSP type and per operational type. Deviating &quot;default&quot; return path encoding, potentially, per vendor per LSP type per operational type can drift this technology from consistency axle. Thus it is desirable to have a return path encoding mechanism which minimizes false failure scenarios while reverse direction taking path preferred for operational needs.</t>

</section>

<section 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 control-channel, and some do not. Some LSPs have reverse LSP, and some do not. Some LSPs have IP route in 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 responder is a transit LSR or an egress LSR. In case of bi-directional LSP, available return path(s) on transit LSRs can also depend on whether LSP is completely co-routed, partially co-routed or non-co-routed.</t>

<t>MPLS LSP echo request packets may falsely terminate on an unintended target which can have different available return path(s) than intended target.</t>

<t>MPLS LSP Ping operation is expected to terminate on egress LSR. However, MPLS LSP Ping operation with specific TTL values and MPLS LSP Traceroute operation can terminate on both transit LSR(s) and egress LSR.</t>

</list>

Except for the case where 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 &quot;default&quot; return path if they are available, which are not always available.</t>

<t>When specific return path encoding is being supplied by users or applications, then there are no issues in choosing the return path encoding. When specific return path encoding is not being supplied by users or applications, then implementations require extended logic to compute, and sometimes &quot;guess&quot;, the &quot;default&quot; return path encodings. If a responder received a MPLS LSP echo request containing return path instruction which cannot be accommodated due to unavailability, then responder implementations often drop such packets. This results in initiator to not receive back MPLS LSP echo reply packets. Consequence may be acceptable for failure cases (ex: broken LSP) where MPLS LSP echo request terminated on unintended target. However, initiator not receiving back MPLS LSP echo reply packets, even when intended target received and verified the requests, is not desirable as result will be conveyed as false failures to users.</t> 

<t>Some return path(s) are more preferred than others, but preferred cannot be used in all cases. Thus implementations are required to compute when preferred return path encoding can and cannot be used, and that computation is becoming more and more difficult.</t>

<t>This document adds one Reply Mode to describe reverse LSP, and one optional TLV to describe ordered list of reply modes. Based on operational needs, the TLV can describe multiple Reply Mode values in preferred order to allow responder to use first available Reply Mode from the list. This eliminates the need for initiator to compute, or sometimes &quot;guess&quot;, the &quot;default&quot; return path encoding. And that will result in simplified implementations across vendors, and result in improved usability to fit operational needs.</t>

</section>

<section title="Solution">

<t>This document adds one reply mode to indicate reverse LSP, to be used by  Multiprotocol Label Switching (MPLS) Label Switched Path (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. This document uses the term &quot;Reverse LSP&quot; to refer to the LSP in reverse direction of such LSP types. Note that this document isolates the scope of &quot;Reverse LSP&quot; applicability to those reverse LSPs which are capable of and permitted to carry the IP encapsulated MPLS LSP echo reply.</t>

<t>This document adds one Reply Mode to be used by MPLS LSP Ping and Traceroute operations.

<figure align="left"><preamble></preamble><artwork align="left">
  Value   Meaning
  -----   -------
   TBD1   Reply via reverse LSP
</artwork></figure>

</t>

<t>MPLS LSP 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 LSP echo reply. Reverse LSP is in relation to the last FEC specified in the Target FEC Stack TLV.</t>

<t>When responder is using this Reply Mode, transmitting MPLS LSP 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, first Reply Mode value appearing being most 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. It is RECOMMENDED for initiator to set Reply Mode field of MPLS echo request to a value that corresponds to return path most likely to be available, in case responder does not understand the Reply Mode Order TLV.</t>

<t>If responder node understands Reply Mode Order TLV and TLV is valid, then responder MUST consider Reply Mode values described in the TLV and MUST NOT use value described in Reply Mode field of received MPLS echo request.</t>

<t>If responder node understands Reply Mode Order TLV but TLV is not valid (due to conditions listed below), then responder MUST only use value described in 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>Same Reply Mode value 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 LSP 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">
        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 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 &quot;Reply Mode&quot; sub-registry within the &quot;Multiprotocol Label Switching Architecture (MPLS)&quot; registry.

<figure align="left"><preamble></preamble><artwork align="left">
  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 &quot;TLVs&quot; sub-registry within the &quot;Multiprotocol Label Switching Architecture (MPLS)&quot; registry, for the &quot;Reply Mode Order TLV&quot;.</t>

<t>The new TLV Type value should be assigned from the range (32768-49161) specified in RFC 4379 [RFC4379] section 3 that allows the TLV type to be silently dropped if not recognized.

<figure align="left"><preamble></preamble><artwork align="left">
  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 and Curtis Villamizar 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.I-D.ietf-mpls-return-path-specified-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
    -->
  </back>
</rfc>
