<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.17 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-zhang-ippm-stamp-co-routed-path-00" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title>Simple Two-Way Active Measurement Protocol (STAMP) Extension for Co-routed Bidirectional Path</title>
    <seriesInfo name="Internet-Draft" value="draft-zhang-ippm-stamp-co-routed-path-00"/>
    <author initials="L." surname="Zhang" fullname="Li Zhang">
      <organization>Huawei</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>zhangli344@huawei.com</email>
      </address>
    </author>
    <author initials="T." surname="Zhou" fullname="Tianran Zhou">
      <organization>Huawei</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>zhoutianran@huawei.com</email>
      </address>
    </author>
    <date year="2024" month="June" day="29"/>
    <area>OPS Area</area>
    <workgroup>IPPM Working Group</workgroup>
    <keyword>STAMP</keyword>
    <abstract>
      <?line 37?>

<t>This document extends STAM Return Path TLV with a Co-routed Bidirectional Path flag to implement the round-trip performance measurement for specific path.</t>
    </abstract>
  </front>
  <middle>
    <?line 41?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Simple Two-way Active Measurement Protocol (STAMP) <xref target="RFC8762"/> is an active performance measurement test protocol, which enables measurement of both one-way and round-trip performance metrics, like delay, delay variation, and packet loss.</t>
      <t>Based on that, <xref target="RFC8972"/> specifies the use of optional extensions that use Type-Length-Value (TLV) encoding，these extensions enhance the STAMP base functions.</t>
      <t><xref target="RFC9503"/> specifies Simple Two-Way Active Measurement Protocol (STAMP) extensions for SR networks, which can transmit the reply test packet on a specific return path. This extension requires the Session-Sender to indicate the return path explicitly in the Return Path TLV.</t>
      <t>However, in some scenarios, the Session-Sender can’t know the return path in advance, but it requires the return path to be the same as the forward path to do a round-trip performance measurement for a path.</t>
      <t>This document extends STAM Return Path TLV with a Co-routed Bidirectional Path flag to implement the round-trip performance measurement for a specific path.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The abbreviations used in this document are:</t>
        <t>STAMP: Simple Two-Way Active Measurement Protocol</t>
        <t>IOAM: In-band Operation, Administration, and Maintenance</t>
        <t>LAG: Link Aggregation Group</t>
      </section>
    </section>
    <section anchor="motivation">
      <name>Motivation</name>
      <t>When the STAMP is used to locate a network failure or measure network performance, it is usually required to ensure that the forward path is consistent with the return path, so as to obtain stable performance data or locate a fault quickly. However, the existing measurement manner cannot ensure that the forward path is consistent with a return path. Consider a scenario with LAG links, as shown in <xref target="ref-to-fig1"/>:</t>
      <figure anchor="ref-to-fig1">
        <name>A topology with LAG</name>
        <artwork><![CDATA[
+------+    +------+ 10% packet loss rate +------+     +------+
|  N1  |----|  N2  |======================|  N3  |-----|  N4  |
+------+    +------+ 0% packet loss rate  +------+     +------+
  SRC                                                    DST
]]></artwork>
      </figure>
      <t>There are four nodes in the topology, and N1 connect to N2 by one physical link, N2 connect to N3 by two physical links, N3 connect to N4 by one Link. The packet loss rate of the first link between N2 and N3 is 10%, and the second link is 0%.</t>
      <t>Node N1 want to measure the packet loss between N1 and N4, and it does not know that there are two links between N2 and N3.</t>
      <t>N1 send a set of test packets, when these packets arrive at N2, half of them will be forward by the first link and the others are forwarded by the second link. The reflected packets are forwarded with the same rule.</t>
      <t>The result is that N1 find the packet loss rate of both forward path and backward path are 5%. However, there is one route path with 0 packet loss which can be used for forwarding.</t>
    </section>
    <section anchor="co-routed-bidirectional-path-flag">
      <name>Co-routed Bidirectional Path Flag</name>
      <t>This document defines a new flag in the STAMP Return Path Control Code Sub-TLV in Return Path TLV:</t>
      <t>Bit X: Co-routed Bidirectional Path flag.</t>
      <t>When Co-routed Bidirectional Path flag in Control Code Sub-TLV is set to 1 in the Session-Sender test packet, the Session-Sender <bcp14>MUST</bcp14> insert the IOAM IPv6 option in the test packet.</t>
      <t>When the transit node receives a test packet with Co-routed Bidirectional Path flag set and has an IOAM IPv6 option, it <bcp14>MUST</bcp14> insert its ingress interface id, node id and egress id to the IOAM IPv6 option in the test packet.</t>
      <t>When the transit node receives a test packet with Co-routed Bidirectional Path flag set, but no IOAM IPv6 option in the test packet, it <bcp14>SHOULD</bcp14> drop this test packet.</t>
      <t>When the Session-Reflector receives a test packet with Co-routed Bidirectional Path flag set and has IOAM IPv6 option, it <bcp14>SHOULD</bcp14> exact all the route path information from the IOAM IPv6 option and encapsulate it in the SRH of reflected test packet. Thereby, the reflected packet will be transit along the path same as the forward path.</t>
      <t>When the Session-Reflector receives a test packet with Co-routed Bidirectional Path flag set, but no IOAM IPv6 option, it <bcp14>SHOULD</bcp14> drop this test packet.</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This document defines a new bit in the registry "IOAM Trace-Flags" registry as follows:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Value</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">bit X</td>
            <td align="left">Co-routed Bidirectional Path flag</td>
            <td align="left">This document</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>TBD</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8762">
          <front>
            <title>Simple Two-Way Active Measurement Protocol</title>
            <author fullname="G. Mirsky" initials="G." surname="Mirsky"/>
            <author fullname="G. Jun" initials="G." surname="Jun"/>
            <author fullname="H. Nydell" initials="H." surname="Nydell"/>
            <author fullname="R. Foote" initials="R." surname="Foote"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This document describes the Simple Two-way Active Measurement Protocol (STAMP), which enables the measurement of both one-way and round-trip performance metrics, like delay, delay variation, and packet loss.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8762"/>
          <seriesInfo name="DOI" value="10.17487/RFC8762"/>
        </reference>
        <reference anchor="RFC8972">
          <front>
            <title>Simple Two-Way Active Measurement Protocol Optional Extensions</title>
            <author fullname="G. Mirsky" initials="G." surname="Mirsky"/>
            <author fullname="X. Min" initials="X." surname="Min"/>
            <author fullname="H. Nydell" initials="H." surname="Nydell"/>
            <author fullname="R. Foote" initials="R." surname="Foote"/>
            <author fullname="A. Masputra" initials="A." surname="Masputra"/>
            <author fullname="E. Ruffini" initials="E." surname="Ruffini"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>This document describes optional extensions to Simple Two-way Active Measurement Protocol (STAMP) that enable measurement of performance metrics. The document also defines a STAMP Test Session Identifier and thus updates RFC 8762.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8972"/>
          <seriesInfo name="DOI" value="10.17487/RFC8972"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9503">
          <front>
            <title>Simple Two-Way Active Measurement Protocol (STAMP) Extensions for Segment Routing Networks</title>
            <author fullname="R. Gandhi" initials="R." role="editor" surname="Gandhi"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="M. Chen" initials="M." surname="Chen"/>
            <author fullname="B. Janssens" initials="B." surname="Janssens"/>
            <author fullname="R. Foote" initials="R." surname="Foote"/>
            <date month="October" year="2023"/>
            <abstract>
              <t>Segment Routing (SR) leverages the source routing paradigm. SR is applicable to both Multiprotocol Label Switching (SR-MPLS) and IPv6 (SRv6) forwarding planes. This document specifies Simple Two-Way Active Measurement Protocol (STAMP) extensions (as described in RFC 8762) for SR networks, for both the SR-MPLS and SRv6 forwarding planes, by augmenting the optional extensions defined in RFC 8972.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9503"/>
          <seriesInfo name="DOI" value="10.17487/RFC9503"/>
        </reference>
      </references>
    </references>
    <?line 135?>

<section numbered="false" anchor="Acknowledgements">
      <name>Acknowledgements</name>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA81YXW7jyBF+J6A7VGQMsJsVDcvj3dkRdnYi/8yOAf/F0uzs
JgiCJtmSGqa6uU3SGsX2IAfIBfKWg+QpR8kFcoV81U1SlC3PzC4SYPUislnd
VfVV1VdFhmHYCfJC6OTPIjVaDqiwpewEKrPuMi92d3ae7+x2glgUA8qLBOJl
NFd5rowulhl2HB+NX3UCYaUY0PnFiIa4ok6wmOLRxcUpvTX2SukpfWdNmXWC
TpCYWIs5diZWTIrwLzOhp6HKsnkIS+ZZGJsQooVMwkwUs3BnpxOYKDepLGQ+
6ARllgh/1QkKVaQ4aKTmWSppvDDhW7GkYVyoa0mnUuSllXOpC7qwpjCxSemz
0Xh4evE5Hb0rpGYnaGIsHdQqaV8lykocYLRI6QIGsJ4UJg5I6k5wtYBiCskd
w49EWcyMxSKQJFI6H9DJNv2BneIF7+mJWq0Yi6Nel2IhFd/GptSFXQ7oYKa0
4BU5FyodkMMlVU/39n43c9LbsZm31YxZjSlXWsZKaCt0s/rpmuC737umqhNo
Y+eCwXRoKz1Zuw/DkESUF1bEBfHCeKZyQnhLh7lkiJPcQUWXsiitdoDS+OR7
WihciA8CT5NUTKkw5KLrjixmkiCvk7CwKqNMWmeRjiXNW9HmkOaZjNVExcRJ
tF2bO1dJkkq+26JjoGGS0qnklVYWLT4xi25ufnP56uDrZ1/t3t0RfAf4wm97
zDRkbkFZdU6PFjMVz5BYIkplviZoJhQZgICqdOagRh93HUtx3qNUXUlKZCqW
Pf9H18IqwQ723AGZiK9kQanJcwfJvsgBPYqgmImiV7vz/Bm7UwEIsxj1Mpds
ksmqAMm6fnK31z0fgw/CE6mnqNrvRVpK+gyh/hzuxSYBBfznn3/DURBsbZZ6
5nxgHQ5UimATTUrt4uLNvLl5Cbuef7nzdM2uX1D2Lc2cJKNL0rJYgKHyOhYx
YoiM1vlcVfkms3RZxc3DB7zEKr+sz2yXZuQqoFGCZz+VyGoP4Ug61gxHqApp
XWLrRIFYZaWnOQcnZKmKQW5LyLin9+rHwfLaLOS1tD2Wyc1cUh4jk6wycGaD
Qnj277/+vaArbRYPNOIIkVxzKHoUlQXB+TXj27KwPPI25+AdEl4CeC6ETRqR
xAClTyxWUcH3ayMRsYFGtrZgh0OGxXI6AU2XYiq97ZKu5JKQUbC5e/pmNO72
/D+dnbvry6Pfvzm+PDrk69Hr4clJcxFUEqPX529ODldXq50H56enR2eHfjNW
aW0p6J4Of+z6Qu+eX4yPz8+GJ12fQG1I0aqrECpdSJshtIBO5EEi89iqCDfY
s39w8a9/9PcqTtjt95+j9iqC6D/bw81iJitaMRqJ6m8B7jIQWSaFdTmVpsi7
TBUiRVIiU/KZWWiaSSu3g+C3f2Rk/jSgb6I46+99Wy2ww2uLNWZriw6zhysP
NnsQNyxtUNOgubZ+D+l1e4c/rt3XuLcWv3mZKi0p7H/98tugyqCxtHOlTWqm
yzpvRBRZee3ZOmc+TTaGznVex2Y/Z+7hTcfnw1PMZDqMOGbnyPuqMwwT2KK4
j686xang5NBcFbz3ZPgdTzH6iobTqZVTJ7ka6bbo1EC3qFvpW+RCi9JV5Q+y
LjWO8ETNuzTBCAJrMazU1dc8alVmjwnJHVMipZY1N7kjwbW8y7WhB0SEPTHw
hHcMhyOMe3TWA3c6DjNkokIwlxbcjteIASOnYBMb8yeiTAuCEfFVutymhor5
cPkO6njkbdMJztGehLUpfrbNYr3NHPBj5nTRcL6XQ5wwBeirdrHBo5sbKydh
YcKJmvbv7lwOdYL37993gi9C9/uC8Guu+ztP2rMCWXa6LdncdIJborM+0S3f
8vUurl9s/PHTp5WkE93DzSMWbDLgMQsIffyAfsHvcDSuULgZ0FYLInIvFi+6
Q2RF5qq0gbd7VxUswsdMOjGlJW3AnXWrrrf4QgI2CKZGU+IMAzrRkmc6ymbL
HM0/deHq8YO22FMWQxWsiyGqeNKW26uP49rk8UM+hA1jm0sxZTHC8DGg/mIh
UaFQ6kx8yimHmHuLXWOX0JJ4aTzbeYLWh+58Bj/Zo4XQTn9dscU9vY2Cvlew
509GDScGQHEFVFOIz/8KS3bY+fnQQtd6cVyOaYCzXroJuTWVuQHOs05eG4OB
3FqmRGg52+3RTKSTCo45AoreFK1KjwFfh6kGw7CFeRVtJywb8RZQHn5kUYro
yKRlQ3tfQ0FudrJlKrfrDoBZi0lFVSM1vJ2oyoRNQXWvB2vEwQZHkGytQPeX
T9b5CUtQwUnjpiYv6MzaWdOzmocj6fmbR6JKIejNj2tM/h8cwF5hAHs41yUS
viEVuBEs/JCm2i2jPeqB7fCmluIf2Tcqo5BnP0jfGwcdq+0jx34YfHwk3G7a
1MenR6UfMSF3eYg66DfG35vxV/m5cSR30w5e5qX1bYBbNB1fXH9VvWg1lLI6
Z3utv7o3FbjMBIT8iSWynUFtv6640H7cS3aFE2gm3HvsfVNcB27bqwpmPAwD
ee4HyYlAo1RJzxujEnearARcp/4VuOjfbrT5FDucy9WsmFiT+WHsUUPr2F56
BkCt/O8CsjEalWnyHX9/4Um7erOpa7r5XsNfuayZb8bfRUljSAf5MLPwoFU5
dPmaeWbFaG3XybXAaNmr5ql11mvYtY4ef16cVlQG0x57cfy/I/po/D8t2Ft0
PDwbNvNXNazfbPHq3Yc5LloBiwGax+0ldZ0VY4vKCZkn8+7qmeBPFGlqFv5T
5y35Tyq3dOhe03zwbkGCE8SBZ1SMUn60wnAVtn/tOxZypvyAvR9F7JbWPLr1
EIxkXFpVLB/CUD9hKPYP649u3JL8zmHMbT+VybR6eb7Zur9054YxXc4juJW8
6E7w5ij90NUJ/gsiFtiKsBYAAA==

-->

</rfc>
