<?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-01" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title>Simple Two-Way Active Measurement Protocol (STAMP) Extensions for Multi-path</title>
    <seriesInfo name="Internet-Draft" value="draft-zhang-ippm-stamp-mp-01"/>
    <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="October" day="21"/>
    <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>
      </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: TBA, 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"/>. In addition to the packet generation, 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>
        </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><xref target="RFC8762"/> defines two kind of Session-Reflector behavior, one is stateless and another is stateful.</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 sequence number. The analysis node will receive many reflected test packets with the same Sequence Number.</t>
            </li>
            <li>
              <t>For the reflected test packets with same 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 for each path.</t>
            </li>
            <li>
              <t>The analysis node gets all the available paths and their packet loss rate by comparing the 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 all the available paths and their round-trip packet loss rate by counting the sequence number for each path.</t>
            </li>
            <li>
              <t>The analysis node gets the round-trip packet loss rate by comparing the reflected test packets number and Session-Sender sequence number for each path (the forward and backward packet loss can’t be measured because it requires the Session-Reflector maintains different counter 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 and Timestamp of each Session-Reflect test packet.</t>
            </li>
          </ul>
        </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>In order to measure the round-trip performance of each path, the Session-Reflector <bcp14>MUST</bcp14> add Return Path TLV<xref target="RFC9503"/> to the Reflected packet to make sure that the reflected test packet is forwarded in the same path with test packet. This means the Session-Reflector need to encapsulate the transit node SID list in the Return Path TLV of Reflected test packet according to the IOAM Trace Option in the test packet.</t>
      </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 and Multi-path TLV (M bit = 1), 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 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 will add a Return Path TLV containing the SID list of backward paths based on the IOAM trace option recorded in the test packet.</t>
        <t>The transit node will forward the reflected test packets along the path indicated in the Return Path TLV</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>
    <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">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="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 267?>

<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>
