<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="exp" docName="draft-ietf-idr-bgp-sr-segtypes-ext-08" number="9831" consensus="true" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" sortRefs="true" symRefs="true" tocInclude="true" tocDepth="3" prepTime="2025-09-12T13:07:13" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-idr-bgp-sr-segtypes-ext-08" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9831" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Segment Type Ext for BGP SR Policy">Segment Type Extensions for BGP Segment Routing (SR) Policy</title>
    <seriesInfo name="RFC" value="9831" stream="IETF"/>
    <author fullname="Ketan Talaulikar" initials="K." role="editor" surname="Talaulikar">
      <organization showOnFrontPage="true">Cisco Systems</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>ketant.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
      <organization showOnFrontPage="true">Cisco Systems</organization>
      <address>
        <postal>
          <city>Brussels</city>
          <country>Belgium</country>
        </postal>
        <email>cfilsfil@cisco.com</email>
      </address>
    </author>
    <author fullname="Stefano Previdi" initials="S." surname="Previdi">
      <organization showOnFrontPage="true">Huawei Technologies</organization>
      <address>
        <postal>
          <country>Italy</country>
        </postal>
        <email>stefano@previdi.net</email>
      </address>
    </author>
    <author fullname="Paul Mattes" initials="P." surname="Mattes">
      <organization showOnFrontPage="true">Microsoft</organization>
      <address>
        <postal>
          <street>One Microsoft Way</street>
          <city>Redmond</city>
          <region>WA</region>
          <code>98052</code>
          <country>United States of America</country>
        </postal>
        <email>pamattes@microsoft.com</email>
      </address>
    </author>
    <author fullname="Dhanendra Jain" initials="D." surname="Jain">
      <organization showOnFrontPage="true">Google</organization>
      <address>
        <email>dhanendra.ietf@gmail.com</email>
      </address>
    </author>
    <date month="09" year="2025"/>
    <area>RTG</area>
    <workgroup>idr</workgroup>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document specifies the signaling of additional Segment Routing (SR) 
      Segment Types for SR Policies in BGP
      using the SR Policy Subsequent Address Family Identifier (SAFI).</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This document is not an Internet Standards Track specification; it is
            published for examination, experimental implementation, and
            evaluation.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document defines an Experimental Protocol for the Internet
            community.  This document is a product of the Internet Engineering
            Task Force (IETF).  It represents the consensus of the IETF community.
            It has received public review and has been approved for publication
            by the Internet Engineering Steering Group (IESG).  Not all documents
            approved by the IESG are candidates for any level of Internet
            Standard; see Section 2 of RFC 7841. 
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9831" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2025 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-segment-type-sub-tlvs">Segment Type Sub-TLVs</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-segment-type-c">Segment Type C</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t indent="0" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-segment-type-d">Segment Type D</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.3">
                <t indent="0" pn="section-toc.1-1.2.2.3.1"><xref derivedContent="2.3" format="counter" sectionFormat="of" target="section-2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-segment-type-e">Segment Type E</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.4">
                <t indent="0" pn="section-toc.1-1.2.2.4.1"><xref derivedContent="2.4" format="counter" sectionFormat="of" target="section-2.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-segment-type-f">Segment Type F</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.5">
                <t indent="0" pn="section-toc.1-1.2.2.5.1"><xref derivedContent="2.5" format="counter" sectionFormat="of" target="section-2.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-segment-type-g">Segment Type G</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.6">
                <t indent="0" pn="section-toc.1-1.2.2.6.1"><xref derivedContent="2.6" format="counter" sectionFormat="of" target="section-2.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-segment-type-h">Segment Type H</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.7">
                <t indent="0" pn="section-toc.1-1.2.2.7.1"><xref derivedContent="2.7" format="counter" sectionFormat="of" target="section-2.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-segment-type-i">Segment Type I</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.8">
                <t indent="0" pn="section-toc.1-1.2.2.8.1"><xref derivedContent="2.8" format="counter" sectionFormat="of" target="section-2.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-segment-type-j">Segment Type J</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.9">
                <t indent="0" pn="section-toc.1-1.2.2.9.1"><xref derivedContent="2.9" format="counter" sectionFormat="of" target="section-2.9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-segment-type-k">Segment Type K</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.10">
                <t indent="0" pn="section-toc.1-1.2.2.10.1"><xref derivedContent="2.10" format="counter" sectionFormat="of" target="section-2.10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-sr-policy-segment-flags">SR Policy Segment Flags</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sr-policy-segment-list-sub-">SR Policy Segment List Sub-TLVs</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t indent="0" pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sr-policy-segment-flags-3">SR Policy Segment Flags</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-manageability-consideration">Manageability Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="INTRO" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">The BGP Segment Routing (SR) Policy Subsequent Address Family Identifier
      (SAFI) was introduced by <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/>
      for the advertisement of SR Policies <xref target="RFC8402" format="default" sectionFormat="of" derivedContent="RFC8402"/>. <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/> introduced the base SR Segment
      Types A and B as specified by the SR Policy Architecture <xref target="RFC9256" format="default" sectionFormat="of" derivedContent="RFC9256"/>.</t>
      <t indent="0" pn="section-1-2">This document specifies the extensions for the advertisement of the
      remaining SR Segment Types defined in <xref target="RFC9256" format="default" sectionFormat="of" derivedContent="RFC9256"/> in the SR
      Policy SAFI for both SR-MPLS (see <xref target="RFC8660" format="default" sectionFormat="of" derivedContent="RFC8660"/>) and Segment Routing over IPv6 (SRv6) (see <xref target="RFC8754" format="default" sectionFormat="of" derivedContent="RFC8754"/> and <xref target="RFC8986" format="default" sectionFormat="of" derivedContent="RFC8986"/>).</t>
      <t indent="0" pn="section-1-3">The extensions in this document do not impact the SR Policy
      operations or fault management as specified in <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/>.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t indent="0" pn="section-1.1-1">
    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" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
    </section>
    <section anchor="SEGMENTTLV" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-segment-type-sub-tlvs">Segment Type Sub-TLVs</name>
      <t indent="0" pn="section-2-1">The Segment List sub-TLV <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/>
      encodes a single explicit path towards the endpoint as described in
      <xref target="RFC9256" sectionFormat="of" section="5.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-5.1" derivedContent="RFC9256"/>. The Segment List sub-TLV
      includes the elements of the paths (i.e., segments).</t>
      <t indent="0" pn="section-2-2">A Segment sub-TLV describes a single segment in a segment list (i.e.,
      a single element of the explicit path).</t>
      <t indent="0" pn="section-2-3"><xref target="RFC9256" sectionFormat="of" section="4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-4" derivedContent="RFC9256"/> defines several Segment Types
      for SR-MPLS and SRv6 that are listed below as a reminder:</t>
      <dl spacing="normal" newline="false" indent="10" pn="section-2-4">
        <dt pn="section-2-4.1">Type A:</dt>
        <dd pn="section-2-4.2">SR-MPLS Label</dd>
        <dt pn="section-2-4.3">Type B:</dt>
        <dd pn="section-2-4.4">SRv6 SID</dd>
        <dt pn="section-2-4.5">Type C:</dt>
        <dd pn="section-2-4.6">IPv4 Prefix with optional SR Algorithm</dd>
        <dt pn="section-2-4.7">Type D:</dt>
        <dd pn="section-2-4.8">IPv6 Global Prefix with optional SR Algorithm for SR-MPLS</dd>
        <dt pn="section-2-4.9">Type E:</dt>
        <dd pn="section-2-4.10">IPv4 Prefix with Local Interface ID</dd>
        <dt pn="section-2-4.11">Type F:</dt>
        <dd pn="section-2-4.12">IPv4 Addresses for link endpoints as Local, Remote pair</dd>
        <dt pn="section-2-4.13">Type G:</dt>
        <dd pn="section-2-4.14">IPv6 Prefix and Interface ID for link endpoints as Local, Remote pair for SR-MPLS</dd>
        <dt pn="section-2-4.15">Type H:</dt>
        <dd pn="section-2-4.16">IPv6 Addresses for link endpoints as Local, Remote pair for SR-MPLS</dd>
        <dt pn="section-2-4.17">Type I:</dt>
        <dd pn="section-2-4.18">IPv6 Global Prefix with optional SR Algorithm for SRv6</dd>
        <dt pn="section-2-4.19">Type J:</dt>
        <dd pn="section-2-4.20">IPv6 Prefix and Interface ID for link endpoints as Local, Remote pair for SRv6</dd>
        <dt pn="section-2-4.21">Type K:</dt>
        <dd pn="section-2-4.22">IPv6 Addresses for link endpoints as Local, Remote pair for SRv6</dd>
      </dl>
      <t indent="0" pn="section-2-5"><xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/> specifies Segment Type
      Sub-TLVs for the Segment Types A and B. The following subsections
      specify the sub-TLVs used for encoding each of the other Segment Types
      above.</t>
      <t indent="0" pn="section-2-6">As specified in Sections <xref target="RFC9830" sectionFormat="bare" section="2.4.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9830#section-2.4.4" derivedContent="RFC9830"/> and <xref target="RFC9830" sectionFormat="bare" section="2.4.4.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9830#section-2.4.4.2" derivedContent="RFC9830"/> of <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/>, validation of an explicit path
      encoded by the Segment List sub-TLV is beyond the scope of BGP and
      performed by the Segment Routing Policy Module (SRPM) as described in
      <xref target="RFC9830" sectionFormat="of" section="5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9830#section-5" derivedContent="RFC9830"/>. As specified in 
      <xref target="RFC9256" sectionFormat="of" section="5.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-5.1" derivedContent="RFC9256"/>, a mix of SR-MPLS and SRv6 segments make the
      segment-list invalid.</t>
      <section anchor="TYPEC" numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-segment-type-c">Segment Type C</name>
        <t indent="0" pn="section-2.1-1">The Type C Segment sub-TLV encodes an IPv4 node address, SR
        Algorithm, and an optional SR-MPLS Segment Identifier (SID). The format is as follows:
        </t>
        <figure align="left" suppress-title="false" pn="figure-1">
          <name slugifiedName="name-type-c-segment-sub-tlv">Type C Segment Sub-TLV</name>
          <artwork align="left" name="" type="" alt="" pn="section-2.1-2.1">
 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      |     Flags     |  SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 IPv4 Node Address (4 octets)                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                SR-MPLS SID (optional, 4 octets)               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-2.1-3">Where:</t>
        <dl spacing="normal" newline="false" indent="3" pn="section-2.1-4">
          <dt pn="section-2.1-4.1">Type:</dt>
          <dd pn="section-2.1-4.2">3</dd>
          <dt pn="section-2.1-4.3">Length:</dt>
          <dd pn="section-2.1-4.4">Specifies the length of the value field (i.e., not
  including Type and Length fields) in terms of octets. The value
  <bcp14>MUST</bcp14> be 10 when the SR-MPLS SID is present; else, it
  <bcp14>MUST</bcp14> be 6.</dd>
          <dt pn="section-2.1-4.5">Flags:</dt>
          <dd pn="section-2.1-4.6">1 octet of flags as defined in <xref target="SEGMENTFLAGS" format="default" sectionFormat="of" derivedContent="Section 2.10"/>.</dd>
          <dt pn="section-2.1-4.7">SR Algorithm:</dt>
          <dd pn="section-2.1-4.8">1 octet specifying the SR Algorithm as described in
  <xref target="RFC8402" sectionFormat="of" section="3.1.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8402#section-3.1.1" derivedContent="RFC8402"/> when the A-Flag as
  defined in <xref target="SEGMENTFLAGS" format="default" sectionFormat="of" derivedContent="Section 2.10"/> is set. The SR
  Algorithm is used by the SRPM <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/> as described in <xref target="RFC9256" sectionFormat="of" section="4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-4" derivedContent="RFC9256"/>. When the A-Flag is not set, this field <bcp14>MUST</bcp14> be set
  to zero on transmission and <bcp14>MUST</bcp14> be ignored on receipt.</dd>
          <dt pn="section-2.1-4.9">IPv4 Node Address:</dt>
          <dd pn="section-2.1-4.10">A 4-octet IPv4 address representing a
  node.</dd>
          <dt pn="section-2.1-4.11">SR-MPLS SID:</dt>
          <dd pn="section-2.1-4.12">Optional. A 4-octet field containing a label, Traffic Class (TC), bottom-of-stack (S), and
  TTL as defined for Segment Type A <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/>.</dd>
        </dl>
      </section>
      <section anchor="TYPED" numbered="true" toc="include" removeInRFC="false" pn="section-2.2">
        <name slugifiedName="name-segment-type-d">Segment Type D</name>
        <t indent="0" pn="section-2.2-1">The Type D Segment sub-TLV encodes an IPv6 node address, SR
        Algorithm, and an optional SR-MPLS SID. The format is as follows:
        </t>
        <figure align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-type-d-segment-sub-tlv">Type D Segment Sub-TLV</name>
          <artwork align="left" name="" type="" alt="" pn="section-2.2-2.1">
 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      |     Flags     |  SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                IPv6 Node Address (16 octets)                //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                SR-MPLS SID (optional, 4 octets)               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-2.2-3">Where:</t>
        <dl spacing="normal" newline="false" indent="3" pn="section-2.2-4">
          <dt pn="section-2.2-4.1">Type:</dt>
          <dd pn="section-2.2-4.2">4</dd>
          <dt pn="section-2.2-4.3">Length:</dt>
          <dd pn="section-2.2-4.4">Specifies the length of the value field (i.e.,
          not including Type and Length fields) in terms of octets. The value
          <bcp14>MUST</bcp14> be 22 when the SR-MPLS SID is present; else, it
          <bcp14>MUST</bcp14> be 18.</dd>
          <dt pn="section-2.2-4.5">Flags:</dt>
          <dd pn="section-2.2-4.6">1 octet of flags as defined in <xref target="SEGMENTFLAGS" format="default" sectionFormat="of" derivedContent="Section 2.10"/>.</dd>
          <dt pn="section-2.2-4.7">SR Algorithm:</dt>
          <dd pn="section-2.2-4.8">1 octet specifying the SR Algorithm as
          described in <xref target="RFC8402" sectionFormat="of" section="3.1.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8402#section-3.1.1" derivedContent="RFC8402"/> when the A-Flag as defined in <xref target="SEGMENTFLAGS" format="default" sectionFormat="of" derivedContent="Section 2.10"/> is set. The SR Algorithm is
          used by the SRPM <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/> as described in <xref target="RFC9256" sectionFormat="of" section="4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-4" derivedContent="RFC9256"/>. When the A-Flag is not set, this field
          <bcp14>MUST</bcp14> be set to zero on transmission and
          <bcp14>MUST</bcp14> be ignored on receipt.</dd>
          <dt pn="section-2.2-4.9">IPv6 Node Address:</dt>
          <dd pn="section-2.2-4.10">A 16-octet IPv6 address representing
          a node.</dd>
          <dt pn="section-2.2-4.11">SR-MPLS SID:</dt>
          <dd pn="section-2.2-4.12">Optional.  A 4-octet field containing a label,
          TC, S, and TTL as defined for Segment Type A <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/>.</dd>
        </dl>
      </section>
      <section anchor="TYPEE" numbered="true" toc="include" removeInRFC="false" pn="section-2.3">
        <name slugifiedName="name-segment-type-e">Segment Type E</name>
        <t indent="0" pn="section-2.3-1">The Type E Segment sub-TLV encodes an IPv4 node address, a local
        interface Identifier (Local Interface ID), and an optional SR-MPLS
        SID. The format is as follows: </t>
        <figure align="left" suppress-title="false" pn="figure-3">
          <name slugifiedName="name-type-e-segment-sub-tlv">Type E Segment Sub-TLV</name>
          <artwork align="left" name="" type="" alt="" pn="section-2.3-2.1">
 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      |     Flags     |   RESERVED    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Local Interface ID (4 octets)                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 IPv4 Node Address (4 octets)                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                SR-MPLS SID (optional, 4 octets)               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-2.3-3">Where:</t>
        <dl spacing="normal" newline="false" indent="3" pn="section-2.3-4">
          <dt pn="section-2.3-4.1">Type:</dt>
          <dd pn="section-2.3-4.2">5</dd>
          <dt pn="section-2.3-4.3">Length:</dt>
          <dd pn="section-2.3-4.4">Specifies the length of the value field (i.e., not
  including Type and Length fields) in terms of octets. The value
  <bcp14>MUST</bcp14> be 14 when the SR-MPLS SID is present; else, it
  <bcp14>MUST</bcp14> be 10.</dd>
          <dt pn="section-2.3-4.5">Flags:</dt>
          <dd pn="section-2.3-4.6">1 octet of flags as defined in <xref target="SEGMENTFLAGS" format="default" sectionFormat="of" derivedContent="Section 2.10"/>.</dd>
          <dt pn="section-2.3-4.7">RESERVED:</dt>
          <dd pn="section-2.3-4.8">1 octet of reserved bits. This field
  <bcp14>MUST</bcp14> be set to zero on transmission and <bcp14>MUST</bcp14>
  be ignored on receipt.</dd>
          <dt pn="section-2.3-4.9">Local Interface ID:</dt>
          <dd pn="section-2.3-4.10">4 octets carrying the interface index of the local
  interface (refer to TLV 258 of <xref target="RFC9552" format="default" sectionFormat="of" derivedContent="RFC9552"/>).</dd>
          <dt pn="section-2.3-4.11">IPv4 Node Address:</dt>
          <dd pn="section-2.3-4.12">A 4-octet IPv4 address representing a
  node.</dd>
          <dt pn="section-2.3-4.13">SR-MPLS SID:</dt>
          <dd pn="section-2.3-4.14">Optional.  A 4-octet field containing a label, TC, S, and
  TTL as defined for Segment Type A <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/>.</dd>
        </dl>
      </section>
      <section anchor="TYPEF" numbered="true" toc="include" removeInRFC="false" pn="section-2.4">
        <name slugifiedName="name-segment-type-f">Segment Type F</name>
        <t indent="0" pn="section-2.4-1">The Type F Segment sub-TLV encodes an adjacency local address, an
        adjacency remote address, and an optional SR-MPLS SID. The format is
        as follows: </t>
        <figure align="left" suppress-title="false" pn="figure-4">
          <name slugifiedName="name-type-f-segment-sub-tlv">Type F Segment Sub-TLV</name>
          <artwork align="left" name="" type="" alt="" pn="section-2.4-2.1">
 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      |     Flags     |   RESERVED    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                Local IPv4 Address (4 octets)                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                Remote IPv4 Address  (4 octets)                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                SR-MPLS SID (optional, 4 octets)               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-2.4-3">Where:</t>
        <dl spacing="normal" newline="false" indent="3" pn="section-2.4-4">
          <dt pn="section-2.4-4.1">Type:</dt>
          <dd pn="section-2.4-4.2">6</dd>
          <dt pn="section-2.4-4.3">Length:</dt>
          <dd pn="section-2.4-4.4">Specifies the length of the value field (i.e.,
          not including Type and Length fields) in terms of octets. The value
          <bcp14>MUST</bcp14> be 14 when the SR-MPLS SID is present; else, it
          <bcp14>MUST</bcp14> be 10.</dd>
          <dt pn="section-2.4-4.5">Flags:</dt>
          <dd pn="section-2.4-4.6">1 octet of flags as defined in <xref target="SEGMENTFLAGS" format="default" sectionFormat="of" derivedContent="Section 2.10"/>.</dd>
          <dt pn="section-2.4-4.7">RESERVED:</dt>
          <dd pn="section-2.4-4.8">1 octet of reserved bits. This field
          <bcp14>MUST</bcp14> be set to zero on transmission and
          <bcp14>MUST</bcp14> be ignored on receipt.</dd>
          <dt pn="section-2.4-4.9">Local IPv4 Address:</dt>
          <dd pn="section-2.4-4.10">A 4-octet IPv4 address representing
          the local link address of the node.</dd>
          <dt pn="section-2.4-4.11">Remote IPv4 Address:</dt>
          <dd pn="section-2.4-4.12">A 4-octet IPv4 address representing
          the link address of the neighbor node.</dd>
          <dt pn="section-2.4-4.13">SR-MPLS SID:</dt>
          <dd pn="section-2.4-4.14">Optional. A 4-octet field containing a label,
          TC, S, and TTL as defined for Segment Type A <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/>.</dd>
        </dl>
      </section>
      <section anchor="TYPEG" numbered="true" toc="include" removeInRFC="false" pn="section-2.5">
        <name slugifiedName="name-segment-type-g">Segment Type G</name>
        <t indent="0" pn="section-2.5-1">The Type G Segment sub-TLV encodes an IPv6 link-local adjacency
        with an IPv6 local node address, a local interface identifier (Local
        Interface ID), an IPv6 remote node address, a remote interface identifier
        (Remote Interface ID), and an optional SR-MPLS SID. The format is as
        follows: </t>
        <figure align="left" suppress-title="false" pn="figure-5">
          <name slugifiedName="name-type-g-segment-sub-tlv">Type G Segment Sub-TLV</name>
          <artwork align="left" name="" type="" alt="" pn="section-2.5-2.1">
 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      |     Flags     |   RESERVED    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Local Interface ID (4 octets)                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                IPv6 Local Node Address (16 octets)          //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Remote Interface ID (4 octets)                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                IPv6 Remote Node Address (16 octets)         //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                SR-MPLS SID (optional, 4 octets)               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-2.5-3">Where:</t>
        <dl spacing="normal" newline="false" indent="3" pn="section-2.5-4">
          <dt pn="section-2.5-4.1">Type:</dt>
          <dd pn="section-2.5-4.2">7</dd>
          <dt pn="section-2.5-4.3">Length:</dt>
          <dd pn="section-2.5-4.4">Specifies the length of the value field (i.e.,
          not including Type and Length fields) in terms of octets. The value
          <bcp14>MUST</bcp14> be 46 when the SR-MPLS SID is present; else, it
          <bcp14>MUST</bcp14> be 42.</dd>
          <dt pn="section-2.5-4.5">Flags:</dt>
          <dd pn="section-2.5-4.6">1 octet of flags as defined in <xref target="SEGMENTFLAGS" format="default" sectionFormat="of" derivedContent="Section 2.10"/>.</dd>
          <dt pn="section-2.5-4.7">RESERVED:</dt>
          <dd pn="section-2.5-4.8">1 octet of reserved bits. This field
          <bcp14>MUST</bcp14> be set to zero on transmission and
          <bcp14>MUST</bcp14> be ignored on receipt.</dd>
          <dt pn="section-2.5-4.9">Local Interface ID:</dt>
          <dd pn="section-2.5-4.10">4 octets of interface index of local
          interface (refer to TLV 258 of <xref target="RFC9552" format="default" sectionFormat="of" derivedContent="RFC9552"/>).</dd>
          <dt pn="section-2.5-4.11">IPv6 Local Node Address:</dt>
          <dd pn="section-2.5-4.12">A 16-octet IPv6 address
          representing the node.</dd>
          <dt pn="section-2.5-4.13">Remote Interface ID:</dt>
          <dd pn="section-2.5-4.14">4 octets of interface index of
          remote interface (refer to TLV 258 of <xref target="RFC9552" format="default" sectionFormat="of" derivedContent="RFC9552"/>). The value <bcp14>MAY</bcp14> be set to zero
          when the local node address and interface identifiers are sufficient
          to describe the link.</dd>
          <dt pn="section-2.5-4.15">IPv6 Remote Node Address:</dt>
          <dd pn="section-2.5-4.16">A 16-octet IPv6 address. The
          value <bcp14>MAY</bcp14> be set to zero when the local node address
          and interface identifiers are sufficient to describe the link.</dd>
          <dt pn="section-2.5-4.17">SR-MPLS SID:</dt>
          <dd pn="section-2.5-4.18">Optional. A 4-octet field containing a label,
          TC, S, and TTL as defined for Segment Type A <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/>.</dd>
        </dl>
      </section>
      <section anchor="TYPEH" numbered="true" toc="include" removeInRFC="false" pn="section-2.6">
        <name slugifiedName="name-segment-type-h">Segment Type H</name>
        <t indent="0" pn="section-2.6-1">The Type H Segment sub-TLV encodes an adjacency local address, an
        adjacency remote address, and an optional SR-MPLS SID. The format is
        as follows: </t>
        <figure align="left" suppress-title="false" pn="figure-6">
          <name slugifiedName="name-type-h-segment-sub-tlv">Type H Segment Sub-TLV</name>
          <artwork align="left" name="" type="" alt="" pn="section-2.6-2.1">
 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      |     Flags     |   RESERVED    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//               Local IPv6 Address (16 octets)                //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//               Remote IPv6 Address  (16 octets)              //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                SR-MPLS SID (optional, 4 octets)               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-2.6-3">Where:</t>
        <dl spacing="normal" newline="false" indent="3" pn="section-2.6-4">
          <dt pn="section-2.6-4.1">Type:</dt>
          <dd pn="section-2.6-4.2">8</dd>
          <dt pn="section-2.6-4.3">Length:</dt>
          <dd pn="section-2.6-4.4">Specifies the length of the value field (i.e.,
          not including Type and Length fields) in terms of octets. The value
          <bcp14>MUST</bcp14> be 38 when the SR-MPLS SID is present; else, it
          <bcp14>MUST</bcp14> be 34.</dd>
          <dt pn="section-2.6-4.5">Flags:</dt>
          <dd pn="section-2.6-4.6">1 octet of flags as defined in <xref target="SEGMENTFLAGS" format="default" sectionFormat="of" derivedContent="Section 2.10"/>.</dd>
          <dt pn="section-2.6-4.7">RESERVED:</dt>
          <dd pn="section-2.6-4.8">1 octet of reserved bits. This field
	  <bcp14>MUST</bcp14> be set to zero on transmission and
	  <bcp14>MUST</bcp14> be ignored on receipt.</dd>
          <dt pn="section-2.6-4.9">Local IPv6 Address:</dt>
          <dd pn="section-2.6-4.10">A 16-octet IPv6 address
          representing the local link address of the node.</dd>
          <dt pn="section-2.6-4.11">Remote IPv6 Address:</dt>
          <dd pn="section-2.6-4.12">A 16-octet IPv6 address
          representing the link address of the neighbor node.</dd>
          <dt pn="section-2.6-4.13">SR-MPLS SID:</dt>
          <dd pn="section-2.6-4.14">Optional. A 4-octet field containing a label,
          TC, S, and TTL as defined for Segment Type A <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/>.</dd>
        </dl>
      </section>
      <section anchor="TYPEI" numbered="true" toc="include" removeInRFC="false" pn="section-2.7">
        <name slugifiedName="name-segment-type-i">Segment Type I</name>
        <t indent="0" pn="section-2.7-1">The Type I Segment sub-TLV encodes an IPv6 node address, an SR
        Algorithm, and an optional SRv6 SID. The format is as follows: </t>
        <figure align="left" suppress-title="false" pn="figure-7">
          <name slugifiedName="name-type-i-segment-sub-tlv">Type I Segment Sub-TLV</name>
          <artwork align="left" name="" type="" alt="" pn="section-2.7-2.1">
 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      |     Flags     | SR Algorithm  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                 IPv6 Node Address (16 octets)               //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                    SRv6 SID (optional, 16 octets)           //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//           SRv6 Endpoint Behavior and SID Structure          //
//                    (optional, 8 octets)                     //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-2.7-3">Where:</t>
        <dl spacing="normal" newline="false" indent="3" pn="section-2.7-4">
          <dt pn="section-2.7-4.1">Type:</dt>
          <dd pn="section-2.7-4.2">14</dd>
          <dt pn="section-2.7-4.3">Length:</dt>
          <dd pn="section-2.7-4.4">
            <t indent="0" pn="section-2.7-4.4.1">Specifies the length of the value field (i.e.,
          not including Type and Length fields) in terms of octets. The value
          <bcp14>MUST</bcp14> be one of the following:</t>
            <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-2.7-4.4.2">
              <li pn="section-2.7-4.4.2.1">42 when both SRv6 SID and SRv6
            Endpoint Behavior and SID Structure are present,</li>
              <li pn="section-2.7-4.4.2.2">34 when only SRv6
            SID is present, or</li>
              <li pn="section-2.7-4.4.2.3">18 when the SRv6 SID is not present.</li>
            </ul>
          </dd>
          <dt pn="section-2.7-4.5">Flags:</dt>
          <dd pn="section-2.7-4.6">1 octet of flags as defined in <xref target="SEGMENTFLAGS" format="default" sectionFormat="of" derivedContent="Section 2.10"/>.</dd>
          <dt pn="section-2.7-4.7">SR Algorithm:</dt>
          <dd pn="section-2.7-4.8">1 octet specifying the SR Algorithm as
          described in <xref target="RFC8402" sectionFormat="of" section="3.1.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8402#section-3.1.1" derivedContent="RFC8402"/> when the A-Flag as defined in <xref target="SEGMENTFLAGS" format="default" sectionFormat="of" derivedContent="Section 2.10"/> is set. The SR Algorithm is
          used by the SRPM <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/> as described in <xref target="RFC9256" sectionFormat="of" section="4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-4" derivedContent="RFC9256"/>. When the A-Flag is not set, this field
          <bcp14>MUST</bcp14> be set to zero on transmission and
          <bcp14>MUST</bcp14> be ignored on receipt.</dd>
          <dt pn="section-2.7-4.9">IPv6 Node Address:</dt>
          <dd pn="section-2.7-4.10">A 16-octet IPv6 address representing
          the node.</dd>
          <dt pn="section-2.7-4.11">SRv6 SID:</dt>
          <dd pn="section-2.7-4.12">Optional.  A 16-octet IPv6 address. The value 0
          <bcp14>MAY</bcp14> be used when the controller wants to indicate the
          desired SRv6 Endpoint Behavior or SID Structure without specifying
          the SID.</dd>
          <dt pn="section-2.7-4.13">SRv6 Endpoint Behavior and SID Structure:</dt>
          <dd pn="section-2.7-4.14">Optional, as
          defined in <xref target="RFC9830" sectionFormat="of" section="2.4.4.2.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9830#section-2.4.4.2.4" derivedContent="RFC9830"/>. The SRv6 Endpoint Behavior
          or SID Structure <bcp14>MUST NOT</bcp14> be included when the SRv6
          SID has not been included.</dd>
        </dl>
        <t indent="0" pn="section-2.7-5">TLV 10 defined for the advertisement of Segment Type I in the
        early draft versions of <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/>
        has been deprecated to avoid backward-compatibility issues.</t>
      </section>
      <section anchor="TYPEJ" numbered="true" toc="include" removeInRFC="false" pn="section-2.8">
        <name slugifiedName="name-segment-type-j">Segment Type J</name>
        <t indent="0" pn="section-2.8-1">The Type J Segment sub-TLV encodes an IPv6 link-local adjacency
        with a local node address, a local interface identifier (Local Interface
        ID), a remote IPv6 node address, a remote interface identifier (Remote
        Interface ID), and an optional SRv6 SID. The format is as follows:
        </t>
        <figure align="left" suppress-title="false" pn="figure-8">
          <name slugifiedName="name-type-j-segment-sub-tlv">Type J Segment Sub-TLV</name>
          <artwork align="left" name="" type="" alt="" pn="section-2.8-2.1">
 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      |     Flags     | SR Algorithm  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Local Interface ID (4 octets)                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                IPv6 Local Node Address (16 octets)          //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Remote Interface ID (4 octets)                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                IPv6 Remote Node Address (16 octets)         //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                SRv6 SID (optional, 16 octets)               //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//           SRv6 Endpoint Behavior and SID Structure          //
//                    (optional, 8 octets)                     //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-2.8-3">Where:</t>
        <dl spacing="normal" newline="false" indent="3" pn="section-2.8-4">
          <dt pn="section-2.8-4.1">Type:</dt>
          <dd pn="section-2.8-4.2">15</dd>
          <dt pn="section-2.8-4.3">Length:</dt>
          <dd pn="section-2.8-4.4">
            <t indent="0" pn="section-2.8-4.4.1">Specifies the length of the value field (i.e.,
          not including Type and Length fields) in terms of octets. The value
          <bcp14>MUST</bcp14> be one of the following:</t>
            <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-2.8-4.4.2">
              <li pn="section-2.8-4.4.2.1">66 when both SRv6 SID and SRv6
            Endpoint Behavior and SID Structure are present,</li>
              <li pn="section-2.8-4.4.2.2">58 when only SRv6 SID is present, or</li>
              <li pn="section-2.8-4.4.2.3">42 when the SRv6 SID is not present.</li>
            </ul>
          </dd>
          <dt pn="section-2.8-4.5">Flags:</dt>
          <dd pn="section-2.8-4.6">1 octet of flags as defined in <xref target="SEGMENTFLAGS" format="default" sectionFormat="of" derivedContent="Section 2.10"/>.</dd>
          <dt pn="section-2.8-4.7">SR Algorithm:</dt>
          <dd pn="section-2.8-4.8">1 octet specifying the SR Algorithm as
          described in <xref target="RFC8402" sectionFormat="of" section="3.1.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8402#section-3.1.1" derivedContent="RFC8402"/> when the A-Flag as defined in <xref target="SEGMENTFLAGS" format="default" sectionFormat="of" derivedContent="Section 2.10"/> is set. The SR Algorithm is
          used by the SRPM <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/> as described in <xref target="RFC9256" sectionFormat="of" section="4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-4" derivedContent="RFC9256"/>. When the A-Flag is not set, this field
          <bcp14>MUST</bcp14> be set to zero on transmission and
          <bcp14>MUST</bcp14> be ignored on receipt.</dd>
          <dt pn="section-2.8-4.9">Local Interface ID:</dt>
          <dd pn="section-2.8-4.10">4 octets of interface index of local
          interface (refer to TLV 258 of <xref target="RFC9552" format="default" sectionFormat="of" derivedContent="RFC9552"/>).</dd>
          <dt pn="section-2.8-4.11">IPv6 Local Node Address:</dt>
          <dd pn="section-2.8-4.12">A 16-octet IPv6 address
          representing the node.</dd>
          <dt pn="section-2.8-4.13">Remote Interface ID:</dt>
          <dd pn="section-2.8-4.14">4 octets of interface index of
          remote interface (refer to TLV 258 of <xref target="RFC9552" format="default" sectionFormat="of" derivedContent="RFC9552"/>). The value <bcp14>MAY</bcp14> be set to zero
          when the local node address and interface identifiers are sufficient
          to describe the link.</dd>
          <dt pn="section-2.8-4.15">IPv6 Remote Node Address:</dt>
          <dd pn="section-2.8-4.16">A 16-octet IPv6 address. The
          value <bcp14>MAY</bcp14> be set to zero when the local node address
          and interface identifiers are sufficient to describe the link.</dd>
          <dt pn="section-2.8-4.17">SRv6 SID:</dt>
          <dd pn="section-2.8-4.18">Optional.  A 16-octet IPv6 address. The value 0
          <bcp14>MAY</bcp14> be used when the controller wants to indicate the
          desired SRv6 Endpoint Behavior or SID Structure without specifying
          the SID.</dd>
          <dt pn="section-2.8-4.19">SRv6 Endpoint Behavior and SID Structure:</dt>
          <dd pn="section-2.8-4.20">Optional, as
          defined in <xref target="RFC9830" sectionFormat="of" section="2.4.4.2.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9830#section-2.4.4.2.4" derivedContent="RFC9830"/>. The SRv6 Endpoint Behavior
          and SID Structure <bcp14>MUST NOT</bcp14> be included when the SRv6
          SID has not been included.</dd>
        </dl>
        <t indent="0" pn="section-2.8-5">TLV 11 defined for the advertisement of Segment Type J in the
        early draft versions of <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/>
        has been deprecated to avoid backward-compatibility issues.</t>
      </section>
      <section anchor="TYPEK" numbered="true" toc="include" removeInRFC="false" pn="section-2.9">
        <name slugifiedName="name-segment-type-k">Segment Type K</name>
        <t indent="0" pn="section-2.9-1">The Type K Segment sub-TLV encodes an adjacency local address, an
        adjacency remote address, and an optional SRv6 SID. The format is as
        follows: </t>
        <figure align="left" suppress-title="false" pn="figure-9">
          <name slugifiedName="name-type-k-segment-sub-tlv">Type K Segment Sub-TLV</name>
          <artwork align="left" name="" type="" alt="" pn="section-2.9-2.1">
 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      |     Flags     | SR Algorithm  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//               Local IPv6 Address (16 octets)                //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//               Remote IPv6 Address  (16 octets)              //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                SRv6 SID (optional, 16 octets)               //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//           SRv6 Endpoint Behavior and SID Structure          //
//                    (optional, 8 octets)                     //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-2.9-3">Where:</t>
        <dl spacing="normal" newline="false" indent="3" pn="section-2.9-4">
          <dt pn="section-2.9-4.1">Type:</dt>
          <dd pn="section-2.9-4.2">16</dd>
          <dt pn="section-2.9-4.3">Length:</dt>
          <dd pn="section-2.9-4.4">
            <t indent="0" pn="section-2.9-4.4.1">Specifies the length of the value field (i.e.,
          not including Type and Length fields) in terms of octets. The value
          <bcp14>MUST</bcp14> be one of the following:</t>
            <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-2.9-4.4.2">
              <li pn="section-2.9-4.4.2.1">58 when both SRv6 SID and SRv6
            Endpoint Behavior and SID Structure are present,</li>
              <li pn="section-2.9-4.4.2.2">50 when only SRv6
            SID is present, or</li>
              <li pn="section-2.9-4.4.2.3">34 when the SRv6 SID is not present.</li>
            </ul>
          </dd>
          <dt pn="section-2.9-4.5">Flags:</dt>
          <dd pn="section-2.9-4.6">1 octet of flags as defined in <xref target="SEGMENTFLAGS" format="default" sectionFormat="of" derivedContent="Section 2.10"/>.</dd>
          <dt pn="section-2.9-4.7">SR Algorithm:</dt>
          <dd pn="section-2.9-4.8">1 octet specifying the SR Algorithm as
          described in <xref target="RFC8402" sectionFormat="of" section="3.1.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8402#section-3.1.1" derivedContent="RFC8402"/> when the A-Flag as defined in <xref target="SEGMENTFLAGS" format="default" sectionFormat="of" derivedContent="Section 2.10"/> is set. The SR Algorithm is
          used by the SRPM <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/> as described in <xref target="RFC9256" sectionFormat="of" section="4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-4" derivedContent="RFC9256"/>. When the A-Flag is not set, this field
          <bcp14>MUST</bcp14> be set to zero on transmission and
          <bcp14>MUST</bcp14> be ignored on receipt.</dd>
          <dt pn="section-2.9-4.9">Local IPv6 Address:</dt>
          <dd pn="section-2.9-4.10">A 16-octet IPv6 address representing
          the local link address of the node.</dd>
          <dt pn="section-2.9-4.11">Remote IPv6 Address:</dt>
          <dd pn="section-2.9-4.12">A 16-octet IPv6 address
          representing the link address of the neighbor node.</dd>
          <dt pn="section-2.9-4.13">SRv6 SID:</dt>
          <dd pn="section-2.9-4.14">Optional.  A 16-octet IPv6 address. The value 0
          <bcp14>MAY</bcp14> be used when the controller wants to indicate the
          desired SRv6 Endpoint Behavior or SID Structure without specifying
          the SID.</dd>
          <dt pn="section-2.9-4.15">SRv6 Endpoint Behavior and SID Structure:</dt>
          <dd pn="section-2.9-4.16">Optional, as
          defined in <xref target="RFC9830" sectionFormat="of" section="2.4.4.2.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9830#section-2.4.4.2.4" derivedContent="RFC9830"/>. The SRv6 Endpoint Behavior
          and SID Structure <bcp14>MUST NOT</bcp14> be included when the SRv6
          SID has not been included.</dd>
        </dl>
        <t indent="0" pn="section-2.9-5">TLV 12 defined for the advertisement of Segment Type K in the
        early draft versions of <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/>
        has been deprecated to avoid backward-compatibility issues.</t>
      </section>
      <section anchor="SEGMENTFLAGS" numbered="true" toc="include" removeInRFC="false" pn="section-2.10">
        <name slugifiedName="name-sr-policy-segment-flags">SR Policy Segment Flags</name>
        <t indent="0" pn="section-2.10-1">The Segment Type sub-TLVs described above may contain the
        following SR Policy Segment Flags <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/> in their Flags field (see also
        <xref target="IANASIDFLAGS" format="default" sectionFormat="of" derivedContent="Section 3.2"/>). This document introduces
        additional flags below:</t>
        <figure align="left" suppress-title="false" pn="figure-10">
          <name slugifiedName="name-sr-policy-segment-flags-2">SR Policy Segment Flags</name>
          <artwork align="left" name="" type="" alt="" pn="section-2.10-2.1">
 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|V|A|S|B|       |
+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-2.10-3">Where:</t>
        <dl spacing="normal" newline="false" indent="3" pn="section-2.10-4">
          <dt pn="section-2.10-4.1">V-Flag:</dt>
          <dd pn="section-2.10-4.2">This is an existing flag as defined in <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/>.</dd>
          <dt pn="section-2.10-4.3">A-Flag:</dt>
          <dd pn="section-2.10-4.4">When set, this flag indicates the presence of
          the SR Algorithm id in the SR Algorithm field applicable to various
          Segment Types. The SR Algorithm is used by the SRPM <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/> as described
          in <xref target="RFC9256" sectionFormat="of" section="4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-4" derivedContent="RFC9256"/>.</dd>
          <dt pn="section-2.10-4.5">S-Flag:</dt>
          <dd pn="section-2.10-4.6">When set, this flag indicates the presence of
          the SR-MPLS or SRv6 SID depending on the segment type.</dd>
          <dt pn="section-2.10-4.7">B-Flag:</dt>
          <dd pn="section-2.10-4.8">This is an existing flag as defined in <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/>.</dd>
        </dl>
        <t indent="0" pn="section-2.10-5">The following applies to the Segment Flags:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2.10-6">
          <li pn="section-2.10-6.1">
            <t indent="0" pn="section-2.10-6.1.1">The V-Flag applies to all Segment Types including those
            introduced by this document.</t>
          </li>
          <li pn="section-2.10-6.2">
            <t indent="0" pn="section-2.10-6.2.1">The A-Flag applies to Segment Types C, D, I, J, and K. The value of
            the A-Flag <bcp14>MUST</bcp14> be ignored for Segment Types A, B, E, F, G, and H.</t>
          </li>
          <li pn="section-2.10-6.3">
            <t indent="0" pn="section-2.10-6.3.1">The S-Flag applies to Segment Types C, D, E, F, G, H, I, J, and K.
            The value of the S-Flag <bcp14>MUST</bcp14> be ignored for Segment Types A and B.</t>
          </li>
          <li pn="section-2.10-6.4">
            <t indent="0" pn="section-2.10-6.4.1">The B-Flag applies to Segment Types B, I, J, and K. The value of
            the B-Flag <bcp14>MUST</bcp14> be ignored for Segment Types A, C, D, E, F, G, and
            H.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section anchor="IANASIDLIST" numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
        <name slugifiedName="name-sr-policy-segment-list-sub-">SR Policy Segment List Sub-TLVs</name>
        <t indent="0" pn="section-3.1-1">IANA has allocated the following code points
        from the "SR Policy Segment List Sub-TLVs" registry <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/> under the "Border Gateway Protocol (BGP)
        Tunnel Encapsulation" registry group.</t>
        <table align="center" pn="table-1">
          <name slugifiedName="name-sr-policy-segment-list-code">SR Policy Segment List Code Points</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">Type C Segment sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9831</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">Type D Segment sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9831</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">Type E Segment sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9831</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">6</td>
              <td align="left" colspan="1" rowspan="1">Type F Segment sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9831</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">7</td>
              <td align="left" colspan="1" rowspan="1">Type G Segment sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9831</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">8</td>
              <td align="left" colspan="1" rowspan="1">Type H Segment sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9831</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">14</td>
              <td align="left" colspan="1" rowspan="1">Type I Segment sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9831</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">15</td>
              <td align="left" colspan="1" rowspan="1">Type J Segment sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9831</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">16</td>
              <td align="left" colspan="1" rowspan="1">Type K Segment sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9831</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="IANASIDFLAGS" numbered="true" toc="include" removeInRFC="false" pn="section-3.2">
        <name slugifiedName="name-sr-policy-segment-flags-3">SR Policy Segment Flags</name>
        <t indent="0" pn="section-3.2-1">IANA has allocated code points from the "SR
        Policy Segment Flags" registry <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/> under the "Border Gateway Protocol (BGP) Tunnel
        Encapsulation" registry group.</t>
        <table align="center" pn="table-2">
          <name slugifiedName="name-sr-policy-segment-flags-4">SR Policy Segment Flags</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Bit</th>
              <th align="left" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">SR Algorithm Flag (A-Flag)</td>
              <td align="left" colspan="1" rowspan="1">RFC 9831</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">SID Specified Flag (S-Flag)</td>
              <td align="left" colspan="1" rowspan="1">RFC 9831</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="Security" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-4-1">The security considerations in <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/> apply to the Segment Types
      defined in this document. No additional security considerations are
      introduced.</t>
    </section>
    <section anchor="Manageability" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-manageability-consideration">Manageability Considerations</name>
      <t indent="0" pn="section-5-1">The operations and manageability considerations in <xref target="RFC9830" format="default" sectionFormat="of" derivedContent="RFC9830"/> apply to the
      Segment Types
      defined in this document. No additional operations and manageability
      considerations are introduced.</t>
    </section>
  </middle>
  <back>
    <references pn="section-6">
      <name slugifiedName="name-normative-references">Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="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 indent="0">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" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="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 indent="0">RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="RFC8402" target="https://www.rfc-editor.org/info/rfc8402" quoteTitle="true" derivedAnchor="RFC8402">
        <front>
          <title>Segment Routing Architecture</title>
          <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
          <author fullname="S. Previdi" initials="S." role="editor" surname="Previdi"/>
          <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
          <author fullname="B. Decraene" initials="B." surname="Decraene"/>
          <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
          <author fullname="R. Shakir" initials="R." surname="Shakir"/>
          <date month="July" year="2018"/>
          <abstract>
            <t indent="0">Segment Routing (SR) leverages the source routing paradigm. A node steers a packet through an ordered list of instructions, called "segments". A segment can represent any instruction, topological or service based. A segment can have a semantic local to an SR node or global within an SR domain. SR provides a mechanism that allows a flow to be restricted to a specific topological path, while maintaining per-flow state only at the ingress node(s) to the SR domain.</t>
            <t indent="0">SR can be directly applied to the MPLS architecture with no change to the forwarding plane. A segment is encoded as an MPLS label. An ordered list of segments is encoded as a stack of labels. The segment to process is on the top of the stack. Upon completion of a segment, the related label is popped from the stack.</t>
            <t indent="0">SR can be applied to the IPv6 architecture, with a new type of routing header. A segment is encoded as an IPv6 address. An ordered list of segments is encoded as an ordered list of IPv6 addresses in the routing header. The active segment is indicated by the Destination Address (DA) of the packet. The next active segment is indicated by a pointer in the new routing header.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8402"/>
        <seriesInfo name="DOI" value="10.17487/RFC8402"/>
      </reference>
      <reference anchor="RFC8660" target="https://www.rfc-editor.org/info/rfc8660" quoteTitle="true" derivedAnchor="RFC8660">
        <front>
          <title>Segment Routing with the MPLS Data Plane</title>
          <author fullname="A. Bashandy" initials="A." role="editor" surname="Bashandy"/>
          <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
          <author fullname="S. Previdi" initials="S." surname="Previdi"/>
          <author fullname="B. Decraene" initials="B." surname="Decraene"/>
          <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
          <author fullname="R. Shakir" initials="R." surname="Shakir"/>
          <date month="December" year="2019"/>
          <abstract>
            <t indent="0">Segment Routing (SR) leverages the source-routing paradigm. A node steers a packet through a controlled set of instructions, called segments, by prepending the packet with an SR header. In the MPLS data plane, the SR header is instantiated through a label stack. This document specifies the forwarding behavior to allow instantiating SR over the MPLS data plane (SR-MPLS).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8660"/>
        <seriesInfo name="DOI" value="10.17487/RFC8660"/>
      </reference>
      <reference anchor="RFC8754" target="https://www.rfc-editor.org/info/rfc8754" quoteTitle="true" derivedAnchor="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 indent="0">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" target="https://www.rfc-editor.org/info/rfc8986" quoteTitle="true" derivedAnchor="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 indent="0">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 indent="0">Each instruction is implemented on one or several nodes in the network and identified by an SRv6 Segment Identifier in the packet.</t>
            <t indent="0">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="RFC9256" target="https://www.rfc-editor.org/info/rfc9256" quoteTitle="true" derivedAnchor="RFC9256">
        <front>
          <title>Segment Routing Policy Architecture</title>
          <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
          <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
          <author fullname="D. Voyer" initials="D." surname="Voyer"/>
          <author fullname="A. Bogdanov" initials="A." surname="Bogdanov"/>
          <author fullname="P. Mattes" initials="P." surname="Mattes"/>
          <date month="July" year="2022"/>
          <abstract>
            <t indent="0">Segment Routing (SR) allows a node to steer a packet flow along any path. Intermediate per-path states are eliminated thanks to source routing. SR Policy is an ordered list of segments (i.e., instructions) that represent a source-routed policy. Packet flows are steered into an SR Policy on a node where it is instantiated called a headend node. The packets steered into an SR Policy carry an ordered list of segments associated with that SR Policy.</t>
            <t indent="0">This document updates RFC 8402 as it details the concepts of SR Policy and steering into an SR Policy.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9256"/>
        <seriesInfo name="DOI" value="10.17487/RFC9256"/>
      </reference>
      <reference anchor="RFC9552" target="https://www.rfc-editor.org/info/rfc9552" quoteTitle="true" derivedAnchor="RFC9552">
        <front>
          <title>Distribution of Link-State and Traffic Engineering Information Using BGP</title>
          <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
          <date month="December" year="2023"/>
          <abstract>
            <t indent="0">In many environments, a component external to a network is called upon to perform computations based on the network topology and the current state of the connections within the network, including Traffic Engineering (TE) information. This is information typically distributed by IGP routing protocols within the network.</t>
            <t indent="0">This document describes a mechanism by which link-state and TE information can be collected from networks and shared with external components using the BGP routing protocol. This is achieved using a BGP Network Layer Reachability Information (NLRI) encoding format. The mechanism applies to physical and virtual (e.g., tunnel) IGP links. The mechanism described is subject to policy control.</t>
            <t indent="0">Applications of this technique include Application-Layer Traffic Optimization (ALTO) servers and Path Computation Elements (PCEs).</t>
            <t indent="0">This document obsoletes RFC 7752 by completely replacing that document. It makes some small changes and clarifications to the previous specification. This document also obsoletes RFC 9029 by incorporating the updates that it made to RFC 7752.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9552"/>
        <seriesInfo name="DOI" value="10.17487/RFC9552"/>
      </reference>
      <reference anchor="RFC9830" target="https://www.rfc-editor.org/info/rfc9830" quoteTitle="true" derivedAnchor="RFC9830">
        <front>
          <title>Advertising Segment Routing Policies in BGP</title>
          <author initials="S." surname="Previdi" fullname="Stefano Previdi">
            <organization showOnFrontPage="true">Huawei Technologies</organization>
          </author>
          <author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
            <organization showOnFrontPage="true">Cisco Systems</organization>
          </author>
          <author initials="K." surname="Talaulikar" fullname="Ketan Talaulikar" role="editor">
            <organization showOnFrontPage="true">Cisco Systems</organization>
          </author>
          <author initials="P." surname="Mattes" fullname="Paul Mattes">
            <organization showOnFrontPage="true">Microsoft</organization>
          </author>
          <author initials="D." surname="Jain" fullname="Dhanendra Jain">
            <organization showOnFrontPage="true">Google</organization>
          </author>
          <date month="September" year="2025"/>
        </front>
        <seriesInfo name="RFC" value="9830"/>
        <seriesInfo name="DOI" value="10.17487/RFC9830"/>
      </reference>
    </references>
    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.a-1">The authors would like to <contact fullname="Dan Romascanu"/>, <contact fullname="Stig       Venaas"/>, and <contact fullname="Russ Housley"/> for their comments and review.
      The authors would like to thank <contact fullname="Susan Hares"/> for her detailed shepherd
      review that helped in improving the document.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Ketan Talaulikar" initials="K." role="editor" surname="Talaulikar">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <postal>
            <country>India</country>
          </postal>
          <email>ketant.ietf@gmail.com</email>
        </address>
      </author>
      <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <postal>
            <city>Brussels</city>
            <country>Belgium</country>
          </postal>
          <email>cfilsfil@cisco.com</email>
        </address>
      </author>
      <author fullname="Stefano Previdi" initials="S." surname="Previdi">
        <organization showOnFrontPage="true">Huawei Technologies</organization>
        <address>
          <postal>
            <country>Italy</country>
          </postal>
          <email>stefano@previdi.net</email>
        </address>
      </author>
      <author fullname="Paul Mattes" initials="P." surname="Mattes">
        <organization showOnFrontPage="true">Microsoft</organization>
        <address>
          <postal>
            <street>One Microsoft Way</street>
            <city>Redmond</city>
            <region>WA</region>
            <code>98052</code>
            <country>United States of America</country>
          </postal>
          <email>pamattes@microsoft.com</email>
        </address>
      </author>
      <author fullname="Dhanendra Jain" initials="D." surname="Jain">
        <organization showOnFrontPage="true">Google</organization>
        <address>
          <email>dhanendra.ietf@gmail.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
