<?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-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/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 two reply modes to be used by  Multiprotocol Label Switching (MPLS) Label Switched Path (LSP) Ping and Traceroute: one reply mode to indicate reverse LSP and one reply mode to allow responder to choose reply mode from pre-defined set. 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 single return path encoding which works across wide range of LSP types and operational types.</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 two Reply Modes to be used by MPLS LSP Ping and Traceroute. One of which is a Reply Mode which can be used as &quot;default&quot; for all LSP types and for all operational types. Thus eliminating the need for initiator to compute, or sometimes &quot;guess&quot;, the &quot;default&quot; return path encoding. This will result in simplified implementations across vendors, and result in consistent behaviors across vendor products.</t>

</section>

<section title="Solution">

<t>This document adds two Reply Modes to be used by MPLS LSP Ping and Traceroute operations. Note: Reply Mode values specified in this document will be requested for IANA early allocation, but values may change as result of actual early allocation result. 

<figure align="left"><preamble></preamble><artwork align="left">
  Value   Meaning
  -----   -------
      6   Reply via reverse LSP
      7   Reply via pre-defined preference
</artwork></figure>

</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>MPLS LSP echo request with 6 (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 via pre-defined preference" anchor="PREF_ORDER">

<t>MPLS LSP echo request with 7 (Reply via pre-defined preference) in the Reply Mode field may be used to instruct responder to select the return path based on availability. Receiver of MPLS LSP echo request, upon reception of 7 (Reply via pre-defined preference) in the Reply Mode field, MUST choose return path by examining availability in following order.

<list style="numbers">

<t>Examine if Reply Mode 4 (Reply via application level control channel) is available.</t>

<t>Examine if Reply Mode 6 (Reply via reverse LSP) is available.</t>

<t>Examine if Reply Mode 2 (Reply via an IPv4/IPv6 UDP packet) is available.</t>

</list>

First available return path is selected. 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>

</section>

<section title="Reply Mode Order TLV">
<t>This document also introduces a new optional TLV to describe Reply Mode preference order. The new TLV will contain one or more Reply Mode value(s) in preferred order, first Reply Mode value appearing being most preferred. This TLV can be used if a different preference order than
&quot;Reply via pre-defined preference&quot; Reply Mode is desired. Following rules apply when using Reply Mode Order TLV.

<list style="numbers">

<t>Initiator, when supplying Reply Mode Order TLV in transmitting MPLS echo request, MUST set Reply Mode field of MPLS echo request header to value 7 (Reply via pre-defined preference).</t>

<t>Responder MUST ignore Reply Mode Order TLV if received MPLS echo request header does not contain value 7 (Reply via pre-defined preference).</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>

<t>Reply Mode value 7 (Reply via pre-defined preference) MUST NOT be used in the Reply Mode 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. If this TLV is present and valid, then the described preference order will override pre-defined preference order described in <xref target="PREF_ORDER" />.</t>

</section>

</section>

<section anchor="Security" title="Security Considerations">

<t>Beyond those specified in <xref target="RFC4379" />, there are no further security measured required.</t>

</section>

<section anchor="IANA" title="IANA Considerations">

<section title="New Reply Mode">

<t>IANA is requested to assign two new reply modes from the &quot;Reply Mode&quot; sub-registry within the &quot;Multiprotocol Label Switching Architecture (MPLS)&quot; registry.</t>

<t>Following values appear to be next available MPLS LSP Ping/Traceroute Reply Mode values. Requesting IANA to allow specified values as early allocation.

<figure align="left"><preamble></preamble><artwork align="left">
  Value   Meaning                            Reference
  -----   -------                            ---------
      6   Reply via reverse LSP              this document
      7   Reply via pre-defined preference   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
  ----   -------                            ---------
  TBD    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.</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
    -->
  </back>
</rfc>
