<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" docName="draft-ietf-idr-sr-policy-safi-13" number="9830" ipr="trust200902" consensus="true" updates="9012" obsoletes="" submissionType="IETF" xml:lang="en" sortRefs="true" symRefs="true" tocInclude="true" tocDepth="3" prepTime="2025-09-12T13:07:09" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-idr-sr-policy-safi-13" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9830" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Segment Routing Policies in BGP">Advertising Segment Routing Policies in BGP</title>
    <seriesInfo name="RFC" value="9830" stream="IETF"/>
    <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="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="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="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">A Segment Routing (SR) Policy is an ordered list of segments (also
      referred to as "instructions") that define a source-routed policy. An SR
      Policy consists of one or more Candidate Paths (CPs), each comprising one or
      more segment lists. A headend can be provisioned with these CPs using various mechanisms such as Command-Line Interface (CLI), Network Configuration Protocol (NETCONF), Path Computation Element Communication Protocol (PCEP), or BGP.</t>
      <t indent="0" pn="section-abstract-2">This document specifies how BGP can be used to distribute SR Policy
      CPs. It introduces a BGP SAFI for advertising a CP of an SR Policy and defines sub-TLVs for the Tunnel Encapsulation
      Attribute to signal information related to these CPs.</t>
      <t indent="0" pn="section-abstract-3">Furthermore, this document updates RFC 9012 by extending the Color
      Extended Community to support additional steering modes over SR
      Policy.</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 is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            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).  Further
            information on Internet Standards is available in 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/rfc9830" 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-sr-policy-encoding">SR Policy Encoding</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-sr-policy-safi-and-nlri">SR Policy SAFI and NLRI</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-sr-policy-and-tunnel-encaps">SR Policy and Tunnel Encapsulation Attribute</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-applicability-of-tunnel-enc">Applicability of Tunnel Encapsulation Attribute Sub-TLVs</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-sr-policy-sub-tlvs">SR Policy Sub-TLVs</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2.4.2">
                  <li pn="section-toc.1-1.2.2.4.2.1">
                    <t indent="0" pn="section-toc.1-1.2.2.4.2.1.1"><xref derivedContent="2.4.1" format="counter" sectionFormat="of" target="section-2.4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-preference-sub-tlv">Preference Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.2.2.4.2.2">
                    <t indent="0" pn="section-toc.1-1.2.2.4.2.2.1"><xref derivedContent="2.4.2" format="counter" sectionFormat="of" target="section-2.4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-binding-sid-sub-tlv">Binding SID Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.2.2.4.2.3">
                    <t indent="0" pn="section-toc.1-1.2.2.4.2.3.1"><xref derivedContent="2.4.3" format="counter" sectionFormat="of" target="section-2.4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-srv6-binding-sid-sub-tlv">SRv6 Binding SID Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.2.2.4.2.4">
                    <t indent="0" pn="section-toc.1-1.2.2.4.2.4.1"><xref derivedContent="2.4.4" format="counter" sectionFormat="of" target="section-2.4.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-segment-list-sub-tlv">Segment List Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.2.2.4.2.5">
                    <t indent="0" pn="section-toc.1-1.2.2.4.2.5.1"><xref derivedContent="2.4.5" format="counter" sectionFormat="of" target="section-2.4.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-explicit-null-label-policy-">Explicit NULL Label Policy Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.2.2.4.2.6">
                    <t indent="0" pn="section-toc.1-1.2.2.4.2.6.1"><xref derivedContent="2.4.6" format="counter" sectionFormat="of" target="section-2.4.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sr-policy-priority-sub-tlv">SR Policy Priority Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.2.2.4.2.7">
                    <t indent="0" pn="section-toc.1-1.2.2.4.2.7.1"><xref derivedContent="2.4.7" format="counter" sectionFormat="of" target="section-2.4.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sr-policy-candidate-path-na">SR Policy Candidate Path Name Sub-TLV</xref></t>
                  </li>
                  <li pn="section-toc.1-1.2.2.4.2.8">
                    <t indent="0" pn="section-toc.1-1.2.2.4.2.8.1"><xref derivedContent="2.4.8" format="counter" sectionFormat="of" target="section-2.4.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sr-policy-name-sub-tlv">SR Policy Name Sub-TLV</xref></t>
                  </li>
                </ul>
              </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-color-extended-community">Color Extended Community</xref></t>
          </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-sr-policy-operations">SR Policy Operations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-advertisement-of-sr-policie">Advertisement of SR Policies</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-reception-of-an-sr-policy-n">Reception of an SR Policy NLRI</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.2.2">
                  <li pn="section-toc.1-1.4.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.1.1"><xref derivedContent="4.2.1" format="counter" sectionFormat="of" target="section-4.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-validation-of-an-sr-policy-">Validation of an SR Policy NLRI</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.2.1"><xref derivedContent="4.2.2" format="counter" sectionFormat="of" target="section-4.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-eligibility-for-local-use-o">Eligibility for Local Use of an SR Policy NLRI</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.2.2.3">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.3.1"><xref derivedContent="4.2.3" format="counter" sectionFormat="of" target="section-4.2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-propagation-of-an-sr-policy">Propagation of an SR Policy</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </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-error-handling-and-fault-ma">Error Handling and Fault Management</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-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-subsequent-address-family-i">Subsequent Address Family Identifiers (SAFI) Parameters</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bgp-tunnel-encapsulation-at">BGP Tunnel Encapsulation Attribute Tunnel Types</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.3">
                <t indent="0" pn="section-toc.1-1.6.2.3.1"><xref derivedContent="6.3" format="counter" sectionFormat="of" target="section-6.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bgp-tunnel-encapsulation-att">BGP Tunnel Encapsulation Attribute Sub-TLVs</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.4">
                <t indent="0" pn="section-toc.1-1.6.2.4.1"><xref derivedContent="6.4" format="counter" sectionFormat="of" target="section-6.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-color-extended-community-fla">Color Extended Community Flags</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.5">
                <t indent="0" pn="section-toc.1-1.6.2.5.1"><xref derivedContent="6.5" format="counter" sectionFormat="of" target="section-6.5"/>.  <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.6.2.6">
                <t indent="0" pn="section-toc.1-1.6.2.6.1"><xref derivedContent="6.6" format="counter" sectionFormat="of" target="section-6.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sr-policy-binding-sid-flags-2">SR Policy Binding SID Flags</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.7">
                <t indent="0" pn="section-toc.1-1.6.2.7.1"><xref derivedContent="6.7" format="counter" sectionFormat="of" target="section-6.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sr-policy-srv6-binding-sid-f">SR Policy SRv6 Binding SID Flags</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.8">
                <t indent="0" pn="section-toc.1-1.6.2.8.1"><xref derivedContent="6.8" format="counter" sectionFormat="of" target="section-6.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sr-policy-segment-flags-3">SR Policy Segment Flags</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.9">
                <t indent="0" pn="section-toc.1-1.6.2.9.1"><xref derivedContent="6.9" format="counter" sectionFormat="of" target="section-6.9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-color-extended-community-co">Color Extended Community Color-Only Types</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.10">
                <t indent="0" pn="section-toc.1-1.6.2.10.1"><xref derivedContent="6.10" format="counter" sectionFormat="of" target="section-6.10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-sr-policy-enlp-values">SR Policy ENLP Values</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-manageability-consideration">Manageability Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2">
              <li pn="section-toc.1-1.9.2.1">
                <t indent="0" pn="section-toc.1-1.9.2.1.1"><xref derivedContent="9.1" format="counter" sectionFormat="of" target="section-9.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.2">
                <t indent="0" pn="section-toc.1-1.9.2.2.1"><xref derivedContent="9.2" format="counter" sectionFormat="of" target="section-9.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.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.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-contributors">Contributors</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><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">Segment Routing (SR) <xref target="RFC8402" format="default" sectionFormat="of" derivedContent="RFC8402"/> allows a headend node
      to steer a packet flow along a specific path. Intermediate per-path
      states are eliminated thanks to source routing.</t>
      <t indent="0" pn="section-1-2">The headend node is said to steer a flow into an SR Policy <xref target="RFC9256" format="default" sectionFormat="of" derivedContent="RFC9256"/>.</t>
      <t indent="0" pn="section-1-3">The packets steered into an SR Policy carry an ordered list of
      segments associated with that SR Policy.</t>
      <t indent="0" pn="section-1-4"><xref target="RFC9256" format="default" sectionFormat="of" derivedContent="RFC9256"/> further details the concepts of SR Policy
      and steering into an SR Policy. These apply equally to the SR-MPLS and
      Segment Routing over IPv6 (SRv6) data plane instantiations of Segment
      Routing using SR-MPLS and SRv6 Segment Identifiers (SIDs) as described
      in <xref target="RFC8402" format="default" sectionFormat="of" derivedContent="RFC8402"/>. <xref target="RFC8660" format="default" sectionFormat="of" derivedContent="RFC8660"/> describes the
      representation and processing of this ordered list of segments as an
      MPLS label stack for SR-MPLS. <xref target="RFC8754" format="default" sectionFormat="of" derivedContent="RFC8754"/> and <xref target="RFC8986" format="default" sectionFormat="of" derivedContent="RFC8986"/> describe the same for SRv6 with the use of the
      Segment Routing Header (SRH).</t>
      <t indent="0" pn="section-1-5">The functionality related to SR Policy described in <xref target="RFC9256" format="default" sectionFormat="of" derivedContent="RFC9256"/> can be conceptually viewed as being incorporated in
      an SR Policy Module (SRPM). The following is a reminder of the high-level
      functionality of SRPM: </t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1-6">
        <li pn="section-1-6.1">
          <t indent="0" pn="section-1-6.1.1">Learning multiple CPs for an SR Policy via
          various mechanisms (CLI, NETCONF, PCEP, or BGP).</t>
        </li>
        <li pn="section-1-6.2">
          <t indent="0" pn="section-1-6.2.1">Selection of the best CP for an SR Policy.</t>
        </li>
        <li pn="section-1-6.3">
          <t indent="0" pn="section-1-6.3.1">Associating a Binding SID (BSID) to the selected CP
          of an SR Policy.</t>
        </li>
        <li pn="section-1-6.4">
          <t indent="0" pn="section-1-6.4.1">Installation of the selected CP and its BSID in the
          forwarding plane.</t>
        </li>
      </ul>
      <t indent="0" pn="section-1-7">This document specifies the use of BGP to distribute one or more of
      the CPs of an SR Policy to the headend of that SR Policy. The
      document describes the functionality provided by BGP and, as
      appropriate, provides references for the functionality, which is outside
      the scope of BGP (i.e., resides within SRPM on the headend node).</t>
      <t indent="0" pn="section-1-8">This document specifies a way of representing SR Policy CPs in BGP UPDATE messages. BGP can then be used to propagate the SR
      Policy CPs to the headend nodes in a network. The usual BGP
      rules for BGP propagation and best-path selection are used. At the
      headend of a specific SR Policy, this will result in one or more CPs being installed into the "BGP table". These paths are then passed
      to the SRPM. The SRPM may compare them to CPs learned via
      other mechanisms and will choose one or more paths to be installed in
      the data plane. BGP itself does not install SR Policy CPs
      into the data plane.</t>
      <t indent="0" pn="section-1-9">This document introduces a BGP Subsequent Address Family Identifier (SAFI) for
      IPv4 and IPv6 address families. In BGP UPDATE messages of those AFI/SAFIs,
      the Network Layer Reachability Information (NLRI) identifies an SR
      Policy CP while the attributes encode the segment lists and
      other details of that SR Policy CP.</t>
      <t indent="0" pn="section-1-10">While, for simplicity, the text in this document states that BGP
      advertises an SR Policy, it is to be understood that BGP advertises a
      CP of an SR Policy and that this SR Policy might have
      several other CPs provided via BGP (via an NLRI with a
      different distinguisher as defined in <xref target="SRPOLICYSAFI" format="default" sectionFormat="of" derivedContent="Section 2.1"/>),
      PCEP, NETCONF, or local policy configuration.</t>
      <t indent="0" pn="section-1-11">Typically, an SR Policy Controller <xref target="RFC9256" format="default" sectionFormat="of" derivedContent="RFC9256"/> defines
      the set of policies and advertises them to SR Policy headend routers
      (typically ingress routers). These SR Policy advertisements use the BGP
      extensions defined in this document. In most cases, the SR Policy
      advertisement is tailored for a specific SR Policy headend; consequently,
      it may be transmitted over a direct BGP session (i.e., without
      intermediate BGP hops) to that headend and is not propagated any
      further. In such cases, the SR Policy advertisements will not traverse any
      Route Reflector (RR) (see <xref target="RFC4456" format="default" sectionFormat="of" derivedContent="RFC4456"/> and <xref target="PROPAGATE" format="default" sectionFormat="of" derivedContent="Section 4.2.3"/>).</t>
      <t indent="0" pn="section-1-12">Alternatively, a BGP egress router may advertise SR Policies that
      represent paths that terminate on it. In such cases, the router can
      send these policies directly to each headend over a dedicated BGP
      session, without necessitating any further propagation of the
      SR Policy.</t>
      <t indent="0" pn="section-1-13">In some situations, it is undesirable for a controller or BGP egress
      router to have a BGP session to each SR Policy headend. In these
      situations, BGP RRs may be used to propagate the
      advertisements. In certain other deployments, it may be necessary for
      the advertisement to propagate through a sequence of one or more Autonomous Systems (ASes)
      within an SR Domain (refer to <xref target="Security" format="default" sectionFormat="of" derivedContent="Section 7"/> for the
      associated security considerations). To make this possible, an attribute
      needs to be attached to the advertisement that enables a BGP speaker to
      determine whether it is intended to be a headend for the advertised
      SR Policy. This is done by attaching one or more Route Target extended
      communities to the advertisement <xref target="RFC4360" format="default" sectionFormat="of" derivedContent="RFC4360"/>.</t>
      <t indent="0" pn="section-1-14">The BGP extensions for the advertisement of SR Policies include
      following components: </t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1-15">
        <li pn="section-1-15.1">
          <t indent="0" pn="section-1-15.1.1">A SAFI whose NLRIs
          identify an SR Policy CP.</t>
        </li>
        <li pn="section-1-15.2">
          <t indent="0" pn="section-1-15.2.1">A Tunnel Type identifier for SR Policy and a set of sub-TLVs to
          be inserted into the Tunnel Encapsulation Attribute (as defined in
          <xref target="RFC9012" format="default" sectionFormat="of" derivedContent="RFC9012"/>) specifying segment lists of the SR Policy
          CP as well as other information about the SR
          Policy.</t>
        </li>
        <li pn="section-1-15.3">
          <t indent="0" pn="section-1-15.3.1">One or more IPv4 address-specific format Route Target extended
          community (<xref target="RFC4360" format="default" sectionFormat="of" derivedContent="RFC4360"/>) attached to the SR Policy
          CP advertisement that indicates the intended headend
          of such an SR Policy CP advertisement.</t>
        </li>
      </ul>
      <t indent="0" pn="section-1-16">The SR Policy SAFI route updates utilize the Tunnel Encapsulation
      Attribute to signal an SR Policy, which itself functions as a tunnel.
      This usage differs notably from the approach described in <xref target="RFC9012" format="default" sectionFormat="of" derivedContent="RFC9012"/>, where the Tunnel Encapsulation Attribute is
      associated with a BGP route update (e.g., for Internet or VPN routes) to
      specify the tunnel used for forwarding traffic. This document does not
      modify or supersede the usage of the Tunnel Encapsulation Attribute for
      existing AFI/SAFIs as defined in <xref target="RFC9012" format="default" sectionFormat="of" derivedContent="RFC9012"/>. Details
      regarding the processing of the Tunnel Encapsulation Attribute for the
      SR Policy SAFI are provided in Sections <xref target="ENCAPSATTR" format="counter" sectionFormat="of" derivedContent="2.2"/> and <xref target="ENDCOLOR" format="counter" sectionFormat="of" derivedContent="2.3"/>.</t>
      <t indent="0" pn="section-1-17">The northbound advertisement of the operational state of the SR
      Policy CPs as part of BGP - Link State (BGP-LS) <xref target="RFC9552" format="default" sectionFormat="of" derivedContent="RFC9552"/>
      topology information is specified in <xref target="I-D.ietf-idr-bgp-ls-sr-policy" format="default" sectionFormat="of" derivedContent="BGP-LS-SR-POLICY"/>.</t>
      <t indent="0" pn="section-1-18">The signaling of Dynamic and Composite CPs (Sections
      <xref target="RFC9256" sectionFormat="bare" section="5.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-5.2" derivedContent="RFC9256"/> and <xref target="RFC9256" sectionFormat="bare" section="5.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-5.3" derivedContent="RFC9256"/>, respectively, of
      <xref target="RFC9256" format="default" sectionFormat="of" derivedContent="RFC9256"/>) is outside the scope of this
      document.</t>
      <t indent="0" pn="section-1-19">The Color Extended Community (as defined in <xref target="RFC9012" format="default" sectionFormat="of" derivedContent="RFC9012"/>) is used to steer traffic into an SR Policy, as
      described in <xref target="RFC9256" sectionFormat="of" section="8.8" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-8.8" derivedContent="RFC9256"/>. <xref target="EXTCOLOR" format="default" sectionFormat="of" derivedContent="Section 3"/> of this
      document updates <xref target="RFC9012" format="default" sectionFormat="of" derivedContent="RFC9012"/> with
      modifications to the format of the Flags field of the Color Extended
      Community by using the two leftmost bits of that field.</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="ENCODING" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-sr-policy-encoding">SR Policy Encoding</name>
      <section anchor="SRPOLICYSAFI" numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-sr-policy-safi-and-nlri">SR Policy SAFI and NLRI</name>
        <t indent="0" pn="section-2.1-1">The SR Policy SAFI with
        code point 73 is introduced in this document. The AFI used <bcp14>MUST</bcp14> be IPv4(1) or IPv6(2).</t>
        <t indent="0" pn="section-2.1-2">The SR Policy SAFI uses the NLRI format defined as follows: </t>
        <figure align="left" suppress-title="false" pn="figure-1">
          <name slugifiedName="name-sr-policy-safi-format">SR Policy SAFI Format</name>
          <artwork align="left" name="" type="" alt="" pn="section-2.1-3.1">
+------------------+
|  NLRI Length     | 1 octet
+------------------+
|  Distinguisher   | 4 octets
+------------------+
|  Color           | 4 octets
+------------------+
|  Endpoint        | 4 or 16 octets
+------------------+
</artwork>
        </figure>
        <t indent="0" pn="section-2.1-4">Where:</t>
        <dl spacing="normal" indent="3" newline="false" pn="section-2.1-5">
          <dt pn="section-2.1-5.1">NLRI Length:</dt>
          <dd pn="section-2.1-5.2">1 octet indicating the length expressed in bits as
          defined in <xref target="RFC4760" format="default" sectionFormat="of" derivedContent="RFC4760"/>. When AFI = 1,
          the value <bcp14>MUST</bcp14> be 96; when AFI = 2, the value
          <bcp14>MUST</bcp14> be 192.</dd>
          <dt pn="section-2.1-5.3">Distinguisher:</dt>
          <dd pn="section-2.1-5.4">
            <t indent="0" pn="section-2.1-5.4.1">4-octet value uniquely identifying the SR Policy in
          the context of &lt;Color, Endpoint&gt; tuple. The distinguisher has
          no semantic value.  It is used by the SR Policy originator to form
          unique NLRIs the following situations:</t>
            <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2.1-5.4.2">
              <li pn="section-2.1-5.4.2.1">to differentiate multiple CPs
            of the same SR Policy</li>
              <li pn="section-2.1-5.4.2.2">to differentiate CPs meant for different headends but having the same Color and Endpoint</li>
            </ul>
            <t indent="0" pn="section-2.1-5.4.3">The distinguisher is
          the discriminator of the SR Policy CP as specified in
          <xref target="RFC9256" sectionFormat="of" section="2.5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2.5" derivedContent="RFC9256"/>.</t>
          </dd>
          <dt pn="section-2.1-5.5">Color:</dt>
          <dd pn="section-2.1-5.6">4 octets that carry an unsigned non-zero integer
          value indicating the Color of the SR Policy as specified in <xref target="RFC9256" sectionFormat="of" section="2.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2.1" derivedContent="RFC9256"/>. The Color is
          used to match the Color of the destination prefixes to steer traffic
          into the SR Policy as specified in <xref target="RFC9256" sectionFormat="of" section="8" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-8" derivedContent="RFC9256"/>.</dd>
          <dt pn="section-2.1-5.7">Endpoint:</dt>
          <dd pn="section-2.1-5.8">a value that identifies the Endpoint of an SR Policy. The
          Endpoint may represent a single node or a set of nodes (e.g., an
          anycast address). The Endpoint is an IPv4 (4-octet) address or an
          IPv6 (16-octet) address according to the AFI of the NLRI. The
          address can be either unicast or an unspecified address (0.0.0.0
          for IPv4, :: for IPv6), known as a null Endpoint as specified in
          <xref target="RFC9256" sectionFormat="of" section="2.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2.1" derivedContent="RFC9256"/>.</dd>
        </dl>
        <t indent="0" pn="section-2.1-6">The Color and Endpoint are used to automate the steering of BGP
        service routes on an SR Policy as described in <xref target="RFC9256" sectionFormat="of" section="8" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-8" derivedContent="RFC9256"/>.</t>
        <t indent="0" pn="section-2.1-7">The NLRI containing an SR Policy CP is carried in a BGP
        UPDATE message <xref target="RFC4271" format="default" sectionFormat="of" derivedContent="RFC4271"/> using BGP multiprotocol
        extensions <xref target="RFC4760" format="default" sectionFormat="of" derivedContent="RFC4760"/> with an AFI of 1 or 2 (IPv4 or
        IPv6) and with a SAFI of 73. The fault management and error handling
        in the encoding of the NLRI are specified in <xref target="ERROR" format="default" sectionFormat="of" derivedContent="Section 5"/>.</t>
        <t indent="0" pn="section-2.1-8">A BGP UPDATE message that carries the MP_REACH_NLRI or MP_UNREACH_NLRI
        attribute with the SR Policy SAFI <bcp14>MUST</bcp14> also carry the BGP mandatory
        attributes. In addition, the BGP UPDATE message <bcp14>MAY</bcp14> also contain any
        of the BGP optional attributes.</t>
        <t indent="0" pn="section-2.1-9">The next-hop network address field in SR Policy SAFI (73) updates
        may be either a 4-octet IPv4 address or a 16-octet IPv6 address,
        independent of the SR Policy AFI. The Length field of the next-hop
        address specifies the next-hop address family. If the next-hop length
        is 4, then the next-hop is an IPv4 address. If the next-hop length is
        16, then it is a global IPv6 address.  If the next-hop length is 32,
        then it has a global IPv6 address followed by a link-local IPv6
        address. The setting of the next-hop field and its attendant
        processing is governed by standard BGP procedures as described in
        <xref target="RFC4760" sectionFormat="of" section="3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4760#section-3" derivedContent="RFC4760"/> and <xref target="RFC2545" sectionFormat="of" section="3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc2545#section-3" derivedContent="RFC2545"/>.</t>
        <t indent="0" pn="section-2.1-10">It is important to note that at any BGP speaker receiving BGP
        updates with SR Policy NLRIs, the SRPM processes only the best path as
        per the BGP best-path selection algorithm. In other words, this
        document leverages the existing BGP propagation and best-path
        selection rules. Details of the procedures are described in <xref target="OPERATIONS" format="default" sectionFormat="of" derivedContent="Section 4"/>.</t>
        <t indent="0" pn="section-2.1-11">It has to be noted that if several CPs of the same SR
        Policy (Endpoint, Color) are signaled via BGP to a headend, then it is
        <bcp14>RECOMMENDED</bcp14> that each NLRI use a different distinguisher. If BGP has
        installed into the BGP table two advertisements whose respective NLRIs
        have the same Color and Endpoint, but different distinguishers, both
        advertisements are passed to the SRPM as different CPs
        along with their respective originator information (i.e., Autonomous System Number (ASN) and BGP
        Router-ID) as described in <xref target="RFC9256" sectionFormat="of" section="2.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2.4" derivedContent="RFC9256"/>.
        The ASN would be the ASN of the origin and the BGP Router-ID is
        determined in the following order:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2.1-12">
          <li pn="section-2.1-12.1">
            <t indent="0" pn="section-2.1-12.1.1">From the Route Origin Community <xref target="RFC4360" format="default" sectionFormat="of" derivedContent="RFC4360"/> if
            present and carrying an IP Address, or</t>
          </li>
          <li pn="section-2.1-12.2">
            <t indent="0" pn="section-2.1-12.2.1">As the BGP ORIGINATOR_ID <xref target="RFC4456" format="default" sectionFormat="of" derivedContent="RFC4456"/> if present,
            or</t>
          </li>
          <li pn="section-2.1-12.3">
            <t indent="0" pn="section-2.1-12.3.1">As the BGP Router-ID of the peer from which the update was
            received as a last resort.</t>
          </li>
        </ul>
        <t indent="0" pn="section-2.1-13"><xref target="RFC9256" sectionFormat="of" section="2.9" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2.9" derivedContent="RFC9256"/> specifies the selection
        of the active CP of the SR Policy by the SRPM based on the
        information provided to it by BGP.</t>
      </section>
      <section anchor="ENCAPSATTR" numbered="true" toc="include" removeInRFC="false" pn="section-2.2">
        <name slugifiedName="name-sr-policy-and-tunnel-encaps">SR Policy and Tunnel Encapsulation Attribute</name>
        <t indent="0" pn="section-2.2-1">The content of the SR Policy CP is encoded in the
        Tunnel Encapsulation Attribute defined in <xref target="RFC9012" format="default" sectionFormat="of" derivedContent="RFC9012"/>
        using a Tunnel Type called the "SR Policy" type with code point 15. The use
        of the SR Policy Tunnel Type is applicable only for the AFI/SAFI pairs of
        (1/73, 2/73). This document specifies the use of the Tunnel
        Encapsulation Attribute with the SR Policy Tunnel Type and the use of
        any other Tunnel Type with the SR Policy SAFI <bcp14>MUST</bcp14> be considered
        malformed and handled by the "treat-as-withdraw" strategy <xref target="RFC7606" format="default" sectionFormat="of" derivedContent="RFC7606"/>.</t>
        <t indent="0" pn="section-2.2-2">The SR Policy Encoding structure is as follows: </t>
        <figure align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-sr-policy-encoding-2">SR Policy Encoding</name>
          <artwork align="left" name="" type="" alt="" pn="section-2.2-3.1">
SR Policy SAFI NLRI: &lt;Distinguisher, Color, Endpoint&gt;
Attributes:
   Tunnel Encapsulation Attribute (23)
      Tunnel Type: SR Policy (15)
          Binding SID
          Preference
          Priority
          SR Policy Name
          SR Policy Candidate Path Name
          Explicit NULL Label Policy (ENLP)
          Segment List
              Weight
              Segment
              Segment
              ...
          ...
</artwork>
        </figure>
        <t indent="0" pn="section-2.2-4">Where:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2.2-5">
          <li pn="section-2.2-5.1">
            <t indent="0" pn="section-2.2-5.1.1">The SR Policy SAFI NLRI is defined in <xref target="SRPOLICYSAFI" format="default" sectionFormat="of" derivedContent="Section 2.1"/>.</t>
          </li>
          <li pn="section-2.2-5.2">
            <t indent="0" pn="section-2.2-5.2.1">The Tunnel Encapsulation Attribute is defined in <xref target="RFC9012" format="default" sectionFormat="of" derivedContent="RFC9012"/>.</t>
          </li>
          <li pn="section-2.2-5.3">
            <t indent="0" pn="section-2.2-5.3.1">The Tunnel Type is set to 15.</t>
          </li>
          <li pn="section-2.2-5.4">
            <t indent="0" pn="section-2.2-5.4.1">Preference, Binding SID, Priority, SR Policy Name, SR Policy
            Candidate Path Name, ENLP, Segment-List, Weight, and Segment
            sub-TLVs are defined in <xref target="SRPOLICYTLV" format="default" sectionFormat="of" derivedContent="Section 2.4"/>.</t>
          </li>
          <li pn="section-2.2-5.5">
            <t indent="0" pn="section-2.2-5.5.1">Additional sub-TLVs may be defined in the future.</t>
          </li>
        </ul>
        <t indent="0" pn="section-2.2-6">A Tunnel Encapsulation Attribute <bcp14>MUST NOT</bcp14> contain more than one TLV
        of type "SR Policy"; such updates <bcp14>MUST</bcp14> be considered malformed and
        handled by the "treat-as-withdraw" strategy <xref target="RFC7606" format="default" sectionFormat="of" derivedContent="RFC7606"/>.</t>
        <t indent="0" pn="section-2.2-7">BGP does not need to perform the validation of the tunnel (i.e., SR
        Policy) itself as indicated in <xref target="RFC9012" sectionFormat="of" section="6" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9012#section-6" derivedContent="RFC9012"/>.
        The validation of the SR Policy information that is advertised using
        the sub-TLVs specified in <xref target="SRPOLICYTLV" format="default" sectionFormat="of" derivedContent="Section 2.4"/> is performed by
        the SRPM.</t>
      </section>
      <section anchor="ENDCOLOR" numbered="true" toc="include" removeInRFC="false" pn="section-2.3">
        <name slugifiedName="name-applicability-of-tunnel-enc">Applicability of Tunnel Encapsulation Attribute Sub-TLVs</name>
        <t indent="0" pn="section-2.3-1">The Tunnel Egress Endpoint and Color sub-TLVs of the Tunnel
        Encapsulation Attribute, as defined in <xref target="RFC9012" format="default" sectionFormat="of" derivedContent="RFC9012"/>, are
        not utilized for SR Policy encodings. Consequently, their values are
        not relevant within the context of the SR Policy SAFI NLRI. If these
        sub-TLVs are present, a BGP speaker <bcp14>MUST</bcp14> ignore them and <bcp14>MAY</bcp14> remove
        them from the Tunnel Encapsulation Attribute during propagation.</t>
        <t indent="0" pn="section-2.3-2">Similarly, any other sub-TLVs, including those specified in <xref target="RFC9012" format="default" sectionFormat="of" derivedContent="RFC9012"/>, that do not have explicitly defined applicability
        to the SR Policy SAFI <bcp14>MUST</bcp14> be ignored by the BGP speaker and <bcp14>MAY</bcp14> be
        removed from the Tunnel Encapsulation Attribute during
        propagation.</t>
      </section>
      <section anchor="SRPOLICYTLV" numbered="true" toc="include" removeInRFC="false" pn="section-2.4">
        <name slugifiedName="name-sr-policy-sub-tlvs">SR Policy Sub-TLVs</name>
        <t indent="0" pn="section-2.4-1">This section specifies the sub-TLVs defined for encoding the
        information about the SR Policy Candidate Path.</t>
        <t indent="0" pn="section-2.4-2">Preference, Binding SID, SRv6 Binding SID, Segment-List, Priority,
        SR Policy Name, SR Policy Candidate Path Name, and Explicit NULL Label
        Policy are all optional sub-TLVs introduced for the BGP Tunnel
        Encapsulation Attribute <xref target="RFC9012" format="default" sectionFormat="of" derivedContent="RFC9012"/> being defined in this
        section.</t>
        <t indent="0" pn="section-2.4-3">Weight and Segment are sub-TLVs of the Segment-List sub-TLV
        mentioned above.</t>
        <t indent="0" pn="section-2.4-4">An early draft version of this document included only the Binding SID
        sub-TLV that could be used for both SR-MPLS and SRv6 BSIDs. The
        SRv6 Binding SID TLV was introduced in later versions to support the
        advertisement of additional SRv6 capabilities without affecting
        backward compatibility for early implementations.</t>
        <t indent="0" pn="section-2.4-5">The fault management and error handling in the encoding of the
        sub-TLVs defined in this section are specified in <xref target="ERROR" format="default" sectionFormat="of" derivedContent="Section 5"/>. For the TLVs/sub-TLVs that are specified as single
        instance, only the first instance of that TLV/sub-TLV is used: the
        other instances <bcp14>MUST</bcp14> be ignored and <bcp14>MUST NOT</bcp14> considered to be
        malformed.</t>
        <t indent="0" pn="section-2.4-6">None of the sub-TLVs defined in the following subsections have any
        effect on the BGP best-path selection or propagation procedures. These
        sub-TLVs are not used by the BGP path selection process and are
        instead passed on to SRPM as SR Policy Candidate Path information for
        further processing as described in <xref target="RFC9256" sectionFormat="of" section="2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2" derivedContent="RFC9256"/>.</t>
        <t indent="0" pn="section-2.4-7">The use of SR Policy sub-TLVs is applicable only for the AFI/SAFI
        pairs of (1/73, 2/73). Future documents may extend their applicability
        to other AFI/SAFI.</t>
        <section anchor="PREFTLV" numbered="true" toc="include" removeInRFC="false" pn="section-2.4.1">
          <name slugifiedName="name-preference-sub-tlv">Preference Sub-TLV</name>
          <t indent="0" pn="section-2.4.1-1">The Preference sub-TLV is used to carry the Preference of an SR
          Policy CP. The contents of this sub-TLV are used by the
          SRPM as described in <xref target="RFC9256" sectionFormat="of" section="2.7" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2.7" derivedContent="RFC9256"/>.</t>
          <t indent="0" pn="section-2.4.1-2">The Preference sub-TLV is <bcp14>OPTIONAL</bcp14>; it <bcp14>MUST NOT</bcp14> appear more
          than once in the SR Policy encoding.</t>
          <t indent="0" pn="section-2.4.1-3">The Preference sub-TLV has the following format: </t>
          <figure align="left" suppress-title="false" pn="figure-3">
            <name slugifiedName="name-preference-sub-tlv-2">Preference Sub-TLV</name>
            <artwork align="left" name="" type="" alt="" pn="section-2.4.1-4.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    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      Preference (4 octets)                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t indent="0" pn="section-2.4.1-5">Where:</t>
          <dl spacing="normal" indent="3" newline="false" pn="section-2.4.1-6">
            <dt pn="section-2.4.1-6.1">Type:</dt>
            <dd pn="section-2.4.1-6.2">12</dd>
            <dt pn="section-2.4.1-6.3">Length:</dt>
            <dd pn="section-2.4.1-6.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 6.</dd>
            <dt pn="section-2.4.1-6.5">Flags:</dt>
            <dd pn="section-2.4.1-6.6">1 octet of flags. No flags are defined in this
              document. The Flags field <bcp14>MUST</bcp14> be set to zero on transmission
              and <bcp14>MUST</bcp14> be ignored on receipt.</dd>
            <dt pn="section-2.4.1-6.7">RESERVED:</dt>
            <dd pn="section-2.4.1-6.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.1-6.9">Preference:</dt>
            <dd pn="section-2.4.1-6.10">a 4-octet value indicating the Preference of the
              SR Policy CP as described in <xref target="RFC9256" sectionFormat="of" section="2.7" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2.7" derivedContent="RFC9256"/>.</dd>
          </dl>
        </section>
        <section anchor="BINDINGSIDTLV" numbered="true" toc="include" removeInRFC="false" pn="section-2.4.2">
          <name slugifiedName="name-binding-sid-sub-tlv">Binding SID Sub-TLV</name>
          <t indent="0" pn="section-2.4.2-1">The Binding SID sub-TLV is used to signal the BSID-related
          information of the SR Policy CP. The contents of this
          sub-TLV are used by the SRPM as described in <xref target="RFC9256" sectionFormat="of" section="6" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-6" derivedContent="RFC9256"/>.</t>
          <t indent="0" pn="section-2.4.2-2">The Binding SID sub-TLV is <bcp14>OPTIONAL</bcp14>; it <bcp14>MUST NOT</bcp14> appear more
          than once in the SR Policy encoding.</t>
          <t indent="0" pn="section-2.4.2-3">When the Binding SID sub-TLV is used to signal an SRv6 SID, the
          selection of the corresponding SRv6 Endpoint Behavior <xref target="RFC8986" format="default" sectionFormat="of" derivedContent="RFC8986"/> to be instantiated is determined by the headend
          node. It is <bcp14>RECOMMENDED</bcp14> that the SRv6 Binding SID sub-TLV, as
          defined in <xref target="SRV6BINDINGSIDTLV" format="default" sectionFormat="of" derivedContent="Section 2.4.3"/>, be used when signaling an SRv6 BSID
          for an SR Policy CP. The support for the use of this
          Binding SID sub-TLV for the signaling of an SRv6 BSID is retained
          primarily for backward compatibility with implementations that
          followed early draft versions of this document that had not defined the
          SRv6 Binding SID sub-TLV.</t>
          <t indent="0" pn="section-2.4.2-4">The Binding SID sub-TLV has the following format: </t>
          <figure align="left" suppress-title="false" pn="figure-4">
            <name slugifiedName="name-binding-sid-sub-tlv-2">Binding SID Sub-TLV</name>
            <artwork align="left" name="" type="" alt="" pn="section-2.4.2-5.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    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Binding SID (variable, optional)                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t indent="0" pn="section-2.4.2-6">Where:</t>
          <dl spacing="normal" indent="3" newline="false" pn="section-2.4.2-7">
            <dt pn="section-2.4.2-7.1">Type:</dt>
            <dd pn="section-2.4.2-7.2">13</dd>
            <dt pn="section-2.4.2-7.3">Length:</dt>
            <dd pn="section-2.4.2-7.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 18 when a SRv6 BSID is present, 6 when an SR-MPLS
              BSID is present, or 2 when no BSID is present.</dd>
            <dt pn="section-2.4.2-7.5">Flags:</dt>
            <dd pn="section-2.4.2-7.6">
              <t indent="0" pn="section-2.4.2-7.6.1">1 octet of flags. The following flags are defined in
              the registry "SR Policy Binding SID Flags" as described in <xref target="IANABSIDFLAGS" format="default" sectionFormat="of" derivedContent="Section 6.6"/>:</t>
              <figure align="left" suppress-title="false" pn="figure-5">
                <name slugifiedName="name-sr-policy-binding-sid-flags">SR Policy Binding SID Flags</name>
                <artwork align="left" name="" type="" alt="" pn="section-2.4.2-7.6.2.1">
 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|S|I|           |
+-+-+-+-+-+-+-+-+
</artwork>
              </figure>
              <t indent="0" pn="section-2.4.2-7.6.3">Where:</t>
              <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2.4.2-7.6.4">
                <li pn="section-2.4.2-7.6.4.1">The S-Flag encodes the "Specified-BSID-Only"
                  behavior. It is used by SRPM as described in <xref target="RFC9256" sectionFormat="of" section="6.2.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-6.2.3" derivedContent="RFC9256"/>.</li>
                <li pn="section-2.4.2-7.6.4.2">The I-Flag encodes the "Drop-Upon-Invalid" 
                  behavior. It is used by SRPM as described in <xref target="RFC9256" sectionFormat="of" section="8.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-8.2" derivedContent="RFC9256"/> to
                  define a specific SR Policy forwarding behavior. The flag
                  indicates that the SR Policy is to perform the "Drop-Upon-Invalid" behavior when no valid CP is
                  available for this SR Policy. In this situation, the CP with
                  the highest preference amongst those with the "Drop-Upon-Invalid" behavior is made active to drop traffic steered over
                  the SR Policy.</li>
                <li pn="section-2.4.2-7.6.4.3">The unassigned bits in the Flags field <bcp14>MUST</bcp14> be set to zero
                  upon transmission and <bcp14>MUST</bcp14> be ignored upon receipt.
                </li>
              </ul>
            </dd>
            <dt pn="section-2.4.2-7.7">RESERVED:</dt>
            <dd pn="section-2.4.2-7.8">1 octet of reserved bits. <bcp14>MUST</bcp14> be set to zero on
              transmission and <bcp14>MUST</bcp14> be ignored on receipt.
            </dd>
            <dt pn="section-2.4.2-7.9">Binding SID:</dt>
            <dd pn="section-2.4.2-7.10">
              <t indent="0" pn="section-2.4.2-7.10.1">If the length is 2, then no BSID is
              present. If the length is 6, then the BSID is encoded in 4
              octets using the format below. Traffic Class (TC), S, and TTL
              (Total of 12 bits) are RESERVED and <bcp14>MUST</bcp14> be set to zero and <bcp14>MUST</bcp14>
              be ignored.</t>
              <figure align="left" suppress-title="false" pn="figure-6">
                <name slugifiedName="name-binding-sid-label-encoding">Binding SID Label Encoding</name>
                <artwork name="" type="" align="left" alt="" pn="section-2.4.2-7.10.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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Label                        | TC  |S|       TTL     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
              </figure>
              <t indent="0" pn="section-2.4.2-7.10.3">The Label field is validated by the SRPM but <bcp14>MUST NOT</bcp14> contain the reserved MPLS label values (0-15). If the length
              is 18, then the BSID contains a 16-octet SRv6 SID.</t>
            </dd>
          </dl>
        </section>
        <section anchor="SRV6BINDINGSIDTLV" numbered="true" toc="include" removeInRFC="false" pn="section-2.4.3">
          <name slugifiedName="name-srv6-binding-sid-sub-tlv">SRv6 Binding SID Sub-TLV</name>
          <t indent="0" pn="section-2.4.3-1">The SRv6 Binding SID sub-TLV is used to signal the SRv6-BSID-related information of an SR Policy CP. It enables
          the specification of the SRv6 Endpoint Behavior <xref target="RFC8986" format="default" sectionFormat="of" derivedContent="RFC8986"/> to be instantiated on the
          headend node. The contents of this sub-TLV are used by the SRPM as
          described in <xref target="RFC9256" sectionFormat="of" section="6" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-6" derivedContent="RFC9256"/>.</t>
          <t indent="0" pn="section-2.4.3-2">The SRv6 Binding SID sub-TLV is <bcp14>OPTIONAL</bcp14>. More than one SRv6
          Binding SID sub-TLV <bcp14>MAY</bcp14> be signaled in the same SR Policy encoding
          to indicate one or more SRv6 SIDs, each with potentially different
          SRv6 Endpoint Behaviors to be instantiated.</t>
          <t indent="0" pn="section-2.4.3-3">The SRv6 Binding SID sub-TLV has the following format:</t>
          <figure align="left" suppress-title="false" pn="figure-7">
            <name slugifiedName="name-srv6-binding-sid-sub-tlv-2">SRv6 Binding SID Sub-TLV</name>
            <artwork align="left" name="" type="" alt="" pn="section-2.4.3-4.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    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 SRv6 Binding SID (16 octets)                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//     SRv6 Endpoint Behavior and SID Structure (optional)     //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t indent="0" pn="section-2.4.3-5">Where:</t>
          <dl spacing="normal" indent="3" newline="false" pn="section-2.4.3-6">
            <dt pn="section-2.4.3-6.1">Type:</dt>
            <dd pn="section-2.4.3-6.2">20</dd>
            <dt pn="section-2.4.3-6.3">Length:</dt>
            <dd pn="section-2.4.3-6.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 26 when the SRv6 Endpoint Behavior and SID Structure is
              present; else, it <bcp14>MUST</bcp14> be 18.</dd>
            <dt pn="section-2.4.3-6.5">Flags:</dt>
            <dd pn="section-2.4.3-6.6">
              <t indent="0" pn="section-2.4.3-6.6.1">1 octet of flags. The following flags are defined in
              the registry "SR Policy SRv6 Binding SID Flags" as described in
              <xref target="IANASRV6BSIDFLAGS" format="default" sectionFormat="of" derivedContent="Section 6.7"/>:</t>
              <figure align="left" suppress-title="false" pn="figure-8">
                <name slugifiedName="name-sr-policy-srv6-binding-sid-">SR Policy SRv6 Binding SID Flags</name>
                <artwork align="left" name="" type="" alt="" pn="section-2.4.3-6.6.2.1">
 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|S|I|B|         |
+-+-+-+-+-+-+-+-+
</artwork>
              </figure>
              <t indent="0" pn="section-2.4.3-6.6.3">Where:</t>
              <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2.4.3-6.6.4">
                <li pn="section-2.4.3-6.6.4.1">The S-Flag encodes the "Specified-BSID-Only"
                  behavior. It is used by SRPM as described
                  in <xref target="RFC9256" sectionFormat="of" section="6.2.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-6.2.3" derivedContent="RFC9256"/>.</li>
                <li pn="section-2.4.3-6.6.4.2">The I-Flag encodes the "Drop-Upon-Invalid"
                  behavior. It is used by SRPM as described in 
                  <xref target="RFC9256" sectionFormat="of" section="8.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-8.2" derivedContent="RFC9256"/>.</li>
                <li pn="section-2.4.3-6.6.4.3">The B-Flag, when set, indicates the presence of
                  the "SRv6 Endpoint Behavior &amp; SID Structure" encoding
                  specified in <xref target="BEHAVIORSTRUCT" format="default" sectionFormat="of" derivedContent="Section 2.4.4.2.4"/>.</li>
                <li pn="section-2.4.3-6.6.4.4">The unassigned bits in the Flags field <bcp14>MUST</bcp14> be set to zero
                  upon transmission and <bcp14>MUST</bcp14> be ignored upon receipt.</li>
              </ul>
            </dd>
            <dt pn="section-2.4.3-6.7">RESERVED:</dt>
            <dd pn="section-2.4.3-6.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.3-6.9">SRv6 Binding SID:</dt>
            <dd pn="section-2.4.3-6.10">Contains a 16-octet SRv6 SID. The value 0
              <bcp14>MAY</bcp14> be used when the controller wants to indicate the desired
              SRv6 Endpoint Behavior, SID Structure, or flags without
              specifying the BSID.</dd>
            <dt pn="section-2.4.3-6.11">SRv6 Endpoint Behavior and SID Structure:</dt>
            <dd pn="section-2.4.3-6.12">Optional, as
              defined in <xref target="BEHAVIORSTRUCT" format="default" sectionFormat="of" derivedContent="Section 2.4.4.2.4"/>. The SRv6 Endpoint
              Behavior and SID Structure <bcp14>MUST NOT</bcp14> be included when the SRv6
              SID has not been included.</dd>
          </dl>
        </section>
        <section anchor="SLTLV" numbered="true" toc="include" removeInRFC="false" pn="section-2.4.4">
          <name slugifiedName="name-segment-list-sub-tlv">Segment List Sub-TLV</name>
          <t indent="0" pn="section-2.4.4-1">The Segment List sub-TLV 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) as well as an
          optional Weight sub-TLV.</t>
          <t indent="0" pn="section-2.4.4-2">The Segment List sub-TLV may exceed 255 bytes in length due to a
          large number of segments. A 2-octet length is thus required.
          According to <xref target="RFC9012" sectionFormat="of" section="2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9012#section-2" derivedContent="RFC9012"/>, the sub-TLV type
          defines the size of the Length field. Therefore, for the Segment
          List sub-TLV, a code point of 128 or higher is used.</t>
          <t indent="0" pn="section-2.4.4-3">The Segment List sub-TLV is <bcp14>OPTIONAL</bcp14> and <bcp14>MAY</bcp14> appear multiple
          times in the SR Policy encoding. The ordering of Segment List
          sub-TLVs does not matter since each sub-TLV encodes a Segment
          List.</t>
          <t indent="0" pn="section-2.4.4-4">The Segment List sub-TLV contains zero or more Segment sub-TLVs
          and <bcp14>MAY</bcp14> contain a Weight sub-TLV.</t>
          <t indent="0" pn="section-2.4.4-5">The Segment List sub-TLV has the following format: </t>
          <figure align="left" suppress-title="false" pn="figure-9">
            <name slugifiedName="name-segment-list-sub-tlv-2">Segment List Sub-TLV</name>
            <artwork align="left" name="" type="" alt="" pn="section-2.4.4-6.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            |   RESERVED    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                           sub-TLVs                          //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t indent="0" pn="section-2.4.4-7">Where:</t>
          <dl spacing="normal" indent="3" newline="false" pn="section-2.4.4-8">
            <dt pn="section-2.4.4-8.1">Type:</dt>
            <dd pn="section-2.4.4-8.2">128</dd>
            <dt pn="section-2.4.4-8.3">Length:</dt>
            <dd pn="section-2.4.4-8.4">The total length (not including the Type and Length
              fields) of the sub-TLVs encoded within the Segment List sub-TLV
              in terms of octets.</dd>
            <dt pn="section-2.4.4-8.5">RESERVED:</dt>
            <dd pn="section-2.4.4-8.6">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-8.7">sub-TLVs currently defined: </dt>
            <dd pn="section-2.4.4-8.8">
              <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2.4.4-8.8.1">
                <li pn="section-2.4.4-8.8.1.1">
                  <t indent="0" pn="section-2.4.4-8.8.1.1.1">An optional single Weight sub-TLV</t>
                </li>
                <li pn="section-2.4.4-8.8.1.2">
                  <t indent="0" pn="section-2.4.4-8.8.1.2.1">Zero or more Segment sub-TLVs</t>
                </li>
              </ul>
            </dd>
          </dl>
          <t indent="0" pn="section-2.4.4-9">Validation of an explicit path encoded by the Segment List
          sub-TLV is beyond the scope of BGP and performed by the SRPM as
          described in <xref target="RFC9256" sectionFormat="of" section="5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-5" derivedContent="RFC9256"/>.</t>
          <section anchor="WEIGHTTLV" numbered="true" toc="exclude" removeInRFC="false" pn="section-2.4.4.1">
            <name slugifiedName="name-weight-sub-tlv">Weight Sub-TLV</name>
            <t indent="0" pn="section-2.4.4.1-1">The Weight sub-TLV specifies the weight associated with a given
            segment list. The contents of this sub-TLV are used only by the
            SRPM as described in <xref target="RFC9256" sectionFormat="of" section="2.11" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2.11" derivedContent="RFC9256"/>.</t>
            <t indent="0" pn="section-2.4.4.1-2">The Weight sub-TLV is <bcp14>OPTIONAL</bcp14>; it <bcp14>MUST NOT</bcp14> appear more than
            once inside the Segment List sub-TLV.</t>
            <t indent="0" pn="section-2.4.4.1-3">The Weight sub-TLV has the following format: </t>
            <figure align="left" suppress-title="false" pn="figure-10">
              <name slugifiedName="name-weight-sub-tlv-2">Weight Sub-TLV</name>
              <artwork align="left" name="" type="" alt="" pn="section-2.4.4.1-4.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    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              Weight                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
            </figure>
            <t indent="0" pn="section-2.4.4.1-5">Where:</t>
            <dl spacing="normal" indent="3" newline="false" pn="section-2.4.4.1-6">
              <dt pn="section-2.4.4.1-6.1">Type:</dt>
              <dd pn="section-2.4.4.1-6.2">9</dd>
              <dt pn="section-2.4.4.1-6.3">Length:</dt>
              <dd pn="section-2.4.4.1-6.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 6.</dd>
              <dt pn="section-2.4.4.1-6.5">Flags:</dt>
              <dd pn="section-2.4.4.1-6.6">1 octet of flags. No flags are defined in this
                document. The Flags 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.1-6.7">RESERVED:</dt>
              <dd pn="section-2.4.4.1-6.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.1-6.9">Weight:</dt>
              <dd pn="section-2.4.4.1-6.10">4 octets carrying an unsigned integer value indicating the
                weight associated with a segment list as described in
                <xref target="RFC9256" sectionFormat="of" section="2.11" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2.11" derivedContent="RFC9256"/>. A weight value of zero is
                invalid.</dd>
            </dl>
          </section>
          <section anchor="SEGMENTTLV" numbered="true" toc="exclude" removeInRFC="false" pn="section-2.4.4.2">
            <name slugifiedName="name-segment-sub-tlvs">Segment Sub-TLVs</name>
            <t indent="0" pn="section-2.4.4.2-1">A Segment sub-TLV describes a single segment in a segment list
            (i.e., a single element of the explicit path). One or more Segment
            sub-TLVs constitute an explicit path of the SR Policy CP. The contents of these sub-TLVs are used only by the SRPM as
            described in <xref target="RFC9256" sectionFormat="of" section="4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-4" derivedContent="RFC9256"/>.</t>
            <t indent="0" pn="section-2.4.4.2-2">The Segment sub-TLVs are <bcp14>OPTIONAL</bcp14> and <bcp14>MAY</bcp14> appear multiple times
            in the Segment List sub-TLV.</t>
            <t indent="0" pn="section-2.4.4.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:</t>
            <dl indent="3" newline="false" spacing="normal" pn="section-2.4.4.2-4">
              <dt pn="section-2.4.4.2-4.1">Type A:</dt>
              <dd pn="section-2.4.4.2-4.2">SR-MPLS Label</dd>
              <dt pn="section-2.4.4.2-4.3">Type B:</dt>
              <dd pn="section-2.4.4.2-4.4">SRv6 SID</dd>
              <dt pn="section-2.4.4.2-4.5">Type C:</dt>
              <dd pn="section-2.4.4.2-4.6">IPv4 Prefix with optional SR Algorithm</dd>
              <dt pn="section-2.4.4.2-4.7">Type D:</dt>
              <dd pn="section-2.4.4.2-4.8">IPv6 Global Prefix with optional SR Algorithm for SR-MPLS</dd>
              <dt pn="section-2.4.4.2-4.9">Type E:</dt>
              <dd pn="section-2.4.4.2-4.10">IPv4 Prefix with Local Interface ID</dd>
              <dt pn="section-2.4.4.2-4.11">Type F:</dt>
              <dd pn="section-2.4.4.2-4.12">IPv4 Addresses for link endpoints as Local, Remote pair</dd>
              <dt pn="section-2.4.4.2-4.13">Type G:</dt>
              <dd pn="section-2.4.4.2-4.14">IPv6 Prefix and Interface ID for link endpoints as Local, Remote pair for SR-MPLS</dd>
              <dt pn="section-2.4.4.2-4.15">Type H:</dt>
              <dd pn="section-2.4.4.2-4.16">IPv6 Addresses for link endpoints as Local, Remote pair for SR-MPLS</dd>
              <dt pn="section-2.4.4.2-4.17">Type I:</dt>
              <dd pn="section-2.4.4.2-4.18">IPv6 Global Prefix with optional SR Algorithm for SRv6</dd>
              <dt pn="section-2.4.4.2-4.19">Type J:</dt>
              <dd pn="section-2.4.4.2-4.20">IPv6 Prefix and Interface ID for link endpoints as Local, Remote pair for SRv6</dd>
              <dt pn="section-2.4.4.2-4.21">Type K:</dt>
              <dd pn="section-2.4.4.2-4.22">IPv6 Addresses for link endpoints as Local, Remote pair for SRv6</dd>
            </dl>
            <t indent="0" pn="section-2.4.4.2-5">The following subsections specify the sub-TLVs used for
            Segment Types A and B. The other segment types are specified in
            <xref target="RFC9831" format="default" sectionFormat="of" derivedContent="RFC9831"/>. 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="TYPEA" numbered="true" toc="exclude" removeInRFC="false" pn="section-2.4.4.2.1">
              <name slugifiedName="name-segment-type-a">Segment Type A</name>
              <t indent="0" pn="section-2.4.4.2.1-1">The Type A Segment sub-TLV encodes a single SR-MPLS SID. The
              format is as follows and is used to encode MPLS Label fields as
              specified in <xref target="RFC3032" format="default" sectionFormat="of" derivedContent="RFC3032"/> and <xref target="RFC5462" format="default" sectionFormat="of" derivedContent="RFC5462"/>:
              </t>
              <figure align="left" suppress-title="false" pn="figure-11">
                <name slugifiedName="name-type-a-segment-sub-tlv">Type A Segment Sub-TLV</name>
                <artwork align="left" name="" type="" alt="" pn="section-2.4.4.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     |   RESERVED    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Label                        | TC  |S|       TTL     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
              </figure>
              <t indent="0" pn="section-2.4.4.2.1-3">Where:</t>
              <dl spacing="normal" indent="3" newline="false" pn="section-2.4.4.2.1-4">
                <dt pn="section-2.4.4.2.1-4.1">Type:</dt>
                <dd pn="section-2.4.4.2.1-4.2">1</dd>
                <dt pn="section-2.4.4.2.1-4.3">Length:</dt>
                <dd pn="section-2.4.4.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 6.</dd>
                <dt pn="section-2.4.4.2.1-4.5">Flags:</dt>
                <dd pn="section-2.4.4.2.1-4.6">1 octet of flags as defined in <xref target="SEGMENTFLAGS" format="default" sectionFormat="of" derivedContent="Section 2.4.4.2.3"/>.</dd>
                <dt pn="section-2.4.4.2.1-4.7">RESERVED:</dt>
                <dd pn="section-2.4.4.2.1-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.2.1-4.9">Label:</dt>
                <dd pn="section-2.4.4.2.1-4.10">20 bits of label value.</dd>
                <dt pn="section-2.4.4.2.1-4.11">TC:</dt>
                <dd pn="section-2.4.4.2.1-4.12">3 bits of traffic class.</dd>
                <dt pn="section-2.4.4.2.1-4.13">S:</dt>
                <dd pn="section-2.4.4.2.1-4.14">1 bit of bottom-of-stack.</dd>
                <dt pn="section-2.4.4.2.1-4.15">TTL:</dt>
                <dd pn="section-2.4.4.2.1-4.16">1 octet of TTL.</dd>
              </dl>
              <t indent="0" pn="section-2.4.4.2.1-5">The following applies to the Type-1 Segment sub-TLV:</t>
              <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2.4.4.2.1-6">
                <li pn="section-2.4.4.2.1-6.1">
                  <t indent="0" pn="section-2.4.4.2.1-6.1.1">The S bit <bcp14>MUST</bcp14> be zero upon transmission and <bcp14>MUST</bcp14> be
                  ignored upon reception.</t>
                </li>
                <li pn="section-2.4.4.2.1-6.2">
                  <t indent="0" pn="section-2.4.4.2.1-6.2.1">If the originator wants the receiver to choose the TC
                  value, it sets the TC field to zero.</t>
                </li>
                <li pn="section-2.4.4.2.1-6.3">
                  <t indent="0" pn="section-2.4.4.2.1-6.3.1">If the originator wants the receiver to choose the TTL
                  value, it sets the TTL field to 255.</t>
                </li>
                <li pn="section-2.4.4.2.1-6.4">
                  <t indent="0" pn="section-2.4.4.2.1-6.4.1">If the originator wants to recommend a value for these
                  fields, it puts those values in the TC and/or TTL
                  fields.</t>
                </li>
                <li pn="section-2.4.4.2.1-6.5">
                  <t indent="0" pn="section-2.4.4.2.1-6.5.1">The receiver <bcp14>MAY</bcp14> override the originator's values for
                  these fields. This would be determined by local policy at
                  the receiver. One possible policy would be to override the
                  fields only if the fields have the default values specified
                  above.</t>
                </li>
              </ul>
            </section>
            <section anchor="TYPEB" numbered="true" toc="exclude" removeInRFC="false" pn="section-2.4.4.2.2">
              <name slugifiedName="name-segment-type-b">Segment Type B</name>
              <t indent="0" pn="section-2.4.4.2.2-1">The Type B Segment sub-TLV encodes a single SRv6 SID. The
              format is as follows: </t>
              <figure align="left" suppress-title="false" pn="figure-12">
                <name slugifiedName="name-type-b-segment-sub-tlv">Type B Segment Sub-TLV</name>
                <artwork align="left" name="" type="" alt="" pn="section-2.4.4.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     |   RESERVED    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                       SRv6 SID (16 octets)                  //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//           SRv6 Endpoint Behavior and SID Structure          //
//                    (optional, 8 octets)                     //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
              </figure>
              <t indent="0" pn="section-2.4.4.2.2-3">Where:</t>
              <dl spacing="normal" indent="3" newline="false" pn="section-2.4.4.2.2-4">
                <dt pn="section-2.4.4.2.2-4.1">Type:</dt>
                <dd pn="section-2.4.4.2.2-4.2">13</dd>
                <dt pn="section-2.4.4.2.2-4.3">Length:</dt>
                <dd pn="section-2.4.4.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 26 when the SRv6 Endpoint Behavior and SID
                  Structure is present; else, it <bcp14>MUST</bcp14> be 18.
                </dd>
                <dt pn="section-2.4.4.2.2-4.5">Flags:</dt>
                <dd pn="section-2.4.4.2.2-4.6">1 octet of flags as defined in <xref target="SEGMENTFLAGS" format="default" sectionFormat="of" derivedContent="Section 2.4.4.2.3"/>.</dd>
                <dt pn="section-2.4.4.2.2-4.7">RESERVED:</dt>
                <dd pn="section-2.4.4.2.2-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.2.2-4.9">SRv6 SID:</dt>
                <dd pn="section-2.4.4.2.2-4.10">16 octets of IPv6 address.</dd>
                <dt pn="section-2.4.4.2.2-4.11">SRv6 Endpoint Behavior and SID Structure:</dt>
                <dd pn="section-2.4.4.2.2-4.12">Optional, as
                  defined in <xref target="BEHAVIORSTRUCT" format="default" sectionFormat="of" derivedContent="Section 2.4.4.2.4"/>. 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.4.4.2.2-5">The sub-TLV code point 2 defined for the advertisement of
              Segment Type B in the earlier draft versions of this document has been
              deprecated to avoid backward compatibility issues.</t>
            </section>
            <section anchor="SEGMENTFLAGS" numbered="true" toc="exclude" removeInRFC="false" pn="section-2.4.4.2.3">
              <name slugifiedName="name-sr-policy-segment-flags">SR Policy Segment Flags</name>
              <t indent="0" pn="section-2.4.4.2.3-1">The Segment Type sub-TLVs described above may contain the
              following SR Policy Segment Flags in their Flags field. Also
              refer to <xref target="IANASIDFLAGS" format="default" sectionFormat="of" derivedContent="Section 6.8"/>: </t>
              <figure align="left" suppress-title="false" pn="figure-13">
                <name slugifiedName="name-sr-policy-segment-flags-2">SR Policy Segment Flags</name>
                <artwork align="left" name="" type="" alt="" pn="section-2.4.4.2.3-2.1">
 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|V|   |B|       |
+-+-+-+-+-+-+-+-+
</artwork>
              </figure>
              <t indent="0" pn="section-2.4.4.2.3-3">Where:</t>
              <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2.4.4.2.3-4">
                <li pn="section-2.4.4.2.3-4.1"> When the V-Flag is set, it is used by SRPM for "SID
                  verification" 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"/>.</li>
                <li pn="section-2.4.4.2.3-4.2">When the B-Flag is set, it indicates the presence of
                  the "SRv6 Endpoint Behavior &amp; SID Structure" encoding
                  specified in <xref target="BEHAVIORSTRUCT" format="default" sectionFormat="of" derivedContent="Section 2.4.4.2.4"/>.</li>
                <li pn="section-2.4.4.2.3-4.3">The unassigned bits in the Flags field <bcp14>MUST</bcp14> be set to zero
                  upon transmission and <bcp14>MUST</bcp14> be ignored upon receipt.</li>
              </ul>
              <t indent="0" pn="section-2.4.4.2.3-5">The following applies to the Segment Flags:</t>
              <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2.4.4.2.3-6">
                <li pn="section-2.4.4.2.3-6.1">
                  V-Flag applies to all Segment Types.
                </li>
                <li pn="section-2.4.4.2.3-6.2">
                  B-Flag applies to Segment Type B. If B-Flag appears with
                  Segment Type A, it <bcp14>MUST</bcp14> be ignored.
                </li>
              </ul>
            </section>
            <section anchor="BEHAVIORSTRUCT" numbered="true" toc="exclude" removeInRFC="false" pn="section-2.4.4.2.4">
              <name slugifiedName="name-srv6-endpoint-behavior-and-">SRv6 Endpoint Behavior and SID Structure</name>
              <t indent="0" pn="section-2.4.4.2.4-1">The Segment Type sub-TLVs described above <bcp14>MAY</bcp14> contain the
              SRv6 Endpoint Behavior and SID Structure <xref target="RFC8986" format="default" sectionFormat="of" derivedContent="RFC8986"/> encoding as described below: </t>
              <figure align="left" suppress-title="false" pn="figure-14">
                <name slugifiedName="name-srv6-endpoint-behavior-and-s">SRv6 Endpoint Behavior and SID Structure</name>
                <artwork align="left" name="" type="" alt="" pn="section-2.4.4.2.4-2.1">
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Endpoint Behavior       |            Reserved           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    LB Length  |  LN Length    | Fun. Length   |  Arg. Length  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
              </figure>
              <t indent="0" pn="section-2.4.4.2.4-3">Where:</t>
              <dl spacing="normal" indent="3" newline="false" pn="section-2.4.4.2.4-4">
                <dt pn="section-2.4.4.2.4-4.1">Endpoint Behavior:</dt>
                <dd pn="section-2.4.4.2.4-4.2">2 octets. It carries the SRv6 Endpoint
                  Behavior code point for this SRv6 SID as defined in <xref target="RFC8986" sectionFormat="of" section="10.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8986#section-10.2" derivedContent="RFC8986"/>. When
                  set with the value 0xFFFF (i.e., Opaque), the choice of SRv6
                  Endpoint Behavior is left to the headend.</dd>
                <dt pn="section-2.4.4.2.4-4.3">Reserved:</dt>
                <dd pn="section-2.4.4.2.4-4.4">2 octets 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.2.4-4.5">Locator Block Length:</dt>
                <dd pn="section-2.4.4.2.4-4.6">1 octet. SRv6 SID Locator Block
                  length in bits.</dd>
                <dt pn="section-2.4.4.2.4-4.7">Locator Node Length:</dt>
                <dd pn="section-2.4.4.2.4-4.8">1 octet. SRv6 SID Locator Node
                  length in bits.</dd>
                <dt pn="section-2.4.4.2.4-4.9">Function Length:</dt>
                <dd pn="section-2.4.4.2.4-4.10">1 octet. SRv6 SID Function length in
                  bits.</dd>
                <dt pn="section-2.4.4.2.4-4.11">Argument Length:</dt>
                <dd pn="section-2.4.4.2.4-4.12">1 octet. SRv6 SID Arguments length in
                  bits.</dd>
              </dl>
              <t indent="0" pn="section-2.4.4.2.4-5">The total of the locator block, locator node, function, and
              argument lengths <bcp14>MUST</bcp14> be less than or equal to 128.</t>
            </section>
          </section>
        </section>
        <section anchor="ENLPTLV" numbered="true" toc="include" removeInRFC="false" pn="section-2.4.5">
          <name slugifiedName="name-explicit-null-label-policy-">Explicit NULL Label Policy Sub-TLV</name>
          <t indent="0" pn="section-2.4.5-1">To steer an unlabeled IP packet into an SR Policy for the MPLS
          data plane, it is necessary to push a label stack of one or more
          labels on that packet.</t>
          <t indent="0" pn="section-2.4.5-2">The Explicit NULL Label Policy (ENLP) sub-TLV is used to indicate
          whether an Explicit NULL Label <xref target="RFC3032" format="default" sectionFormat="of" derivedContent="RFC3032"/> must be
          pushed on an unlabeled IP packet before any other labels.</t>
          <t indent="0" pn="section-2.4.5-3">If an ENLP sub-TLV is not present, the decision of whether to
          push an Explicit NULL label on a given packet is a matter of local
          configuration.</t>
          <t indent="0" pn="section-2.4.5-4">The ENLP sub-TLV is <bcp14>OPTIONAL</bcp14>; it <bcp14>MUST NOT</bcp14> appear more than
          once in the SR Policy encoding.</t>
          <t indent="0" pn="section-2.4.5-5">The contents of this sub-TLV are used by the SRPM as described in
          <xref target="RFC9256" sectionFormat="of" section="4.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-4.1" derivedContent="RFC9256"/>.</t>
          <figure align="left" suppress-title="false" pn="figure-15">
            <name slugifiedName="name-enlp-sub-tlv">ENLP Sub-TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-2.4.5-6.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    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     ENLP      |
+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t indent="0" pn="section-2.4.5-7">Where:</t>
          <dl spacing="normal" indent="3" newline="false" pn="section-2.4.5-8">
            <dt pn="section-2.4.5-8.1">Type:</dt>
            <dd pn="section-2.4.5-8.2">14</dd>
            <dt pn="section-2.4.5-8.3">Length:</dt>
            <dd pn="section-2.4.5-8.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 3.</dd>
            <dt pn="section-2.4.5-8.5">Flags:</dt>
            <dd pn="section-2.4.5-8.6">1 octet of flags. No flags are defined in this
              document. The Flags field <bcp14>MUST</bcp14> be set to zero on transmission
              and <bcp14>MUST</bcp14> be ignored on receipt.</dd>
            <dt pn="section-2.4.5-8.7">RESERVED:</dt>
            <dd pn="section-2.4.5-8.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.5-8.9">ENLP (Explicit NULL Label Policy):</dt>
            <dd pn="section-2.4.5-8.10">
              <t indent="0" pn="section-2.4.5-8.10.1">Indicates whether Explicit
              NULL labels are to be pushed on unlabeled IP packets that are
              being steered into a given SR Policy. The following values have
              been currently defined for this field:</t>
              <dl spacing="normal" indent="6" newline="false" pn="section-2.4.5-8.10.2">
                <dt pn="section-2.4.5-8.10.2.1">1:</dt>
                <dd pn="section-2.4.5-8.10.2.2">Push an IPv4 Explicit NULL label on an unlabeled IPv4
                  packet but do not push an IPv6 Explicit NULL label on an
                  unlabeled IPv6 packet.</dd>
                <dt pn="section-2.4.5-8.10.2.3">2:</dt>
                <dd pn="section-2.4.5-8.10.2.4">Push an IPv6 Explicit NULL label on an unlabeled IPv6
                  packet but do not push an IPv4 Explicit NULL label on an
                  unlabeled IPv4 packet.</dd>
                <dt pn="section-2.4.5-8.10.2.5">3:</dt>
                <dd pn="section-2.4.5-8.10.2.6">Push an IPv4 Explicit NULL label on an unlabeled IPv4
                  packet and push an IPv6 Explicit NULL label on an unlabeled
                  IPv6 packet.</dd>
                <dt pn="section-2.4.5-8.10.2.7">4:</dt>
                <dd pn="section-2.4.5-8.10.2.8">Do not push an Explicit NULL label.</dd>
              </dl>
              <t indent="0" pn="section-2.4.5-8.10.3">This field can have one of the values as specified in <xref target="IANAENLP" format="default" sectionFormat="of" derivedContent="Section 6.10"/>. The ENLP unassigned values
              may be used for future extensions. Implementations adhering to
              this document <bcp14>MUST</bcp14> ignore the ENLP sub-TLV with
              unrecognized values (viz. other than 1 through 4). The behavior
              signaled in this sub-TLV <bcp14>MAY</bcp14> be overridden by
              local configuration by the network operator based on their
              deployment requirements. <xref target="RFC9256" sectionFormat="of" section="4.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-4.1" derivedContent="RFC9256"/> describes the behavior on the
              headend for the handling of the Explicit NULL label.</t>
            </dd>
          </dl>
        </section>
        <section anchor="POLICYPRIORITY" numbered="true" toc="include" removeInRFC="false" pn="section-2.4.6">
          <name slugifiedName="name-sr-policy-priority-sub-tlv">SR Policy Priority Sub-TLV</name>
          <t indent="0" pn="section-2.4.6-1">An operator <bcp14>MAY</bcp14> set the SR Policy Priority sub-TLV to indicate the
          order in which the SR policies are recomputed upon topological
          change. The contents of this sub-TLV are used by the SRPM as
          described in <xref target="RFC9256" sectionFormat="of" section="2.12" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2.12" derivedContent="RFC9256"/>.</t>
          <t indent="0" pn="section-2.4.6-2">The Priority sub-TLV is <bcp14>OPTIONAL</bcp14>; it <bcp14>MUST NOT</bcp14> appear more than
          once in the SR Policy encoding.</t>
          <t indent="0" pn="section-2.4.6-3">The Priority sub-TLV has the following format:</t>
          <figure align="left" suppress-title="false" pn="figure-16">
            <name slugifiedName="name-priority-sub-tlv">Priority Sub-TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-2.4.6-4.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      |  Priority     |   RESERVED    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t indent="0" pn="section-2.4.6-5">Where:</t>
          <dl spacing="normal" indent="3" newline="false" pn="section-2.4.6-6">
            <dt pn="section-2.4.6-6.1">Type:</dt>
            <dd pn="section-2.4.6-6.2">15</dd>
            <dt pn="section-2.4.6-6.3">Length:</dt>
            <dd pn="section-2.4.6-6.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 2.</dd>
            <dt pn="section-2.4.6-6.5">Priority:</dt>
            <dd pn="section-2.4.6-6.6">A 1-octet value indicating the priority as
              specified in <xref target="RFC9256" sectionFormat="of" section="2.12" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2.12" derivedContent="RFC9256"/>.</dd>
            <dt pn="section-2.4.6-6.7">RESERVED:</dt>
            <dd pn="section-2.4.6-6.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>
          </dl>
        </section>
        <section anchor="POLICYCPNAME" numbered="true" toc="include" removeInRFC="false" pn="section-2.4.7">
          <name slugifiedName="name-sr-policy-candidate-path-na">SR Policy Candidate Path Name Sub-TLV</name>
          <t indent="0" pn="section-2.4.7-1">An operator <bcp14>MAY</bcp14> set the SR Policy Candidate Path Name sub-TLV to
          attach a symbolic name to the SR Policy CP.</t>
          <t indent="0" pn="section-2.4.7-2">Usage of the SR Policy Candidate Path Name sub-TLV is described in
          <xref target="RFC9256" sectionFormat="of" section="2.6" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2.6" derivedContent="RFC9256"/>.</t>
          <t indent="0" pn="section-2.4.7-3">The SR Policy Candidate Path Name sub-TLV may exceed 255 bytes in
          length due to a long name. A 2-octet length is thus required.
          According to <xref target="RFC9012" sectionFormat="of" section="2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9012#section-2" derivedContent="RFC9012"/>, the sub-TLV type
          defines the size of the Length field. Therefore, for the SR Policy
          Candidate Path Name sub-TLV, a code point of 128 or higher is
          used.</t>
          <t indent="0" pn="section-2.4.7-4">It is <bcp14>RECOMMENDED</bcp14> that the size of the symbolic name for the
          CP be limited to 255 bytes. Implementations <bcp14>MAY</bcp14> choose
          to truncate long names to 255 bytes when signaling via BGP.</t>
          <t indent="0" pn="section-2.4.7-5">The SR Policy Candidate Path Name sub-TLV is <bcp14>OPTIONAL</bcp14>; it <bcp14>MUST NOT</bcp14> appear more than once in the SR Policy encoding.</t>
          <t indent="0" pn="section-2.4.7-6">The SR Policy Candidate Path Name sub-TLV has the following format:</t>
          <figure align="left" suppress-title="false" pn="figure-17">
            <name slugifiedName="name-sr-policy-candidate-path-nam">SR Policy Candidate Path Name Sub-TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-2.4.7-7.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                      |   RESERVED    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//            SR Policy Candidate Path Name                     //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t indent="0" pn="section-2.4.7-8">Where:</t>
          <dl spacing="normal" indent="3" newline="false" pn="section-2.4.7-9">
            <dt pn="section-2.4.7-9.1">Type:</dt>
            <dd pn="section-2.4.7-9.2">129</dd>
            <dt pn="section-2.4.7-9.3">Length:</dt>
            <dd pn="section-2.4.7-9.4">Specifies the length of the value field (i.e., not
              including Type and Length fields) in terms of octets. The value
              is variable.</dd>
            <dt pn="section-2.4.7-9.5">RESERVED:</dt>
            <dd pn="section-2.4.7-9.6">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.7-9.7">SR Policy Candidate Path Name:</dt>
            <dd pn="section-2.4.7-9.8">Symbolic name for the SR Policy
              CP without a NULL terminator with encoding as
              specified in <xref target="RFC9256" sectionFormat="of" section="2.6" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2.6" derivedContent="RFC9256"/>.</dd>
          </dl>
        </section>
        <section anchor="POLICYNAME" numbered="true" toc="include" removeInRFC="false" pn="section-2.4.8">
          <name slugifiedName="name-sr-policy-name-sub-tlv">SR Policy Name Sub-TLV</name>
          <t indent="0" pn="section-2.4.8-1">An operator <bcp14>MAY</bcp14> set the SR Policy Name sub-TLV to associate a
          symbolic name with the SR Policy for which the CP is
          being advertised via the SR Policy NLRI.</t>
          <t indent="0" pn="section-2.4.8-2">Usage of the SR Policy Name sub-TLV is described in <xref target="RFC9256" sectionFormat="of" section="2.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2.1" derivedContent="RFC9256"/>.</t>
          <t indent="0" pn="section-2.4.8-3">The SR Policy Name sub-TLV may exceed 255 bytes in length due to a
          long SR Policy name. A 2-octet length is thus required. According to
          <xref target="RFC9012" sectionFormat="of" section="2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9012#section-2" derivedContent="RFC9012"/>, the sub-TLV
          type defines the size of the Length field. Therefore, for the SR Policy
          Name sub-TLV, a code point of 128 or higher is used.</t>
          <t indent="0" pn="section-2.4.8-4">It is <bcp14>RECOMMENDED</bcp14> that the size of the symbolic name for the SR
          Policy be limited to 255 bytes. Implementations <bcp14>MAY</bcp14> choose to
          truncate long names to 255 bytes when signaling via BGP.</t>
          <t indent="0" pn="section-2.4.8-5">The SR Policy Name sub-TLV is <bcp14>OPTIONAL</bcp14>; it <bcp14>MUST NOT</bcp14> appear more
          than once in the SR Policy encoding.</t>
          <t indent="0" pn="section-2.4.8-6">The SR Policy Name sub-TLV has the following format:</t>
          <figure align="left" suppress-title="false" pn="figure-18">
            <name slugifiedName="name-sr-policy-name-sub-tlv-2">SR Policy Name Sub-TLV</name>
            <artwork name="" type="" align="left" alt="" pn="section-2.4.8-7.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                      |   RESERVED    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                      SR Policy Name                          //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure>
          <t indent="0" pn="section-2.4.8-8">Where:</t>
          <dl spacing="normal" indent="3" newline="false" pn="section-2.4.8-9">
            <dt pn="section-2.4.8-9.1">Type:</dt>
            <dd pn="section-2.4.8-9.2">130</dd>
            <dt pn="section-2.4.8-9.3">Length:</dt>
            <dd pn="section-2.4.8-9.4">Specifies the length of the value field (i.e., not
              including Type and Length fields) in terms of octets. The value
              is variable.</dd>
            <dt pn="section-2.4.8-9.5">RESERVED:</dt>
            <dd pn="section-2.4.8-9.6">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.8-9.7">SR Policy Name:</dt>
            <dd pn="section-2.4.8-9.8">Symbolic name for the SR Policy without a NULL
              terminator with encoding as specified in <xref target="RFC9256" sectionFormat="of" section="2.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2.1" derivedContent="RFC9256"/>.</dd>
          </dl>
        </section>
      </section>
    </section>
    <section anchor="EXTCOLOR" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-color-extended-community">Color Extended Community</name>
      <t indent="0" pn="section-3-1">The Color Extended Community <xref target="RFC9012" format="default" sectionFormat="of" derivedContent="RFC9012"/> is used to
      steer traffic corresponding to BGP routes into an SR Policy with
      matching Color value. The Color Extended Community <bcp14>MAY</bcp14> be carried in any
      BGP UPDATE message whose AFI/SAFI is 1/1 (IPv4 Unicast), 2/1 (IPv6
      Unicast), 1/4 (IPv4 Labeled Unicast), 2/4 (IPv6 Labeled Unicast), 1/128
      (VPN-IPv4 Labeled Unicast), 2/128 (VPN-IPv6 Labeled Unicast), or 25/70
      (Ethernet VPN, usually known as EVPN). Use of the Color Extended
      Community in BGP UPDATE messages of other AFI/SAFIs is not covered by
      <xref target="RFC9012" format="default" sectionFormat="of" derivedContent="RFC9012"/>; hence, it is outside the scope of this document
      as well.</t>
      <t indent="0" pn="section-3-2">Two bits from the Flags field of the Color Extended Community are
      used as follows to support the requirements of Color-Only steering as
      specified in <xref target="RFC9256" sectionFormat="of" section="8.8" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-8.8" derivedContent="RFC9256"/>: </t>
      <figure align="left" suppress-title="false" pn="figure-19">
        <name slugifiedName="name-color-extended-community-fl">Color Extended Community Flags</name>
        <artwork name="" type="" align="left" alt="" pn="section-3-3.1">
                     1
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|C O|        Unassigned         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
      </figure>
      <t indent="0" pn="section-3-4">The C and O bits together form the Color-Only Type field, which
      indicates the various matching criteria between the BGP Next Hop (NH) and the SR Policy
      Endpoint in addition to the matching of the Color value. The following types
      are defined:</t>
      <dl spacing="normal" indent="3" newline="false" pn="section-3-5">
        <dt pn="section-3-5.1">Type 0 (bits 00):</dt>
        <dd pn="section-3-5.2">Specific Endpoint Match. Request a match for the
          Endpoint that is the BGP NH.</dd>
        <dt pn="section-3-5.3">Type 1 (bits 01):</dt>
        <dd pn="section-3-5.4">Specific or Null Endpoint Match. Request a match
          for either the Endpoint that is the BGP NH or a null Endpoint (e.g.,
          a default gateway).</dd>
        <dt pn="section-3-5.5">Type 2 (bits 10):</dt>
        <dd pn="section-3-5.6">Specific, Null, or Any Endpoint Match. Request
          a match for either the Endpoint that is the BGP NH or a null or
          any Endpoint.</dd>
        <dt pn="section-3-5.7">Type 3 (bits 11):</dt>
        <dd pn="section-3-5.8">Reserved for future use and <bcp14>SHOULD NOT</bcp14> be used.
          Upon reception, an implementation <bcp14>MUST</bcp14> treat it like Type 0.</dd>
      </dl>
      <t indent="0" pn="section-3-6">The details of the SR Policy steering mechanisms based on these
      Color-Only types are specified in <xref target="RFC9256" sectionFormat="of" section="8.8" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-8.8" derivedContent="RFC9256"/>.</t>
      <t indent="0" pn="section-3-7">One or more Color Extended Communities <bcp14>MAY</bcp14> be
      associated with a BGP route update. Sections <xref target="RFC9256" sectionFormat="bare" section="8.4.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-8.4.1" derivedContent="RFC9256"/>, <xref target="RFC9256" sectionFormat="bare" section="8.5.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-8.5.1" derivedContent="RFC9256"/>, and <xref target="RFC9256" sectionFormat="bare" section="8.8.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-8.8.2" derivedContent="RFC9256"/> of <xref target="RFC9256" format="default" sectionFormat="of" derivedContent="RFC9256"/> specify the steering behaviors over SR Policies when
      multiple Color Extended Communities are associated with a BGP route.</t>
    </section>
    <section anchor="OPERATIONS" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-sr-policy-operations">SR Policy Operations</name>
      <t indent="0" pn="section-4-1">As mentioned in <xref target="INTRO" format="default" sectionFormat="of" derivedContent="Section 1"/>, BGP is not the actual
      consumer of an SR Policy NLRI. BGP is in charge of the origination and
      propagation of the SR Policy NLRI, but its installation and use are
      outside the scope of BGP. The details of SR Policy installation and use
      are specified in <xref target="RFC9256" format="default" sectionFormat="of" derivedContent="RFC9256"/>.</t>
      <section anchor="CONFIG" numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-advertisement-of-sr-policie">Advertisement of SR Policies</name>
        <t indent="0" pn="section-4.1-1">Typically, but not limited to, an SR Policy is computed by a
        controller or a Path Computation Engine (PCE) and originated by a BGP
        speaker on its behalf.</t>
        <t indent="0" pn="section-4.1-2">Multiple SR Policy NLRIs may be present with the same &lt;Color,
        Endpoint&gt; tuple but with different distinguishers when these SR
        policies are intended for different headends.</t>
        <t indent="0" pn="section-4.1-3">The distinguisher of each SR Policy NLRI prevents undesired BGP
        route selection among these SR Policy NLRIs and allows their
        propagation across RRs <xref target="RFC4456" format="default" sectionFormat="of" derivedContent="RFC4456"/>.</t>
        <t indent="0" pn="section-4.1-4">Moreover, one or more route targets <bcp14>SHOULD</bcp14> be attached to the
        advertisement, where each route target identifies one or more intended
        headends for the advertised SR Policy update.</t>
        <t indent="0" pn="section-4.1-5">If no route target is attached to the SR Policy NLRI, then it is
        assumed that the originator sends the SR Policy update directly (e.g.,
        through a BGP session) to the intended receiver. In such a case, the
        NO_ADVERTISE community <xref target="RFC1997" format="default" sectionFormat="of" derivedContent="RFC1997"/> <bcp14>MUST</bcp14> be attached to
        the SR Policy update (see further details in <xref target="PROPAGATE" format="default" sectionFormat="of" derivedContent="Section 4.2.3"/>).</t>
      </section>
      <section anchor="RECEPT" numbered="true" toc="include" removeInRFC="false" pn="section-4.2">
        <name slugifiedName="name-reception-of-an-sr-policy-n">Reception of an SR Policy NLRI</name>
        <t indent="0" pn="section-4.2-1">On reception of an SR Policy NLRI, a BGP speaker first determines
        if it is valid as described in <xref target="ACCEPT" format="default" sectionFormat="of" derivedContent="Section 4.2.1"/>; then, the BGP speaker performs the decision process for
        selection of the best route (<xref target="RFC4271" sectionFormat="of" section="9.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4271#section-9.1" derivedContent="RFC4271"/>). The key difference from the base BGP decision
        process is that BGP does not download the selected best routes of the SR
        Policy SAFI into the forwarding; instead, it considers them "usable"
        for passing on to the SRPM for further processing as described in
        <xref target="USABLE" format="default" sectionFormat="of" derivedContent="Section 4.2.2"/>. The selected best route is
        "propagated" (<xref target="RFC4271" sectionFormat="of" section="9.1.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4271#section-9.1.3" derivedContent="RFC4271"/>) as described in <xref target="PROPAGATE" format="default" sectionFormat="of" derivedContent="Section 4.2.3"/>, irrespective of its "usability" by the local
        router.</t>
        <section anchor="ACCEPT" numbered="true" toc="include" removeInRFC="false" pn="section-4.2.1">
          <name slugifiedName="name-validation-of-an-sr-policy-">Validation of an SR Policy NLRI</name>
          <t indent="0" pn="section-4.2.1-1">When a BGP speaker receives an SR Policy NLRI from a neighbor, it
          <bcp14>MUST</bcp14> first perform validation based on the following rules in
          addition to the validation described in <xref target="ERROR" format="default" sectionFormat="of" derivedContent="Section 5"/>:
          </t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.2.1-2">
            <li pn="section-4.2.1-2.1">
              <t indent="0" pn="section-4.2.1-2.1.1">The SR Policy NLRI <bcp14>MUST</bcp14> include a distinguisher, Color, and
              Endpoint field that implies that the length of the NLRI <bcp14>MUST</bcp14> be
              either 12 or 24 octets (depending on the address family of the
              Endpoint).</t>
            </li>
            <li pn="section-4.2.1-2.2">
              <t indent="0" pn="section-4.2.1-2.2.1">The SR Policy update <bcp14>MUST</bcp14> have either the NO_ADVERTISE
              community, at least one Route Target extended community in
              IPv4-address format, or both. If a router supporting this
              specification receives an SR Policy update with no Route Target
              extended communities and no NO_ADVERTISE community, the update
              <bcp14>MUST</bcp14> be considered to be malformed.</t>
            </li>
            <li pn="section-4.2.1-2.3">
              <t indent="0" pn="section-4.2.1-2.3.1">The Tunnel Encapsulation Attribute <bcp14>MUST</bcp14> be attached to the
              BGP UPDATE message and <bcp14>MUST</bcp14> have a Tunnel Type TLV set to SR Policy
              (code point is 15).</t>
            </li>
          </ul>
          <t indent="0" pn="section-4.2.1-3">A router that receives an SR Policy update that is not valid
          according to these criteria <bcp14>MUST</bcp14> treat the update as malformed, and
          the SR Policy CP <bcp14>MUST NOT</bcp14> be passed to the SRPM.</t>
        </section>
        <section anchor="USABLE" numbered="true" toc="include" removeInRFC="false" pn="section-4.2.2">
          <name slugifiedName="name-eligibility-for-local-use-o">Eligibility for Local Use of an SR Policy NLRI</name>
          <t indent="0" pn="section-4.2.2-1">An SR Policy NLRI update that does not have a Route Target extended
          community but does have the NO_ADVERTISE community is considered
          usable.</t>
          <t indent="0" pn="section-4.2.2-2">If one or more route targets are present, then at least one route
          target <bcp14>MUST</bcp14> match the BGP Identifier of the receiver for the update
          to be considered usable. The BGP Identifier is defined in <xref target="RFC4271" format="default" sectionFormat="of" derivedContent="RFC4271"/> as a 4-octet IPv4 address and is updated by <xref target="RFC6286" format="default" sectionFormat="of" derivedContent="RFC6286"/> as a 4-octet, unsigned, non-zero integer.
          Therefore, the Route Target extended community <bcp14>MUST</bcp14> be of the same
          format.</t>
          <t indent="0" pn="section-4.2.2-3">If one or more route targets are present, and none matches the
          local BGP Identifier, then, while the SR Policy NLRI is valid, the SR Policy NLRI is
          not usable on the receiver node.</t>
          <t indent="0" pn="section-4.2.2-4">When the SR Policy tunnel type includes any sub-TLV that is
          unrecognized or unsupported, the update <bcp14>SHOULD NOT</bcp14> be considered
          usable. An implementation <bcp14>MAY</bcp14> provide an option for ignoring
          unsupported sub-TLVs.</t>
          <t indent="0" pn="section-4.2.2-5">Once BGP on the receiving node has determined that the SR Policy
          NLRI is usable, it passes the SR Policy CP to the SRPM.
          Note that, along with the CP details, BGP also passes
          the originator information for breaking ties in the CP
          selection process as described in <xref target="RFC9256" sectionFormat="of" section="2.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2.4" derivedContent="RFC9256"/>.</t>
          <t indent="0" pn="section-4.2.2-6">When an update for an SR Policy NLRI results in its becoming
          unusable, BGP <bcp14>MUST</bcp14> delete its corresponding SR Policy CP
          from the SRPM.</t>
          <t indent="0" pn="section-4.2.2-7">The SRPM applies the rules defined in <xref target="RFC9256" sectionFormat="of" section="2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9256#section-2" derivedContent="RFC9256"/> to determine whether the SR Policy
          CP is valid and to select the active CP for
          a given SR Policy.</t>
        </section>
        <section anchor="PROPAGATE" numbered="true" toc="include" removeInRFC="false" pn="section-4.2.3">
          <name slugifiedName="name-propagation-of-an-sr-policy">Propagation of an SR Policy</name>
          <t indent="0" pn="section-4.2.3-1">SR Policy NLRIs that have the NO_ADVERTISE community attached to
          them <bcp14>MUST NOT</bcp14> be propagated.</t>
          <t indent="0" pn="section-4.2.3-2">By default, a BGP node receiving an SR Policy NLRI <bcp14>MUST NOT</bcp14>
          propagate it to any External BGP (EBGP) neighbor. An implementation <bcp14>MAY</bcp14> provide an
          explicit configuration to override this and enable the propagation
          of valid SR Policy NLRIs to specific EBGP neighbors where the SR
          domain comprises multiple ASes within a single service provider
          domain (see <xref target="Security" format="default" sectionFormat="of" derivedContent="Section 7"/> for details).</t>
          <t indent="0" pn="section-4.2.3-3">A BGP node advertises a received SR Policy NLRI to its Internal BGP (IBGP)
          neighbors according to normal IBGP propagation rules.</t>
          <t indent="0" pn="section-4.2.3-4">By default, a BGP node receiving an SR Policy NLRI <bcp14>SHOULD NOT</bcp14>
          remove the Route Target extended community before propagation. An
          implementation <bcp14>MAY</bcp14> provide support for configuration to filter
          and/or remove the Route Target extended community before
          propagation.</t>
          <t indent="0" pn="section-4.2.3-5">A BGP node <bcp14>MUST NOT</bcp14> alter the SR Policy information carried in
          the Tunnel Encapsulation Attribute during propagation.</t>
        </section>
      </section>
    </section>
    <section anchor="ERROR" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-error-handling-and-fault-ma">Error Handling and Fault Management</name>
      <t indent="0" pn="section-5-1">This section describes the error-handling actions, as described in
      <xref target="RFC7606" format="default" sectionFormat="of" derivedContent="RFC7606"/>, that are to be performed for the handling of
      the BGP UPDATE messages for the BGP SR Policy SAFI.</t>
      <t indent="0" pn="section-5-2">A BGP speaker <bcp14>MUST</bcp14> perform the following syntactic validation of the
      SR Policy NLRI to determine if it is malformed. This includes the
      validation of the length of each NLRI and the total length of the
      MP_REACH_NLRI and MP_UNREACH_NLRI attributes. It also includes the
      validation of the consistency of the NLRI length with the AFI and the
      endpoint address as specified in <xref target="SRPOLICYSAFI" format="default" sectionFormat="of" derivedContent="Section 2.1"/>.</t>
      <t indent="0" pn="section-5-3">When the error determined allows for the router to skip the malformed
      NLRI(s) and continue the processing of the rest of the BGP UPDATE message,
      then it <bcp14>MUST</bcp14> handle such malformed NLRIs as 'treat-as-withdraw'. In
      other cases, where the error in the NLRI encoding results in the
      inability to process the BGP UPDATE message (e.g., length-related
      encoding errors), then the router <bcp14>SHOULD</bcp14> handle such malformed NLRIs as
      "AFI/SAFI disable" when other AFI/SAFIs besides SR Policy are being
      advertised over the same session. Alternately, the router <bcp14>MUST</bcp14> perform
      "session reset" when the session is only being used for SR Policy or
      when a "AFI/SAFI disable" action is not possible.</t>
      <t indent="0" pn="section-5-4">The validation of the TLVs/sub-TLVs introduced in this document and
      defined in their respective subsections of <xref target="SRPOLICYTLV" format="default" sectionFormat="of" derivedContent="Section 2.4"/>
        <bcp14>MUST</bcp14> be performed to determine if they are malformed or invalid. The
      validation of the Tunnel Encapsulation Attribute itself and the other
      TLVs/sub-TLVs specified in <xref target="RFC9012" sectionFormat="of" section="13" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9012#section-13" derivedContent="RFC9012"/> <bcp14>MUST</bcp14>
      be done as described in that document. In case of any error detected,
      either at the attribute or its TLV/sub-TLV level, the
      "treat-as-withdraw" strategy <bcp14>MUST</bcp14> be applied. This is because an SR
      Policy update without a valid Tunnel Encapsulation Attribute (comprised
      of all valid TLVs/sub-TLVs) is not usable.</t>
      <t indent="0" pn="section-5-5">An SR Policy update that is determined not to be valid (and, therefore,
      malformed) based on the rules described in <xref target="ACCEPT" format="default" sectionFormat="of" derivedContent="Section 4.2.1"/> <bcp14>MUST</bcp14> be
      handled by the "treat-as-withdraw" strategy.</t>
      <t indent="0" pn="section-5-6">The validation of the individual fields of the TLVs/sub-TLVs defined
      in <xref target="SRPOLICYTLV" format="default" sectionFormat="of" derivedContent="Section 2.4"/> are beyond the scope of BGP as they are
      handled by the SRPM as described in the individual TLV/sub-TLV
      subsections. A BGP implementation <bcp14>MUST NOT</bcp14> perform semantic
      verification of such fields nor consider the SR Policy update to be
      invalid or not usable based on such validation.</t>
      <t indent="0" pn="section-5-7">An implementation <bcp14>SHOULD</bcp14> log any errors found during the above
      validation for further analysis.</t>
    </section>
    <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-6-1">This document uses code point allocations from the following existing
      registries in the "Subsequent Address Family Identifiers (SAFI) Parameters" registry group:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6-2">
        <li pn="section-6-2.1">
          <t indent="0" pn="section-6-2.1.1">The "SAFI Values" registry</t>
        </li>
      </ul>
      <t indent="0" pn="section-6-3">This document uses code point allocations from the following existing registries in the "Border Gateway Protocol (BGP) Tunnel Encapsulation" registry group:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6-4">
        <li pn="section-6-4.1">
          <t indent="0" pn="section-6-4.1.1">The "BGP Tunnel Encapsulation Attribute Tunnel Types" registry</t>
        </li>
        <li pn="section-6-4.2">
          <t indent="0" pn="section-6-4.2.1">The "BGP Tunnel Encapsulation Attribute Sub-TLVs" registry</t>
        </li>
        <li pn="section-6-4.3">
          <t indent="0" pn="section-6-4.3.1">The "Color Extended Community Flags" registry</t>
        </li>
      </ul>
      <t indent="0" pn="section-6-5">This document creates the following new
      registries in the "Border Gateway Protocol (BGP) Tunnel Encapsulation" registry group: </t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6-6">
        <li pn="section-6-6.1">
          <t indent="0" pn="section-6-6.1.1">The "SR Policy Segment List Sub-TLVs" registry</t>
        </li>
        <li pn="section-6-6.2">
          <t indent="0" pn="section-6-6.2.1">The "SR Policy Binding SID Flags" registry</t>
        </li>
        <li pn="section-6-6.3">
          <t indent="0" pn="section-6-6.3.1">The "SR Policy SRv6 Binding SID Flags" registry</t>
        </li>
        <li pn="section-6-6.4">
          <t indent="0" pn="section-6-6.4.1">The "SR Policy Segment Flags" registry</t>
        </li>
        <li pn="section-6-6.5">
          <t indent="0" pn="section-6-6.5.1">The "Color Extended Community Color-Only Types" registry</t>
        </li>
      </ul>
      <t indent="0" pn="section-6-7">This document creates the following new registry in the "Segment Routing" registry group:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6-8">
        <li pn="section-6-8.1">
          <t indent="0" pn="section-6-8.1.1">The "SR Policy ENLP Values" registry</t>
        </li>
      </ul>
      <section anchor="IANASAFI" numbered="true" toc="include" removeInRFC="false" pn="section-6.1">
        <name slugifiedName="name-subsequent-address-family-i">Subsequent Address Family Identifiers (SAFI) Parameters</name>
        <t indent="0" pn="section-6.1-1">This document registers a SAFI code point in the "SAFI Values" registry of the "Subsequent Address
        Family Identifiers (SAFI) Parameters" registry group as follows:</t>
        <table align="center" pn="table-1">
          <name slugifiedName="name-bgp-safi-code-point">BGP SAFI Code Point</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">73</td>
              <td align="left" colspan="1" rowspan="1">SR Policy SAFI</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="IANATUNNEL" numbered="true" toc="include" removeInRFC="false" pn="section-6.2">
        <name slugifiedName="name-bgp-tunnel-encapsulation-at">BGP Tunnel Encapsulation Attribute Tunnel Types</name>
        <t indent="0" pn="section-6.2-1">This document registers a Tunnel Type code point in the "BGP Tunnel
        Encapsulation Attribute Tunnel Types" registry under the "Border Gateway Protocol (BGP) Tunnel Encapsulation" registry group.</t>
        <table align="center" pn="table-2">
          <name slugifiedName="name-tunnel-type-code-point">Tunnel Type Code Point</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">15</td>
              <td align="left" colspan="1" rowspan="1">SR Policy</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="IANATUNNSUBTLV" numbered="true" toc="include" removeInRFC="false" pn="section-6.3">
        <name slugifiedName="name-bgp-tunnel-encapsulation-att">BGP Tunnel Encapsulation Attribute Sub-TLVs</name>
        <t indent="0" pn="section-6.3-1">This document defines sub-TLVs in the "BGP Tunnel
        Encapsulation Attribute Sub-TLVs" registry under the "Border Gateway Protocol (BGP) Tunnel Encapsulation" registry group.</t>
        <table align="center" pn="table-3">
          <name slugifiedName="name-bgp-tunnel-encapsulation-attr">BGP Tunnel Encapsulation Attribute Sub-TLV 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>
              <th align="left" colspan="1" rowspan="1">Change Controller</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">12</td>
              <td align="left" colspan="1" rowspan="1">Preference sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
              <td align="left" colspan="1" rowspan="1">IETF</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">13</td>
              <td align="left" colspan="1" rowspan="1">Binding SID sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
              <td align="left" colspan="1" rowspan="1">IETF</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">14</td>
              <td align="left" colspan="1" rowspan="1">ENLP sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
              <td align="left" colspan="1" rowspan="1">IETF</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">15</td>
              <td align="left" colspan="1" rowspan="1">Priority sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
              <td align="left" colspan="1" rowspan="1">IETF</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">20</td>
              <td align="left" colspan="1" rowspan="1">SRv6 Binding SID sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
              <td align="left" colspan="1" rowspan="1">IETF</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">128</td>
              <td align="left" colspan="1" rowspan="1">Segment List sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
              <td align="left" colspan="1" rowspan="1">IETF</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">129</td>
              <td align="left" colspan="1" rowspan="1">SR Policy Candidate Path Name sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
              <td align="left" colspan="1" rowspan="1">IETF</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">130</td>
              <td align="left" colspan="1" rowspan="1">SR Policy Name sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
              <td align="left" colspan="1" rowspan="1">IETF</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="IANAEXTCOM" numbered="true" toc="include" removeInRFC="false" pn="section-6.4">
        <name slugifiedName="name-color-extended-community-fla">Color Extended Community Flags</name>
        <t indent="0" pn="section-6.4-1">This document defines the use of 2 bits in the
        "Color Extended Community Flags" registry under the "Border Gateway Protocol (BGP) Tunnel Encapsulation"
        registry group.</t>
        <table align="center" pn="table-4">
          <name slugifiedName="name-color-extended-community-flag">Color Extended Community Flag Bits</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Bit Position</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">0-1</td>
              <td align="left" colspan="1" rowspan="1">Color-only Types Field</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="IANASIDLIST" numbered="true" toc="include" removeInRFC="false" pn="section-6.5">
        <name slugifiedName="name-sr-policy-segment-list-sub-">SR Policy Segment List Sub-TLVs</name>
        <t indent="0" pn="section-6.5-1">This document creates a new registry called "SR
        Policy Segment List Sub-TLVs" under the "Border Gateway Protocol (BGP) Tunnel Encapsulation"
        registry group. The registration policy of this registry is "IETF Review"
        (see <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>).</t>
        <t indent="0" pn="section-6.5-2">The following initial sub-TLV code points are assigned by this
        document:</t>
        <table align="center" pn="table-5">
          <name slugifiedName="name-sr-policy-segment-list-sub-t">SR Policy Segment List Sub-TLV 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">0</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">Type A Segment sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">Deprecated</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3-8</td>
              <td colspan="2" align="left" rowspan="1">Unassigned</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">9</td>
              <td align="left" colspan="1" rowspan="1">Weight sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">10</td>
              <td align="left" colspan="1" rowspan="1">Deprecated</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">11</td>
              <td align="left" colspan="1" rowspan="1">Deprecated</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">12</td>
              <td align="left" colspan="1" rowspan="1">Deprecated</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">13</td>
              <td align="left" colspan="1" rowspan="1">Type B Segment sub-TLV</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">14-255</td>
              <td colspan="2" align="left" rowspan="1">Unassigned</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="IANABSIDFLAGS" numbered="true" toc="include" removeInRFC="false" pn="section-6.6">
        <name slugifiedName="name-sr-policy-binding-sid-flags-2">SR Policy Binding SID Flags</name>
        <t indent="0" pn="section-6.6-1">This document creates a new registry called "SR
        Policy Binding SID Flags" under the "Border Gateway Protocol (BGP) Tunnel Encapsulation"
        registry group. The registration policy of this registry is "Standards Action"
        (see <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>).</t>
        <t indent="0" pn="section-6.6-2">The following flags are defined:</t>
        <table align="center" pn="table-6">
          <name slugifiedName="name-sr-policy-binding-sid-flags-3">SR Policy Binding SID 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">0</td>
              <td align="left" colspan="1" rowspan="1">Specified-BSID-Only Flag (S-Flag)</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">Drop-Upon-Invalid Flag (I-Flag)</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2-7</td>
              <td colspan="2" align="left" rowspan="1">Unassigned</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="IANASRV6BSIDFLAGS" numbered="true" toc="include" removeInRFC="false" pn="section-6.7">
        <name slugifiedName="name-sr-policy-srv6-binding-sid-f">SR Policy SRv6 Binding SID Flags</name>
        <t indent="0" pn="section-6.7-1">This document creates a new registry called "SR
        Policy SRv6 Binding SID Flags" under the "Border Gateway Protocol (BGP) Tunnel Encapsulation"
        registry group. The registration policy of this registry is "Standards Action"
        (see <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>).</t>
        <t indent="0" pn="section-6.7-2">The following flags are defined:</t>
        <table align="center" pn="table-7">
          <name slugifiedName="name-sr-policy-srv6-binding-sid-fl">SR Policy SRv6 Binding SID 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">0</td>
              <td align="left" colspan="1" rowspan="1">Specified-BSID-Only Flag (S-Flag)</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">Drop-Upon-Invalid Flag (I-Flag)</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">SRv6 Endpoint Behavior &amp; SID Structure Flag (B-Flag)</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3-7</td>
              <td colspan="2" align="left" rowspan="1">Unassigned</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="IANASIDFLAGS" numbered="true" toc="include" removeInRFC="false" pn="section-6.8">
        <name slugifiedName="name-sr-policy-segment-flags-3">SR Policy Segment Flags</name>
        <t indent="0" pn="section-6.8-1">This document creates a new registry called "SR
        Policy Segment Flags" under the "Border Gateway Protocol (BGP) Tunnel Encapsulation" registry group.
        The registration policy of this registry is "IETF Review" (see <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>).</t>
        <t indent="0" pn="section-6.8-2">The following flags are defined:</t>
        <table align="center" pn="table-8">
          <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">0</td>
              <td align="left" colspan="1" rowspan="1">Segment Verification Flag (V-Flag)</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1-2</td>
              <td colspan="2" align="left" rowspan="1">Unassigned</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">SRv6 Endpoint Behavior &amp; SID Structure Flag (B-Flag)</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4-7</td>
              <td colspan="2" align="left" rowspan="1">Unassigned</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="IANAEXTCOMCOFIELD" numbered="true" toc="include" removeInRFC="false" pn="section-6.9">
        <name slugifiedName="name-color-extended-community-co">Color Extended Community Color-Only Types</name>
        <t indent="0" pn="section-6.9-1">This document creates a new registry called "Color
        Extended Community Color-Only Types" under the "Border Gateway Protocol (BGP) Tunnel
        Encapsulation" registry group for assignment of code points (values 0 through
        3) in the Color-Only Type field of the Color Extended Community Flags
        field. The registration policy of this registry is "Standards Action"
        (see <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>).</t>
        <t indent="0" pn="section-6.9-2">The following types are defined:</t>
        <table align="center" pn="table-9">
          <name slugifiedName="name-color-extended-community-col">Color Extended Community Color-Only Types</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Type</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">0</td>
              <td align="left" colspan="1" rowspan="1">Specific Endpoint Match</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">Specific or Null Endpoint Match</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">Specific, Null, or Any Endpoint Match</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="IANAENLP" numbered="true" toc="include" removeInRFC="false" pn="section-6.10">
        <name slugifiedName="name-sr-policy-enlp-values">SR Policy ENLP Values</name>
        <t indent="0" pn="section-6.10-1">IANA will maintain a new registry under the
        "Segment Routing" registry group with the registration policy of
        "Standards Action" (see <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>). The new registry is
        called "SR Policy ENLP Values" and contains the code points allocated
        to the ENLP field defined in <xref target="ENLPTLV" format="default" sectionFormat="of" derivedContent="Section 2.4.5"/>. The registry
        contains the following code points:</t>
        <table align="center" pn="table-10">
          <name slugifiedName="name-sr-policy-enlp-values-2">SR Policy ENLP Values</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Code Point</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">0</td>
              <td align="left" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">Push an IPv4 Explicit NULL label on an unlabeled IPv4 packet but do not push an IPv6 Explicit NULL label on an unlabeled IPv6 packet</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">Push an IPv6 Explicit NULL label on an unlabeled IPv6 packet but do not push an IPv4 Explicit NULL label on an unlabeled IPv4 packet</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">Push an IPv6 Explicit NULL label on an unlabeled IPv6 packet and push an IPv4 Explicit NULL label on an unlabeled IPv4 packet</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">Do not push an Explicit NULL label</td>
              <td align="left" colspan="1" rowspan="1">RFC 9830</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">5-255</td>
              <td colspan="2" align="left" rowspan="1">Unassigned</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="Security" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-7-1">The security mechanisms of the base BGP security model apply to the
      extensions described in this document as well. See the Security
      Considerations section of <xref target="RFC4271" format="default" sectionFormat="of" derivedContent="RFC4271"/> for a discussion of
      BGP security. Also, refer to <xref target="RFC4272" format="default" sectionFormat="of" derivedContent="RFC4272"/> and <xref target="RFC6952" format="default" sectionFormat="of" derivedContent="RFC6952"/> for analysis of security issues for BGP.</t>
      <t indent="0" pn="section-7-2">The BGP SR Policy extensions specified in this document enable
      traffic engineering and service programming use cases within an SR
      domain as described in <xref target="RFC9256" format="default" sectionFormat="of" derivedContent="RFC9256"/>. SR operates within a
      trusted SR domain <xref target="RFC8402" format="default" sectionFormat="of" derivedContent="RFC8402"/>; its security
      considerations also apply to BGP sessions when carrying SR Policy
      information. The SR Policies distributed by BGP are expected to be used
      entirely within this trusted SR domain, which comprises a single AS or
      multiple ASes / domains within a single provider network. Therefore,
      precaution is necessary to ensure that the SR Policy information
      advertised via BGP sessions is limited to nodes in a secure manner
      within this trusted SR domain. BGP peering sessions for address families
      other than those that use the SR Policy SAFI may be set up to routers outside the SR
      domain. The isolation of BGP SR Policy SAFI peering sessions may be used
      to ensure that the SR Policy information is not advertised by accident
      or in error to an EBGP peering session outside the SR domain.</t>
      <t indent="0" pn="section-7-3">Additionally, it may be a consideration that the export of SR Policy
      information, as described in this document, constitutes a risk to
      confidentiality of mission-critical or commercially sensitive
      information about the network (more specifically endpoint/node
      addresses, SR SIDs, and the SR Policies deployed). BGP peerings are not
      automatic and require configuration; thus, it is the responsibility of
      the network operator to ensure that only trusted nodes (that include
      both routers and controller applications) within the SR domain are
      configured to receive such information.</t>
    </section>
    <section anchor="Manageability" numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-manageability-consideration">Manageability Considerations</name>
      <t indent="0" pn="section-8-1">The specification of BGP models is an ongoing work based on <xref target="I-D.ietf-idr-bgp-model" format="default" sectionFormat="of" derivedContent="BGP-YANG-MODEL"/>; its future extensions are expected
      to cover the SR Policy SAFI. Existing BGP operational procedures also
      apply to the SAFI specified in this document. The management,
      operations, and monitoring of BGP speakers and the SR Policy SAFI
      sessions between them are not very different from other BGP sessions and
      can be managed using the same data models.</t>
      <t indent="0" pn="section-8-2">The YANG data model for the operation and management of SR Policies <xref target="I-D.ietf-spring-sr-policy-yang" format="default" sectionFormat="of" derivedContent="SR-POLICY-YANG"/> reports the SR Policies
      provisioned via BGP SR Policy SAFI along with their operational
      states.</t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-idr-bgp-model" to="BGP-YANG-MODEL"/>
    <displayreference target="I-D.ietf-idr-bgp-ls-sr-policy" to="BGP-LS-SR-POLICY"/>
    <displayreference target="I-D.ietf-spring-sr-policy-yang" to="SR-POLICY-YANG"/>
    <references pn="section-9">
      <name slugifiedName="name-references">References</name>
      <references pn="section-9.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC1997" target="https://www.rfc-editor.org/info/rfc1997" quoteTitle="true" derivedAnchor="RFC1997">
          <front>
            <title>BGP Communities Attribute</title>
            <author fullname="R. Chandra" initials="R." surname="Chandra"/>
            <author fullname="P. Traina" initials="P." surname="Traina"/>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <date month="August" year="1996"/>
            <abstract>
              <t indent="0">This document describes an extension to BGP which may be used to pass additional information to both neighboring and remote BGP peers. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1997"/>
          <seriesInfo name="DOI" value="10.17487/RFC1997"/>
        </reference>
        <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="RFC2545" target="https://www.rfc-editor.org/info/rfc2545" quoteTitle="true" derivedAnchor="RFC2545">
          <front>
            <title>Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing</title>
            <author fullname="P. Marques" initials="P." surname="Marques"/>
            <author fullname="F. Dupont" initials="F." surname="Dupont"/>
            <date month="March" year="1999"/>
            <abstract>
              <t indent="0">BGP-4 Multiprotocol Extensions (BGP-MP) defines the format of two BGP attributes (MP_REACH_NLRI and MP_UNREACH_NLRI) that can be used to announce and withdraw the announcement of reachability information. This document defines how compliant systems should make use of those attributes for the purpose of conveying IPv6 routing information. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2545"/>
          <seriesInfo name="DOI" value="10.17487/RFC2545"/>
        </reference>
        <reference anchor="RFC3032" target="https://www.rfc-editor.org/info/rfc3032" quoteTitle="true" derivedAnchor="RFC3032">
          <front>
            <title>MPLS Label Stack Encoding</title>
            <author fullname="E. Rosen" initials="E." surname="Rosen"/>
            <author fullname="D. Tappan" initials="D." surname="Tappan"/>
            <author fullname="G. Fedorkow" initials="G." surname="Fedorkow"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <author fullname="D. Farinacci" initials="D." surname="Farinacci"/>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="A. Conta" initials="A." surname="Conta"/>
            <date month="January" year="2001"/>
            <abstract>
              <t indent="0">This document specifies the encoding to be used by an LSR in order to transmit labeled packets on Point-to-Point Protocol (PPP) data links, on LAN data links, and possibly on other data links as well. This document also specifies rules and procedures for processing the various fields of the label stack encoding. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3032"/>
          <seriesInfo name="DOI" value="10.17487/RFC3032"/>
        </reference>
        <reference anchor="RFC4271" target="https://www.rfc-editor.org/info/rfc4271" quoteTitle="true" derivedAnchor="RFC4271">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
            <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
            <author fullname="S. Hares" initials="S." role="editor" surname="Hares"/>
            <date month="January" year="2006"/>
            <abstract>
              <t indent="0">This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
              <t indent="0">The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems. This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
              <t indent="0">BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR). These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP. BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
              <t indent="0">This document obsoletes RFC 1771. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4271"/>
          <seriesInfo name="DOI" value="10.17487/RFC4271"/>
        </reference>
        <reference anchor="RFC4360" target="https://www.rfc-editor.org/info/rfc4360" quoteTitle="true" derivedAnchor="RFC4360">
          <front>
            <title>BGP Extended Communities Attribute</title>
            <author fullname="S. Sangli" initials="S." surname="Sangli"/>
            <author fullname="D. Tappan" initials="D." surname="Tappan"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="February" year="2006"/>
            <abstract>
              <t indent="0">This document describes the "extended community" BGP-4 attribute. This attribute provides a mechanism for labeling information carried in BGP-4. These labels can be used to control the distribution of this information, or for other applications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4360"/>
          <seriesInfo name="DOI" value="10.17487/RFC4360"/>
        </reference>
        <reference anchor="RFC4760" target="https://www.rfc-editor.org/info/rfc4760" quoteTitle="true" derivedAnchor="RFC4760">
          <front>
            <title>Multiprotocol Extensions for BGP-4</title>
            <author fullname="T. Bates" initials="T." surname="Bates"/>
            <author fullname="R. Chandra" initials="R." surname="Chandra"/>
            <author fullname="D. Katz" initials="D." surname="Katz"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="January" year="2007"/>
            <abstract>
              <t indent="0">This document defines extensions to BGP-4 to enable it to carry routing information for multiple Network Layer protocols (e.g., IPv6, IPX, L3VPN, etc.). The extensions are backward compatible - a router that supports the extensions can interoperate with a router that doesn't support the extensions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4760"/>
          <seriesInfo name="DOI" value="10.17487/RFC4760"/>
        </reference>
        <reference anchor="RFC5462" target="https://www.rfc-editor.org/info/rfc5462" quoteTitle="true" derivedAnchor="RFC5462">
          <front>
            <title>Multiprotocol Label Switching (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic Class" Field</title>
            <author fullname="L. Andersson" initials="L." surname="Andersson"/>
            <author fullname="R. Asati" initials="R." surname="Asati"/>
            <date month="February" year="2009"/>
            <abstract>
              <t indent="0">The early Multiprotocol Label Switching (MPLS) documents defined the form of the MPLS label stack entry. This includes a three-bit field called the "EXP field". The exact use of this field was not defined by these documents, except to state that it was to be "reserved for experimental use".</t>
              <t indent="0">Although the intended use of the EXP field was as a "Class of Service" (CoS) field, it was not named a CoS field by these early documents because the use of such a CoS field was not considered to be sufficiently defined. Today a number of standards documents define its usage as a CoS field.</t>
              <t indent="0">To avoid misunderstanding about how this field may be used, it has become increasingly necessary to rename this field. This document changes the name of the field to the "Traffic Class field" ("TC field"). In doing so, it also updates documents that define the current use of the EXP field. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5462"/>
          <seriesInfo name="DOI" value="10.17487/RFC5462"/>
        </reference>
        <reference anchor="RFC6286" target="https://www.rfc-editor.org/info/rfc6286" quoteTitle="true" derivedAnchor="RFC6286">
          <front>
            <title>Autonomous-System-Wide Unique BGP Identifier for BGP-4</title>
            <author fullname="E. Chen" initials="E." surname="Chen"/>
            <author fullname="J. Yuan" initials="J." surname="Yuan"/>
            <date month="June" year="2011"/>
            <abstract>
              <t indent="0">To accommodate situations where the current requirements for the BGP Identifier are not met, this document relaxes the definition of the BGP Identifier to be a 4-octet, unsigned, non-zero integer and relaxes the "uniqueness" requirement so that only Autonomous-System-wide (AS-wide) uniqueness of the BGP Identifiers is required. These revisions to the base BGP specification do not introduce any backward compatibility issues. This document updates RFC 4271. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6286"/>
          <seriesInfo name="DOI" value="10.17487/RFC6286"/>
        </reference>
        <reference anchor="RFC7606" target="https://www.rfc-editor.org/info/rfc7606" quoteTitle="true" derivedAnchor="RFC7606">
          <front>
            <title>Revised Error Handling for BGP UPDATE Messages</title>
            <author fullname="E. Chen" initials="E." role="editor" surname="Chen"/>
            <author fullname="J. Scudder" initials="J." role="editor" surname="Scudder"/>
            <author fullname="P. Mohapatra" initials="P." surname="Mohapatra"/>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <date month="August" year="2015"/>
            <abstract>
              <t indent="0">According to the base BGP specification, a BGP speaker that receives an UPDATE message containing a malformed attribute is required to reset the session over which the offending attribute was received. This behavior is undesirable because a session reset would impact not only routes with the offending attribute but also other valid routes exchanged over the session. This document partially revises the error handling for UPDATE messages and provides guidelines for the authors of documents defining new attributes. Finally, it revises the error handling procedures for a number of existing attributes.</t>
              <t indent="0">This document updates error handling for RFCs 1997, 4271, 4360, 4456, 4760, 5543, 5701, and 6368.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7606"/>
          <seriesInfo name="DOI" value="10.17487/RFC7606"/>
        </reference>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" quoteTitle="true" derivedAnchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t indent="0">Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t indent="0">To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t indent="0">This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </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="RFC9012" target="https://www.rfc-editor.org/info/rfc9012" quoteTitle="true" derivedAnchor="RFC9012">
          <front>
            <title>The BGP Tunnel Encapsulation Attribute</title>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <author fullname="G. Van de Velde" initials="G." surname="Van de Velde"/>
            <author fullname="S. Sangli" initials="S." surname="Sangli"/>
            <author fullname="J. Scudder" initials="J." surname="Scudder"/>
            <date month="April" year="2021"/>
            <abstract>
              <t indent="0">This document defines a BGP path attribute known as the "Tunnel Encapsulation attribute", which can be used with BGP UPDATEs of various Subsequent Address Family Identifiers (SAFIs) to provide information needed to create tunnels and their corresponding encapsulation headers. It provides encodings for a number of tunnel types, along with procedures for choosing between alternate tunnels and routing packets into tunnels.</t>
              <t indent="0">This document obsoletes RFC 5512, which provided an earlier definition of the Tunnel Encapsulation attribute. RFC 5512 was never deployed in production. Since RFC 5566 relies on RFC 5512, it is likewise obsoleted. This document updates RFC 5640 by indicating that the Load-Balancing Block sub-TLV may be included in any Tunnel Encapsulation attribute where load balancing is desired.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9012"/>
          <seriesInfo name="DOI" value="10.17487/RFC9012"/>
        </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>
      </references>
      <references pn="section-9.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="I-D.ietf-idr-bgp-ls-sr-policy" target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-bgp-ls-sr-policy-17" quoteTitle="true" derivedAnchor="BGP-LS-SR-POLICY">
          <front>
            <title>Advertisement of Segment Routing Policies using BGP Link-State</title>
            <author initials="S." surname="Previdi" fullname="Stefano Previdi">
              <organization showOnFrontPage="true">Individual</organization>
            </author>
            <author initials="K." surname="Talaulikar" fullname="Ketan Talaulikar" role="editor">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <author initials="J." surname="Dong" fullname="Jie Dong">
              <organization showOnFrontPage="true">Huawei Technologies</organization>
            </author>
            <author initials="H." surname="Gredler" fullname="Hannes Gredler">
              <organization showOnFrontPage="true">RtBrick Inc.</organization>
            </author>
            <author initials="J." surname="Tantsura" fullname="Jeff Tantsura">
              <organization showOnFrontPage="true">Nvidia</organization>
            </author>
            <date month="March" day="6" year="2025"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-ls-sr-policy-17"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.ietf-idr-bgp-model" target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-bgp-model-18" quoteTitle="true" derivedAnchor="BGP-YANG-MODEL">
          <front>
            <title>YANG Model for Border Gateway Protocol (BGP-4)</title>
            <author fullname="Mahesh Jethanandani" initials="M." surname="Jethanandani">
              <organization showOnFrontPage="true">Kloud Services</organization>
            </author>
            <author fullname="Keyur Patel" initials="K." surname="Patel">
              <organization showOnFrontPage="true">Arrcus</organization>
            </author>
            <author fullname="Susan Hares" initials="S." surname="Hares">
              <organization showOnFrontPage="true">Huawei</organization>
            </author>
            <author fullname="Jeffrey Haas" initials="J." surname="Haas">
              <organization showOnFrontPage="true">Juniper Networks</organization>
            </author>
            <date day="21" month="October" year="2024"/>
            <abstract>
              <t indent="0">This document defines a YANG data model for configuring and managing BGP, including protocol, policy, and operational aspects, such as RIB, based on data center, carrier, and content provider operational requirements.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-model-18"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RFC4272" target="https://www.rfc-editor.org/info/rfc4272" quoteTitle="true" derivedAnchor="RFC4272">
          <front>
            <title>BGP Security Vulnerabilities Analysis</title>
            <author fullname="S. Murphy" initials="S." surname="Murphy"/>
            <date month="January" year="2006"/>
            <abstract>
              <t indent="0">Border Gateway Protocol 4 (BGP-4), along with a host of other infrastructure protocols designed before the Internet environment became perilous, was originally designed with little consideration for protection of the information it carries. There are no mechanisms internal to BGP that protect against attacks that modify, delete, forge, or replay data, any of which has the potential to disrupt overall network routing behavior.</t>
              <t indent="0">This document discusses some of the security issues with BGP routing data dissemination. This document does not discuss security issues with forwarding of packets. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4272"/>
          <seriesInfo name="DOI" value="10.17487/RFC4272"/>
        </reference>
        <reference anchor="RFC4456" target="https://www.rfc-editor.org/info/rfc4456" quoteTitle="true" derivedAnchor="RFC4456">
          <front>
            <title>BGP Route Reflection: An Alternative to Full Mesh Internal BGP (IBGP)</title>
            <author fullname="T. Bates" initials="T." surname="Bates"/>
            <author fullname="E. Chen" initials="E." surname="Chen"/>
            <author fullname="R. Chandra" initials="R." surname="Chandra"/>
            <date month="April" year="2006"/>
            <abstract>
              <t indent="0">The Border Gateway Protocol (BGP) is an inter-autonomous system routing protocol designed for TCP/IP internets. Typically, all BGP speakers within a single AS must be fully meshed so that any external routing information must be re-distributed to all other routers within that Autonomous System (AS). This represents a serious scaling problem that has been well documented with several alternatives proposed.</t>
              <t indent="0">This document describes the use and design of a method known as "route reflection" to alleviate the need for "full mesh" Internal BGP (IBGP).</t>
              <t indent="0">This document obsoletes RFC 2796 and RFC 1966. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4456"/>
          <seriesInfo name="DOI" value="10.17487/RFC4456"/>
        </reference>
        <reference anchor="RFC6952" target="https://www.rfc-editor.org/info/rfc6952" quoteTitle="true" derivedAnchor="RFC6952">
          <front>
            <title>Analysis of BGP, LDP, PCEP, and MSDP Issues According to the Keying and Authentication for Routing Protocols (KARP) Design Guide</title>
            <author fullname="M. Jethanandani" initials="M." surname="Jethanandani"/>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <author fullname="L. Zheng" initials="L." surname="Zheng"/>
            <date month="May" year="2013"/>
            <abstract>
              <t indent="0">This document analyzes TCP-based routing protocols, the Border Gateway Protocol (BGP), the Label Distribution Protocol (LDP), the Path Computation Element Communication Protocol (PCEP), and the Multicast Source Distribution Protocol (MSDP), according to guidelines set forth in Section 4.2 of "Keying and Authentication for Routing Protocols Design Guidelines", RFC 6518.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6952"/>
          <seriesInfo name="DOI" value="10.17487/RFC6952"/>
        </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="RFC9831" target="https://www.rfc-editor.org/info/rfc9831" quoteTitle="true" derivedAnchor="RFC9831">
          <front>
            <title>Segment Type Extensions for BGP Segment Routing (SR) Policy</title>
            <author initials="K." surname="Talaulikar" fullname="Ketan Talaulikar" role="editor">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <author initials="S." surname="Previdi" fullname="Stefano Previdi">
              <organization showOnFrontPage="true">Huawei Technologies</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="9831"/>
          <seriesInfo name="DOI" value="10.17487/RFC9831"/>
        </reference>
        <reference anchor="I-D.ietf-spring-sr-policy-yang" target="https://datatracker.ietf.org/doc/html/draft-ietf-spring-sr-policy-yang-05" quoteTitle="true" derivedAnchor="SR-POLICY-YANG">
          <front>
            <title>YANG Data Model for Segment Routing Policy</title>
            <author initials="K." surname="Raza" fullname="Syed Kamran Raza" role="editor">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <author initials="T." surname="Saleh" fullname="Tarik Saleh">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <author initials="Z." surname="Shunwan" fullname="Zhuang Shunwan">
              <organization showOnFrontPage="true">Huawei Technologies</organization>
            </author>
            <author initials="D." surname="Voyer" fullname="Daniel Voyer">
              <organization showOnFrontPage="true">Bell Canada</organization>
            </author>
            <author initials="M." surname="Durrani" fullname="Muhammad Durrani">
              <organization showOnFrontPage="true">Equinix</organization>
            </author>
            <author initials="S." surname="Matsushima" fullname="Satoru Matsushima">
              <organization showOnFrontPage="true">SoftBank</organization>
            </author>
            <author initials="V." surname="Beeram" fullname="Vishnu Pavan Beeram">
              <organization showOnFrontPage="true">Juniper Networks</organization>
            </author>
            <date month="May" day="25" year="2025"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-spring-sr-policy-yang-05"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
      </references>
    </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 of this document would like to thank <contact fullname="Shyam Sethuram"/>, <contact fullname="John Scudder"/>,
      <contact fullname="Przemyslaw Krol"/>, <contact fullname="Alex id      Bogdanov"/>, <contact fullname="Nandan Saha"/>, <contact fullname="Bruno       Decraene"/>, <contact fullname="Gurusiddesh Nidasesi"/>, <contact fullname="Kausik Majumdar"/>, <contact fullname="Zafar Ali"/>, <contact fullname="Swadesh Agarwal"/>, <contact fullname="Jakob Heitz"/>,
      <contact fullname="Viral Patel"/>, <contact fullname="Peng Shaofu"/>,
      <contact fullname="Cheng Li"/>, <contact fullname="Martin Vigoureux"/>,
      <contact fullname="John Scudder"/>, <contact fullname="Vincent Roca"/>,
      <contact fullname="Brian Haberman"/>, <contact fullname="Mohamed       Boucadair"/>, <contact fullname="Shunwan Zhuang"/>, <contact fullname="Andrew Alston"/>, <contact fullname="Jeffrey (Zhaohui)       Zhang"/>, <contact fullname="Nagendra Nainar"/>, <contact fullname="Rajesh Melarcode Venkateswaran"/>, <contact fullname="Nat       Kao"/>, <contact fullname="Boris Hassanov"/>, <contact fullname="Vincent       Roca"/>, <contact fullname="Russ Housley"/>, and <contact fullname="Dan       Romascanu"/> for their comments and review of this document. 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="Contributors" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.b">
      <name slugifiedName="name-contributors">Contributors</name>
      <contact fullname="Eric Rosen">
        <organization showOnFrontPage="true">Juniper Networks</organization>
        <address>
          <postal>
            <country>United States of America</country>
          </postal>
          <email>erosen@juniper.net</email>
        </address>
      </contact>
      <contact fullname="Arjun Sreekantiah">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <postal>
            <country>United States of America</country>
          </postal>
          <email>asreekan@cisco.com</email>
        </address>
      </contact>
      <contact fullname="Acee Lindem">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <postal>
            <country>United States of America</country>
          </postal>
          <email>acee@cisco.com</email>
        </address>
      </contact>
      <contact fullname="Siva Sivabalan">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <postal>
            <country>United States of America</country>
          </postal>
          <email>msiva@cisco.com</email>
        </address>
      </contact>
      <contact fullname="Imtiyaz Mohammad">
        <organization showOnFrontPage="true">Arista Networks</organization>
        <address>
          <postal>
            <country>India</country>
          </postal>
          <email>imtiyaz@arista.com</email>
        </address>
      </contact>
      <contact fullname="Gaurav Dawra">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <postal>
            <country>United States of America</country>
          </postal>
          <email>gdawra.ietf@gmail.com</email>
        </address>
      </contact>
      <contact fullname="Peng Shaofu">
        <organization showOnFrontPage="true">ZTE Corporation</organization>
        <address>
          <postal>
            <country>China</country>
          </postal>
          <email>peng.shaofu@zte.com.cn</email>
        </address>
      </contact>
      <contact fullname="Steven Lin">
        <organization showOnFrontPage="true">Calix</organization>
        <address>
          <postal>
            <country>United States of America</country>
          </postal>
          <email>steven.lin@calix.com</email>
        </address>
      </contact>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.c">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <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="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="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="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>
