<?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.43 (Ruby 3.4.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-yan-spring-srv6-int-resource-control-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="SRv6-INT Closed-Loop Control">SRv6-INT: Protocol Extensions to Segment Routing over IPv6 for In-Band Network Telemetry in Support of Closed-Loop Resource Control</title>
    <seriesInfo name="Internet-Draft" value="draft-yan-spring-srv6-int-resource-control-00"/>
    <author fullname="Xuefeng Yan" role="editor">
      <organization>University of Science and Technology of China</organization>
      <address>
        <postal>
          <street>100 Fuxing Road</street>
          <city>Hefei</city>
          <region>Anhui</region>
          <code>230093</code>
          <country>China</country>
        </postal>
        <email>xfyan@mail.ustc.edu.cn</email>
      </address>
    </author>
    <author fullname="Xiaoliang Chen" role="editor">
      <organization>University of Science and Technology of China</organization>
      <address>
        <postal>
          <street>100 Fuxing Road</street>
          <city>Hefei</city>
          <region>Anhui</region>
          <code>230093</code>
          <country>China</country>
        </postal>
        <email>xlichen@ieee.org</email>
      </address>
    </author>
    <author fullname="Zuqing Zhu" role="editor">
      <organization>University of Science and Technology of China</organization>
      <address>
        <postal>
          <street>100 Fuxing Road</street>
          <city>Hefei</city>
          <region>Anhui</region>
          <code>230093</code>
          <country>China</country>
        </postal>
        <email>zqzhu@ieee.org</email>
      </address>
    </author>
    <date year="2026" month="September" day="09"/>
    <area>Routing</area>
    <workgroup>Spring</workgroup>
    <keyword>SRv6</keyword>
    <keyword>INT</keyword>
    <keyword>Closed-Loop Resource Control</keyword>
    <abstract>

<t>This document defines SRv6-INT, a protocol extension that integrates
In-band Network Telemetry (INT) with Segment Routing over IPv6 (SRv6)
packet processing. The extension reuses the <tt>Segment List</tt> entry
associated with each SRv6-INT endpoint to carry an equal-length telemetry
record, thereby preventing telemetry collection along the
path from further increasing the packet header length. A collector
obtains the resulting telemetry and provides it to local and global
controllers for closed-loop resource control.</t>
    </abstract>
  </front>
  <middle>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Segment Routing over IPv6 (SRv6) uses the Segment Routing Header
(SRH) to carry an ordered list of Segment Identifiers (SIDs) in
IPv6 packets <xref target="RFC8754"/>. Packets are forwarded according to the
<tt>Segment List</tt> in the SRH, and each segment endpoint executes the
behavior bound to the active SID <xref target="RFC8986"/>.</t>
      <t>Telemetry data can be recorded in data packets as they traverse a
network. In-band Network Telemetry (INT) <xref target="INT"/> and In Situ
Operations, Administration, and Maintenance (IOAM) <xref target="RFC9197"/> are
related but independent telemetry frameworks that use this
measurement approach.</t>
      <t>This document defines SRv6-INT, a protocol extension that integrates
INT telemetry collection with SRv6 packet processing. When a packet
reaches the endpoint associated with the active SID, the endpoint
replaces the <tt>Segment List</tt> entry containing that SID with equal-length node telemetry data, referred to as INT
Metadata. Reusing this header space prevents the packet header from growing
as telemetry data is collected at successive segment endpoints
<xref target="Yan23"/>.</t>
      <t>INT Metadata can contain a device identifier, timestamps, processing
latency, queue occupancy, and traffic counters. The collected
metadata can be used to monitor application traffic and provide
feedback for closed-loop resource control <xref target="Yan24"/>.</t>
      <t><xref target="scope"/> defines the scope and non-goals of this document.</t>
    </section>
    <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>

</section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>This document uses the terminology defined in <xref target="RFC8754"/> and
<xref target="RFC8986"/>, including SRH, <tt>Segment List</tt>, Segment Identifier,
SR Policy, <tt>Segments Left</tt>, <tt>Last Entry</tt>, FIB, and SRv6 Endpoint behavior.
It also defines the following terms:</t>
      <ul spacing="normal">
        <li>
          <t><strong>SRv6-INT</strong>: The protocol extension that integrates INT telemetry collection with SRv6 packet processing. Its packet format and processing behaviors are specified in <xref target="protocol-extension"/> and <xref target="processing-model"/>, respectively.</t>
        </li>
        <li>
          <t><strong>INT Metadata</strong>: A 128-bit per-node telemetry record carried in a reused <tt>Segment List</tt> entry.</t>
        </li>
        <li>
          <t><strong>SRv6-INT-capable node</strong>: An SRv6 node that supports one or more SRv6-INT processing behaviors.</t>
        </li>
        <li>
          <t><strong>SRv6-INT ingress (or headend)</strong>: An SRv6-INT-capable node that
constructs SRv6-INT packets for selected traffic according to an
SR Policy.</t>
        </li>
        <li>
          <t><strong>SRv6-INT endpoint</strong>: An SRv6-INT-capable node that instantiates one
or more local SIDs bound to SRv6-INT endpoint behaviors.</t>
        </li>
        <li>
          <t><strong>Service node</strong>: A node that hosts an application or service.</t>
        </li>
        <li>
          <t><strong>Collector</strong>: A deployed entity that obtains telemetry data provided
by SRv6-INT endpoints. It reads local telemetry data
from packets delivered to a service node or obtains complete
telemetry data after SRv6-INT processing at the final endpoint.</t>
        </li>
        <li>
          <t><strong>Local controller</strong>: A deployed entity that consumes local telemetry
data and makes local resource-control decisions.</t>
        </li>
        <li>
          <t><strong>Global controller</strong>: A deployed entity that consumes complete
telemetry data, forms a network-wide performance view, and makes resource-control
decisions.</t>
        </li>
      </ul>
      <t>This document does not mandate any specific implementation of the
collector, local controller, or global controller.</t>
    </section>
    <section anchor="problem-statement-and-scope">
      <name>Problem Statement and Scope</name>
      <section anchor="problem-statement">
        <name>Problem Statement</name>
        <t>An SRv6 packet already carries a <tt>Segment List</tt> in its SRH. If a separate
telemetry header is inserted and each endpoint appends a telemetry
record, the packet length increases as the packet traverses the path.
This growth increases the risk of exceeding the maximum transmission
unit (MTU) and adds data-plane processing overhead.</t>
        <t>To avoid this growth, each SRv6-INT endpoint replaces its corresponding
<tt>Segment List</tt> entry with the telemetry data it collects.</t>
        <t>The collector then obtains the resulting telemetry data, which the
local and global controllers use as feedback for closed-loop resource
control.</t>
      </section>
      <section anchor="scope">
        <name>Scope and Non-Goals</name>
        <t>This document defines:</t>
        <ul spacing="normal">
          <li>
            <t>The SRv6-INT protocol extension and associated control information;</t>
          </li>
          <li>
            <t>The reuse of <tt>Segment List</tt> entries to carry INT Metadata;</t>
          </li>
          <li>
            <t>The SRv6-INT processing behaviors defined in <xref target="processing-model"/>; and</t>
          </li>
          <li>
            <t>How the collector obtains telemetry data and how the local controller
and global controller consume the data for closed-loop resource
control.</t>
          </li>
        </ul>
        <t>This document does not define resource-control algorithms used by the
local and global controllers, APIs used for resource control, or
encapsulation formats and transport protocols for delivering telemetry
data to the collector.</t>
      </section>
      <section anchor="applicability">
        <name>Applicability</name>
        <t>SRv6-INT applies within an SRv6-INT domain. An SRv6-INT domain is a portion of an SRv6 network in which SRv6-INT is enabled. Only configured SRv6-INT ingress nodes and SRv6-INT endpoints perform SRv6-INT processing. Ordinary IPv6 transit nodes may forward packets between these nodes without examining or modifying SRv6-INT fields.</t>
        <t>SRv6-INT can be applied to all application traffic or only to traffic selected according to a local policy. This document does not define the selection criteria. The amount of traffic subject to SRv6-INT can be limited according to device capacity, packet overhead, and operational constraints.</t>
      </section>
    </section>
    <section anchor="protocol-extension">
      <name>SRv6-INT Protocol Extension</name>
      <t>This document applies only to SRHs that contain a complete <tt>Segment List</tt>.
SRv6-INT processing of a Reduced SRH is outside the scope of this document.</t>
      <section anchor="packet-format">
        <name>SRv6-INT Packet Format</name>
        <t>This section specifies the SRv6-INT packet format and the additional semantics assigned to SRH fields. Except as specified in this document, SRH fields are used as defined in <xref target="RFC8754"/>. IPv6 packet processing follows <xref target="RFC8200"/>.</t>
        <t>The format and semantics of the SRv6-INT fields are the same whether the SRH is added during encapsulation or included when an IPv6 packet is originated <xref target="RFC8754"/>.</t>
        <t><xref target="fig-packet"/> presents the encapsulation context and the SRH format. The
encapsulation in <xref target="fig-packet"/>(a) is schematic and is not drawn to scale. <xref target="fig-packet"/>(b) shows a <tt>Segment List</tt> entry after it has been reused for INT Metadata as specified in <xref target="entry-reuse"/>.</t>
        <figure anchor="fig-packet">
          <name>SRv6-INT Packet Format</name>
          <artwork type="ascii-art"><![CDATA[
    +---------------------------------------------------------------+
    |                        Ethernet Header                        |
    +---------------------------------------------------------------+
    |                   IPv6 Header (Next Header = 43)              |
    +---------------------------------------------------------------+
    |            Segment Routing Header (expanded below)            |
    +---------------------------------------------------------------+
    |                         Inner Packet                          |
    +---------------------------------------------------------------+

                      (a) Encapsulation (schematic)

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Next Header  |  Hdr Ext Len  | Routing Type  | Segments Left |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Last Entry   |     Flags     |              Tag              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |                                                               |
    |            Segment List[0] (128-bit IPv6 address)             |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |                                                               |
    |            Segment List[1] (128-bit IPv6 address)             |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |                                                               |
                                   ...
    |                                                               |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |                       INT Metadata[0]                         |
    |               (replaced Segment List[Last Entry])             |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                         SRv6-INT TLV                          |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   (b) Segment Routing Header (SRH)
]]></artwork>
        </figure>
        <t>where:</t>
        <t><tt>Next Header</tt>: Defined in Section 4.4 of <xref target="RFC8200"/>.</t>
        <t><tt>Hdr Ext Len</tt>: Defined in Section 4.4 of <xref target="RFC8200"/>.</t>
        <t><tt>Routing Type</tt>: 4.</t>
        <t><tt>Segments Left</tt>: Defined in Section 4.4 of <xref target="RFC8200"/>.</t>
        <t><tt>Last Entry</tt>: In a complete <tt>Segment List</tt>, identifies the entry containing
the first segment of the SR Policy, as specified in Section 2 of
<xref target="RFC8754"/>.</t>
        <t><tt>Flags</tt>: An 8-bit field defined in <xref target="RFC8754"/>. <xref target="control-and-feedback-fields"/> defines the use
of one bit for SRv6-INT.</t>
        <t><tt>Tag</tt>: A 16-bit field defined in <xref target="RFC8754"/>. Its use for SRv6-INT is defined
in <xref target="control-and-feedback-fields"/>.</t>
        <t><tt>Segment List[0..n]</tt>: A list of 128-bit IPv6 addresses encoded in
reverse SR Policy order, as specified in Section 2 of <xref target="RFC8754"/>. In a
complete <tt>Segment List</tt>, <tt>Segment List[0]</tt> contains the last segment of
the SR Policy.</t>
        <t>SRv6-INT TLV: An SRH TLV defined in <xref target="control-and-feedback-fields"/>. It follows the
<tt>Segment List</tt> and <bcp14>MUST</bcp14> be fully contained within the SRH, as determined
by <tt>Hdr Ext Len</tt>, in accordance with Section 2.1 of <xref target="RFC8754"/>.</t>
        <section anchor="control-and-feedback-fields">
          <name>SRv6-INT Control and Feedback Fields</name>
          <t>SRv6-INT uses one bit in the SRH <tt>Flags</tt> field, the SRH <tt>Tag</tt> field, and an SRv6-INT TLV to carry control and feedback information.</t>
          <t><tt>SRv6-INT Flag</tt>: A one-bit flag in the SRH <tt>Flags</tt> field that identifies an
SRv6-INT packet. The SRv6-INT ingress sets this flag when constructing
the packet, and it remains unchanged within the SRv6-INT domain. A
packet without this flag set <bcp14>MUST NOT</bcp14> undergo SRv6-INT processing. Its
bit position is <tt>TBD1</tt>; the existing implementation uses <tt>0x80</tt> for testing.</t>
          <t><tt>Tag</tt>: Indicates the SRv6-INT processing mode associated with the local
SID. Plain mode applies when the SID has no associated service node.
Service mode applies when the SID is associated with a service node.
This mode includes packet delivery to and return from that node. In Service mode,
<tt>Tag</tt> also distinguishes the endpoint-processing state from the
service-processing state. The existing implementation uses the following values:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Tag Value</th>
                <th align="left">Processing Mode and State</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>0x0000</tt></td>
                <td align="left">Plain mode.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>0x4000</tt></td>
                <td align="left">Service mode (endpoint-processing state), used at the SRv6-INT endpoint before delivery to the associated service node and after the packet returns.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>0x8000</tt></td>
                <td align="left">Service mode (service-processing state), used after delivery to the associated service node and before the packet returns to the SRv6-INT endpoint.</td>
              </tr>
            </tbody>
          </table>
          <t>The <tt>Tag</tt> values for these modes and states are <tt>TBD</tt>. <xref target="processing-behaviors"/> specifies how <tt>Tag</tt> is initialized and updated.</t>
          <t>SRv6-INT TLV: A packet with the <tt>SRv6-INT Flag</tt> set <bcp14>MUST</bcp14> carry an
SRv6-INT TLV after the <tt>Segment List</tt>.</t>
          <t>Following the alignment convention in Section 2.1 of <xref target="RFC8754"/>, the
SRv6-INT TLV has no alignment requirement. The TLV has the following
format:</t>
          <artwork type="ascii-art"><![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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Type      |    Length     |            MapInfo            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                              PF                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          <t>where:</t>
          <t><tt>Type</tt>: 8 bits. The value <tt>TBD2</tt> identifies the SRv6-INT TLV.
The IANA request is specified in <xref target="iana-tlv"/>.</t>
          <t><tt>Length</tt>: 8 bits. The length of the <tt>Value</tt> in octets, excluding the <tt>Type</tt>
and <tt>Length</tt> fields. Its value is 6; the total TLV length is 8 octets.</t>
          <t><tt>MapInfo</tt>: A 16-bit bitmap in which each set bit selects a telemetry data category to be collected by SRv6-INT endpoints. The bits are assigned as follows:</t>
          <sourcecode type="text"><![CDATA[
bit 0: Device ID
bit 1: Time Information
bit 2: Queue Information (Queue ID and Queue Length)
bit 3: Port Counter
bits 4-15: Reserved; MUST be zero on transmission and
           ignored on receipt
]]></sourcecode>
          <t><tt>PF</tt> (Performance Feedback): A 32-bit field carrying performance feedback
in Service mode. In this document, <tt>PF</tt> carries the result of the most
recently completed <tt>Service_Delay</tt> measurement for the local SID, as
defined in <xref target="metadata-format"/>. The endpoint stores this result
locally and sets <tt>PF</tt> to the stored value before delivering a subsequent
packet to the associated service node.</t>
          <t>Future specifications may extend <tt>PF</tt> to carry other performance metrics.
Any such extension <bcp14>MUST</bcp14> define how each metric is identified and specify
its semantics, units, and encoding.</t>
          <t><tt>PF</tt> is the only field in the SRv6-INT TLV that may change along the path.
<tt>Type</tt>, <tt>Length</tt>, and <tt>MapInfo</tt> <bcp14>MUST</bcp14> remain unchanged.</t>
        </section>
        <section anchor="metadata-format">
          <name>INT Metadata Format</name>
          <t>Each INT Metadata record is 128 bits, equal in length to a <tt>Segment List</tt>
entry. Plain mode and Service mode share the following format. Only the
interpretation of the time fields differs between the two modes.</t>
          <artwork type="ascii-art"><![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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Device ID   |                 Time Field 1                  ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~ Time Field 1  |                 Time Field 2                  ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~ Time Field 2  |Queue ID |          Queue Length               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                         Port Counter                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          <t><tt>~</tt> marks continuation across rows; the two parts bearing the same
time-field name form a single 32-bit field.</t>
          <t>where:</t>
          <t><tt>Device ID</tt>: 8 bits. Identifies the SRv6-INT endpoint that writes the
record.</t>
          <t><tt>Time Field 1</tt> and <tt>Time Field 2</tt>: Two 32-bit time fields. Their
interpretation is shown below:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Processing Mode and State</th>
                <th align="left">Time Field 1</th>
                <th align="left">Time Field 2</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Plain mode</td>
                <td align="left">
                  <tt>In_Time</tt></td>
                <td align="left">
                  <tt>Out_Time</tt></td>
              </tr>
              <tr>
                <td align="left">Service mode (service-processing state)</td>
                <td align="left">
                  <tt>In_Time</tt></td>
                <td align="left">
                  <tt>Out_Time</tt></td>
              </tr>
              <tr>
                <td align="left">Service mode (endpoint-processing state after service return)</td>
                <td align="left">
                  <tt>Service_Delay</tt></td>
                <td align="left">
                  <tt>Hop_Delay</tt></td>
              </tr>
            </tbody>
          </table>
          <t>The table uses the following field definitions:</t>
          <ul spacing="normal">
            <li>
              <t><tt>In_Time</tt>: The time of the packet's first arrival at the SRv6-INT
endpoint.</t>
            </li>
            <li>
              <t><tt>Out_Time</tt>: The time at which the packet leaves the SRv6-INT endpoint
in Plain mode or is transmitted to the associated service node in
Service mode.</t>
            </li>
            <li>
              <t><tt>Service_Delay</tt>: The interval from transmission to the service node
until the packet returns to the same SRv6-INT endpoint.</t>
            </li>
            <li>
              <t><tt>Hop_Delay</tt>: The interval from the packet's first arrival at the
SRv6-INT endpoint until it is forwarded toward the next segment after
returning from the service node.</t>
            </li>
          </ul>
          <t><tt>Queue ID</tt>: 5 bits. Identifies the queue.</t>
          <t><tt>Queue Length</tt>: 19 bits. The queue length.</t>
          <t><tt>Port Counter</tt>: 32 bits. The traffic count.</t>
        </section>
      </section>
      <section anchor="entry-reuse">
        <name>Segment List Entry Reuse</name>
        <t>The endpoint associated with the SID in <tt>Segment List[0]</tt> uses Plain
mode.</t>
        <t>When an SRv6-INT endpoint receives a packet destined to a local SID, it
reuses only the <tt>Segment List</tt> entry corresponding to that SID. <xref target="metadata-format"/> defines the INT Metadata format and field semantics.</t>
        <t>In Plain mode, the endpoint writes INT Metadata into that entry once. In
Service mode, the endpoint writes INT Metadata into the entry for
transmission to the associated service node and updates the same entry
after the packet returns. <xref target="processing-model"/> specifies the
write sequence.</t>
        <t>The endpoint <bcp14>MUST NOT</bcp14> modify any other <tt>Segment List</tt> entry. Once it has
completed SRv6-INT processing, the INT Metadata in the corresponding
entry <bcp14>MUST NOT</bcp14> be modified or interpreted as a SID.</t>
        <t>Entry reuse <bcp14>MUST NOT</bcp14> change the number of entries in the <tt>Segment List</tt>,
the 128-bit length of each entry, <tt>Last Entry</tt>, <tt>Hdr Ext Len</tt>, or the
order or value of any SID that remains to be processed.</t>
      </section>
    </section>
    <section anchor="processing-model">
      <name>SRv6-INT Processing Model</name>
      <t>This section defines SRv6-INT processing behaviors and their operation
within an SRv6-INT domain.</t>
      <section anchor="processing-behaviors">
        <name>SRv6-INT Processing Behaviors</name>
        <section anchor="packet-validation">
          <name>SRv6-INT Packet Validation</name>
          <t>A packet processed by <tt>End.T.INT</tt> or <tt>End.DT.INT</tt> <bcp14>MUST</bcp14> meet the
following requirements:</t>
          <ul spacing="normal">
            <li>
              <t>The <tt>SRv6-INT Flag</tt> is set.</t>
            </li>
            <li>
              <t>Each SRv6-INT TLV in the packet conforms to the format specified in
<xref target="control-and-feedback-fields"/>.</t>
            </li>
            <li>
              <t>The <tt>Tag</tt> field indicates one of the processing modes and states
defined in <xref target="control-and-feedback-fields"/>.</t>
            </li>
            <li>
              <t>The packet does not contain the HMAC TLV (Type 5) defined in
<xref target="RFC8754"/>. <xref target="security"/> explains this restriction.</t>
            </li>
          </ul>
        </section>
        <section anchor="h-encaps-int">
          <name>H.Encaps.INT Behavior</name>
          <t><tt>H.Encaps.INT</tt> extends the <tt>H.Encaps</tt> behavior defined in Section 5.1 of
<xref target="RFC8986"/>. An SRv6-INT ingress/headend applies it to selected traffic.</t>
          <t>For each selected packet, the SRv6-INT ingress/headend performs the
following operations:</t>
          <sourcecode type="text"><![CDATA[
S01. Construct an outer IPv6 header and an SRH containing the
     complete Segment List of the SR Policy applied to the packet.
     Set the outer IPv6 fields, except Payload Length, as specified
     by H.Encaps.
S02. Decrement the inner IPv6 Hop Limit or IPv4 TTL.

S03. Set the SRv6-INT Flag and initialize Tag to indicate Plain mode.
S04. Insert the SRv6-INT TLV, set MapInfo from local configuration,
     and initialize PF to 0.

S05. Update Hdr Ext Len and the outer IPv6 Payload Length.
S06. Submit the packet to IPv6 forwarding.
]]></sourcecode>
        </section>
        <section anchor="end-t-int">
          <name>End.T.INT Behavior</name>
          <t><tt>End.T.INT</tt> extends the <tt>End.T</tt> behavior defined in Section 4.3 of
<xref target="RFC8986"/>. Each instance is associated with an IPv6 FIB table <tt>T</tt> and
may also be associated with a service node.</t>
          <t>In the procedure below, <tt>M</tt> holds the 128-bit INT Metadata constructed
or updated for the local SID. <tt>Time Field 1</tt> and <tt>Time Field 2</tt> refer
to fields in <tt>M</tt>.</t>
          <t>When a packet's <tt>IPv6 Destination Address</tt> matches a local <tt>End.T.INT</tt>
SID, the SRv6-INT endpoint performs the following operations:</t>
          <sourcecode type="text"><![CDATA[
S01. Apply the checks in lines S05 through S11 of
     the End behavior in Section 4.1 of [RFC8986].

     Apply the checks in Section 6.1.1. Verify that
     0 < Segments Left <= Last Entry.
     If any check fails, handle the error according to
     Section 6.1.5 and stop processing.

S02. If (Tag does not indicate Service mode in the
     service-processing state) {
S03.     If the local SID is associated with a service node:
             Set Tag to indicate Service mode in the
             endpoint-processing state;
         Else:
             Set Tag to indicate Plain mode.
S04.     Initialize M to 0. Obtain Device ID, Queue ID, Queue
         Length, and Port Counter as selected by MapInfo, and store
         them in M.
S05. }

S06. If (Tag indicates Plain mode) {
S07.     If MapInfo selects Time Information:
             Time Field 1 = In_Time;
             Time Field 2 = Out_Time.

S08. } Else If (Tag indicates Service mode in the
                endpoint-processing state) {
S09.     If MapInfo selects Time Information:
             Time Field 1 = In_Time;
             Time Field 2 = Out_Time.
S10.     If a Service_Delay is stored locally for the local SID:
             PF = the Service_Delay stored for that SID.
S11.     Write M to Segment List[Segments Left].
S12.     Set Tag to indicate Service mode in the service-processing
         state; leave Segments Left and the IPv6 Destination Address
         unchanged.
S13.     Forward the packet to the service node associated with the
         local SID and stop processing.

S14. } Else If (Tag indicates Service mode in the
                service-processing state) {
S15.     Read Segment List[Segments Left] into M.
S16.     If MapInfo selects Time Information:
             Service_Delay = return packet arrival time
                             - Time Field 2;
             Hop_Delay = packet departure time from this endpoint
                        - Time Field 1;
             Time Field 1 = Service_Delay; Time Field 2 = Hop_Delay;
             Store Service_Delay locally for the local SID.
S17.     Set Tag to indicate Service mode in the endpoint-processing
         state and set PF to 0.
S18. }

S19. Write M to Segment List[Segments Left].
S20. Decrement the IPv6 Hop Limit and Segments Left.
S21. Set IPv6 Destination Address to Segment List[Segments Left].
S22. Submit the packet to the egress IPv6 FIB lookup using table T.
]]></sourcecode>
          <t>The service node <bcp14>MUST</bcp14> return the packet to the same SRv6-INT endpoint
without modifying the SRH. The packet's <tt>IPv6 Destination Address</tt> <bcp14>MUST</bcp14>
continue to identify the same locally instantiated <tt>End.T.INT</tt> SID.</t>
        </section>
        <section anchor="end-dt-int">
          <name>End.DT.INT Behavior</name>
          <t>A locally instantiated SID bound to the <tt>End.DT.INT</tt> behavior <bcp14>MUST</bcp14> be
the last segment of the SR Policy. Each such SID is associated with
a local decapsulation and delivery context.</t>
          <t>When a packet's <tt>IPv6 Destination Address</tt> matches a local <tt>End.DT.INT</tt>
SID, the SRv6-INT endpoint performs the following operations:</t>
          <sourcecode type="text"><![CDATA[
S01. Apply the checks in Section 6.1.1. Verify that
     Segments Left == 0 and that Tag does not indicate
     Service mode in the service-processing state.
     If any check fails, handle the error according to
     Section 6.1.5 and stop processing.

S02. Set Tag to indicate Plain mode.
S03. Obtain Device ID, In_Time, Out_Time, Queue ID, Queue Length, and
     Port Counter as selected by MapInfo, and store them in M.
S04. Write M to Segment List[0].
S05. Construct a packet containing the complete SRH and transfer it
     to the collector through a deployment-defined local interface.

S06. Remove the outer IPv6 header and its extension headers.
S07. Forward the inner packet according to the instance's local
     decapsulation and delivery context.
]]></sourcecode>
        </section>
        <section anchor="error-handling">
          <name>Error Handling</name>
          <t>Failures of checks inherited from <xref target="RFC8200"/>, <xref target="RFC8754"/>, or
<xref target="RFC8986"/> are handled as specified for those checks in the cited
document.</t>
          <t>A failure of an SRv6-INT check specified in <xref target="packet-validation"/> or in the applicable <tt>End.T.INT</tt> or
<tt>End.DT.INT</tt> procedure is an SRv6-INT processing error. The same
applies in either of the following cases:</t>
          <ul spacing="normal">
            <li>
              <t>Telemetry data selected by <tt>MapInfo</tt> cannot be obtained
or represented in the corresponding field defined in <xref target="metadata-format"/>.</t>
            </li>
            <li>
              <t>INT Metadata replacement violates <xref target="entry-reuse"/>.</t>
            </li>
          </ul>
          <t>On an SRv6-INT processing error, the node <bcp14>MUST</bcp14> stop SRv6-INT
processing and discard the packet. It <bcp14>MUST NOT</bcp14> modify any further
<tt>Segment List</tt> entries.</t>
        </section>
      </section>
      <section anchor="domain-and-node-roles">
        <name>SRv6-INT Domain and Node Roles</name>
        <t><xref target="fig-domain"/> shows an SRv6-INT domain. Packets steered by
the SR Policy <tt>&lt;S1, S2, S3&gt;</tt> are processed by <tt>N1</tt>, <tt>N2</tt>, and <tt>N3</tt>
in that order. The nodes have the following roles:</t>
        <ul spacing="normal">
          <li>
            <t><tt>H</tt> is the SRv6-INT ingress/headend executing <tt>H.Encaps.INT</tt>.</t>
          </li>
          <li>
            <t><tt>N1</tt> executes <tt>End.T.INT</tt> for SID <tt>S1</tt>. No service node is associated
with <tt>S1</tt>, so <tt>N1</tt> uses Plain mode.</t>
          </li>
          <li>
            <t><tt>N2</tt> executes <tt>End.T.INT</tt> for SID <tt>S2</tt>. <tt>S2</tt> is associated with the
service node shown, so <tt>N2</tt> uses Service mode.</t>
          </li>
          <li>
            <t><tt>R</tt> is an ordinary IPv6 transit node between <tt>N2</tt> and <tt>N3</tt>.</t>
          </li>
          <li>
            <t><tt>N3</tt> executes <tt>End.DT.INT</tt> for the final SID <tt>S3</tt>.</t>
          </li>
        </ul>
        <figure anchor="fig-domain">
          <name>Node Roles and Closed-Loop Resource Control in an SRv6-INT Domain</name>
          <artwork type="ascii-art"><![CDATA[
         +--------------- SRv6-INT Domain ----------------+
Original |                                                | Forwarded
 Packet  |                                                |  Packet
     --->[H]-->[N1]-->[N2]---->[R]--------->[N3]-------------->
         |              ^                    :^           |
         |              |                    ::           |
         |              v                    ::           |
         |       +--------------+            ::           |
         |       | Service Node |            ::           |
         |       +--------------+            ::           |
         |              :^                   ::           |
         |       Local  ::         Complete  ::           |
         |    Telemetry ::         Telemetry ::           |
         |              v: Config            v: Config    |
         |  +-------------------+  +-------------------+  |
         |  |    Collector /    |  |    Collector /    |  |
         |  | Local Controller  |  | Global Controller |  |
         |  +-------------------+  +-------------------+  |
         |                                                |
         +------------------------------------------------+
]]></artwork>
        </figure>
        <t>Solid arrows show packet forwarding, including delivery from <tt>N2</tt> to
the service node and return to <tt>N2</tt>. Dotted arrows show telemetry data
provided by <tt>N2</tt> and <tt>N3</tt> to the corresponding collectors. Arrows
labeled <tt>Config</tt> show resource configuration. A slash indicates that
the collector and controller roles may be co-located.</t>
        <t>The following requirements apply within an SRv6-INT domain:</t>
        <ul spacing="normal">
          <li>
            <t>Each non-final SID in an SR Policy used for SRv6-INT <bcp14>MUST</bcp14> be
instantiated at an SRv6-INT endpoint and bound to the <tt>End.T.INT</tt>
behavior. The final SID <bcp14>MUST</bcp14> be instantiated at an SRv6-INT endpoint
and bound to the <tt>End.DT.INT</tt> behavior. For each non-final SID, the
deployment configuration <bcp14>MUST</bcp14> identify any associated service node.</t>
          </li>
          <li>
            <t>The collector <bcp14>MUST</bcp14> interpret the INT Metadata using information associated with the deployed SR Policy.</t>
          </li>
          <li>
            <t>SRv6-INT endpoints whose <tt>In_Time</tt> or <tt>Out_Time</tt> values are compared
<bcp14>MUST</bcp14> use clocks synchronized to a common time reference.
<tt>Service_Delay</tt> and <tt>Hop_Delay</tt> <bcp14>MAY</bcp14> be computed using the local
clock of the endpoint that writes them.</t>
          </li>
        </ul>
        <t>In the following example, <tt>H</tt> sets <tt>MapInfo</tt> to select telemetry data categories.
<tt>N2</tt> has stored a <tt>Service_Delay</tt> measurement obtained from an earlier
packet. <tt>A_H</tt> denotes the <tt>Source Address</tt> in the outer IPv6 header
constructed by <tt>H</tt>.
<tt>M1</tt> and <tt>M3</tt> denote the INT Metadata written
by <tt>N1</tt> and <tt>N3</tt>, respectively. <tt>T2</tt> denotes the INT Metadata written by
<tt>N2</tt> before delivery to the service node; <tt>M2</tt> denotes that INT Metadata
after <tt>N2</tt> updates its time fields when the packet returns.</t>
        <t>The notation follows Section 6.1 of <xref target="RFC8754"/>. <tt>(A_H,S1)</tt> lists the
outer IPv6 Source and Destination Addresses. <tt>(S3,S2,S1;SL=2)</tt> lists
the <tt>Segment List</tt> in encoding order. Other header fields and the inner
packet are omitted.</t>
        <t>When <tt>H</tt> receives a selected packet, it executes <tt>H.Encaps.INT</tt> as
specified in <xref target="h-encaps-int"/>, sets <tt>Tag</tt> to indicate Plain mode,
and forwards the packet:</t>
        <sourcecode type="text"><![CDATA[
P1: (A_H,S1)(S3,S2,S1;SL=2)
]]></sourcecode>
        <t><tt>N1</tt> executes <tt>End.T.INT</tt> in Plain mode. It sets <tt>Tag</tt> to indicate Plain
mode, writes <tt>M1</tt> to <tt>Segment List[2]</tt>, and forwards the packet to <tt>N2</tt>:</t>
        <sourcecode type="text"><![CDATA[
P2: (A_H,S2)(S3,S2,M1;SL=1)
]]></sourcecode>
        <t><tt>N2</tt> executes <tt>End.T.INT</tt> in Service mode. Before delivering the packet
to the service node, <tt>N2</tt> sets <tt>Tag</tt> to indicate the endpoint-processing
state, writes the stored <tt>Service_Delay</tt> into <tt>PF</tt>, and writes <tt>T2</tt> to
<tt>Segment List[1]</tt>. It then sets <tt>Tag</tt> to indicate the service-processing
state. The <tt>IPv6 Destination Address</tt> and <tt>SL</tt> remain unchanged:</t>
        <sourcecode type="text"><![CDATA[
P3: (A_H,S2)(S3,T2,M1;SL=1)
]]></sourcecode>
        <t>When the packet is delivered to the service node, the collector reads the INT
Metadata denoted by <tt>T2</tt> as local telemetry data and obtains the
<tt>Service_Delay</tt> measured for the earlier packet from <tt>PF</tt>.</t>
        <t>The service node returns the packet to <tt>N2</tt> without modifying the SRH. As
specified in <xref target="end-t-int"/>, <tt>N2</tt> replaces <tt>Time Field 1</tt> and
<tt>Time Field 2</tt> in <tt>T2</tt> with <tt>Service_Delay</tt> and <tt>Hop_Delay</tt>,
respectively, producing <tt>M2</tt>.
<tt>N2</tt> stores <tt>Service_Delay</tt> locally for <tt>S2</tt>, restores <tt>Tag</tt> to indicate
the endpoint-processing state, and sets <tt>PF</tt> to 0. It then writes <tt>M2</tt>
to <tt>Segment List[1]</tt>, sets <tt>SL</tt> to 0 and the <tt>IPv6 Destination Address</tt>
to <tt>S3</tt>, and forwards the packet:</t>
        <sourcecode type="text"><![CDATA[
P4: (A_H,S3)(S3,M2,M1;SL=0)
]]></sourcecode>
        <t><tt>R</tt> forwards the packet to <tt>N3</tt> using ordinary IPv6 forwarding, leaving the
fields shown above unchanged. <tt>N3</tt> executes <tt>End.DT.INT</tt> as specified
in <xref target="end-dt-int"/>. It sets <tt>Tag</tt> to indicate Plain mode and
writes <tt>M3</tt> to <tt>Segment List[0]</tt>. Before decapsulation, the packet is:</t>
        <sourcecode type="text"><![CDATA[
P5: (A_H,S3)(M3,M2,M1;SL=0)
]]></sourcecode>
        <t><tt>N3</tt> provides the collector with a packet containing the complete SRH,
then removes the outer IPv6 header and its extension headers and
forwards the inner packet. The collector obtains the INT Metadata
sequence <tt>M1</tt>, <tt>M2</tt>, <tt>M3</tt>.</t>
      </section>
    </section>
    <section anchor="closed-loop-framework">
      <name>Closed-Loop Resource-Control Framework</name>
      <t>SRv6-INT supports local and global control loops using telemetry data
collected according to <tt>MapInfo</tt>.</t>
      <t>In the local loop, the collector obtains local telemetry data from
packets delivered to a service node and provides the data to the local
controller. The local controller uses these data to maintain a local
performance view and produce configurations for the relevant service
resources.</t>
      <t>In the global loop, an SRv6-INT endpoint executing <tt>End.DT.INT</tt>
provides the complete INT Metadata sequence to the collector. The
collector provides these data to the global controller, which uses them
to generate configurations for the relevant network or service
resources.</t>
      <t>Once applied, the resource configurations affect the processing of
subsequent packets. SRv6-INT endpoints collect new telemetry data from
those packets, and the controllers use these data to update their
performance views and resource configurations, thereby closing the
control loops.</t>
      <t>Invalid telemetry data <bcp14>MUST NOT</bcp14> be used to generate resource
configurations. This document does not define the algorithms used to
derive performance views or resource configurations.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>Within an SRv6-INT domain, SRv6-INT-capable nodes are trusted to
perform only those SRv6-INT processing operations authorized by their
local configuration. The domain <bcp14>MUST</bcp14> apply the ingress filtering
specified in Section 5.1 of <xref target="RFC8754"/>. Unless explicitly permitted by local policy, domain boundary
nodes <bcp14>MUST</bcp14> discard any packet with the <tt>SRv6-INT Flag</tt> set that would otherwise cross the domain boundary in either direction.</t>
      <t>The HMAC defined in <xref target="RFC8754"/> is calculated over all <tt>Segment List</tt>
entries. Because SRv6-INT replaces these entries with INT Metadata,
the RFC 8754 HMAC TLV is incompatible with the <tt>Segment List</tt> entry
replacement mechanism. Therefore, an SRv6-INT packet <bcp14>MUST NOT</bcp14> contain
this TLV.</t>
      <t>SRv6-INT telemetry collection is subject to threats involving
unauthorized modification of telemetry data, information disclosure,
and denial of service, similar to those discussed for IOAM in
Section 9 of <xref target="RFC9197"/>. Within this closed-loop framework,
unauthorized manipulation of INT Metadata or <tt>PF</tt> can distort
performance assessments and lead to inappropriate resource
configurations. If
the trust assumptions within the domain no longer hold, boundary
filtering alone is insufficient to address these threats.</t>
      <t>Deployments <bcp14>SHOULD</bcp14> enforce authorization controls on access to and
transfer of telemetry data and on resource-configuration operations.
They <bcp14>SHOULD</bcp14> also use mechanisms outside the scope of this document to
protect the confidentiality and integrity of communications involving
the Collector, Local Controller, and Global Controller.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>If this document is approved, IANA is requested to make the assignments
specified below. Unassigned values are denoted by <tt>TBD1</tt> through <tt>TBD4</tt>.</t>
      <section anchor="iana-flag">
        <name>SRH Flag Assignment</name>
        <t>The requested assignment from the "Segment Routing Header Flags" registry is:</t>
        <table anchor="_table-iana-flag">
          <thead>
            <tr>
              <th align="left">Bit</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>TBD1</tt></td>
              <td align="left">
                <tt>SRv6-INT Flag</tt></td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
        <t><xref target="control-and-feedback-fields"/> defines the flag semantics and identifies the value used for testing.</t>
      </section>
      <section anchor="iana-tlv">
        <name>SRv6-INT TLV Type Assignment</name>
        <t>The requested assignment from the mutable range (128-251) of the "Segment Routing Header TLVs" registry is:</t>
        <table anchor="_table-iana-tlv">
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>TBD2</tt></td>
              <td align="left">SRv6-INT TLV</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
        <t><xref target="control-and-feedback-fields"/> defines the TLV format and field mutability.</t>
      </section>
      <section anchor="iana-behaviors">
        <name>SRv6 Endpoint Behavior Assignments</name>
        <t>The requested assignments from the "SRv6 Endpoint Behaviors" registry are:</t>
        <table anchor="_table-iana-behaviors">
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Endpoint Behavior</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>TBD3</tt></td>
              <td align="left">
                <tt>End.T.INT</tt></td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>TBD4</tt></td>
              <td align="left">
                <tt>End.DT.INT</tt></td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
        <t>No code point in this registry is requested for <tt>H.Encaps.INT</tt>.</t>
        <t>The values used in the SRH <tt>Tag</tt> field are not SRv6 Endpoint Behavior
code points, and this document requests no IANA action for them.
<xref target="protocol-extension"/> and <xref target="processing-model"/> specify their
semantics and when the field is updated.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>
        <reference anchor="RFC8754">
          <front>
            <title>IPv6 Segment Routing Header (SRH)</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="D. Dukes" initials="D." role="editor" surname="Dukes"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="J. Leddy" initials="J." surname="Leddy"/>
            <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
            <author fullname="D. Voyer" initials="D." surname="Voyer"/>
            <date month="March" year="2020"/>
            <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="RFC8986">
          <front>
            <title>Segment Routing over IPv6 (SRv6) Network Programming</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="P. Camarillo" initials="P." role="editor" surname="Camarillo"/>
            <author fullname="J. Leddy" initials="J." surname="Leddy"/>
            <author fullname="D. Voyer" initials="D." surname="Voyer"/>
            <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
            <author fullname="Z. Li" initials="Z." surname="Li"/>
            <date month="February" year="2021"/>
            <abstract>
              <t>The Segment Routing over IPv6 (SRv6) Network Programming framework enables a network operator or an application to specify a packet processing program by encoding a sequence of instructions in the IPv6 packet header.</t>
              <t>Each instruction is implemented on one or several nodes in the network and identified by an SRv6 Segment Identifier in the packet.</t>
              <t>This document defines the SRv6 Network Programming concept and specifies the base set of SRv6 behaviors that enables the creation of interoperable overlays with underlay optimization.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8986"/>
          <seriesInfo name="DOI" value="10.17487/RFC8986"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="INT" target="https://p4.org/wp-content/uploads/sites/53/p4-spec/docs/INT_v2_1.pdf">
          <front>
            <title>In-band Network Telemetry (INT) Dataplane Specification</title>
            <author>
              <organization>P4.org Applications Working Group</organization>
            </author>
            <date year="2020" month="November"/>
          </front>
          <seriesInfo name="Version" value="2.1"/>
        </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>
        <reference anchor="Yan23" target="https://doi.org/10.1109/ICC45041.2023.10278740">
          <front>
            <title>SRv6-INT: Runtime Monitoring for Green Service Function Chaining in B5G-MEC</title>
            <author initials="X." surname="Yan">
              <organization/>
            </author>
            <author initials="Z." surname="Xu">
              <organization/>
            </author>
            <author initials="B." surname="Chen">
              <organization/>
            </author>
            <author initials="Z." surname="Zhu">
              <organization/>
            </author>
            <date year="2023" month="May"/>
          </front>
          <seriesInfo name="ICC 2023 - IEEE International Conference on Communications" value="pp. 3145-3150"/>
          <seriesInfo name="DOI" value="10.1109/ICC45041.2023.10278740"/>
          <refcontent>IEEE</refcontent>
        </reference>
        <reference anchor="Yan24" target="https://doi.org/10.1109/TNSM.2024.3404461">
          <front>
            <title>Self-Adaptive SRv6-INT-Driven System Adjustment in Runtime for Reliable Service Function Chaining</title>
            <author initials="X." surname="Yan">
              <organization/>
            </author>
            <author initials="N. L. S." surname="da Fonseca">
              <organization/>
            </author>
            <author initials="Z." surname="Zhu">
              <organization/>
            </author>
            <date year="2024" month="October"/>
          </front>
          <seriesInfo name="IEEE Transactions on Network and Service Management" value="vol. 21, no. 5, pp. 4962-4973"/>
          <seriesInfo name="DOI" value="10.1109/TNSM.2024.3404461"/>
          <refcontent>Institute of Electrical and Electronics Engineers (IEEE)</refcontent>
        </reference>
      </references>
    </references>

<section numbered="false" anchor="contributors">
      <name>Contributors</name>
      <t>Xuefeng Yan, Xiaoliang Chen, and Zuqing Zhu contributed to the content of this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
