<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-gandhi-spring-enhanced-srpm-01" ipr="trust200902" consensus="true" submissionType="IETF" obsoletes="" updates="" xml:lang="en" sortRefs="false" symRefs="true" tocInclude="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.1 -->
  <!-- Generated by id2xml 1.5.0 on 2020-02-06T01:41:26Z -->

  <front>
    <title abbrev="Enhanced Performance Measurement in SR">
    Enhanced Performance Measurement Using Simple TWAMP in Segment Routing Networks</title>
    <seriesInfo name="Internet-Draft" value="draft-gandhi-spring-enhanced-srpm-01"/>
    <author fullname="Rakesh Gandhi" initials="R." role="editor" surname="Gandhi">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>Canada</street>
        </postal>
        <email>rgandhi@cisco.com</email>
      </address>
    </author>
    <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <email>cfilsfil@cisco.com</email>
      </address>
    </author>
    <author fullname="Navin Vaghamshi" initials="N." surname="Vaghamshi">
      <organization>Reliance</organization>
      <address>
        <email>Navin.Vaghamshi@ril.com</email>
      </address>
    </author>
    <author fullname="Moses Nagarajah" initials="M." surname="Nagarajah">
      <organization>Telstra</organization>
      <address>
        <email>Moses.Nagarajah@team.telstra.com</email>
      </address>
    </author>
    <author fullname="Richard Foote" initials="R." surname="Foote">
      <organization>Nokia</organization>
      <address>
        <email>footer.foote@nokia.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>
    <author fullname="Amit Dhamija" initials="A." surname="Dhamija">
      <organization>Rakuten</organization>
      <address>
        <email>amit.dhamija@rakuten.com</email>
      </address>
    </author>
    <date day="15" month="February" year="2022"/>
    <workgroup>SPRING Working Group</workgroup>
    <abstract>
      <t>Segment Routing (SR) leverages the source routing paradigm. SR is
      applicable to both Multiprotocol Label Switching (SR-MPLS) and IPv6
      (SRv6) data planes.  This document defines procedure for 
      Enhanced Performance Measurement 
      of end-to-end SR paths including SR Policies for both SR-MPLS and SRv6 data planes 
      using Simple Two-Way Active Measurement Protocol (STAMP) defined in RFC 8762.
      The procedure reduces the deployment and operational complexities in a network.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="sect-1" numbered="true" toc="default">
      <name>Introduction</name>
      <t>Segment Routing (SR) leverages the source routing paradigm and
      greatly simplifies network operations for Software Defined Networks
      (SDNs). SR is applicable to both Multiprotocol Label Switching (SR-MPLS)
      and IPv6 (SRv6) data planes <xref target="RFC8402" format="default"/>. SR
      Policies as defined in <xref format="default" target="I-D.ietf-spring-segment-routing-policy"/> are used to steer
      traffic through a specific, user-defined paths using a stack of Segments. 
      A comprehensive SR Performance Measurement (PM) for delay and packet loss as well as 
      Connectivity Verification (CV) is one of the
      essential requirements to measure network performance to provide Service Level Agreements (SLAs).</t>
      <t>The Simple Two-Way Active Measurement Protocol (STAMP) provides
      capabilities for the measurement of various performance
      metrics in IP networks <xref target="RFC8762" format="default"/> 
      without the use of a control channel to pre-signal session parameters.
      As described in <xref format="default" target="I-D.ietf-spring-stamp-srpm"/>, 
      STAMP can be used for performance measurement for delay and packet loss of end-to-end SR paths.  </t>
      <t>Seamless Bidirectional Forwarding Detection (S-BFD) <xref target="RFC7880" format="default"/> 
      provides a simplified mechanism for using BFD for path monitoring with a 
      large proportion of negotiation aspects eliminated. The S-BFD can be used for 
      connectivity verification of end-to-end SR paths.</t>
      <t>Both STAMP and S-BFD require protocol support on the far-end Reflector node to process
      the received packets, and hence the received packets need to be punted 
      from the forwarding fast path and return packets need to be generated. 
      This limits the scale for number sessions and the ability to provide faster detection interval.</t>
      <t>Enabling multiple protocols, S-BFD for connectivity verification 
      and STAMP for performance measurement increases
      the deployment and operational complexities in a network.
      Also, implementing multiple protocols in a hardware significantly 
      increases the development cost.</t>
      <t>This document defines procedure for Enhanced Performance Measurement 
      of end-to-end SR paths including SR Policies for both SR-MPLS and SRv6 data planes, 
      using Simple Two-Way Active Measurement Protocol (STAMP) defined in <xref target="RFC8762" format="default"/>.
      The procedure reduces the deployment and operational complexities in a network.</t>
    </section>
    <section anchor="sect-2" numbered="true" toc="default">
      <name>Conventions Used in This Document</name>
      <section anchor="sect-2.1" numbered="true" toc="default">
        <name>Requirements Language</name>
        <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" format="default"/> <xref target="RFC8174" format="default"/> when, and only when, they
        appear in all capitals, as shown here.</t>
      </section>
      <section anchor="sect-2.2" numbered="true" toc="default">
        <name>Abbreviations</name>
        <t>S-BFD: Seamless Bidirectional Forwarding Detection.</t>
        <t>BSID: Binding Segment ID.</t>
        <t>ECMP: Equal Cost Multi-Path.</t>
        <t>EB: Endpoint Behaviour.</t>
        <t>HMAC: Hashed Message Authentication Code.</t>
        <t>MBZ: Must be Zero.</t>
        <t>MPLS: Multiprotocol Label Switching.</t>
        <t>PM: Performance Measurement.</t>
        <t>PTP: Precision Time Protocol.</t>
        <t>SID: Segment ID.</t>
        <t>SL: Segment List.</t>
        <t>SR: Segment Routing.</t>
        <t>SRH: Segment Routing Header.</t>
        <t>SR-MPLS: Segment Routing with MPLS data plane.</t>
        <t>SRv6: Segment Routing with IPv6 data plane.</t>
        <t>STAMP: Simple Two-way Active Measurement Protocol.</t>
        <t>TC: Traffic Class.</t>
        <t>TTL: Time To Live.</t>
      </section>
      <section anchor="sect-2.3" numbered="true" toc="default">
        <name>Reference Topology</name>
        <t>
   In the reference topology shown in Figure 1, the STAMP Session-Sender <xref target="RFC8762" format="default"/> S1 initiates a
   Session-Sender test packet and the Session-Reflector R1
   returns the test packet.  The return test packet may be 
   transmitted back to the Session-Sender S1 
   on the same path (same set of links and nodes) or a different path 
   in the reverse direction from the path taken towards the Session-Reflector R1.</t>
        <t>The Session-Sender S1 and Session-Reflector R1 are
   connected via an SR path <xref target="RFC8402" format="default"/>.  
   The SR path can be an SR Policy <xref target="I-D.ietf-spring-segment-routing-policy" format="default"/> 
   on node S1 (called head-end) with destination to node R1 (called tail-end).</t>
        <figure anchor="ure-loopback-mode-enabled-with-network-programming">
          <name>Loopback Mode Enabled with Network Programming Function</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
                         T1                  T2
                        /                     \
               +-------+   STAMP Test Packet   +-------+
               |       | - - - - - - - - - - - |       |
               |   S1  |======================||  R1   |
               |       |<- - - - - - - - - - - |       |
               +-------+   Return Test Packet  +-------+
                        \  
                         T4 

             Session-Sender                 Session-Reflector
                                             (Timestamp, 
                                              Pop and Forward)
      ]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="sect-3" numbered="true" toc="default">
      <name>Overview</name>
      <section anchor="sect-3.1" toc="default" numbered="true">
        <name>Enhanced Loopback Mode Enabled with Network Programming Function</name>
        <t>As described in <xref format="default" target="I-D.ietf-spring-stamp-srpm"/>, in loopback mode, 
    the STAMP Session-Sender S1 initiates Session-Sender test packets and 
    the Session-Reflector R1 forwards them back to the Session-Sender S1. 
    The received STAMP test packets are not punted out of the fast 
    path in forwarding at the Session-Reflector. 
    At the Session-Reflector, the loopback function simply 
    makes the necessary changes to the encapsulation including IP and UDP headers 
    to return the STAMP test packet to the Session-Sender S1.  
    No STAMP test session is created on the Session-Reflector R1. 
    As described in <xref format="default" target="I-D.ietf-spring-stamp-srpm"/>, only round-trip delay
    can be measured in the loopback mode. In SR networks, there is also a need
    to measure one-way delay to provide low latency services. </t>

    <t>This document defines a new STAMP measurement mode, enhanced loopback mode, 
    that is loopback mode enabled with network programming function.
    In this mode, both transmit (T1) and receive (T2) timestamps in data plane are collected
    by the Session-Sender test packets as shown in Figure 1.
    The network programming function optimizes the "operations of punt 
    test packet and generate return test packet" on the Session-Reflector 
    as timestamping is implemented in forwarding fast path in hardware. This helps to achieve 
    higher STAMP test session scale and faster detection interval.</t>
        <t>The Session-Sender adds transmit 
    timestamp (T1) in the payload of the Session-Sender test packet. 
    The Session-Reflector adds the receive timestamp (T2) in the 
    payload of the received test packet in forwarding fast path in 
    hardware without punting the test packet (e.g. to slow path or control-plane).
    The network programming function enables Session-Reflector to 
    add the receive timestamp (T2) at a specific offset in the 
    payload which is locally provisioned, consistently in the network.</t>

    </section>
      <section anchor="sect-3.2" numbered="true" toc="default">
        <name>Example Provisioning Model</name>
        <t>
    An example provisioning model and typical measurement parameters are shown in Figure 2:</t>
        <figure anchor="ure-example-provisioning-model">
          <name>Example Provisioning Model</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[

                               +------------+
                               | Controller |
                               +------------+
 STAMP Mode                        /    \     Timestamp Label/SRv6 EB
   Enhanced Loopback Mode         /      \      Timestamp Offset
 Timestamp Label/SRv6 EB         /        \     Timestamp Format
   Timestamp Format             /          \
 Missed Packet Count (N)       /            \
 Delay Threshold/Count(TH/M)  /              \      
 Packet Loss Threshold(XofY) /                \
                            v                  v
                        +-------+          +-------+
                        |       |          |       |
                        |   S1  |==========|   R1  |
                        |       |          |       |
                        +-------+          +-------+
 
                     Session-Sender     Session-Reflector
]]></artwork>
        </figure>
        <t>Example of a STAMP mode is enhanced loopback mode defined in this document.
    The values for Timestamp Label and SRv6 Endpoint Behaviour may be provisioned 
    as described in this document.
    Example of Timestamp Format is 64-bit PTPv2 <xref target="IEEE1588" format="default"/>.
    Example of Timestamp Offset is 16 and 32 bytes for the unauthenticated 
    and authenticated STAMP Session-Sender test packets, respectively.
    Example of threshold values configured for generating notifications
    are: Missed Packet Count (N), Delay Exceeded Threshold and 
    Packet Count (TH/M) and Packet Loss Threshold (XofY), as described in this document.</t>
        <t>The mechanisms to provision the Session-Sender and 
    Session-Reflector are outside the scope of this document.</t>
      </section>
    </section>
    <section anchor="sect-4" numbered="true" toc="default">
      <name>Enhanced Performance Measurement Procedure</name>
      <t>For enhanced performance monitoring of an end-to-end SR path including SR Policy, 
     STAMP Session-Sender test packets are transmitted in loopback mode enabled with network programming function
     to timestamp and forward the packet.</t>
      <t>For SR Policy, the Session-Sender test packets are transmitted 
     using the Segment List (SL) of the Candidate-Path 
     <xref target="I-D.ietf-spring-segment-routing-policy" format="default"/>.
     When a Candidate-Path has more than one Segment Lists, multiple
     Session-Sender test packets MUST be transmitted, one using each Segment List. </t>
      <section anchor="sect-4.1" toc="default" numbered="true">
        <name>Enhanced Performance Measurement Procedure for SR-MPLS Policies</name>

	           <t>
   An SR-MPLS Policy may contain a number of Segment Lists (SLs).
   A Session-Sender test packet MUST be transmitted for each Segment List of the SR-MPLS Policy.
   The content of an example Session-Sender test packet for an
   end-to-end SR-MPLS Policy is shown in Figure 3.</t>

	<t>The SR-MPLS header can contain the MPLS label stack of 
     the forward path or both forward and the reverse direction paths.
     In the former case, the return test packets are received by
     the Session-Sender via IP/UDP <xref target="RFC0768" format="default"/> return path and the MPLS
     header is removed by the Session-Reflector.</t>

        <t>In the latter case, the Segment List of the reverse direction SR path 
     is added in the Session-Sender test packet header to receive the return test 
     packet on a specific path, either using the Binding SID <xref target="I-D.ietf-pce-binding-label-sid" format="default"/> 
     or Segment List of the Reverse SR Policy <xref target="I-D.ietf-pce-sr-bidir-path" format="default"/>. 
     In this case, the MPLS header is not removed by the Session-Reflector.</t>
        <t>In both cases, the Session-Sender 
     MUST set the Destination Address equal to the Session-Sender address
     in the IP header of the test packets.</t>
        <t>In this document, two new Timestamp Labels 
     are defined for SR-MPLS data plane to enable network programming
     function for "timestamp, pop and forward" the received test packet,
     one for unauthenticated mode and one for authenticated mode.</t>
        <t>In the Session-Sender test packets for SR-MPLS Policies,
     a Timestamp Label is added in the MPLS header as shown in Figure 3, to
     collect "Receive Timestamp" field in the payload of the test packet. 
     The Label Stack for the reverse direction SR-MPLS path can be added after the Timestamp 
     Label (not shown in the Figure) to receive the return test packet on a specific path.
     When a Session-Reflector receives a packet with
     Timestamp Label, after timestamping the packet at a specific offset, 
     the Session-Reflector pops the Timestamp Label and forwards the
     packet using the next label or IP header in the packet (just like the 
     data packets for the normal traffic).</t>
        <figure anchor="ure-test-packet-header-for-sr-mpls-with-timestamp-label">
          <name>Example STAMP Test Packet with Timestamp Label for SR-MPLS</name>
          <artwork name="" type="" align="left" alt=""><![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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |            Label(1)                   | TC  |S|      TTL      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  .                                                               .
  .                                                               .
  .                                                               .
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |            Label(n)                   | TC  |S|      TTL      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |            Extension Label (15)       | TC  |S|      TTL      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |       Timestamp Label (TBA1 or TBA2)  | TC  |S|      TTL      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  | IP Header                                                     |
  .  Source IP Address = Session-Sender IPv4 or IPv6 Address      .
  .  Destination IP Address = Session-Sender IPv4 or IPv6 Address .
  .  Protocol = UDP                                               .
  .                                                               .
  +---------------------------------------------------------------+
  | UDP Header                                                    |
  .  Source Port = As chosen by Session-Sender                    .
  .  Destination Port = As chosen by Session-Sender               .
  .                                                               .
  +---------------------------------------------------------------+
  | Payload = Test Packet as specified in Section 3 of RFC 8972   |
  .           in Figure 1 and Figure 3                            .
  .                                                               .
  +---------------------------------------------------------------+
  ]]></artwork>
        </figure>
        <section anchor="sect-4.1.1" toc="default" numbered="true">
          <name>Timestamp Label Allocation</name>
          <t>
    The timestamp Labels for STAMP test packets in unauthenticated and authenticated 
    modes can be allocated using one of the following methods:</t>
          <ul spacing="normal">
            <li>Labels (values TBA1 and TBA2) assigned by IANA from the 
      "Extended Special-Purpose MPLS Values" <xref target="RFC9017" format="default"/>. 
      For Label (value TBA1), the timestamp offset is fixed at byte-offset 16 
      from the start of the payload for the STAMP test packets in unauthenticated mode, 
      and Label (value TBA2) at byte-offset 32 from the start of the payload for 
      the STAMP test packets in authenticated mode, both using the timestamp format 64-bit PTPv2.</li>
            <li>Labels allocated by a Controller from the global table of the
      Session-Reflector.  The Controller provisions the labels on both
      Session-Sender and Session-Reflector, as well as timestamp offsets and timestamp formats.</li>
            <li>Labels allocated by the Session-Reflector. The signaling and IGP flooding
      extension for the labels (including their timestamp offsets and timestamp formats) 
      are outside the scope of this document.</li>
          </ul>
        </section>
        <section anchor="sect-4.1.2" toc="default" numbered="true">
          <name>Node Capability for Timestamp Label</name>
          <t>The STAMP Session-Sender needs 
      to know if the Session-Reflector can process the Timestamp Label to avoid dropping test packets. 
      The signaling extension or local configuration for this capability exchange is outside the scope of this document.</t>
        </section>
      </section>
      <section anchor="sect-4.2" numbered="true" toc="default">
        <name>Enhanced Performance Measurement Procedure for SRv6 Policies</name>

           <t>
   An SRv6 Policy may contain a number of Segment Lists.
   Each Segment List may contain a number of SRv6 SIDs as defined in  
   <xref target="RFC8986" format="default"/>, <xref target="I-D.filsfils-spring-net-pgm-extension-srv6-usid" format="default"/> and <xref target="I-D.ietf-spring-srv6-srh-compression" format="default"/>. 
   A Session-Sender test packet MUST be transmitted for each Segment List of the SRv6 Policy.
   An SRv6 Policy may contain an SRv6 Segment Routing Header (SRH) carrying 
   a Segment List as described in <xref target="RFC8754" format="default"/>. 
   The content of an example Session-Sender test packet for an end-to-end 
   SRv6 Policy using an SRH is shown in Figure 4.</t>

        <t>The SRH can contain the Segment List of 
     the forward path only or both forward and the reverse direction paths.
     In the former case, an inner IPv6 header (after the SRH and before the UDP header) MUST be added that contains
     the Destination Address equal to the Session-Sender address
     as shown in Figure 4.  In this case, the SRH is removed by the Session-Reflector and IP/UDP return path is used.</t>

        <t>In the latter case, the Segment List of the reverse direction SR path is added in the SRH 
     to receive the return test packet on a specific path, either using the Binding SID 
     <xref target="I-D.ietf-pce-binding-label-sid" format="default"/> or Segment List of the Reverse SR Policy <xref target="I-D.ietf-pce-sr-bidir-path" format="default"/>. In this case, the SRH is 
     not removed by the Session-Reflector and an inner IPv6 header is not required.
     When the return test packet contains an SRH at the Session-Sender,
     the procedure defined for upper-layer header processing for SRv6 SIDs
     in <xref target="RFC8986" format="default"/> MUST be used to process the
     UDP header after the SRH in the received test packets.</t>

        <t>The <xref target="RFC8986" format="default"/> defines 
     SRv6 Endpoint Behaviours (EB) for SRv6 nodes.
     In this document, two new Timestamp Endpoint Behaviours 
     are defined for Segment Routing Header (SRH) 
     <xref target="RFC8754" format="default"/> to enable
     "Timestamp and Forward (TSF)" function for the received test packets,
     one for unauthenticated mode and one for authenticated mode.</t>

        <t>In the Session-Sender test packets for SRv6 Policies,
     Timestamp Endpoint Function (End.TSF) is carried with the target Segment 
     Identifier (SID) in SRH <xref target="RFC8754" format="default"/> as shown in Figure 4,
     to collect "Receive Timestamp" field in the payload of the test packet. 
     The Segment List for the reverse direction path can be added after the target SID 
     to receive the return test packet on a specific path.
     When a Session-Reflector receives a packet with
     Timestamp Endpoint (End.TSF) for the target SID which is local, 
     after timestamping the packet at a specific offset,
     the Session-Reflector forwards the packet using the next SID 
     in the SRH or inner IPv6 header in the packet (just like 
     the data packets for the normal traffic).</t>
        <figure anchor="ure-test-packet-header-for-srv6-with-endpoint-function">
          <name>Example STAMP Test Packet with Endpoint Function for SRv6</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
  +---------------------------------------------------------------+
  | IP Header                                                     |
  .  Source IP Address = Session-Sender IPv6 Address              .
  .  Destination IP Address = Destination IPv6 Address            .
  .  Next-Header = 43 (Type SRH)                                  .
  .                                                               .
  +---------------------------------------------------------------+
  | SRH as specified in RFC 8754                                  |
  .     <Segment List>                                            .
  .     SRv6 Endpoint End.TSF (value TBA3 or TBA4)                .
  .                                                               .
  +---------------------------------------------------------------+
  | IP Header                                                     |
  .  Source IP Address = Session-Sender IPv6 Address              .
  .  Destination IP Address = Session-Sender IPv6 Address         .
  .  Next-Header = UDP (17)                                       .
  .                                                               .
  +---------------------------------------------------------------+
  | UDP Header                                                    |
  .  Source Port = As chosen by Session-Sender                    .
  .  Destination Port = As chosen by Session-Sender               .
  .                                                               .
  +---------------------------------------------------------------+
  | Payload = Test Packet as specified in Section 3 of RFC 8972   |
  .           in Figure 1 and Figure 3                            .
  .                                                               .
  +---------------------------------------------------------------+
  ]]></artwork>
        </figure>
        <section anchor="sect-4.2.1" toc="default" numbered="true">
          <name>Timestamp Endpoint Function Assignment</name>
          <t>
      The Timestamp Endpoint Functions for "Timestamp and Forward" can be signaled using one of the following methods:</t>
          <ul spacing="normal">
            <li>Timestamp Endpoint Functions (values TBA3 and TBA4) 
      assigned by IANA from the "SRv6 Endpoint Behaviors Registry".
      For endpoint behaviour (value TBA3), the timestamp offset is fixed at 
      byte-offset 16 from the start of the payload for the STAMP test 
      packets in unauthenticated mode, and endpoint behaviour (value TBA4) 
      at byte-offset 32 from the start of the payload for the STAMP test 
      packets in authenticated mode, both using the timestamp format 64-bit PTPv2.</li>
            <li>Timestamp Endpoint Functions assigned by a Controller.  The Controller provisions the values on both
      Session-Sender and Session-Reflector, as well as timestamp offsets and timestamp formats.</li>
            <li>Timestamp Endpoint Functions assigned by the Session-Reflector. The signaling and IGP flooding
      extension for the endpoint functions (including timestamp offsets and timestamp formats) 
      are outside the scope of this document.</li>
          </ul>
        </section>
        <section anchor="sect-4.2.2" toc="default" numbered="true">
          <name>Node Capability for Timestamp Endpoint Function</name>
          <t>The STAMP Session-Sender needs to know if the Session-Reflector can process 
      the Timestamp Endpoint Function to avoid dropping test packets.
      The signaling extension for this capability exchange is outside the scope of this document.</t>
        </section>
      </section>
    </section>
    <section anchor="sect-5" toc="default" numbered="true">
      <name>Example Failure Notifications</name>
      <t>The timestamps T1 and T2 are used to measure the one-way delay.
      The delay metrics for an end-to-end SR path are notified, for example, when consecutive 
      M number of test packets have measured delay values exceed the user-configured 
      threshold TH, where M (Delay Exceeded Packet Count) and TH 
      (Absolute and Percentage Delay Exceeded Thresholds) are also locally provisioned values.</t>
      <t>The round-trip packet loss for an end-to-end SR path is calculated 
      using the Sequence Number in the Session-Sender test packets.
      The packet loss metric is notified when X number of Session-Sender test packets were lost
      out of last Y number of test packets transmitted by the Session-Sender,
      where Threshold XofY is locally provisioned value.</t>
      <t>STAMP session state as UP (i.e. Connectivity verification success) for an end-to-end SR path is 
      initially notified as soon as one or more 
      return test packets are received at the Session-Sender.</t>
      <t>STAMP session state as DOWN (i.e. Connectivity verification failure) for an end-to-end SR path is 
      notified when consecutive N number of return test
      packets are not received at the Session-Sender, where N 
      (Missed Packet Count) is a locally provisioned value.</t>
      <t>In the loopback mode, a connectivity verification failure on the reverse 
      direction path can cause the return test packets to not reach the Session-Sender.
      This is also true in the case where the return test packets are generated 
      by the stateless Session-Reflector in two-way measurement. The stateful Session-Reflector
      can solve this issue by maintaining the forwarding direction 
      state and notifying a connectivity verification success and failure to the Session-Sender.</t>
    </section>
    <section anchor="sect-6" toc="default" numbered="true">
      <name>Security Considerations</name>
      <t>
   The STAMP protocol is intended for deployment in limited
   domains <xref target="RFC8799" format="default"/>.  As such, it assumes that a node involved in the STAMP 
   protocol operation has previously verified the integrity of the path
   and the identity of the far-end Session-Reflector.</t>
      <t>The security considerations specified in <xref target="RFC8762" format="default"/>
   and <xref target="RFC8972" format="default"/>
   also apply to the procedures defined in this document.  Specifically, the 
   message integrity protection using HMAC, as defined in Section 4.4 of <xref target="RFC8762" format="default"/> 
   also apply to the procedure described in this document.
      </t>
    </section>
    <section anchor="sect-7" toc="default" numbered="true">
      <name>IANA Considerations</name>
      <t>IANA maintains the "Special-Purpose Multiprotocol Label Switching
      (MPLS) Label Values" registry (see
      &lt;https://www.iana.org/assignments/mpls-label-values/mpls-label-values.xml&gt;).
      IANA is requested to allocate Timestamp Label value from the "Extended
      Special-Purpose MPLS Label Values" registry:</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
  +-------------+---------------------------------+---------------+
  | Value       | Description                     | Reference     |
  +-------------+---------------------------------+---------------+
  | TBA1        | Timestamp Label                 | This document |
  |             | for offset 16 for STAMP         |               |
  |             | in Unauthenticated Mode         |               |
  +-------------+---------------------------------+---------------+
  | TBA2        | Timestamp Label                 | This document |
  |             | for offset 32 for STAMP         |               |
  |             | in Authenticated Mode           |               |
  +-------------+---------------------------------+---------------+
      ]]></artwork>
      <t>IANA is requested to allocate, within the "SRv6 Endpoint Behaviors
      Registry" sub-registry belonging to the top-level "Segment Routing 
      Parameters" registry <xref target="RFC8986" format="default"/>, the following
      allocation:</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[     
  +-------------+---------------------------------+---------------+
  | Value       | Endpoint Behavior               | Reference     |
  +-------------+---------------------------------+---------------+
  | TBA3        | End.TSF (Timestamp and Forward) | This document |
  |             | for offset 16 for STAMP         |               |
  |             | in Unauthenticated Mode         |               |
  +-------------+---------------------------------+---------------+
  | TBA4        | End.TSF (Timestamp and Forward) | This document |
  |             | for offset 32 for STAMP         |               |
  |             | in Authenticated Mode           |               |
  +-------------+---------------------------------+---------------+
    
    ]]></artwork>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC0768" target="https://www.rfc-editor.org/info/rfc768" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.0768.xml">
          <front>
            <title>User Datagram Protocol</title>
            <author initials="J." surname="Postel" fullname="J. Postel">
              <organization/>
            </author>
            <date year="1980" month="August"/>
          </front>
          <seriesInfo name="STD" value="6"/>
          <seriesInfo name="RFC" value="768"/>
          <seriesInfo name="DOI" value="10.17487/RFC0768"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
                     </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
                      </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8762" target="https://www.rfc-editor.org/info/rfc8762" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8762.xml">
          <front>
            <title>Simple Two-Way Active Measurement Protocol</title>
            <author initials="G." surname="Mirsky" fullname="G. Mirsky">
              <organization/>
            </author>
            <author initials="G." surname="Jun" fullname="G. Jun">
              <organization/>
            </author>
            <author initials="H." surname="Nydell" fullname="H. Nydell">
              <organization/>
            </author>
            <author initials="R." surname="Foote" fullname="R. Foote">
              <organization/>
            </author>
            <date year="2020" month="March"/>
                     </front>
          <seriesInfo name="RFC" value="8762"/>
          <seriesInfo name="DOI" value="10.17487/RFC8762"/>
        </reference>
        <reference anchor="RFC8972" target="https://www.rfc-editor.org/info/rfc8972" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8972.xml">
          <front>
            <title>Simple Two-Way Active Measurement Protocol Optional Extensions</title>
            <author initials="G." surname="Mirsky" fullname="G. Mirsky">
              <organization/>
            </author>
            <author initials="X." surname="Min" fullname="X. Min">
              <organization/>
            </author>
            <author initials="H." surname="Nydell" fullname="H. Nydell">
              <organization/>
            </author>
            <author initials="R." surname="Foote" fullname="R. Foote">
              <organization/>
            </author>
            <author initials="A." surname="Masputra" fullname="A. Masputra">
              <organization/>
            </author>
            <author initials="E." surname="Ruffini" fullname="E. Ruffini">
              <organization/>
            </author>
            <date year="2021" month="January"/>
                     </front>
          <seriesInfo name="RFC" value="8972"/>
          <seriesInfo name="DOI" value="10.17487/RFC8972"/>
        </reference>
        <reference anchor="RFC8986" target="https://www.rfc-editor.org/info/rfc8986" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8986.xml">
          <front>
            <title>Segment Routing over IPv6 (SRv6) Network Programming</title>
            <author initials="C." surname="Filsfils" fullname="C. Filsfils" role="editor">
              <organization/>
            </author>
            <author initials="P." surname="Camarillo" fullname="P. Camarillo" role="editor">
              <organization/>
            </author>
            <author initials="J." surname="Leddy" fullname="J. Leddy">
              <organization/>
            </author>
            <author initials="D." surname="Voyer" fullname="D. Voyer">
              <organization/>
            </author>
            <author initials="S." surname="Matsushima" fullname="S. Matsushima">
              <organization/>
            </author>
            <author initials="Z." surname="Li" fullname="Z. Li">
              <organization/>
            </author>
            <date year="2021" month="February"/>
                      </front>
          <seriesInfo name="RFC" value="8986"/>
          <seriesInfo name="DOI" value="10.17487/RFC8986"/>
        </reference>
        <reference anchor="I-D.ietf-spring-stamp-srpm" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-spring-stamp-srpm.xml" target="https://www.ietf.org/archive/id/draft-ietf-spring-stamp-srpm-03.txt">
          <front>
            <title>Performance Measurement Using Simple TWAMP (STAMP) for Segment Routing Networks</title>
            <author fullname="Rakesh Gandhi">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Clarence Filsfils">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Daniel Voyer">
              <organization>Bell Canada</organization>
            </author>
            <author fullname="Mach(Guoyi) Chen">
              <organization>Huawei</organization>
            </author>
            <author fullname="Bart Janssens">
              <organization>Colt</organization>
            </author>
            <author fullname="Richard Foote">
              <organization>Nokia</organization>
            </author>
            <date month="February" day="1" year="2022"/>
                      </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-spring-stamp-srpm-03"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="IEEE1588">
          <front>
            <title>1588-2008 IEEE Standard for a Precision Clock Synchronization
          Protocol for Networked Measurement and Control Systems</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date month="March" year="2008"/>
          </front>
        </reference>
        <reference anchor="RFC7880" target="https://www.rfc-editor.org/info/rfc7880" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7880.xml">
          <front>
            <title>Seamless Bidirectional Forwarding Detection (S-BFD)</title>
            <author initials="C." surname="Pignataro" fullname="C. Pignataro">
              <organization/>
            </author>
            <author initials="D." surname="Ward" fullname="D. Ward">
              <organization/>
            </author>
            <author initials="N." surname="Akiya" fullname="N. Akiya">
              <organization/>
            </author>
            <author initials="M." surname="Bhatia" fullname="M. Bhatia">
              <organization/>
            </author>
            <author initials="S." surname="Pallagatti" fullname="S. Pallagatti">
              <organization/>
            </author>
            <date year="2016" month="July"/>
                      </front>
          <seriesInfo name="RFC" value="7880"/>
          <seriesInfo name="DOI" value="10.17487/RFC7880"/>
        </reference>
        <reference anchor="RFC8402" target="https://www.rfc-editor.org/info/rfc8402" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8402.xml">
          <front>
            <title>Segment Routing Architecture</title>
            <author initials="C." surname="Filsfils" fullname="C. Filsfils" role="editor">
              <organization/>
            </author>
            <author initials="S." surname="Previdi" fullname="S. Previdi" role="editor">
              <organization/>
            </author>
            <author initials="L." surname="Ginsberg" fullname="L. Ginsberg">
              <organization/>
            </author>
            <author initials="B." surname="Decraene" fullname="B. Decraene">
              <organization/>
            </author>
            <author initials="S." surname="Litkowski" fullname="S. Litkowski">
              <organization/>
            </author>
            <author initials="R." surname="Shakir" fullname="R. Shakir">
              <organization/>
            </author>
            <date year="2018" month="July"/>
                     </front>
          <seriesInfo name="RFC" value="8402"/>
          <seriesInfo name="DOI" value="10.17487/RFC8402"/>
        </reference>
        <reference anchor="RFC8754" target="https://www.rfc-editor.org/info/rfc8754" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8754.xml">
          <front>
            <title>IPv6 Segment Routing Header (SRH)</title>
            <author initials="C." surname="Filsfils" fullname="C. Filsfils" role="editor">
              <organization/>
            </author>
            <author initials="D." surname="Dukes" fullname="D. Dukes" role="editor">
              <organization/>
            </author>
            <author initials="S." surname="Previdi" fullname="S. Previdi">
              <organization/>
            </author>
            <author initials="J." surname="Leddy" fullname="J. Leddy">
              <organization/>
            </author>
            <author initials="S." surname="Matsushima" fullname="S. Matsushima">
              <organization/>
            </author>
            <author initials="D." surname="Voyer" fullname="D. Voyer">
              <organization/>
            </author>
            <date year="2020" month="March"/>
            <abstract>
              <t>Segment Routing can be applied to the IPv6 data plane using a new type of Routing Extension Header called the Segment Routing Header (SRH). This document describes the SRH and how it is used by nodes that are Segment Routing (SR) capable.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8754"/>
          <seriesInfo name="DOI" value="10.17487/RFC8754"/>
        </reference>
        <reference anchor="RFC8799" target="https://www.rfc-editor.org/info/rfc8799" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8799.xml">
          <front>
            <title>Limited Domains and Internet Protocols</title>
            <author initials="B." surname="Carpenter" fullname="B. Carpenter">
              <organization/>
            </author>
            <author initials="B." surname="Liu" fullname="B. Liu">
              <organization/>
            </author>
            <date year="2020" month="July"/>
                      </front>
          <seriesInfo name="RFC" value="8799"/>
          <seriesInfo name="DOI" value="10.17487/RFC8799"/>
        </reference>
        <reference anchor="RFC9017" target="https://www.rfc-editor.org/info/rfc9017" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9017.xml">
          <front>
            <title>Special-Purpose Label Terminology</title>
            <author initials="L." surname="Andersson" fullname="L. Andersson">
              <organization/>
            </author>
            <author initials="K." surname="Kompella" fullname="K. Kompella">
              <organization/>
            </author>
            <author initials="A." surname="Farrel" fullname="A. Farrel">
              <organization/>
            </author>
            <date year="2021" month="April"/>
                     </front>
          <seriesInfo name="RFC" value="9017"/>
          <seriesInfo name="DOI" value="10.17487/RFC9017"/>
        </reference>


        <reference anchor="I-D.ietf-spring-srv6-srh-compression" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-spring-srv6-srh-compression.xml" target="https://www.ietf.org/archive/id/draft-ietf-spring-srv6-srh-compression-00.txt">
          <front>
            <title>Compressed SRv6 Segment List Encoding in SRH</title>
            <author fullname="Weiqiang Cheng">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Clarence Filsfils">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Zhenbin Li">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Bruno Decraene">
              <organization>Orange</organization>
            </author>
            <author fullname="Dennis Cai">
              <organization>Alibaba</organization>
            </author>
            <author fullname="Daniel Voyer">
              <organization>Bell Canada</organization>
            </author>
            <author fullname="Francois Clad">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Shay Zadok">
              <organization>Broadcom</organization>
            </author>
            <author fullname="James N Guichard">
              <organization>Futurewei Technologies Ltd.</organization>
            </author>
            <author fullname="Liu Aihua">
              <organization>ZTE Corporation</organization>
            </author>
            <author fullname="Robert Raszuk">
              <organization>NTT Network Innovations</organization>
            </author>
            <author fullname="Cheng Li">
              <organization>Huawei Technologies</organization>
            </author>
            <date month="February" day="11" year="2022"/>
            <abstract>
              <t>   This document defines a compressed SRv6 Segment List Encoding in the
   Segment Routing Header (SRH).  This solution does not require any SRH
   data plane change nor any SRv6 control plane change.  This solution
   leverages the SRv6 Network Programming model.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-spring-srv6-srh-compression-00"/>
        </reference>


        <reference anchor="I-D.filsfils-spring-net-pgm-extension-srv6-usid" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.filsfils-spring-net-pgm-extension-srv6-usid.xml" target="https://www.ietf.org/archive/id/draft-filsfils-spring-net-pgm-extension-srv6-usid-12.txt">
          <front>
            <title>Network Programming extension: SRv6 uSID instruction</title>
            <author fullname="Clarence Filsfils">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Pablo Camarillo Garvia">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Dennis Cai">
              <organization>Alibaba</organization>
            </author>
            <author fullname="Daniel Voyer">
              <organization>Bell Canada</organization>
            </author>
            <author fullname="Israel Meilik">
              <organization>Broadcom</organization>
            </author>
            <author fullname="Keyur Patel">
              <organization>Arrcus, Inc.</organization>
            </author>
            <author fullname="Wim Henderickx">
              <organization>Nokia</organization>
            </author>
            <author fullname="Prem Jonnalagadda">
              <organization>Barefoot Networks</organization>
            </author>
            <author fullname="David Melman">
              <organization>Marvell</organization>
            </author>
            <author fullname="Yisong Liu">
              <organization>China Mobile</organization>
            </author>
            <author fullname="James Guichard">
              <organization>Futurewei</organization>
            </author>
            <date month="December" day="13" year="2021"/>
            <abstract>
              <t>   The SRv6 "micro segment" (SRv6 uSID or uSID for short) instruction is
   a straightforward extension of the SRv6 Network Programming model:

   *  The SRv6 Control Plane is leveraged without any change

   *  The SRH dataplane encapsulation is leveraged without any change

   *  Any SID in the SID list can carry micro segments

   *  Based on the Compressed SRv6 Segment List Encoding in SRH
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-filsfils-spring-net-pgm-extension-srv6-usid-12"/>
        </reference>



        <reference anchor="I-D.ietf-spring-segment-routing-policy" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-spring-segment-routing-policy.xml" target="https://www.ietf.org/archive/id/draft-ietf-spring-segment-routing-policy-16.txt">
          <front>
            <title>Segment Routing Policy Architecture</title>
            <author fullname="Clarence Filsfils">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Ketan Talaulikar">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Daniel Voyer">
              <organization>Bell Canada</organization>
            </author>
            <author fullname="Alex Bogdanov">
              <organization>British Telecom</organization>
            </author>
            <author fullname="Paul Mattes">
              <organization>Microsoft</organization>
            </author>
            <date month="January" day="28" year="2022"/>
                     </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-spring-segment-routing-policy-16"/>
        </reference>
        <reference anchor="I-D.ietf-pce-binding-label-sid" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pce-binding-label-sid.xml" target="https://www.ietf.org/archive/id/draft-ietf-pce-binding-label-sid-12.txt">
          <front>
            <title>Carrying Binding Label/Segment Identifier in PCE-based Networks.</title>
            <author fullname="Siva Sivabalan">
              <organization>Ciena Corporation</organization>
            </author>
            <author fullname="Clarence Filsfils">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Jeff Tantsura">
              <organization>Microsoft Corporation</organization>
            </author>
            <author fullname="Stefano Previdi">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Cheng Li (editor)">
              <organization>Huawei Technologies</organization>
            </author>
            <date month="January" day="24" year="2022"/>
                      </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pce-binding-label-sid-12"/>
        </reference>
        <reference anchor="I-D.ietf-pce-sr-bidir-path" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pce-sr-bidir-path.xml" target="https://www.ietf.org/archive/id/draft-ietf-pce-sr-bidir-path-08.txt">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for Associated Bidirectional Segment Routing (SR) Paths</title>
            <author fullname="Cheng Li">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Mach(Guoyi) Chen">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Weiqiang Cheng">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Rakesh Gandhi">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Quan Xiong">
              <organization>ZTE Corporation</organization>
            </author>
            <date month="September" day="9" year="2021"/>
                     </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pce-sr-bidir-path-08"/>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments" toc="default">
      <name>Acknowledgments</name>
      <t>
   The authors would like to thank Greg Mirsky, Kireeti Kompella, and Adrian Farrel for providing
   useful comments.</t>
    </section>
  </back>
</rfc>
