<?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.19 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-zhang-ippm-stamp-mp-02" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.0 -->
  <front>
    <title>Simple Two-Way Active Measurement Protocol (STAMP) Extensions for Multi-path</title>
    <seriesInfo name="Internet-Draft" value="draft-zhang-ippm-stamp-mp-02"/>
    <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>
    <author initials="" surname="Gyan Mishra" fullname="Gyan Mishra">
      <organization>Verizon Inc.</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>gyan.s.mishra@verizon.com</email>
      </address>
    </author>
    <date year="2024" month="November" day="03"/>
    <area>OPS Area</area>
    <workgroup>IPPM Working Group</workgroup>
    <keyword>STAMP</keyword>
    <keyword>Multi-Path</keyword>
    <abstract>
      <?line 44?>

<t>STAMP is typically used to perform the measurement of one-way and round-trip performance metrics. However, when using active measurement mechanisms in a multi-path topology, the default forwarding behavior is to go through one path. So, it cannot collect the information of all the paths at one time.</t>
      <t>This document extends STAM with a Multi-path TLV to implement the multi-path performance measurement, which can help the operators to know the performance of network comprehensively and efficiently.</t>
    </abstract>
  </front>
  <middle>
    <?line 50?>

<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.
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.
<xref target="I-D.gandhi-ippm-stamp-ext-hdr"/> extends STAMP<xref target="RFC8762"/> to reflect any IPv6 options and MPLS Network Action Sub-Stacks for hop-by-hop and edge-to-edge active measurements. In section 4 of <xref target="I-D.gandhi-ippm-stamp-ext-hdr"/>, it provides an example of reflecting IOAM data fields, in which the IPv6 options with IOAM option-types is carried in the STAMP Session-Sender and Session-Reflector test packets.</t>
      <t>However, currently the STAMP is typically used to collect the information of a specific path, when using it in a multi-path topology (there are multiple paths form the source node to the destination node and ECMP, UCMP or other multi-path routing strategy is used.), the default forwarding behavior is to go through one path. 
So, it can’t collect all the path’s information form source node to destination node. An example of active measurement in a multi-path topology is shown as follow:</t>
      <figure anchor="ref-to-fig1">
        <name>A multi-path topology</name>
        <artwork><![CDATA[
                       +------+         +------+
                      /|  N3  |---------|  N5  |\
                     / +------+         +------+ \
+------+    +------+/                             \+------+     +------+
|  N1  |--->|  N2  |                               |  N7  |---->|  N8  |
+------+    +------+\                             /+------+     +------+
  SRC                \ +------+         +------+ /                 DST
                      \|  N4  |-------> |  N6  |/               
                       +------+         +------+
]]></artwork>
      </figure>
      <t>In <xref target="ref-to-fig1"/>, node N1 is the source node, node N8 is the destination node, N2-7 are transit node. Equal-Cost Multiple Path (ECMP) is applied in this topology. So, there are two paths form N1 to N8, one is N1-N2-N3-N5-N7-N8, and the other is N1-N2-N4-N6-N7-N8. When N1 use STAMP to measure the path performance, the test packet is forwarded along one of the paths (for example N1-N2-N4-N6-N7-N8), then the source node just can get one path’s information, however the traffic packets are forwarded in all paths.</t>
      <t>Although the IPv6 flow label and MPLS entropy label can be constructed variously to try to make packets go through all paths, but the hash algorithm cannot ensure that packets can go through all available paths.</t>
      <t>This document extends STAM with a Multi-path TLV to implement the multi-path performance measurement, which can help the operators to know the performance of network comprehensively and efficiently.</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>ECMP: Equal-Cost Multiple Path</t>
        <t>UCMP: Unequal-Cost Multiple Path</t>
        <t>STAMP: Simple Two-Way Active Measurement Protocol</t>
        <t>IOAM: In-band Operation, Administration, and Maintenance</t>
      </section>
    </section>
    <section anchor="multi-path-tlv">
      <name>Multi-path TLV</name>
      <t>This document defines a new TLV in the STAMP test packets:</t>
      <figure anchor="ref-to-fig2">
        <name>Multi-path TLV</name>
        <artwork><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STAMP TLV Flags|     Type      |           Length              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|M|                          Reserved                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <t>The fields are defined as follows:</t>
      <t>STAMP TLV Flags: An eight-bit field. Its format is specified in <xref target="RFC8972"/>.</t>
      <t>Type: A one-octet field. Need to be allocated by IANA.</t>
      <t>Length: A two-octet field, set equal to the value 4.</t>
      <t>M: A one-bit field, A Session-Sender <bcp14>MUST</bcp14> set the value of M filed to 1 When need to perform measurement on all paths.</t>
    </section>
    <section anchor="multi-path-measurement-procedures">
      <name>Multi-path Measurement Procedures</name>
      <t>This section describes the procedures of session sender, transit node, and reflector.</t>
      <section anchor="session-sender-procedures">
        <name>Session-Sender Procedures</name>
        <t>The Session-Sender procedures includes two steps, one is the test packet generation and another is the test packet validation.</t>
        <section anchor="test-packet-generation">
          <name>Test Packet Generation</name>
          <t>The test packet generation procedures could be referred from section 4.2 of <xref target="RFC8762"/>. The session-sender should generate a Multi-path TLV with the M bit set and encapsulate it into the test packet. An example of the format of STAMP Session-Sender test packet with Multi-path TLV in unauthenticated mode is shown in <xref target="ref-to-fig3"/>.</t>
          <figure anchor="ref-to-fig3">
            <name>Format of a STAMP Session-Sender Test Packet with Multi-path TLV in Unauthenticated Mode</name>
            <artwork><![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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Sequence Number                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Timestamp                            |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Error Estimate        |             SSID              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                                                               |
   |                         MBZ (28 octets)                       |
   |                                                               |
   |                                                               |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |STAMP TLV Flags|    Type=TBD   |           Length=4            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |1|                          Reserved                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>In order to identify different paths, the Test packet is required to collect the paths’ information. Therefore, the IOAM should be used in combination with STAMP. The Session-sender should insert a an IOAM IPv6 HBH option to the test packet to collect the HBH node information. According to <xref target="I-D.gandhi-ippm-stamp-ext-hdr"/>, the Session-sender also need to add “Reflected IPv6 Option Data” TLV in the test packet with the size of the IOAM data field’s length and the value field in the TLV initialized to zeros.</t>
          <t>In order to perform a round trip for a specific path, the Co-routed Bidirectional Path flag <xref target="I-D.zhang-ippm-stamp-co-routed-path"/> in the Return Path Control Code Sub-TLV of Return Path TLV should be set to 1.</t>
        </section>
      </section>
      <section anchor="transit-node-procedures">
        <name>Transit node procedures</name>
        <section anchor="packet-operation">
          <name>Packet Operation</name>
          <t>When the transit node receives a test packet with the IOAM trace option, it needs to add its node ID, ingress interface ID, and egress interface ID to the IOAM trace option of the test packet. For details about the content format, see section 4.4.2 of <xref target="RFC9197"/>.</t>
        </section>
        <section anchor="packet-forwarding">
          <name>Packet Forwarding</name>
          <t>When a transit node with multiple paths to the destination node receives a packet with Multi-path bit = 1, it must copy the packet to each egress interface that can reach the destination node.</t>
          <t>When the transit node has only one path to the destination node, it just needs to forward the packet it received to the egress interface.</t>
        </section>
      </section>
      <section anchor="session-reflector-procedures">
        <name>Session-Reflector procedures</name>
        <t>When a Session-Reflector receives a test packet with Multi-path TLV, it <bcp14>MUST</bcp14> copy the entire IPv6 option including the header into the STAMP "Reflected IPv6 Option Data" TLV in Session-Reflector payload, and reset the M bit of Multi-path TLV to prevent the replication in the backward path.</t>
        <t><xref target="RFC8762"/> defines two kind of Session-Reflector behavior, one is stateless and another is stateful.</t>
        <t>When using in stateless mode, the Session Reflector just copy the sequence number from the test packet to the reflected test pacekt.</t>
        <t>When using in statefull mode, the Session Reflector need to maintain a counter for each available path recored in the IOAM trace option of test packet.</t>
        <t>The Session-Reflector also need to check whether there is a Return Path Control Code Sub-TLV with Co-routed Bidirectional Path flag set.</t>
        <t>If the Co-routed Bidirectional Path flag is set, the Session-Reflector Must send the reflect test packet along the path indicated in the IOAM IPv6 HBH option as described in <xref target="I-D.zhang-ippm-stamp-co-routed-path"/>.</t>
        <t>If the there is no Return Path Control Code Sub-TLV or the Co-routed Bidirectional Path flag is not set, it <bcp14>MUST</bcp14> drop this Multi-path test packet.</t>
      </section>
      <section anchor="test-packet-analysis">
        <name>Test Packet Analysis</name>
        <t>The test packet analysis node could be a Session-Sender or a Controller.</t>
        <t>According to <xref target="I-D.gandhi-ippm-stamp-ext-hdr"/>, the Session-Sender will receive a Session-Reflector test packet with an Reflected IPv6 Option Data TLV. The content of this TLV is copied from the IPv6 option of Session-Sender test packet.</t>
        <t>When using stateless mode, the Session-Sender will receive a test packet and the values in the Sequence Number and Session-Sender Sequence Number fields are the same. The test packet analysis node will analysis the test packet in the following procedures:</t>
        <ul spacing="normal">
          <li>
            <t>The analysis node determines which test packet the reflected packet belongs to base on the Session-Sender sequence number. The analysis node will receive many reflected test packets with the same Session-Sender sequence number.</t>
          </li>
          <li>
            <t>For the reflected test packets with same Session-Sender sequence number, the analysis node needs to distinguish the different paths by the node information recorded in the IOAM trace Option in Reflected IPv6 Option Data TLV.</t>
          </li>
          <li>
            <t>The analysis node needs to generate a table for all the paths and record the Session-Sender sequence number for each path.</t>
          </li>
          <li>
            <t>The analysis node gets all the available paths and their round-trip packet loss rate by comparing the Session-Sender sequence number and reflected test packets number for each path.</t>
          </li>
          <li>
            <t>The analysis node gets the forward and backward transit delay of each path by comparing the Session-Sender Timestamp and Receive Timestamp or Timestamp of each Session-Reflect test packet.</t>
          </li>
        </ul>
        <t>When using stateful mode, the Session-Sender will receive a test packet and the values of the Sequence Number and Session-Sender Sequence Number fields are independent. The test packet analysis node will analysis the test packet in the following procedures:</t>
        <ul spacing="normal">
          <li>
            <t>The analysis node determines which test packet the reflected packet belongs to base on the Session-Sender sequence number. The analysis node will receive many reflected test packets with the same Session-Sender sequence number.</t>
          </li>
          <li>
            <t>For the reflected test packets with same Session-Sender sequence number, the analysis node needs to distinguish the different paths by the node information recorded in the IOAM trace Option in Reflected IPv6 Option Data TLV.</t>
          </li>
          <li>
            <t>The analysis node needs to generate a table for all the paths and record the sequence number and Session-Sender sequence number for each path.</t>
          </li>
          <li>
            <t>The analysis node gets the forward and backward packet loss rate for each path by comparing the reflected test packets number and Reflected sequence number and Session-Sender sequence number.</t>
          </li>
          <li>
            <t>The analysis node gets the forward and backward transit delay of each path by comparing the Session-Sender Timestamp and Receive Timestamp or Timestamp of each Session-Reflect test packet.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="example-of-multi-path-measurement">
      <name>Example of Multi-path Measurement</name>
      <t>An example of a Multi-path measurement scenario is illustrated in <xref target="ref-to-fig4"/>. The figure depicts two endpoints: A STAMP Session-Sender and A Session-Reflector. The "STAMP session" is the bidirectional packet flow between the Session-Sender and Session-Reflector. There are four transit nodes and two routing paths between the Session-Sender and Session-Reflector.</t>
      <figure anchor="ref-to-fig4">
        <name>Multi-path measurement topology</name>
        <artwork><![CDATA[
                            +--------+
                           /|   N3   |\
                          / +--------+ \
+--------+     +--------+/   Transit    \+--------+     +--------+
|   N1   |-----|   N2   |    Node        |   N5   |-----|   N6   |
+--------+     +--------+\              /+--------+     +--------+
  STAMP         Transit   \ +--------+ /  Transit         STAMP
Session-Sender   Node       \|   N4   |/     Node     Session-Reflector
                             +--------+
]]></artwork>
      </figure>
      <t>In <xref target="ref-to-fig4"/>, the Session-Sender generate a set of test packet with the IOAM Trace Option, Multi-path TLV (M bit = 1) and Co-routed Bidirectional Path flag set, indicating that these packets are used for multi-path measurement.</t>
      <t>When the packets arrive at N2, N2 find that there are two paths to the destination node, then it will copy the packet to each outgoing interface of the two paths and add its information (including the node id, ingress interface id and egress interface id) to the IOAM Trace Option. It should be noted that Node Identification, ingoing and outgoing interface Identification of N2 are mandatory for path recovering, other node data defined in section 4.1.1 of <xref target="RFC9197"/> are optional.</t>
      <t>The following transit nodes just add its node data to the IOAM Trace Option as described in section 4 of <xref target="RFC9197"/>.</t>
      <t>When the test packets arrive at Session-Reflector, it will copy the entire IPv6 option including the header into the STAMP "Reflected IPv6 Option Data" TLV in Session-Reflector payload. The Session-Reflector will also reset the Multi-path flag of Multi-path TLV. In addition, the Session-Reflector <bcp14>SHOULD</bcp14> exact all the route path information from the IOAM IPv6 option and encapsulate it in the SRH of reflected test packet, to perform a strict path forwarding.</t>
      <t>The transit node will forward the reflected test packets along the path indicated in SRH.</t>
      <t>When the reflected test packets arrive at the Session-Sender, it will analysis these reflected test packets as the procedures illustrated in section 3.1.2. Therefore, it can get the topology with all paths, the round-trip packet loss and the unidirectional path delay.</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This document defines a new TLV in the registry "STAMP TLV Types" 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">TBA</td>
            <td align="left">Multi-path TLV</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 anchor="sec-combined-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>
        <reference anchor="RFC9197">
          <front>
            <title>Data Fields for In Situ Operations, Administration, and Maintenance (IOAM)</title>
            <author fullname="F. Brockners" initials="F." role="editor" surname="Brockners"/>
            <author fullname="S. Bhandari" initials="S." role="editor" surname="Bhandari"/>
            <author fullname="T. Mizrahi" initials="T." role="editor" surname="Mizrahi"/>
            <date month="May" year="2022"/>
            <abstract>
              <t>In situ Operations, Administration, and Maintenance (IOAM) collects operational and telemetry information in the packet while the packet traverses a path between two points in the network. This document discusses the data fields and associated data types for IOAM. IOAM-Data-Fields can be encapsulated into a variety of protocols, such as Network Service Header (NSH), Segment Routing, Generic Network Virtualization Encapsulation (Geneve), or IPv6. IOAM can be used to complement OAM mechanisms based on, e.g., ICMP or other types of probe packets.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9197"/>
          <seriesInfo name="DOI" value="10.17487/RFC9197"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.gandhi-ippm-stamp-ext-hdr">
          <front>
            <title>Simple Two-Way Active Measurement Protocol (STAMP) Extensions for Reflecting STAMP Packet Headers</title>
            <author fullname="Rakesh Gandhi" initials="R." surname="Gandhi">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Tianran Zhou" initials="T." surname="Zhou">
              <organization>Huawei</organization>
            </author>
            <date day="6" month="February" year="2024"/>
            <abstract>
              <t>   Simple Two-Way Active Measurement Protocol (STAMP) defined in RFC
   8762 and its optional extensions defined in RFC 8972 can be used for
   Edge-To-Edge (E2E) active measurement.  In Situ Operations,
   Administration, and Maintenance (IOAM) data fields defined in RFC
   9197 can be used for recording and collecting Hop-By-Hop (HBH) and
   E2E operational and telemetry information.  This document extends
   STAMP to reflect any IPv6 options and MPLS Network Action Sub-Stacks
   for hop-by-hop and edge-to-edge active measurements, including IOAM
   data fields.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-gandhi-ippm-stamp-ext-hdr-00"/>
        </reference>
        <reference anchor="I-D.zhang-ippm-stamp-co-routed-path">
          <front>
            <title>Simple Two-Way Active Measurement Protocol (STAMP) Extension for Co-routed Bidirectional Path</title>
            <author fullname="Li Zhang" initials="L." surname="Zhang">
              <organization>Huawei</organization>
            </author>
            <author fullname="Tianran Zhou" initials="T." surname="Zhou">
              <organization>Huawei</organization>
            </author>
            <date day="29" month="June" year="2024"/>
            <abstract>
              <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>
          <seriesInfo name="Internet-Draft" value="draft-zhang-ippm-stamp-co-routed-path-00"/>
        </reference>
      </references>
    </references>
    <?line 280?>

<section numbered="false" anchor="Acknowledgements">
      <name>Acknowledgements</name>
      <t>The authors would like to thank Ernesto Ruffini, Thomas Graf, Greg Mirsky for the valuable comments to this work.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
