<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-aravind-idr-bgp-ls-sr-policy-yang-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="BGP-LS SR Policy YANG">A YANG Data Model for BGP-LS Segment Routing Policy</title>
    <seriesInfo name="Internet-Draft" value="draft-aravind-idr-bgp-ls-sr-policy-yang-00"/>
    <author fullname="Aravind Babu MahendraBabu">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>aramahen@cisco.com</email>
      </address>
    </author>
    <author fullname="Thanigaivel Manoharan">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <email>thanmano@cisco.com</email>
      </address>
    </author>
    <date year="2026" month="November" day="02"/>
    <area>Routing</area>
    <workgroup>Inter-Domain Routing</workgroup>
    <keyword>BGP-LS</keyword>
    <keyword>Segment Routing</keyword>
    <keyword>SR Policy</keyword>
    <keyword>YANG</keyword>
    <abstract>
      <?line 77?>

<t>This document defines a YANG data model for the operational state of
Segment Routing (SR) Policy candidate paths that are advertised using BGP -
Link State (BGP-LS).  The model augments the read-only BGP-LS Link-State
Database with the SR Policy Candidate Path Network Layer Reachability
Information (NLRI) and the associated BGP-LS Attribute TLVs specified in
RFC 9857.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://AravindBabuM.github.io/bgp-ls-sr-policy-yang/draft-aravind-idr-bgp-ls-sr-policy-yang.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-aravind-idr-bgp-ls-sr-policy-yang/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Inter-Domain Routing Working Group mailing list (<eref target="mailto:idr@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/idr/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/idr/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/AravindBabuM/bgp-ls-sr-policy-yang"/>.</t>
    </note>
  </front>
  <middle>
    <?line 87?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC9552"/> specifies a mechanism by which Link-State (LS) and Traffic
Engineering (TE) information is collected and distributed using the Border
Gateway Protocol (BGP).  <xref target="RFC9857"/> extends that mechanism with the SR
Policy Candidate Path NLRI (NLRI Type 5), the Segment Routing Protocol-ID
(9), and a set of BGP-LS Attribute TLVs that report the operational state
of an SR Policy <xref target="RFC9256"/> at candidate-path granularity.  The reported
information includes the Binding Segment Identifier (BSID), the
candidate-path state and names, path constraints, and the segment lists
associated with the candidate path.</t>
      <t><xref target="I-D.ietf-lsvr-bgp-ls-yang"/> defines a YANG 1.1 <xref target="RFC7950"/> data model for
BGP-LS, BGP-LS-VPN, and BGP-LS-SPF as an extension of the BGP YANG data
model <xref target="I-D.ietf-idr-bgp-model"/>, which is itself instantiated under the
routing management model <xref target="RFC8349"/>.  That model includes a read-only
Link-State Database (LSDB) for the Node, Link, Prefix, and SRv6 SID NLRIs
received using BGP-LS, but it does not represent the SR Policy Candidate
Path NLRI.</t>
      <t>This document defines the <tt>ietf-bgp-ls-sr-policy</tt> YANG module, which
augments that LSDB with a read-only representation of the SR Policy
Candidate Path NLRI and its associated BGP-LS Attribute TLVs.  The module
does not configure SR Policies and does not alter BGP-LS protocol
procedures.  The module conforms to the Network Management Datastore
Architecture (NMDA) <xref target="RFC8342"/>; all data nodes defined by this document
are reported in the operational state datastore.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>This document uses the terminology defined in <xref target="RFC9256"/>, <xref target="RFC9552"/>, and
<xref target="RFC9857"/>.  In addition, the following terms are used:</t>
        <dl>
          <dt>Candidate path:</dt>
          <dd>
            <t>A path associated with an SR Policy, as defined in Section 2.2 of
<xref target="RFC9256"/>.  An SR Policy can have multiple candidate paths, of which at
most one is active at any given time.</t>
          </dd>
          <dt>Headend:</dt>
          <dd>
            <t>The node at which an SR Policy is instantiated and at which traffic is
steered onto the SR Policy, as defined in <xref target="RFC9256"/>.</t>
          </dd>
          <dt>Segment list:</dt>
          <dd>
            <t>An ordered list of segments that describes a path through the SR domain,
as defined in <xref target="RFC9256"/>.  The term "SID list" is used interchangeably.</t>
          </dd>
          <dt>Server:</dt>
          <dd>
            <t>The entity that implements the module defined in this document and
exposes the BGP-LS LSDB through a network management protocol.</t>
          </dd>
        </dl>
      </section>
      <section anchor="acronyms">
        <name>Acronyms</name>
        <t>This document uses the following acronyms:</t>
        <table>
          <name>Acronyms</name>
          <thead>
            <tr>
              <th align="left">Acronym</th>
              <th align="left">Definition</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">BGP</td>
              <td align="left">Border Gateway Protocol</td>
            </tr>
            <tr>
              <td align="left">BGP-LS</td>
              <td align="left">BGP - Link State</td>
            </tr>
            <tr>
              <td align="left">BSID</td>
              <td align="left">Binding Segment Identifier</td>
            </tr>
            <tr>
              <td align="left">CP</td>
              <td align="left">Candidate Path</td>
            </tr>
            <tr>
              <td align="left">LS</td>
              <td align="left">Link-State</td>
            </tr>
            <tr>
              <td align="left">LSDB</td>
              <td align="left">Link-State Database</td>
            </tr>
            <tr>
              <td align="left">NLRI</td>
              <td align="left">Network Layer Reachability Information</td>
            </tr>
            <tr>
              <td align="left">NMDA</td>
              <td align="left">Network Management Datastore Architecture</td>
            </tr>
            <tr>
              <td align="left">PCE</td>
              <td align="left">Path Computation Element</td>
            </tr>
            <tr>
              <td align="left">PCEP</td>
              <td align="left">Path Computation Element Communication Protocol</td>
            </tr>
            <tr>
              <td align="left">SID</td>
              <td align="left">Segment Identifier</td>
            </tr>
            <tr>
              <td align="left">SR</td>
              <td align="left">Segment Routing</td>
            </tr>
            <tr>
              <td align="left">SR-MPLS</td>
              <td align="left">Segment Routing over MPLS</td>
            </tr>
            <tr>
              <td align="left">SRLG</td>
              <td align="left">Shared Risk Link Group</td>
            </tr>
            <tr>
              <td align="left">SRv6</td>
              <td align="left">Segment Routing over IPv6</td>
            </tr>
            <tr>
              <td align="left">TE</td>
              <td align="left">Traffic Engineering</td>
            </tr>
            <tr>
              <td align="left">TLV</td>
              <td align="left">Type-Length-Value</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="tree-diagrams">
        <name>Tree Diagrams</name>
        <t>Tree diagrams used in this document follow the notation defined in
<xref target="RFC8340"/>.</t>
      </section>
      <section anchor="prefixes-in-data-node-names">
        <name>Prefixes in Data Node Names</name>
        <t>In this document, names of data nodes and other data model objects are
prefixed using the standard prefix associated with the corresponding YANG
imported modules, as shown in the following table.</t>
        <table>
          <name>Prefixes and Corresponding YANG Modules</name>
          <thead>
            <tr>
              <th align="left">Prefix</th>
              <th align="left">YANG Module</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">inet</td>
              <td align="left">ietf-inet-types</td>
              <td align="left">
                <xref target="RFC9911"/></td>
            </tr>
            <tr>
              <td align="left">yang</td>
              <td align="left">ietf-yang-types</td>
              <td align="left">
                <xref target="RFC9911"/></td>
            </tr>
            <tr>
              <td align="left">rt</td>
              <td align="left">ietf-routing</td>
              <td align="left">
                <xref target="RFC8349"/></td>
            </tr>
            <tr>
              <td align="left">ietf-rt-t</td>
              <td align="left">ietf-routing-types</td>
              <td align="left">
                <xref target="RFC8294"/></td>
            </tr>
            <tr>
              <td align="left">bgp</td>
              <td align="left">ietf-bgp</td>
              <td align="left">
                <xref target="I-D.ietf-idr-bgp-model"/></td>
            </tr>
            <tr>
              <td align="left">bgp-ls</td>
              <td align="left">ietf-bgp-ls</td>
              <td align="left">
                <xref target="I-D.ietf-lsvr-bgp-ls-yang"/></td>
            </tr>
            <tr>
              <td align="left">bgp-lsdb</td>
              <td align="left">ietf-bgp-lsdb</td>
              <td align="left">
                <xref target="I-D.ietf-lsvr-bgp-ls-yang"/></td>
            </tr>
            <tr>
              <td align="left">iana-bgp-ls-srp-t</td>
              <td align="left">iana-bgp-ls-sr-policy-types</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="overview-of-the-data-model">
      <name>Overview of the Data Model</name>
      <t>The tree diagram below shows an abridged view of the
<tt>ietf-bgp-ls-sr-policy</tt> module.  The <tt>sr-policy-candidate-paths</tt> container is
augmented into each BGP-LS LSDB instance whose Protocol-ID is Segment
Routing.  Each candidate path is identified by the Local Node Descriptors
and the SR Policy Candidate Path Descriptor carried in the NLRI.  The
<tt>attributes</tt> container holds the state TLVs carried in the associated BGP-LS
Attribute.  The complete tree diagram is provided in <xref target="appendix-tree"/>.</t>
      <figure>
        <name>Abridged Tree Diagram of ietf-bgp-ls-sr-policy</name>
        <artwork><![CDATA[
module: ietf-bgp-ls-sr-policy

  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/bgp:bgp/bgp:global
            /bgp:afi-safis/bgp:afi-safi/bgp-ls:link-state
            /bgp-ls:bgp-ls-topology/bgp-ls:instances/bgp-ls:instance:
    +--ro sr-policy-candidate-paths
       +--ro candidate-path*
               [as bgp-router-id member-as ipv4-router-id
                ipv6-router-id protocol-origin descriptor-flags
                endpoint color originator-as originator-address
                discriminator]
          +--ro as                           inet:as-number
          +--ro bgp-router-id                yang:dotted-quad
          +--ro member-as                    inet:as-number
          +--ro ipv4-router-id               inet:ipv4-address
          +--ro ipv6-router-id               inet:ipv6-address
          +--ro protocol-origin              protocol-origin
          +--ro descriptor-flags             descriptor-flags
          +--ro endpoint                     inet:ip-address
          +--ro color                        uint32
          +--ro originator-as                inet:as-number
          +--ro originator-address           inet:ip-address
          +--ro discriminator                uint32
          +--ro attributes
             +--ro policy-name?             string
             +--ro candidate-path-name?     string
             +--ro sr-binding-sid!
             +--ro srv6-binding-sid* [index]
             |  +--ro srv6-sid-attributes
             |  +--ro unknown* [type]
             +--ro state!
             +--ro constraints!
             +--ro segment-list* [index]
             +--ro unknown* [type]
]]></artwork>
      </figure>
    </section>
    <section anchor="design-of-the-data-model">
      <name>Design of the Data Model</name>
      <section anchor="scope-and-augmentation">
        <name>Scope and Augmentation</name>
        <t>The <tt>ietf-bgp-ls-sr-policy</tt> module augments the operational BGP-LS LSDB
defined by <xref target="I-D.ietf-lsvr-bgp-ls-yang"/>.  The module augments only the
<tt>link-state</tt> database.  The separate <tt>link-state-spf</tt> database is not
augmented because <xref target="RFC9857"/> does not define the SR Policy Candidate Path
NLRI for BGP-LS-SPF.</t>
        <t>The <tt>sr-policy-candidate-paths</tt> container is a sibling of the <tt>nodes</tt>,
<tt>links</tt>, <tt>prefixes</tt>, <tt>srv6-sids</tt>, and <tt>unknowns</tt> containers in an LSDB
instance.  A <tt>when</tt> statement restricts the container to LSDB instances
whose <tt>protocol</tt> leaf is <tt>sr</tt>, which corresponds to the Segment Routing
Protocol-ID (9) assigned by <xref target="RFC9857"/>.  The NLRI Identifier field is
represented by the <tt>identifier</tt> key of the enclosing LSDB instance.</t>
      </section>
      <section anchor="candidate-path-identification">
        <name>Candidate Path Identification</name>
        <t>Each entry in the <tt>candidate-path</tt> list represents one SR Policy Candidate
Path NLRI.  The list key consists of the decoded fields of the Local Node
Descriptors TLV followed by the fields of the mandatory SR Policy Candidate
Path Descriptor TLV (TLV 554).  <xref target="fig-nlri-key"/> shows the correspondence
between the NLRI fields and the YANG data nodes.</t>
        <figure anchor="fig-nlri-key">
          <name>Mapping of NLRI Fields to List Keys</name>
          <artwork><![CDATA[
 SR Policy Candidate Path NLRI     YANG data node
 (RFC 9857, Sections 3 and 4)
+-------------------------------+
| Protocol-ID (9)               |-> bgp-ls:instance/protocol
+-------------------------------+
| Identifier (64 bits)          |-> bgp-ls:instance/identifier
+-------------------------------+
| Local Node Descriptors (256)  |
|   Autonomous System (512)     |-> candidate-path/as
|   BGP Router-ID (516)         |-> candidate-path/bgp-router-id
|   Confed. Member (517)        |-> candidate-path/member-as
|   IPv4 Router-ID (1028)       |-> candidate-path/ipv4-router-id
|   IPv6 Router-ID (1029)       |-> candidate-path/ipv6-router-id
+-------------------------------+
| SR Policy CP Descriptor (554) |
|   Protocol-Origin             |-> candidate-path/protocol-origin
|   Flags (E, O)                |-> candidate-path/descriptor-flags
|   Endpoint                    |-> candidate-path/endpoint
|   Policy Color                |-> candidate-path/color
|   Originator ASN              |-> candidate-path/originator-as
|   Originator Address          |-> candidate-path/originator-address
|   Discriminator               |-> candidate-path/discriminator
+-------------------------------+
]]></artwork>
        </figure>
        <t>YANG requires every key leaf to have a value.  <xref target="RFC9857"/> requires the
Autonomous System (TLV 512) and BGP Router-ID (TLV 516) Node Descriptors
when the headend is the BGP-LS Producer, but makes them optional when a PCE
is the BGP-LS Producer.  The BGP Confederation Member (TLV 517) Node
Descriptor is always optional, and at least one of the IPv4 Router-ID
(TLV 1028) and IPv6 Router-ID (TLV 1029) Node Descriptors is required.  A
server therefore <bcp14>MUST</bcp14> populate the key leaves as follows when the
corresponding Node Descriptor TLV is absent from the NLRI:</t>
        <ul spacing="normal">
          <li>
            <t><tt>as</tt> and <tt>member-as</tt>: the value 0.</t>
          </li>
          <li>
            <t><tt>bgp-router-id</tt>: the value 0.0.0.0.  This leaf uses the <tt>dotted-quad</tt>
type because the BGP Identifier is a 4-octet value that is not
necessarily an IPv4 address.</t>
          </li>
          <li>
            <t><tt>ipv4-router-id</tt>: the IPv4 unspecified address
(0.0.0.0).</t>
          </li>
          <li>
            <t><tt>ipv6-router-id</tt>: the IPv6 unspecified address (::).</t>
          </li>
        </ul>
        <t>A <tt>must</tt> statement enforces that at least one of <tt>ipv4-router-id</tt> and
<tt>ipv6-router-id</tt> contains a specified address.</t>
        <t><xref target="RFC9857"/> also permits other Node Descriptor TLVs defined in <xref target="RFC9552"/>,
such as the IGP Router-ID (TLV 515), to be included in the Local Node
Descriptors TLV.  Such descriptors are not represented in the list key by
this version of the module.</t>
      </section>
      <section anchor="candidate-path-attributes">
        <name>Candidate Path Attributes</name>
        <t>The <tt>attributes</tt> container represents the BGP-LS Attribute associated with
the NLRI.  <xref target="fig-attr-map"/> shows the correspondence between the BGP-LS
Attribute TLVs and sub-TLVs defined in <xref target="RFC9857"/> and <xref target="RFC9514"/> and the
YANG data nodes defined under the <tt>attributes</tt> container.  Indentation of
the TLV code point indicates a sub-TLV of the preceding TLV.</t>
        <figure anchor="fig-attr-map">
          <name>Mapping of BGP-LS Attribute TLVs to Data Nodes</name>
          <artwork><![CDATA[
TLV   RFC 9857 element                Data node under attributes
----  ------------------------------  -------------------------------
1201  SR Binding SID                  sr-binding-sid
1212  SRv6 Binding SID                srv6-binding-sid
1202  SR Candidate Path State         state
1213  SR Policy Name                  policy-name
1203  SR Candidate Path Name          candidate-path-name
1204  SR Candidate Path Constraints   constraints
1208    SR Affinity                   constraints/affinity
1209    SR SRLG                       constraints/excluded-srlg
1210    SR Bandwidth                  constraints/bandwidth
1211    SR Disjoint Group             constraints/disjoint-group
1214    SR Bidirectional Group        constraints/bidirectional-group
1215    SR Metric                     constraints/metric
1205  SR Segment List                 segment-list
1206    SR Segment                    segment-list/segment
1207    SR Segment List Metric        segment-list/metric
1216    SR Segment List Bandwidth     segment-list/bandwidth
1217    SR Segment List Identifier    segment-list/identifier
1250  SRv6 Endpoint Behavior          .../srv6-sid-attributes
1252  SRv6 SID Structure              .../srv6-sid-attributes
----  Unrecognized TLV or sub-TLV     unknown (at each level)
]]></artwork>
        </figure>
        <t>The SRv6 Endpoint Behavior (TLV 1250) and SRv6 SID Structure (TLV 1252)
sub-TLVs apply to the <tt>srv6-binding-sid</tt> list entries and to the <tt>segment</tt>
list entries.  These are represented by the SRv6 SID attribute grouping
reused from <xref target="I-D.ietf-lsvr-bgp-ls-yang"/>.</t>
        <t>The following rules apply to the representation of the BGP-LS Attribute:</t>
        <ul spacing="normal">
          <li>
            <t><xref target="RFC9857"/> specifies that only the first valid instance of certain TLVs
and sub-TLVs is used when multiple instances are received.  For such
TLVs and sub-TLVs, the server <bcp14>MUST</bcp14> represent only the instance that is
used according to <xref target="RFC9857"/>.</t>
          </li>
          <li>
            <t>The SR Binding SID TLV (TLV 1201) is represented by the <tt>sr-binding-sid</tt>
container.  The D-flag is represented by the <tt>srv6-dataplane</tt> bit of the
<tt>flags</tt> leaf.  When the D-flag is clear, the server <bcp14>MUST</bcp14> report the
Binding SID and Specified Binding SID fields in the <tt>binding-sid</tt> and
<tt>specified-binding-sid</tt> leaves.  When the D-flag is set, the TLV uses the
SRv6 encoding that is deprecated by Section 5.1 of <xref target="RFC9857"/>, and the
server <bcp14>MUST</bcp14> report these fields in the <tt>srv6-binding-sid</tt> and
<tt>srv6-specified-binding-sid</tt> leaves.  In both cases, when either field is
set to 0 (e.g., because no Binding SID has been specified), the server
<bcp14>MUST NOT</bcp14> report the corresponding leaf.</t>
          </li>
          <li>
            <t>Each SRv6 Binding SID TLV (TLV 1212) is represented by one entry of the
<tt>srv6-binding-sid</tt> list.  <xref target="RFC9857"/> permits multiple instances of this
TLV for a candidate path.  The server <bcp14>MUST</bcp14> assign the <tt>index</tt> key
according to the order in which the TLVs appear in the BGP-LS Attribute,
starting at 0.  When the Binding SID or Specified Binding SID field is
set to 0, the server <bcp14>MUST NOT</bcp14> report the corresponding leaf.</t>
          </li>
          <li>
            <t>The Protocol-Origin, Metric Type, and Segment Type fields carry code
points from IANA registries.  These are represented by union types whose
first member is an enumeration defined in the IANA-maintained
<tt>iana-bgp-ls-sr-policy-types</tt> module (<xref target="iana-module"/>) and whose second
member is <tt>uint8</tt>.  When a code point is defined in the revision of the
IANA-maintained module implemented by the server, the server <bcp14>MUST</bcp14> report
the enumeration name.  Otherwise, including for User Defined metric
types, the server <bcp14>MUST</bcp14> report the numeric value.</t>
          </li>
          <li>
            <t>When the Disjoint Group Identifier or Bidirectional Group Identifier
field carries a 4-octet value, the server <bcp14>MUST</bcp14> report it in the
<tt>group-id</tt> leaf.  When the field carries a PCEP ASSOCIATION Object
<xref target="RFC8697"/>, the server <bcp14>MUST</bcp14> report the object, as received, in the
<tt>pcep-association-object</tt> leaf.</t>
          </li>
          <li>
            <t>Bandwidth values are encoded by <xref target="RFC9857"/> in bytes per second as IEEE
754 single-precision floating-point numbers <xref target="IEEE754"/>.  The module
represents bandwidth using the <tt>bandwidth-ieee-float32</tt> type defined in
<xref target="RFC8294"/>, in bytes per second.  The server <bcp14>MUST</bcp14> report the received
value without conversion or rounding.</t>
          </li>
          <li>
            <t>Each flag defined by <xref target="RFC9857"/> is represented by a bit of the same
name in a YANG <tt>bits</tt> type.  The YANG bit positions match the bit
numbering used in <xref target="RFC9857"/>.  Bits that are undefined in <xref target="RFC9857"/>
are ignored by a receiver and are not represented.</t>
          </li>
          <li>
            <t>A TLV or sub-TLV that is not recognized by the server <bcp14>SHOULD</bcp14> be reported
in the <tt>unknown</tt> list of the enclosing level, using the unknown
attribute grouping reused from <xref target="I-D.ietf-lsvr-bgp-ls-yang"/>.</t>
          </li>
        </ul>
      </section>
      <section anchor="segment-lists-and-segments">
        <name>Segment Lists and Segments</name>
        <t>Segment lists and segments are represented by lists that are <tt>ordered-by
user</tt> so that the received order is preserved.  The server <bcp14>MUST</bcp14> assign the
<tt>index</tt> key of a segment list according to the order in which the
corresponding SR Segment List TLV appears in the BGP-LS Attribute,
starting at 0.  The server <bcp14>MUST</bcp14> assign the <tt>index</tt> key of a segment
according to the order in which the corresponding SR Segment sub-TLV
appears in the SR Segment List TLV, starting at 0.  The optional Segment
List Identifier defined in Section 5.7.4 of <xref target="RFC9857"/> is represented by
the <tt>identifier</tt> leaf and is not used as the list key, because it is
optional and is not required to be present for every segment list.  A
segment list without any SR Segment sub-TLVs (e.g., a dynamic path that
has not yet been computed) is represented by a <tt>segment-list</tt> entry
without <tt>segment</tt> entries.</t>
        <t>Segment Descriptor Types A through K defined in Section 5.7.1.1 of
<xref target="RFC9857"/> are represented by separate cases of the <tt>descriptor</tt> choice.
The <tt>type</tt> leaf of a segment contains the Segment Type, and each case is
constrained by a <tt>when</tt> statement to the corresponding enumeration name.
The SID value is present only when the S-flag (<tt>sid-present</tt>) of the
segment is set.  The Algorithm field of a Type A or Type B descriptor is
meaningful only when the A-flag (<tt>algorithm-valid</tt>) of the segment is set.</t>
      </section>
    </section>
    <section anchor="yang-modules">
      <name>YANG Modules</name>
      <section anchor="bgp-ls-sr-policy-module">
        <name>BGP-LS SR Policy Module</name>
        <t>The <tt>ietf-bgp-ls-sr-policy</tt> module imports typedefs from <xref target="RFC9911"/>,
<xref target="RFC8294"/>, and the <tt>iana-bgp-ls-sr-policy-types</tt> module defined in
<xref target="iana-module"/>, the routing management module defined in <xref target="RFC8349"/>, the
BGP module defined in
<xref target="I-D.ietf-idr-bgp-model"/>, and the BGP-LS and LSDB modules defined in
<xref target="I-D.ietf-lsvr-bgp-ls-yang"/>.  The module also references <xref target="RFC8697"/> and
<xref target="RFC9857"/>.</t>
        <!-- YANG-MODEL:BEGIN -->
<sourcecode type="yang"><![CDATA[
<CODE BEGINS> file "ietf-bgp-ls-sr-policy@2026-10-28.yang"

module ietf-bgp-ls-sr-policy {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-bgp-ls-sr-policy";
  prefix bgp-ls-sr-policy;

  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 9911: Common YANG Data Types.";
  }
  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 9911: Common YANG Data Types.";
  }
  import ietf-routing-types {
    prefix ietf-rt-t;
    reference
      "RFC 8294: Common YANG Data Types for the Routing Area.";
  }
  import ietf-routing {
    prefix rt;
    reference
      "RFC 8349: A YANG Data Model for Routing Management
       (NMDA Version).";
  }
  import ietf-bgp {
    prefix bgp;
    reference
      "I-D.ietf-idr-bgp-model: BGP YANG Model for Service Provider
       Networks.";
  }
  import ietf-bgp-ls {
    prefix bgp-ls;
    reference
      "I-D.ietf-lsvr-bgp-ls-yang: A YANG Model for BGP-LS,
       BGP-LS-VPN, and BGP-LS-SPF.";
  }
  import ietf-bgp-lsdb {
    prefix bgp-lsdb;
    reference
      "I-D.ietf-lsvr-bgp-ls-yang: A YANG Model for BGP-LS,
       BGP-LS-VPN, and BGP-LS-SPF.";
  }
  import iana-bgp-ls-sr-policy-types {
    prefix iana-bgp-ls-srp-t;
    reference
      "RFC XXXX: A YANG Data Model for BGP-LS Segment Routing
       Policy.";
  }
  organization
    "IETF IDR Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/idr>
     WG List:  <mailto:idr@ietf.org>

     Authors:  Aravind Babu MahendraBabu
               <mailto:aramahen@cisco.com>
               Thanigaivel Manoharan
               <mailto:thanmano@cisco.com>";
  description
    "This module augments the operational Link-State Database in the
     BGP-LS YANG data model with a representation of the Segment
     Routing (SR) Policy Candidate Path NLRI and its associated
     BGP-LS attributes, as defined in RFC 9857.

     Copyright (c) 2026 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Revised BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see the
     RFC itself for full legal notices.";

  revision 2026-10-28 {
    description
      "Initial revision.";
    reference
      "RFC 9857: Advertisement of Segment Routing Policies Using
       BGP - Link State.
       I-D.aravind-idr-bgp-ls-sr-policy-yang: A YANG Data Model for
       BGP-LS Segment Routing Policy.";
  }

  typedef protocol-origin {
    type union {
      type iana-bgp-ls-srp-t:protocol-origin;
      type uint8 {
        range "1..255";
      }
    }
    description
      "The component responsible for instantiating an SR Policy
       candidate path, from the IANA 'SR Policy Protocol-Origin'
       registry.  A code point that is not defined in the
       implemented revision of the IANA-maintained module is
       reported as a numeric value.";
    reference
      "RFC 9857, Sections 4 and 8.4.";
  }

  typedef metric-type {
    type union {
      type iana-bgp-ls-srp-t:metric-type;
      type uint8;
    }
    description
      "An SR Policy metric type from the IANA 'BGP-LS SR Policy
       Metric Types' registry.  A code point that is not defined
       in the implemented revision of the IANA-maintained module,
       including a User Defined code point, is reported as a
       numeric value.";
    reference
      "RFC 9857, Sections 5.6.6, 5.7.2, and 8.6.";
  }

  typedef segment-type {
    type union {
      type iana-bgp-ls-srp-t:segment-type;
      type uint8 {
        range "1..255";
      }
    }
    description
      "A Segment Type from the IANA 'BGP-LS SR Segment Descriptor
       Types' registry.  A code point that is not defined in the
       implemented revision of the IANA-maintained module is
       reported as a numeric value.";
    reference
      "RFC 9857, Sections 5.7.1 and 8.5.";
  }

  typedef descriptor-flags {
    type bits {
      bit endpoint-ipv6 {
        position 0;
        description
          "The endpoint is encoded as an IPv6 address.";
      }
      bit originator-ipv6 {
        position 1;
        description
          "The originator is encoded as an IPv6 address.";
      }
    }
    description
      "Flags in the SR Policy Candidate Path Descriptor TLV.";
    reference
      "RFC 9857, Section 4.";
  }

  typedef binding-sid-flags {
    type bits {
      bit srv6-dataplane {
        position 0;
        description
          "The Binding SID values are SRv6 SIDs instead of SR-MPLS
           labels.  This encoding is deprecated by RFC 9857.";
      }
      bit allocated {
        position 1;
        description
          "The Binding SID value is allocated.";
      }
      bit specified-unavailable {
        position 2;
        description
          "The specified Binding SID is unavailable.";
      }
      bit srlb {
        position 3;
        description
          "The Binding SID is from the headend SRLB.";
      }
      bit fallback {
        position 4;
        description
          "The value was dynamically allocated due to fallback.";
      }
    }
    description
      "Flags in the SR Binding SID TLV.  The SRLB flag applies only
       to an SR-MPLS Binding SID.";
    reference
      "RFC 9857, Section 5.1.";
  }

  typedef srv6-binding-sid-flags {
    type bits {
      bit allocated {
        position 0;
        description
          "The SRv6 Binding SID value is allocated.";
      }
      bit specified-unavailable {
        position 1;
        description
          "The specified SRv6 Binding SID is unavailable.";
      }
      bit fallback {
        position 2;
        description
          "The value was dynamically allocated due to fallback.";
      }
    }
    description
      "Flags in the SRv6 Binding SID TLV.";
    reference
      "RFC 9857, Section 5.2.";
  }

  typedef candidate-path-state-flags {
    type bits {
      bit administrative-shutdown {
        position 0;
        description
          "The candidate path is administratively shut down.";
      }
      bit active {
        position 1;
        description
          "The candidate path is active in the forwarding plane.";
      }
      bit backup {
        position 2;
        description
          "The candidate path is a backup path.";
      }
      bit evaluated {
        position 3;
        description
          "The candidate path has been evaluated for validity.";
      }
      bit valid {
        position 4;
        description
          "The candidate path has at least one valid SID list.";
      }
      bit on-demand-nexthop {
        position 5;
        description
          "The path was instantiated by an on-demand nexthop
           trigger.";
      }
      bit delegated {
        position 6;
        description
          "The path was delegated to a PCE or controller.";
      }
      bit provisioned {
        position 7;
        description
          "The path was provisioned by a PCE or controller.";
      }
      bit drop-upon-invalid {
        position 8;
        description
          "Drop-upon-invalid behavior is requested.";
      }
      bit transit-eligible {
        position 9;
        description
          "The path is eligible for use as a transit policy.";
      }
      bit dropping {
        position 10;
        description
          "The active path is dropping traffic due to
           drop-upon-invalid behavior.";
      }
    }
    description
      "Operational state flags for an SR Policy candidate path.";
    reference
      "RFC 9857, Section 5.3.";
  }

  typedef candidate-path-constraint-flags {
    type bits {
      bit srv6-dataplane {
        position 0;
        description
          "Use the SRv6 dataplane instead of SR-MPLS.";
      }
      bit protected {
        position 1;
        description
          "Prefer protected SIDs.";
      }
      bit unprotected {
        position 2;
        description
          "Prefer unprotected SIDs.";
      }
      bit specified-algorithm {
        position 3;
        description
          "Use SIDs belonging to the specified SR Algorithm.";
      }
      bit specified-topology {
        position 4;
        description
          "Use SIDs belonging to the specified topology.";
      }
      bit strict {
        position 5;
        description
          "Treat the protection preference as a strict constraint.";
      }
      bit fixed {
        position 6;
        description
          "The path is fixed after computation.";
      }
      bit hop-by-hop {
        position 7;
        description
          "Use only adjacency SIDs in hop-by-hop fashion.";
      }
    }
    description
      "Flags in the SR Candidate Path Constraints TLV.";
    reference
      "RFC 9857, Section 5.6.";
  }

  typedef disjoint-request-flags {
    type bits {
      bit srlg {
        position 0;
        description
          "SRLG disjointness is requested.";
      }
      bit node {
        position 1;
        description
          "Node disjointness is requested.";
      }
      bit link {
        position 2;
        description
          "Link disjointness is requested.";
      }
      bit fallback {
        position 3;
        description
          "Fallback to lower disjointness is permitted.";
      }
      bit best-path-fallback {
        position 4;
        description
          "Fallback to the default best path is permitted.";
      }
    }
    description
      "Requested SR disjointness constraints.";
    reference
      "RFC 9857, Section 5.6.4.";
  }

  typedef disjoint-status-flags {
    type bits {
      bit srlg {
        position 0;
        description
          "SRLG disjointness was achieved.";
      }
      bit node {
        position 1;
        description
          "Node disjointness was achieved.";
      }
      bit link {
        position 2;
        description
          "Link disjointness was achieved.";
      }
      bit fallback {
        position 3;
        description
          "Computation fell back to lower disjointness.";
      }
      bit best-path-fallback {
        position 4;
        description
          "Computation fell back to the default best path.";
      }
      bit invalid {
        position 5;
        description
          "The constraint could not be met and the path is invalid.";
      }
    }
    description
      "Achieved SR disjointness status.";
    reference
      "RFC 9857, Section 5.6.4.";
  }

  typedef bidirectional-flags {
    type bits {
      bit reverse {
        position 0;
        description
          "This candidate path is the reverse path.";
      }
      bit co-routed {
        position 1;
        description
          "The bidirectional path is co-routed.";
      }
    }
    description
      "Flags for an SR bidirectional group constraint.";
    reference
      "RFC 9857, Section 5.6.5.";
  }

  typedef metric-constraint-flags {
    type bits {
      bit optimization-metric {
        position 0;
        description
          "This is the optimization metric for the dynamic path.";
      }
      bit margin-present {
        position 1;
        description
          "A metric margin is present.";
      }
      bit absolute-margin {
        position 2;
        description
          "The margin is absolute rather than a percentage.";
      }
      bit bound-present {
        position 3;
        description
          "A metric bound is present.";
      }
    }
    description
      "Flags for an SR Metric Constraint sub-TLV.";
    reference
      "RFC 9857, Section 5.6.6.";
  }

  typedef segment-list-flags {
    type bits {
      bit srv6-dataplane {
        position 0;
        description
          "The SID list contains SRv6 SIDs.";
      }
      bit explicit {
        position 1;
        description
          "The SID list belongs to an explicit candidate path.";
      }
      bit computed {
        position 2;
        description
          "The SID list was computed.";
      }
      bit verified {
        position 3;
        description
          "The SID list passed verification or needed none.";
      }
      bit resolved {
        position 4;
        description
          "The first segment was resolved.";
      }
      bit computation-failed {
        position 5;
        description
          "Dynamic path computation failed.";
      }
      bit specified-algorithm {
        position 6;
        description
          "All SIDs belong to the specified algorithm.";
      }
      bit specified-topology {
        position 7;
        description
          "All SIDs belong to the specified topology.";
      }
      bit fault-monitor-removed {
        position 8;
        description
          "Fault monitoring removed the SID list from forwarding.";
      }
    }
    description
      "Flags in the SR Segment List TLV.";
    reference
      "RFC 9857, Section 5.7.";
  }

  typedef segment-flags {
    type bits {
      bit sid-present {
        position 0;
        description
          "The SID field is present.";
      }
      bit explicitly-provisioned {
        position 1;
        description
          "The SID was explicitly provisioned.";
      }
      bit verified {
        position 2;
        description
          "The SID passed verification or needed none.";
      }
      bit resolved {
        position 3;
        description
          "The SID was resolved or needed no resolution.";
      }
      bit algorithm-valid {
        position 4;
        description
          "The algorithm in the descriptor is valid.";
      }
    }
    description
      "Flags in an SR Segment sub-TLV.";
    reference
      "RFC 9857, Section 5.7.1.";
  }

  typedef segment-list-metric-flags {
    type bits {
      bit margin-present {
        position 0;
        description
          "A metric margin is present.";
      }
      bit absolute-margin {
        position 1;
        description
          "The margin is absolute rather than a percentage.";
      }
      bit bound-present {
        position 2;
        description
          "A metric bound is present.";
      }
      bit value-present {
        position 3;
        description
          "A computed metric value is present.";
      }
    }
    description
      "Flags in an SR Segment List Metric sub-TLV.";
    reference
      "RFC 9857, Section 5.7.2.";
  }

  grouping sr-policy-node-descriptors {
    description
      "Decoded fields of the Local Node Descriptors TLV identifying
       the SR Policy headend.";
    reference
      "RFC 9857, Section 3.";

    leaf as {
      type inet:as-number;
      description
        "Autonomous System Number in Node Descriptor TLV 512.  A
         value of zero indicates that the descriptor was absent.";
    }
    leaf bgp-router-id {
      type yang:dotted-quad;
      description
        "BGP Identifier in Node Descriptor TLV 516.  The value
         0.0.0.0 indicates that the descriptor was absent.";
    }
    leaf member-as {
      type inet:as-number;
      description
        "BGP Confederation Member ASN in Node Descriptor TLV 517.  A
         value of zero indicates that the descriptor was absent.";
    }

    leaf ipv4-router-id {
      type inet:ipv4-address;
      description
        "IPv4 Router-ID of the headend from TLV 1028.  The
         unspecified address is used when only an IPv6 Router-ID is
         present.";
    }
    leaf ipv6-router-id {
      type inet:ipv6-address;
      description
        "IPv6 Router-ID of the headend from TLV 1029.  The
         unspecified address is used when only an IPv4 Router-ID is
         present.";
    }
  }

  grouping sr-policy-candidate-path-descriptor {
    description
      "Decoded fields of the mandatory SR Policy Candidate Path
       Descriptor TLV.";
    reference
      "RFC 9857, Section 4.";

    leaf protocol-origin {
      type protocol-origin;
      mandatory true;
      description
        "Protocol or component that instantiated the path.";
    }
    leaf descriptor-flags {
      type descriptor-flags;
      mandatory true;
      description
        "Address-family flags from the descriptor TLV.";
    }
    leaf endpoint {
      type inet:ip-address;
      mandatory true;
      description
        "SR Policy endpoint.";
    }
    leaf color {
      type uint32;
      mandatory true;
      description
        "SR Policy color.";
    }
    leaf originator-as {
      type inet:as-number;
      mandatory true;
      description
        "ASN of the candidate-path originator.";
    }
    leaf originator-address {
      type inet:ip-address;
      mandatory true;
      description
        "Address of the candidate-path originator.";
    }
    leaf discriminator {
      type uint32;
      mandatory true;
      description
        "Candidate-path discriminator.";
    }
  }

  grouping group-identifier {
    description
      "Group identifier carried in the SR Disjoint Group and SR
       Bidirectional Group Constraint sub-TLVs.";
    reference
      "RFC 9857, Sections 5.6.4 and 5.6.5.";

    choice group-identifier {
      mandatory true;
      description
        "The identifier is encoded either as a 4-octet value or as
         an entire PCEP ASSOCIATION Object.";
      case group-id {
        leaf group-id {
          type uint32;
          description
            "4-octet group identifier.";
        }
      }
      case pcep-association-object {
        leaf pcep-association-object {
          type binary;
          description
            "Entire PCEP ASSOCIATION Object, including its optional
             TLVs, as received.  The object is not parsed by BGP
             speakers.";
          reference
            "RFC 8697: Path Computation Element Communication
             Protocol (PCEP) Extensions for Establishing
             Relationships between Sets of Label Switched Paths
             (LSPs), Section 6.1.";
        }
      }
    }
  }

  grouping candidate-path-constraints {
    description
      "Constraints associated with an SR Policy candidate path.";

    container constraints {
      presence "An SR Candidate Path Constraints TLV was received.";
      description
        "Constraints and optimization objectives for the path.";
      reference
        "RFC 9857, Section 5.6.";

      leaf flags {
        type candidate-path-constraint-flags;
        description
          "Constraint flags.";
      }
      leaf multi-topology-id {
        type uint16 {
          range "0..4095";
        }
        description
          "Preferred IGP multi-topology identifier.";
      }
      leaf algorithm {
        type uint8;
        description
          "Preferred SR Algorithm.";
      }

      container affinity {
        presence "An SR Affinity Constraint sub-TLV was received.";
        description
          "Extended Administrative Group affinity constraints.
           Each leaf-list entry represents one 32-bit word, in wire
           order.";
        reference
          "RFC 9857, Section 5.6.1.";

        leaf-list exclude-any {
          type uint32;
          ordered-by user;
          description
            "Affinity words for the exclude-any constraint.";
        }
        leaf-list include-any {
          type uint32;
          ordered-by user;
          description
            "Affinity words for the include-any constraint.";
        }
        leaf-list include-all {
          type uint32;
          ordered-by user;
          description
            "Affinity words for the include-all constraint.";
        }
      }

      leaf-list excluded-srlg {
        type uint32;
        ordered-by user;
        description
          "Shared Risk Link Group values excluded from the path.";
        reference
          "RFC 9857, Section 5.6.2.";
      }
      leaf bandwidth {
        type ietf-rt-t:bandwidth-ieee-float32;
        units "bytes per second";
        description
          "Requested bandwidth.  The protocol encodes this value as
           an IEEE 754 single-precision floating-point number.";
        reference
          "RFC 9857, Section 5.6.3.";
      }

      container disjoint-group {
        presence
          "An SR Disjoint Group Constraint sub-TLV was received.";
        description
          "Requested and achieved path disjointness.";
        reference
          "RFC 9857, Section 5.6.4.";

        leaf request-flags {
          type disjoint-request-flags;
          description
            "Requested disjointness properties.";
        }
        leaf status-flags {
          type disjoint-status-flags;
          description
            "Achieved disjointness properties.";
        }
        uses group-identifier;
      }

      container bidirectional-group {
        presence
          "An SR Bidirectional Group Constraint sub-TLV was
           received.";
        description
          "Bidirectional path association.";
        reference
          "RFC 9857, Section 5.6.5.";

        leaf flags {
          type bidirectional-flags;
          description
            "Bidirectional group flags.";
        }
        uses group-identifier;
      }

      list metric {
        key "type";
        description
          "Metric constraints associated with the candidate path.";
        reference
          "RFC 9857, Section 5.6.6.";

        leaf type {
          type metric-type;
          description
            "Metric type code point.";
        }
        leaf flags {
          type metric-constraint-flags;
          description
            "Metric constraint flags.";
        }
        leaf margin {
          type uint32;
          description
            "Absolute or percentage metric margin.";
        }
        leaf bound {
          type uint32;
          description
            "Worst metric value allowed for a valid path.";
        }
      }
    }
  }

  grouping segment-descriptor {
    description
      "Descriptor for one of the segment types defined by RFC 9857.";

    choice descriptor {
      description
        "Descriptor fields selected according to the segment type.";

      case type-a {
        container type-a {
          when "../type = 'type-a'";
          description
            "Type A: SR-MPLS label descriptor.";
          leaf algorithm {
            type uint8;
            mandatory true;
            description
              "IGP Algorithm used to select the SID.";
          }
        }
      }
      case type-b {
        container type-b {
          when "../type = 'type-b'";
          description
            "Type B: SRv6 SID descriptor.";
          leaf algorithm {
            type uint8;
            mandatory true;
            description
              "IGP Algorithm used to select the SID.";
          }
        }
      }
      case type-c {
        container type-c {
          when "../type = 'type-c'";
          description
            "Type C: IPv4 node address for an SR-MPLS Prefix SID.";
          leaf algorithm {
            type uint8;
            mandatory true;
            description
              "IGP Algorithm used to select the SID.";
          }
          leaf node-address {
            type inet:ipv4-address;
            mandatory true;
            description
              "IPv4 address associated with the node.";
          }
        }
      }
      case type-d {
        container type-d {
          when "../type = 'type-d'";
          description
            "Type D: IPv6 node address for an SR-MPLS Prefix SID.";
          leaf algorithm {
            type uint8;
            mandatory true;
            description
              "IGP Algorithm used to select the SID.";
          }
          leaf node-address {
            type inet:ipv6-address;
            mandatory true;
            description
              "IPv6 global address associated with the node.";
          }
        }
      }
      case type-e {
        container type-e {
          when "../type = 'type-e'";
          description
            "Type E: IPv4 node and local interface identifier.";
          leaf node-address {
            type inet:ipv4-address;
            mandatory true;
            description
              "IPv4 address associated with the node.";
          }
          leaf local-interface-id {
            type uint32;
            mandatory true;
            description
              "Local interface identifier.";
          }
        }
      }
      case type-f {
        container type-f {
          when "../type = 'type-f'";
          description
            "Type F: IPv4 local and remote interface addresses.";
          leaf local-interface-address {
            type inet:ipv4-address;
            mandatory true;
            description
              "Local interface address.";
          }
          leaf remote-interface-address {
            type inet:ipv4-address;
            mandatory true;
            description
              "Remote interface address; zero may indicate that the
               value is unused.";
          }
        }
      }
      case type-g {
        container type-g {
          when "../type = 'type-g'";
          description
            "Type G: IPv6 node addresses and interface identifiers
             for an SR-MPLS adjacency.";
          uses ipv6-node-and-interface-pair;
        }
      }
      case type-h {
        container type-h {
          when "../type = 'type-h'";
          description
            "Type H: IPv6 local and remote interface addresses for
             an SR-MPLS adjacency.";
          uses ipv6-interface-address-pair;
        }
      }
      case type-i {
        container type-i {
          when "../type = 'type-i'";
          description
            "Type I: IPv6 node address for an SRv6 End SID.";
          leaf algorithm {
            type uint8;
            mandatory true;
            description
              "IGP Algorithm used to select the SID.";
          }
          leaf node-address {
            type inet:ipv6-address;
            mandatory true;
            description
              "IPv6 global address associated with the node.";
          }
        }
      }
      case type-j {
        container type-j {
          when "../type = 'type-j'";
          description
            "Type J: IPv6 node addresses and interface identifiers
             for an SRv6 End.X SID.";
          uses ipv6-node-and-interface-pair;
        }
      }
      case type-k {
        container type-k {
          when "../type = 'type-k'";
          description
            "Type K: IPv6 local and remote interface addresses for
             an SRv6 End.X SID.";
          uses ipv6-interface-address-pair;
        }
      }
    }
  }

  grouping ipv6-node-and-interface-pair {
    description
      "IPv6 node addresses and interface identifiers for both ends
       of a link.";

    leaf local-node-address {
      type inet:ipv6-address;
      mandatory true;
      description
        "IPv6 global address of the local node.";
    }
    leaf local-interface-id {
      type uint32;
      mandatory true;
      description
        "Local node interface identifier.";
    }
    leaf remote-node-address {
      type inet:ipv6-address;
      mandatory true;
      description
        "IPv6 global address of the remote node; zero may indicate
         that the value is unused.";
    }
    leaf remote-interface-id {
      type uint32;
      mandatory true;
      description
        "Remote node interface identifier; zero may indicate that the
         value is unused.";
    }
  }

  grouping ipv6-interface-address-pair {
    description
      "IPv6 interface addresses for both ends of a link.";

    leaf local-interface-address {
      type inet:ipv6-address;
      mandatory true;
      description
        "IPv6 global address of the local interface.";
    }
    leaf remote-interface-address {
      type inet:ipv6-address;
      mandatory true;
      description
        "IPv6 global address of the remote interface.";
    }
  }

  grouping segment-lists {
    description
      "SID lists belonging to an SR Policy candidate path.";

    list segment-list {
      key "index";
      ordered-by user;
      description
        "A SID list in the order received.  The index is the
         zero-based position of the SID list within the candidate
         path.";
      reference
        "RFC 9857, Section 5.7.";

      leaf index {
        type uint32;
        description
          "Zero-based position of the SID list in the order
           received.";
      }
      leaf flags {
        type segment-list-flags;
        description
          "SID-list state and dataplane flags.";
      }
      leaf multi-topology-id {
        type uint16 {
          range "0..4095";
        }
        description
          "Multi-topology identifier used by the SID list.";
      }
      leaf algorithm {
        type uint8;
        description
          "SR Algorithm used by the SID list.";
      }
      leaf weight {
        type uint32;
        description
          "Weight used for load balancing across SID lists.";
      }
      leaf identifier {
        type uint32;
        description
          "Candidate-path-scoped SID-list identifier.  Zero means
           that no identifier is associated with the SID list.";
        reference
          "RFC 9857, Section 5.7.4.";
      }

      list segment {
        key "index";
        ordered-by user;
        description
          "An ordered segment in the SID list.";
        reference
          "RFC 9857, Section 5.7.1.";

        leaf index {
          type uint32;
          description
            "Zero-based position of the segment in the SID list.";
        }
        leaf type {
          type segment-type;
          mandatory true;
          description
            "Segment Type of the segment.";
        }
        leaf flags {
          type segment-flags;
          description
            "Segment state flags.";
        }
        choice sid {
          description
            "Resolved or explicitly provisioned SID value.  A SID
             value is present only when the 'sid-present' flag is
             set.";
          case mpls {
            leaf mpls-label {
              type ietf-rt-t:mpls-label-general-use;
              description
                "SR-MPLS label.";
            }
          }
          case srv6 {
            leaf srv6-sid {
              type inet:ipv6-address;
              description
                "SRv6 SID.";
            }
          }
        }

        uses segment-descriptor;
        uses bgp-lsdb:bgp-ls-topo-srv6-sid-attr;
        uses bgp-lsdb:bgp-ls-topo-unknown-attr;
      }

      list metric {
        key "type";
        description
          "Computed metric values for this SID list.";
        reference
          "RFC 9857, Section 5.7.2.";

        leaf type {
          type metric-type;
          description
            "Metric type code point.";
        }
        leaf flags {
          type segment-list-metric-flags;
          description
            "Metric presence and interpretation flags.";
        }
        leaf margin {
          type uint32;
          description
            "Absolute or percentage metric margin.";
        }
        leaf bound {
          type uint32;
          description
            "Worst metric value allowed for a valid path.";
        }
        leaf value {
          type uint32;
          description
            "Computed metric value.";
        }
      }

      leaf bandwidth {
        type ietf-rt-t:bandwidth-ieee-float32;
        units "bytes per second";
        description
          "Allocated bandwidth.  The protocol encodes this value as
           an IEEE 754 single-precision floating-point number.";
        reference
          "RFC 9857, Section 5.7.3.";
      }
      uses bgp-lsdb:bgp-ls-topo-unknown-attr;
    }
  }

  grouping sr-policy-candidate-paths {
    description
      "Operational SR Policy candidate paths advertised in BGP-LS.";

    container sr-policy-candidate-paths {
      description
        "BGP-LS topology entries for SR Policy Candidate Path
         NLRIs.";

      list candidate-path {
        must "ipv4-router-id != '0.0.0.0' or "
           + "ipv6-router-id != '::'" {
          error-message
            "At least one headend IPv4 or IPv6 Router-ID must be "
          + "present.";
          description
            "RFC 9857 requires at least one auxiliary Router-ID for
             the SR Policy headend.";
        }
        key "as bgp-router-id member-as ipv4-router-id "
          + "ipv6-router-id protocol-origin descriptor-flags "
          + "endpoint color originator-as originator-address "
          + "discriminator";
        description
          "An SR Policy candidate-path NLRI and its BGP-LS
           attributes.  The list key is the decoded Local Node
           Descriptors TLV followed by the mandatory SR Policy
           Candidate Path Descriptor TLV.";
        reference
          "RFC 9857, Sections 3 through 5.";

        uses sr-policy-node-descriptors;
        uses sr-policy-candidate-path-descriptor;

        container attributes {
          description
            "Decoded BGP-LS Attribute TLVs associated with the SR
             Policy Candidate Path NLRI.";

          leaf policy-name {
            type string;
            description
              "Symbolic SR Policy name from TLV 1213.  RFC 9857
               recommends, but does not require, that the name be
               limited to 255 octets.";
            reference
              "RFC 9857, Section 5.4.";
          }
          leaf candidate-path-name {
            type string;
            description
              "Symbolic candidate-path name from TLV 1203.  RFC 9857
               recommends, but does not require, that the name be
               limited to 255 octets.";
            reference
              "RFC 9857, Section 5.5.";
          }

          container sr-binding-sid {
            presence "An SR Binding SID TLV was received.";
            description
              "Binding SID state reported in the SR Binding SID TLV
               (TLV 1201).  The 'srv6-dataplane' flag (D-flag)
               selects between the SR-MPLS and SRv6 encodings.  The
               SRv6 encoding of this TLV is deprecated by RFC 9857
               and is represented only for backward compatibility;
               SRv6 Binding SIDs are otherwise represented by the
               srv6-binding-sid list (TLV 1212).";
            reference
              "RFC 9857, Section 5.1.";

            leaf flags {
              type binding-sid-flags;
              description
                "Binding SID status flags.";
            }
            choice dataplane {
              description
                "Binding SID values according to the dataplane
                 indicated by the 'srv6-dataplane' flag.";
              case mpls {
                leaf binding-sid {
                  when "not(bit-is-set(../flags, 'srv6-dataplane'))";
                  type ietf-rt-t:mpls-label-general-use;
                  description
                    "Allocated or operational SR-MPLS Binding SID.";
                }
                leaf specified-binding-sid {
                  when "not(bit-is-set(../flags, 'srv6-dataplane'))";
                  type ietf-rt-t:mpls-label-general-use;
                  description
                    "Explicitly specified SR-MPLS Binding SID.";
                }
              }
              case srv6 {
                leaf srv6-binding-sid {
                  when "bit-is-set(../flags, 'srv6-dataplane')";
                  type inet:ipv6-address;
                  description
                    "Allocated or operational SRv6 Binding SID.";
                }
                leaf srv6-specified-binding-sid {
                  when "bit-is-set(../flags, 'srv6-dataplane')";
                  type inet:ipv6-address;
                  description
                    "Explicitly specified SRv6 Binding SID.";
                }
              }
            }
          }

          list srv6-binding-sid {
            key "index";
            ordered-by user;
            description
              "An SRv6 Binding SID associated with the candidate
               path, in the order in which the SRv6 Binding SID TLVs
               were received.";
            reference
              "RFC 9857, Section 5.2.";

            leaf index {
              type uint32;
              description
                "Zero-based position of the SRv6 Binding SID TLV in
                 the order received.";
            }
            leaf binding-sid {
              type inet:ipv6-address;
              description
                "Allocated or operational SRv6 Binding SID.";
            }
            leaf flags {
              type srv6-binding-sid-flags;
              description
                "SRv6 Binding SID status flags.";
            }
            leaf specified-binding-sid {
              type inet:ipv6-address;
              description
                "Explicitly specified SRv6 Binding SID.";
            }
            uses bgp-lsdb:bgp-ls-topo-srv6-sid-attr;
            uses bgp-lsdb:bgp-ls-topo-unknown-attr;
          }

          container state {
            presence "An SR Candidate Path State TLV was received.";
            description
              "Operational status at candidate-path level.";
            reference
              "RFC 9857, Section 5.3.";

            leaf priority {
              type uint8;
              mandatory true;
              description
                "Candidate-path priority.";
            }
            leaf flags {
              type candidate-path-state-flags;
              description
                "Candidate-path operational state flags.";
            }
            leaf preference {
              type uint32;
              mandatory true;
              description
                "Candidate-path preference.";
            }
          }

          uses candidate-path-constraints;
          uses segment-lists;
          uses bgp-lsdb:bgp-ls-topo-unknown-attr;
        }
      }
    }
  }

  augment "/rt:routing/rt:control-plane-protocols/"
        + "rt:control-plane-protocol/bgp:bgp/bgp:global/"
        + "bgp:afi-safis/bgp:afi-safi/bgp-ls:link-state/"
        + "bgp-ls:bgp-ls-topology/bgp-ls:instances/"
        + "bgp-ls:instance" {
    when "bgp-ls:protocol = 'sr'" {
      description
        "SR Policy candidate-path NLRIs use the Segment Routing
         Protocol-ID (9).";
    }
    description
      "Add SR Policy Candidate Path NLRI entries to the BGP-LS
       Link-State Database.  This augmentation targets BGP-LS and not
       the separate BGP-LS-SPF Link-State Database instantiation.";
    uses sr-policy-candidate-paths;
  }
}

<CODE ENDS>
]]></sourcecode>
        <!-- YANG-MODEL:END -->

</section>
      <section anchor="iana-module">
        <name>IANA-Maintained Module</name>
        <t>This document defines the initial version of the
<tt>iana-bgp-ls-sr-policy-types</tt> YANG module.  The module defines enumerations
for code points in the "SR Policy Protocol-Origin", "BGP-LS SR Segment
Descriptor Types", and "BGP-LS SR Policy Metric Types" registries
established by <xref target="RFC9857"/>.  The version below reflects those registries at
the time of writing.  This document requests IANA to publish and maintain
the module as described in <xref target="iana-maintained"/>.</t>
        <t>A single module covers these three registries because they contain closely
related, one-octet code points used by the same BGP-LS SR Policy data model
and are expected to remain small.  Enumerations are used instead of
identities because the numeric value of each enumeration corresponds
directly to the code point carried in the protocol encoding.  The typedefs
used by the BGP-LS SR Policy module combine each enumeration with <tt>uint8</tt>,
allowing a server to report a code point that is not defined by the revision
of the IANA-maintained module that it implements.</t>
        <!-- IANA-YANG-MODEL:BEGIN -->
<sourcecode type="yang"><![CDATA[
<CODE BEGINS> file "iana-bgp-ls-sr-policy-types@2026-10-28.yang"

module iana-bgp-ls-sr-policy-types {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:iana-bgp-ls-sr-policy-types";
  prefix iana-bgp-ls-srp-t;

  organization
    "Internet Assigned Numbers Authority (IANA)";
  contact
    "Internet Assigned Numbers Authority

     ICANN
     12025 Waterfront Drive, Suite 300
     Los Angeles, CA 90094-2536
     United States of America

     Tel:    +1 310 301 5800
     <mailto:iana@iana.org>";
  description
    "This module contains type definitions for the code points of
     the IANA registries used by SR Policy information distributed
     in BGP - Link State (BGP-LS).

     Copyright (c) 2026 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Revised BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     The initial version of this YANG module is part of RFC XXXX;
     see the RFC itself for full legal notices.

     All revisions of IANA-maintained modules can be found in the
     'YANG Parameters' registry group
     (https://www.iana.org/assignments/yang-parameters).";

  revision 2026-10-28 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: A YANG Data Model for BGP-LS Segment Routing
       Policy.";
  }

  typedef protocol-origin {
    type enumeration {
      enum pcep {
        value 1;
        description
          "PCEP.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum bgp-sr-policy {
        value 2;
        description
          "BGP SR Policy.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum configuration {
        value 3;
        description
          "Configuration (CLI, YANG model via NETCONF, etc.).";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum pcep-via-pce {
        value 10;
        description
          "PCEP (in PCEP or when BGP-LS Producer is PCE).";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum bgp-sr-policy-via-pce {
        value 20;
        description
          "BGP SR Policy (in PCEP or when BGP-LS Producer is PCE).";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum configuration-via-pce {
        value 30;
        description
          "Configuration (CLI, YANG model via NETCONF, etc.  In
           PCEP or when BGP-LS Producer is PCE).";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
    }
    description
      "Code points of the IANA 'SR Policy Protocol-Origin'
       registry.";
    reference
      "RFC 9857: Advertisement of Segment Routing Policies Using
       BGP - Link State, Section 8.4.";
  }

  typedef segment-type {
    type enumeration {
      enum type-a {
        value 1;
        description
          "Type A Segment.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum type-b {
        value 2;
        description
          "Type B Segment.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum type-c {
        value 3;
        description
          "Type C Segment.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum type-d {
        value 4;
        description
          "Type D Segment.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum type-e {
        value 5;
        description
          "Type E Segment.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum type-f {
        value 6;
        description
          "Type F Segment.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum type-g {
        value 7;
        description
          "Type G Segment.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum type-h {
        value 8;
        description
          "Type H Segment.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum type-i {
        value 9;
        description
          "Type I Segment.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum type-j {
        value 10;
        description
          "Type J Segment.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum type-k {
        value 11;
        description
          "Type K Segment.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
    }
    description
      "Code points of the IANA 'BGP-LS SR Segment Descriptor
       Types' registry.";
    reference
      "RFC 9857: Advertisement of Segment Routing Policies Using
       BGP - Link State, Section 8.5.";
  }

  typedef metric-type {
    type enumeration {
      enum igp {
        value 0;
        description
          "IGP.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum min-unidirectional-delay {
        value 1;
        description
          "Min Unidirectional Delay.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum te {
        value 2;
        description
          "TE.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum hop-count {
        value 3;
        description
          "Hop Count.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum sid-list-length {
        value 4;
        description
          "SID List Length.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum bandwidth {
        value 5;
        description
          "Bandwidth.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum avg-unidirectional-delay {
        value 6;
        description
          "Avg Unidirectional Delay.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum unidirectional-delay-variation {
        value 7;
        description
          "Unidirectional Delay Variation.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
      enum loss {
        value 8;
        description
          "Loss.";
        reference
          "RFC 9857: Advertisement of Segment Routing Policies
           Using BGP - Link State.";
      }
    }
    description
      "Code points of the IANA 'BGP-LS SR Policy Metric Types'
       registry.  The User Defined range (128-255) is not
       enumerated.";
    reference
      "RFC 9857: Advertisement of Segment Routing Policies Using
       BGP - Link State, Section 8.6.";
  }
}

<CODE ENDS>
]]></sourcecode>
        <!-- IANA-YANG-MODEL:END -->

</section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The YANG module specified in this document defines a schema for data that is
designed to be accessed through network management protocols such as NETCONF
<xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>.  The lowest NETCONF layer is the secure
transport layer, and the mandatory-to-implement secure transport is Secure
Shell (SSH) <xref target="RFC6242"/>.  The lowest RESTCONF layer is HTTPS, and the
mandatory-to-implement secure transport is TLS <xref target="RFC9846"/>.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/> provides
the means to restrict access for particular NETCONF or RESTCONF users to a
preconfigured subset of all available NETCONF or RESTCONF protocol
operations and content.</t>
      <t>There are no data nodes defined in the <tt>ietf-bgp-ls-sr-policy</tt> module that
are writable, creatable, or deletable (i.e., <tt>config true</tt>, which is the
default).  The module therefore introduces no write-related
vulnerabilities.  The <tt>iana-bgp-ls-sr-policy-types</tt> module defines only
data types and no data nodes, RPCs, actions, or notifications; it
introduces no security considerations of its own.</t>
      <t>Some of the readable data nodes in this YANG module may be considered
sensitive or vulnerable in some network environments.  It is thus important
to control read access (e.g., via get, get-data, or notification) to these
data nodes.  These are the subtrees and data nodes and their
sensitivity/vulnerability (the augmented path is abbreviated; the full path
is shown in <xref target="appendix-tree"/>):</t>
      <dl>
        <dt><tt>.../bgp-ls:instance/bgp-ls-sr-policy:sr-policy-candidate-paths</tt>:</dt>
        <dd>
          <t>This subtree contains headend, endpoint, and originator addresses,
Binding SIDs, complete segment lists, path constraints, requested and
allocated bandwidth, and disjointness and bidirectional associations.
Unauthorized read access to this information discloses network topology,
traffic-engineering intent, and path-protection strategy, which
<xref target="RFC9857"/> identifies as potentially commercially sensitive.  Such
information can also assist an attacker in identifying critical nodes and
links or in crafting packets that use valid SIDs.</t>
        </dd>
      </dl>
      <t>The content of this subtree is derived from BGP-LS information received
from other speakers, and the number of candidate paths, segment lists,
segments, metrics, and unknown TLVs is controlled by those speakers.
Implementations <bcp14>SHOULD</bcp14> apply to this subtree the same resource limits and
malformed-TLV handling that apply to the underlying BGP-LS LSDB
<xref target="RFC9552"/>.</t>
      <t>This document defines no RPC or action operations.</t>
      <t>The security considerations of <xref target="RFC9256"/>, <xref target="RFC9552"/>, <xref target="RFC9857"/>,
<xref target="I-D.ietf-idr-bgp-model"/>, and <xref target="I-D.ietf-lsvr-bgp-ls-yang"/> also apply.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="the-ietf-xml-registry">
        <name>The "IETF XML" Registry</name>
        <t>IANA is requested to register the following URIs in the "ns" subregistry
within the "IETF XML Registry" <xref target="RFC3688"/>:</t>
        <artwork><![CDATA[
URI: urn:ietf:params:xml:ns:yang:ietf-bgp-ls-sr-policy
Registrant Contact: The IESG.
XML: N/A; the requested URI is an XML namespace.

URI: urn:ietf:params:xml:ns:yang:iana-bgp-ls-sr-policy-types
Registrant Contact: The IESG.
XML: N/A; the requested URI is an XML namespace.
]]></artwork>
      </section>
      <section anchor="the-yang-module-names-registry">
        <name>The "YANG Module Names" Registry</name>
        <t>IANA is requested to register the following YANG modules in the "YANG
Module Names" registry <xref target="RFC6020"/> within the "YANG Parameters" registry
group:</t>
        <artwork><![CDATA[
Name: ietf-bgp-ls-sr-policy
Maintained by IANA?  N
Namespace: urn:ietf:params:xml:ns:yang:ietf-bgp-ls-sr-policy
Prefix: bgp-ls-sr-policy
Reference: RFC XXXX

Name: iana-bgp-ls-sr-policy-types
Maintained by IANA?  Y
Namespace: urn:ietf:params:xml:ns:yang:iana-bgp-ls-sr-policy-types
Prefix: iana-bgp-ls-srp-t
Reference: RFC XXXX
]]></artwork>
      </section>
      <section anchor="iana-maintained">
        <name>Maintenance of the IANA-Maintained Module</name>
        <t>IANA is requested to post the initial version of the
<tt>iana-bgp-ls-sr-policy-types</tt> YANG module defined in <xref target="iana-module"/> and to
maintain it as follows.</t>
        <t>IANA is requested to add a "YANG Enum Name" column to each of the "SR
Policy Protocol-Origin", "BGP-LS SR Segment Descriptor Types", and "BGP-LS
SR Policy Metric Types" registries.  For every assigned code point that is
represented in the initial module, IANA is requested to populate that
column with the name of the <tt>enum</tt> statement having the same numeric value
in the corresponding typedef.  The column is left empty for Reserved,
Unassigned, Private Use, and User Defined entries.  A future assignment
that is to be represented in the module <bcp14>MUST</bcp14> include a unique YANG enum
name that conforms to the identifier syntax in <xref target="RFC7950"/>.</t>
        <t>IANA is requested to add the following note to the page that displays the
<tt>iana-bgp-ls-sr-policy-types</tt> module:</t>
        <ul empty="true">
          <li>
            <t>New values must not be added directly to the
"iana-bgp-ls-sr-policy-types" YANG module.  They must instead be added to
the corresponding authoritative IANA registry.</t>
          </li>
        </ul>
        <t>When a new code point is assigned in the "SR Policy Protocol-Origin",
"BGP-LS SR Segment Descriptor Types", or "BGP-LS SR Policy Metric Types"
registry, other than in the Reserved, Private Use, or User Defined ranges,
a new <tt>enum</tt> statement <bcp14>MUST</bcp14> be added to the corresponding <tt>protocol-origin</tt>,
<tt>segment-type</tt>, or <tt>metric-type</tt> typedef of the module.  The <tt>enum</tt>
statement <bcp14>MUST</bcp14> have the following sub-statements:</t>
        <dl>
          <dt><tt>enum</tt>:</dt>
          <dd>
            <t>The YANG enum name recorded in the registry.</t>
          </dd>
          <dt><tt>value</tt>:</dt>
          <dd>
            <t>The assigned code point.</t>
          </dd>
          <dt><tt>description</tt>:</dt>
          <dd>
            <t>The description of the code point in the registry.</t>
          </dd>
          <dt><tt>reference</tt>:</dt>
          <dd>
            <t>The reference of the code point in the registry, including the title of
the referenced document.</t>
          </dd>
        </dl>
        <t>When the description or reference of a code point is updated in one of
these registries, the corresponding <tt>enum</tt> statement <bcp14>MUST</bcp14> be updated.  When
a code point is deprecated or made obsolete, a <tt>status</tt> sub-statement with
the value <tt>deprecated</tt> or <tt>obsolete</tt>, respectively, <bcp14>MUST</bcp14> be added to the
corresponding <tt>enum</tt> statement.</t>
        <t>Each time the module is updated, a new <tt>revision</tt> statement <bcp14>MUST</bcp14> be added
before the existing <tt>revision</tt> statements.  The description of the new
<tt>revision</tt> statement <bcp14>MUST</bcp14> identify the changes made.</t>
        <t>IANA is requested to add the following note to each of the three
registries listed above:</t>
        <ul empty="true">
          <li>
            <t>When this registry is modified, the YANG module
"iana-bgp-ls-sr-policy-types" <xref target="IANA-YANG-PARAMETERS"/> must be updated as
defined in RFC XXXX.</t>
          </li>
        </ul>
        <t>RFC Editor: Please replace XXXX with the RFC number assigned to this
document and remove this note.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC8294">
          <front>
            <title>Common YANG Data Types for the Routing Area</title>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="C. Hopps" initials="C." surname="Hopps"/>
            <author fullname="L. Berger" initials="L." surname="Berger"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>This document defines a collection of common data types using the YANG data modeling language. These derived common types are designed to be imported by other modules defined in the routing area.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8294"/>
          <seriesInfo name="DOI" value="10.17487/RFC8294"/>
        </reference>
        <reference anchor="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
        <reference anchor="RFC8349">
          <front>
            <title>A YANG Data Model for Routing Management (NMDA Version)</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document specifies three YANG modules and one submodule. Together, they form the core routing data model that serves as a framework for configuring and managing a routing subsystem. It is expected that these modules will be augmented by additional YANG modules defining data models for control-plane protocols, route filters, and other functions. The core routing data model provides common building blocks for such extensions -- routes, Routing Information Bases (RIBs), and control-plane protocols.</t>
              <t>The YANG modules in this document conform to the Network Management Datastore Architecture (NMDA). This document obsoletes RFC 8022.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8349"/>
          <seriesInfo name="DOI" value="10.17487/RFC8349"/>
        </reference>
        <reference anchor="RFC8697">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for Establishing Relationships between Sets of Label Switched Paths (LSPs)</title>
            <author fullname="I. Minei" initials="I." surname="Minei"/>
            <author fullname="E. Crabbe" initials="E." surname="Crabbe"/>
            <author fullname="S. Sivabalan" initials="S." surname="Sivabalan"/>
            <author fullname="H. Ananthakrishnan" initials="H." surname="Ananthakrishnan"/>
            <author fullname="D. Dhody" initials="D." surname="Dhody"/>
            <author fullname="Y. Tanaka" initials="Y." surname="Tanaka"/>
            <date month="January" year="2020"/>
            <abstract>
              <t>This document introduces a generic mechanism to create a grouping of Label Switched Paths (LSPs) in the context of a Path Computation Element (PCE). This grouping can then be used to define associations between sets of LSPs or between a set of LSPs and a set of attributes (such as configuration parameters or behaviors), and it is equally applicable to the stateful PCE (active and passive modes) and the stateless PCE.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8697"/>
          <seriesInfo name="DOI" value="10.17487/RFC8697"/>
        </reference>
        <reference anchor="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>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>This document updates RFC 8402 as it details the concepts of SR Policy and steering into an SR Policy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9256"/>
          <seriesInfo name="DOI" value="10.17487/RFC9256"/>
        </reference>
        <reference anchor="RFC9514">
          <front>
            <title>Border Gateway Protocol - Link State (BGP-LS) Extensions for Segment Routing over IPv6 (SRv6)</title>
            <author fullname="G. Dawra" initials="G." surname="Dawra"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <author fullname="M. Chen" initials="M." surname="Chen"/>
            <author fullname="D. Bernier" initials="D." surname="Bernier"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <date month="December" year="2023"/>
            <abstract>
              <t>Segment Routing over IPv6 (SRv6) allows for a flexible definition of end-to-end paths within various topologies by encoding paths as sequences of topological or functional sub-paths called "segments". These segments are advertised by various protocols such as BGP, IS-IS, and OSPFv3.</t>
              <t>This document defines extensions to BGP - Link State (BGP-LS) to advertise SRv6 segments along with their behaviors and other attributes via BGP. The BGP-LS address-family solution for SRv6 described in this document is similar to BGP-LS for SR for the MPLS data plane, which is defined in RFC 9085.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9514"/>
          <seriesInfo name="DOI" value="10.17487/RFC9514"/>
        </reference>
        <reference anchor="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>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>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>Applications of this technique include Application-Layer Traffic Optimization (ALTO) servers and Path Computation Elements (PCEs).</t>
              <t>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="RFC9857">
          <front>
            <title>Advertisement of Segment Routing Policies Using BGP - Link State</title>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <author fullname="J. Dong" initials="J." surname="Dong"/>
            <author fullname="H. Gredler" initials="H." surname="Gredler"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>This document describes a mechanism used to collect Segment Routing (SR) Policy information that is locally available in a node and advertise it into BGP - Link State (BGP-LS) updates. Such information can be used by external components for path computation, reoptimization, service placement, network visualization, etc.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9857"/>
          <seriesInfo name="DOI" value="10.17487/RFC9857"/>
        </reference>
        <reference anchor="RFC9911">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schönwälder" initials="J." role="editor" surname="Schönwälder"/>
            <date month="December" year="2025"/>
            <abstract>
              <t>This document defines a collection of common data types to be used with the YANG data modeling language. It includes several new type definitions and obsoletes RFC 6991.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9911"/>
          <seriesInfo name="DOI" value="10.17487/RFC9911"/>
        </reference>
        <reference anchor="I-D.ietf-idr-bgp-model">
          <front>
            <title>YANG Model for Border Gateway Protocol (BGP-4)</title>
            <author fullname="Mahesh Jethanandani" initials="M." surname="Jethanandani">
              <organization>Kloud Services</organization>
            </author>
            <author fullname="Keyur Patel" initials="K." surname="Patel">
              <organization>Arrcus</organization>
            </author>
            <author fullname="Susan Hares" initials="S." surname="Hares">
              <organization>Huawei</organization>
            </author>
            <author fullname="Jeff Haas" initials="J." surname="Haas">
              <organization>HPE</organization>
            </author>
            <date day="30" month="October" year="2026"/>
            <abstract>
              <t>   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-23"/>
        </reference>
        <reference anchor="I-D.ietf-lsvr-bgp-ls-yang">
          <front>
            <title>A YANG Model for BGP-LS, BGP-LS-VPN, and BGP-LS-SPF</title>
            <author fullname="Mahesh Jethanandani" initials="M." surname="Jethanandani">
              <organization>Arrcus, Inc</organization>
            </author>
            <author fullname="Keyur Patel" initials="K." surname="Patel">
              <organization>Arrcus, Inc</organization>
            </author>
            <author fullname="Aravind Babu MahendraBabu" initials="A. B." surname="MahendraBabu">
              <organization>Cisco, Inc</organization>
            </author>
            <date day="1" month="November" year="2026"/>
            <abstract>
              <t>   This document defines a YANG data model for configuration and
   management of BGP-LS, BGP-LS-VPN, and BGP-LS-SPF.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lsvr-bgp-ls-yang-05"/>
        </reference>
        <reference anchor="IANA-YANG-PARAMETERS" target="https://www.iana.org/assignments/yang-parameters">
          <front>
            <title>YANG Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC6242">
          <front>
            <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
            <author fullname="M. Wasserman" initials="M." surname="Wasserman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6242"/>
          <seriesInfo name="DOI" value="10.17487/RFC6242"/>
        </reference>
        <reference anchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC9846">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="July" year="2026"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document obsoletes RFC 8446, which specified TLS 1.3. This document obsoletes RFC 5246 (specifying TLS 1.2) and RFCs 5077, 6961, 7627, and 8422, all of which pertain to TLS 1.2 or earlier, and updates RFCs 5705 and 6066. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9846"/>
          <seriesInfo name="DOI" value="10.17487/RFC9846"/>
        </reference>
        <reference anchor="IEEE754">
          <front>
            <title>IEEE Standard for Floating-Point Arithmetic</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date year="2019"/>
          </front>
          <seriesInfo name="IEEE" value="Std 754-2019"/>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2019.8766229"/>
        </reference>
      </references>
    </references>
    <?line 2358?>

<section anchor="appendix-tree">
      <name>Complete Tree Diagram</name>
      <t>This appendix provides the complete tree diagram for the operational data
defined by the <tt>ietf-bgp-ls-sr-policy</tt> module.</t>
      <!-- COMPLETE-TREE:BEGIN -->
<artwork><![CDATA[
module: ietf-bgp-ls-sr-policy

  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/bgp:bgp/bgp:global
            /bgp:afi-safis/bgp:afi-safi/bgp-ls:link-state
            /bgp-ls:bgp-ls-topology/bgp-ls:instances/bgp-ls:instance:
    +--ro sr-policy-candidate-paths
       +--ro candidate-path*
               [as bgp-router-id member-as ipv4-router-id
                ipv6-router-id protocol-origin descriptor-flags
                endpoint color originator-as originator-address
                discriminator]
          +--ro as                    inet:as-number
          +--ro bgp-router-id         yang:dotted-quad
          +--ro member-as             inet:as-number
          +--ro ipv4-router-id        inet:ipv4-address
          +--ro ipv6-router-id        inet:ipv6-address
          +--ro protocol-origin       protocol-origin
          +--ro descriptor-flags      descriptor-flags
          +--ro endpoint              inet:ip-address
          +--ro color                 uint32
          +--ro originator-as         inet:as-number
          +--ro originator-address    inet:ip-address
          +--ro discriminator         uint32
          +--ro attributes
             +--ro policy-name?           string
             +--ro candidate-path-name?   string
             +--ro sr-binding-sid!
             |  +--ro flags?
             |  |       binding-sid-flags
             |  +--ro (dataplane)?
             |     +--:(mpls)
             |     |  +--ro binding-sid?
             |     |  |       ietf-rt-t:mpls-label-general-use
             |     |  +--ro specified-binding-sid?
             |     |          ietf-rt-t:mpls-label-general-use
             |     +--:(srv6)
             |        +--ro srv6-binding-sid?
             |        |       inet:ipv6-address
             |        +--ro srv6-specified-binding-sid?
             |                inet:ipv6-address
             +--ro srv6-binding-sid* [index]
             |  +--ro index                    uint32
             |  +--ro binding-sid?             inet:ipv6-address
             |  +--ro flags?                   srv6-binding-sid-flags
             |  +--ro specified-binding-sid?   inet:ipv6-address
             |  +--ro srv6-sid-attributes
             |  |  +--ro srv6-sid-attribute* [type]
             |  |     +--ro type                      identityref
             |  |     +--ro srv6-endpoint-behavior
             |  |     |  +--ro endpoint-behavior?   uint8
             |  |     |  +--ro flags?               binary
             |  |     |  +--ro algorithm?           uint8
             |  |     +--ro srv6-sid-structure
             |  |     |  +--ro locator-block-len?   uint8
             |  |     |  +--ro locator-node-len?    uint8
             |  |     |  +--ro function-len?        uint8
             |  |     |  +--ro arg-len?             uint8
             |  |     +--ro unknowns
             |  |        +--ro unknown* [type]
             |  |           +--ro type     uint16
             |  |           +--ro value?   yang:hex-string
             |  +--ro unknown* [type]
             |     +--ro type     uint16
             |     +--ro value?   yang:hex-string
             +--ro state!
             |  +--ro priority      uint8
             |  +--ro flags?        candidate-path-state-flags
             |  +--ro preference    uint32
             +--ro constraints!
             |  +--ro flags?
             |  |       candidate-path-constraint-flags
             |  +--ro multi-topology-id?     uint16
             |  +--ro algorithm?             uint8
             |  +--ro affinity!
             |  |  +--ro exclude-any*   uint32
             |  |  +--ro include-any*   uint32
             |  |  +--ro include-all*   uint32
             |  +--ro excluded-srlg*         uint32
             |  +--ro bandwidth?
             |  |       ietf-rt-t:bandwidth-ieee-float32
             |  +--ro disjoint-group!
             |  |  +--ro request-flags?
             |  |  |       disjoint-request-flags
             |  |  +--ro status-flags?
             |  |  |       disjoint-status-flags
             |  |  +--ro (group-identifier)
             |  |     +--:(group-id)
             |  |     |  +--ro group-id?                  uint32
             |  |     +--:(pcep-association-object)
             |  |        +--ro pcep-association-object?   binary
             |  +--ro bidirectional-group!
             |  |  +--ro flags?
             |  |  |       bidirectional-flags
             |  |  +--ro (group-identifier)
             |  |     +--:(group-id)
             |  |     |  +--ro group-id?                  uint32
             |  |     +--:(pcep-association-object)
             |  |        +--ro pcep-association-object?   binary
             |  +--ro metric* [type]
             |     +--ro type      metric-type
             |     +--ro flags?    metric-constraint-flags
             |     +--ro margin?   uint32
             |     +--ro bound?    uint32
             +--ro segment-list* [index]
             |  +--ro index                uint32
             |  +--ro flags?               segment-list-flags
             |  +--ro multi-topology-id?   uint16
             |  +--ro algorithm?           uint8
             |  +--ro weight?              uint32
             |  +--ro identifier?          uint32
             |  +--ro segment* [index]
             |  |  +--ro index                  uint32
             |  |  +--ro type                   segment-type
             |  |  +--ro flags?                 segment-flags
             |  |  +--ro (sid)?
             |  |  |  +--:(mpls)
             |  |  |  |  +--ro mpls-label?
             |  |  |  |          ietf-rt-t:mpls-label-general-use
             |  |  |  +--:(srv6)
             |  |  |     +--ro srv6-sid?        inet:ipv6-address
             |  |  +--ro (descriptor)?
             |  |  |  +--:(type-a)
             |  |  |  |  +--ro type-a
             |  |  |  |     +--ro algorithm    uint8
             |  |  |  +--:(type-b)
             |  |  |  |  +--ro type-b
             |  |  |  |     +--ro algorithm    uint8
             |  |  |  +--:(type-c)
             |  |  |  |  +--ro type-c
             |  |  |  |     +--ro algorithm       uint8
             |  |  |  |     +--ro node-address    inet:ipv4-address
             |  |  |  +--:(type-d)
             |  |  |  |  +--ro type-d
             |  |  |  |     +--ro algorithm       uint8
             |  |  |  |     +--ro node-address    inet:ipv6-address
             |  |  |  +--:(type-e)
             |  |  |  |  +--ro type-e
             |  |  |  |     +--ro node-address
             |  |  |  |     |       inet:ipv4-address
             |  |  |  |     +--ro local-interface-id    uint32
             |  |  |  +--:(type-f)
             |  |  |  |  +--ro type-f
             |  |  |  |     +--ro local-interface-address
             |  |  |  |     |       inet:ipv4-address
             |  |  |  |     +--ro remote-interface-address
             |  |  |  |             inet:ipv4-address
             |  |  |  +--:(type-g)
             |  |  |  |  +--ro type-g
             |  |  |  |     +--ro local-node-address
             |  |  |  |     |       inet:ipv6-address
             |  |  |  |     +--ro local-interface-id     uint32
             |  |  |  |     +--ro remote-node-address
             |  |  |  |     |       inet:ipv6-address
             |  |  |  |     +--ro remote-interface-id    uint32
             |  |  |  +--:(type-h)
             |  |  |  |  +--ro type-h
             |  |  |  |     +--ro local-interface-address
             |  |  |  |     |       inet:ipv6-address
             |  |  |  |     +--ro remote-interface-address
             |  |  |  |             inet:ipv6-address
             |  |  |  +--:(type-i)
             |  |  |  |  +--ro type-i
             |  |  |  |     +--ro algorithm       uint8
             |  |  |  |     +--ro node-address    inet:ipv6-address
             |  |  |  +--:(type-j)
             |  |  |  |  +--ro type-j
             |  |  |  |     +--ro local-node-address
             |  |  |  |     |       inet:ipv6-address
             |  |  |  |     +--ro local-interface-id     uint32
             |  |  |  |     +--ro remote-node-address
             |  |  |  |     |       inet:ipv6-address
             |  |  |  |     +--ro remote-interface-id    uint32
             |  |  |  +--:(type-k)
             |  |  |     +--ro type-k
             |  |  |        +--ro local-interface-address
             |  |  |        |       inet:ipv6-address
             |  |  |        +--ro remote-interface-address
             |  |  |                inet:ipv6-address
             |  |  +--ro srv6-sid-attributes
             |  |  |  +--ro srv6-sid-attribute* [type]
             |  |  |     +--ro type                      identityref
             |  |  |     +--ro srv6-endpoint-behavior
             |  |  |     |  +--ro endpoint-behavior?   uint8
             |  |  |     |  +--ro flags?               binary
             |  |  |     |  +--ro algorithm?           uint8
             |  |  |     +--ro srv6-sid-structure
             |  |  |     |  +--ro locator-block-len?   uint8
             |  |  |     |  +--ro locator-node-len?    uint8
             |  |  |     |  +--ro function-len?        uint8
             |  |  |     |  +--ro arg-len?             uint8
             |  |  |     +--ro unknowns
             |  |  |        +--ro unknown* [type]
             |  |  |           +--ro type     uint16
             |  |  |           +--ro value?   yang:hex-string
             |  |  +--ro unknown* [type]
             |  |     +--ro type     uint16
             |  |     +--ro value?   yang:hex-string
             |  +--ro metric* [type]
             |  |  +--ro type      metric-type
             |  |  +--ro flags?    segment-list-metric-flags
             |  |  +--ro margin?   uint32
             |  |  +--ro bound?    uint32
             |  |  +--ro value?    uint32
             |  +--ro bandwidth?
             |  |       ietf-rt-t:bandwidth-ieee-float32
             |  +--ro unknown* [type]
             |     +--ro type     uint16
             |     +--ro value?   yang:hex-string
             +--ro unknown* [type]
                +--ro type     uint16
                +--ro value?   yang:hex-string
]]></artwork>
      <!-- COMPLETE-TREE:END -->

</section>
    <section anchor="examples">
      <name>Examples</name>
      <t>This appendix provides non-normative examples of the BGP-LS LSDB populated
with an SR-MPLS candidate path and an SRv6 candidate path.  The data is
shown under the <tt>bgp-ls-topology</tt> container of the <tt>link-state</tt> container
of the BGP-LS AFI/SAFI.  The examples use the XML encoding defined in
<xref target="RFC7950"/> and the IPv4 and IPv6 documentation address prefixes.</t>
      <section anchor="sr-mpls-candidate-path">
        <name>SR-MPLS Candidate Path</name>
        <t>The following example contains one SR-MPLS explicit candidate path
instantiated by local configuration (Protocol-Origin 3).  The candidate path
has an allocated Binding SID and one segment list containing a Type C
segment (IPv4 Prefix SID).</t>
        <sourcecode type="xml"><![CDATA[
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"
 xmlns:bgp="urn:ietf:params:xml:ns:yang:ietf-bgp"
 xmlns:bgp-ls="urn:ietf:params:xml:ns:yang:ietf-bgp-ls"
 xmlns:s="urn:ietf:params:xml:ns:yang:ietf-bgp-ls-sr-policy">
 <control-plane-protocols>
  <control-plane-protocol>
   <type>bgp:bgp</type>
   <name>example</name>
   <bgp:bgp>
    <bgp:global>
     <bgp:afi-safis>
      <bgp:afi-safi>
       <bgp:name>bgp-ls:bgp-ls</bgp:name>
       <bgp-ls:link-state>
        <bgp-ls:bgp-ls-topology>
         <bgp-ls:instances>
          <bgp-ls:instance>
           <bgp-ls:vrf-name>default</bgp-ls:vrf-name>
           <bgp-ls:protocol>sr</bgp-ls:protocol>
           <bgp-ls:identifier>0</bgp-ls:identifier>
           <s:sr-policy-candidate-paths>
            <s:candidate-path>
             <s:as>65000</s:as>
             <s:bgp-router-id>192.0.2.1</s:bgp-router-id>
             <s:member-as>0</s:member-as>
             <s:ipv4-router-id>192.0.2.1</s:ipv4-router-id>
             <s:ipv6-router-id>::</s:ipv6-router-id>
             <s:protocol-origin>configuration</s:protocol-origin>
             <s:descriptor-flags/>
             <s:endpoint>192.0.2.200</s:endpoint>
             <s:color>100</s:color>
             <s:originator-as>65000</s:originator-as>
             <s:originator-address>192.0.2.1</s:originator-address>
             <s:discriminator>1</s:discriminator>
             <s:attributes>
              <s:policy-name>blue-policy</s:policy-name>
              <s:candidate-path-name>primary</s:candidate-path-name>
              <s:sr-binding-sid>
               <s:flags>allocated</s:flags>
               <s:binding-sid>16000</s:binding-sid>
              </s:sr-binding-sid>
              <s:state>
               <s:priority>100</s:priority>
               <s:flags>active evaluated valid</s:flags>
               <s:preference>200</s:preference>
              </s:state>
              <s:segment-list>
               <s:index>0</s:index>
               <s:flags>explicit computed verified resolved</s:flags>
               <s:weight>1</s:weight>
               <s:identifier>10</s:identifier>
               <s:segment>
                <s:index>0</s:index>
                <s:type>type-c</s:type>
                <s:flags>sid-present verified resolved</s:flags>
                <s:mpls-label>16001</s:mpls-label>
                <s:type-c>
                 <s:algorithm>0</s:algorithm>
                 <s:node-address>192.0.2.2</s:node-address>
                </s:type-c>
               </s:segment>
              </s:segment-list>
             </s:attributes>
            </s:candidate-path>
           </s:sr-policy-candidate-paths>
          </bgp-ls:instance>
         </bgp-ls:instances>
        </bgp-ls:bgp-ls-topology>
       </bgp-ls:link-state>
      </bgp:afi-safi>
     </bgp:afi-safis>
    </bgp:global>
   </bgp:bgp>
  </control-plane-protocol>
 </control-plane-protocols>
</routing>
]]></sourcecode>
      </section>
      <section anchor="srv6-candidate-path">
        <name>SRv6 Candidate Path</name>
        <t>The following example contains one SRv6 dynamic candidate path with an
allocated SRv6 Binding SID and one computed segment list containing a Type I
segment (SRv6 End SID).  The headend is identified only by its IPv6
Router-ID; the IPv4 Router-ID key leaf therefore contains the unspecified
address.</t>
        <sourcecode type="xml"><![CDATA[
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"
 xmlns:bgp="urn:ietf:params:xml:ns:yang:ietf-bgp"
 xmlns:bgp-ls="urn:ietf:params:xml:ns:yang:ietf-bgp-ls"
 xmlns:s="urn:ietf:params:xml:ns:yang:ietf-bgp-ls-sr-policy">
 <control-plane-protocols>
  <control-plane-protocol>
   <type>bgp:bgp</type>
   <name>example</name>
   <bgp:bgp>
    <bgp:global>
     <bgp:afi-safis>
      <bgp:afi-safi>
       <bgp:name>bgp-ls:bgp-ls</bgp:name>
       <bgp-ls:link-state>
        <bgp-ls:bgp-ls-topology>
         <bgp-ls:instances>
          <bgp-ls:instance>
           <bgp-ls:vrf-name>default</bgp-ls:vrf-name>
           <bgp-ls:protocol>sr</bgp-ls:protocol>
           <bgp-ls:identifier>0</bgp-ls:identifier>
           <s:sr-policy-candidate-paths>
            <s:candidate-path>
             <s:as>65000</s:as>
             <s:bgp-router-id>192.0.2.1</s:bgp-router-id>
             <s:member-as>0</s:member-as>
             <s:ipv4-router-id>0.0.0.0</s:ipv4-router-id>
             <s:ipv6-router-id>2001:db8::1</s:ipv6-router-id>
             <s:protocol-origin>configuration</s:protocol-origin>
             <s:descriptor-flags>endpoint-ipv6</s:descriptor-flags>
             <s:endpoint>2001:db8::200</s:endpoint>
             <s:color>200</s:color>
             <s:originator-as>65000</s:originator-as>
             <s:originator-address>192.0.2.1</s:originator-address>
             <s:discriminator>1</s:discriminator>
             <s:attributes>
              <s:policy-name>green-policy</s:policy-name>
              <s:srv6-binding-sid>
               <s:index>0</s:index>
               <s:binding-sid>2001:db8:100::1</s:binding-sid>
               <s:flags>allocated</s:flags>
              </s:srv6-binding-sid>
              <s:state>
               <s:priority>100</s:priority>
               <s:flags>active evaluated valid</s:flags>
               <s:preference>200</s:preference>
              </s:state>
              <s:segment-list>
               <s:index>0</s:index>
               <s:flags>srv6-dataplane computed verified</s:flags>
               <s:weight>1</s:weight>
               <s:segment>
                <s:index>0</s:index>
                <s:type>type-i</s:type>
                <s:flags>sid-present verified resolved</s:flags>
                <s:srv6-sid>2001:db8:200::1</s:srv6-sid>
                <s:type-i>
                 <s:algorithm>0</s:algorithm>
                 <s:node-address>2001:db8::2</s:node-address>
                </s:type-i>
               </s:segment>
              </s:segment-list>
             </s:attributes>
            </s:candidate-path>
           </s:sr-policy-candidate-paths>
          </bgp-ls:instance>
         </bgp-ls:instances>
        </bgp-ls:bgp-ls-topology>
       </bgp-ls:link-state>
      </bgp:afi-safi>
     </bgp:afi-safis>
    </bgp:global>
   </bgp:bgp>
  </control-plane-protocol>
 </control-plane-protocols>
</routing>
]]></sourcecode>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank the authors and contributors of <xref target="RFC9857"/>
and <xref target="I-D.ietf-lsvr-bgp-ls-yang"/> for their work on the protocol definitions
and the base YANG model used by this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
