<?xml version='1.0' encoding='utf-8'?>
<?rfc comments="yes"?>
<?rfc compact="yes"?>
<?rfc inline="yes"?>
<?rfc sortrefs="yes"?>
<?rfc subcompact="no"?>
<?rfc symrefs="yes"?>
<?rfc toc="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc tocompact="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" docName="draft-ietf-idr-sr-policy-seglist-id-08" category="std" ipr="trust200902" obsoletes="" updates="" xml:lang="en" symRefs="true" sortRefs="false" tocInclude="true" version="3" consensus="true">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <!-- Generated by id2xml 1.5.2 on 2025-08-02T09:41:16Z -->
    <front>
    <title abbrev="BGP SR Policy Segment List Identifier">BGP SR Policy Extensions for Segment List Identifier</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-idr-sr-policy-seglist-id-08"/>
    <author initials="C." surname="Lin" fullname="Changwang Lin">
      <organization>New H3C Technologies</organization>
      <address>
        <postal>
          <street>8 Yongjia North Road</street>
          <!-- Reorder these if your country does things differently -->
          <city>Beijing</city>
          <region>Haidian District</region>
          <code>100094</code>
          <country>China</country>
        </postal>
        <email>linchangwang.04414@h3c.com</email>
      </address>
    </author>
    <author initials="W." surname="Cheng" fullname="Weiqiang Cheng">
      <organization>China Mobile</organization>
      <address>
       <postal>
          <street>32 Xuanwumen West Street</street>
          <!-- Reorder these if your country does things differently -->
          <city>Beijing</city>
          <region>Xicheng District</region>
          <code>100053</code>
          <country>China</country>
        </postal>
        <email>chengweiqiang@chinamobile.com</email>      
      </address>
    </author>
    <author initials="Y." surname="Liu" fullname="Yao Liu">
      <organization>ZTE</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>liu.yao71@zte.com.cn</email> 
      </address>
    </author>
    <author initials="K." surname="Talaulikar" fullname="Ketan Talaulikar">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>ketant.ietf@gmail.com</email> 
      </address>
    </author>
    <author initials="M." surname="Chen" fullname="Mengxiao Chen">
      <organization>New H3C Technologies</organization>
      <address>
       <postal>
        <country>China</country>
        </postal>
        <email>chen.mengxiao@h3c.com</email> 
      </address>
    </author>
    <date year="2026" month="February" day="10"/>
    <workgroup>IDR</workgroup>
    <abstract>
      <t>
   Segment Routing is a source routing paradigm that explicitly
   indicates the forwarding path for packets at the ingress node. An SR
   Policy is a set of candidate paths, each consisting of one or more
   segment lists. This document defines extensions to BGP SR Policy to
   specify the identifier of segment list.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="sect-1" numbered="true" toc="default">
      <name>Introduction</name>
      <t>
   Segment routing (SR) <xref target="RFC8402" format="default"/> is a source routing paradigm that
   explicitly indicates the forwarding path for packets at the ingress
   node. The ingress node steers packets into a specific path according
   to the Segment Routing Policy (SR Policy) as defined in <xref target="RFC9256" format="default"/>.
   In order to distribute SR policies to the headend, <xref target="RFC9830" format="default"/>
   specifies a mechanism by using BGP.</t>
      <t>
   However, there is no identifier for segment list in BGP SR Policy,
   which may cause inconvenience for other mechanisms to designate
   segment lists distributed by BGP.</t>
      <t>
   Consider the case of a network controller distributing SR policies
   to the headend nodes where the headend nodes need to collect traffic
   forwarding statistics per segment list. When a headend node reports
   each statistic to the controller, it needs to specify the segment
   list which the statistic belongs to. Due to the lack of identifier,
   the headend node usually reports all SIDs in the associated segment
   list along with the statistic, and then the controller needs to
   compare the SIDs one by one to recognize which segment list it is.
   The advertisement of all SIDs in the segment list consumes a lot of
   octets, and the comparison of SIDs can be complicated.</t>
      <t>
   Consider a second example where a network controller distributes SR
   policies using BGP, and then it uses NETCONF to set some
   configurations of the segment lists which are not suitable to be
   carried in BGP. The controller needs to specify which segment list
   these configurations belong to when it issues them. In this case, a
   simple identifier of segment list can also be helpful.</t>
      <t>
   An identifier of segment list may also serve as a user-friendly
   attribute for debugging and troubleshooting purposes, such as
   displaying an invalid segment list when its associated BFD session
   is down.</t>
      <t>
   Section 5.7.4 of <xref target="RFC9857" format="default"/> defines an 
   SR Segment List Identifier sub-TLV for  reporting the identifier 
   associated with a specific SID list.
   This document defines extensions to BGP SR Policy to specify the 
   identifier of an SR Segment List.</t>
      <section anchor="sect-1.1" numbered="true" toc="default">
        <name>Requirements Language</name>
        <t>
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in
   BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/> when, and only when, they appear in all
   capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="sect-2" numbered="true" toc="default">
      <name>Segment List Identifier in SR Policy</name>
      <t>
   As defined in <xref target="RFC9830" format="default"/>, the SR policy encoding structure is as
   follows:</t>
   <figure align="center">
   <name>SR Policy Encoding</name>
            <artwork align="left"><![CDATA[SR Policy SAFI NLRI: <Distinguisher, Policy-Color, Endpoint>
Attributes:
   Tunnel Encapsulation Attribute (23) 
      Tunnel Type: SR Policy (15)
          Binding SID
          SRv6 Binding SID
          Preference 
          Priority
          Policy Name
          Policy Candidate Path Name
          Explicit NULL Label Policy (ENLP)
          Segment List
              Weight 
              Segment 
              Segment 
              ... 
          ...

]]></artwork></figure>
    <t> 
   SR policy with segment list identifier is expressed as below: </t>
   <figure align="center">
   <name>SR policy with segment list identifier Encoding</name>
            <artwork align="left"><![CDATA[SR Policy SAFI NLRI: <Distinguisher, Policy-Color, Endpoint>
Attributes:
   Tunnel Encapsulation Attribute (23) 
      Tunnel Type: SR Policy (15)
          Binding SID
          SRv6 Binding SID
          Preference 
          Priority
          Policy Name
          Policy Candidate Path Name
          Explicit NULL Label Policy (ENLP)
          Segment List
              Weight 
              Segment List Identifier
              Segment 
              Segment 
              ... 
          ...

]]></artwork></figure>
      <t>
   The segment list identifier can be advertised using the Segment List
   ID sub-TLV, as defined in <xref target="sect-2.1" format="default"/>.</t>
   
      <section anchor="sect-2.1" numbered="true" toc="default">
        <name>Segment List ID Sub-TLV</name>
        <t>
   The Segment List ID sub-TLV is defined in the BGP Tunnel
   Encapsulation Attribute <xref target="RFC9012" format="default"/>. The Segment List ID sub-TLV can
   be carried in the BGP Tunnel Encapsulation Attribute with the tunnel
   type set to SR Policy.</t>
        <t>
   The Segment List ID sub-TLV specifies the identifier of the segment
   list by a 4-octet number. The Segment List ID is unique within the
   context of a Candidate Path.</t>
        <t>
   The Segment List ID sub-TLV is optional and it MUST NOT appear more
   than once inside the Segment List sub-TLV. If multiple instances are
   present, then the first one is considered valid and the other
   instances MUST be ignored and MUST NOT considered to be malformed.</t>
   <t>The Segment List ID sub-TLV has the following format:</t>
        <figure anchor="ure-segment-list-id-sub-tlv-where-o-type-tbd19.">
          <name>Segment List ID sub-TLV</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |   Length      |     Flags     |   RESERVED    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Segment List ID                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>where:</t>
        <ul spacing="normal">
          <li>
            <t>Type: 19.</t>
          </li>
          <li>
            <t>Length: 6.</t>
          </li>
          <li>
            <t>Flags: 1 octet of flags. None are defined at this stage. Flags
      SHOULD be set to zero on transmission and MUST be ignored on
      receipt.</t>
          </li>
          <li>
            <t>RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
      transmission and MUST be ignored on receipt.</t>
          </li>
          <li>
            <t>Segment List ID: 4 octets which carry a 32-bit unsigned non-zero
      number that serves as the identifier associated with the segment
      list. A value of 0 indicates that there is no identifier
      associated with the Segment List. The scope of this identifier is
      the SR Policy Candidate path.</t>
          </li>
        </ul>
        <t>
   The validation of an SR Policy NLRI with the Segment List ID sub-TLV
   in the BGP tunnel encapsulation attribute <xref target="RFC9012" format="default"/> follows the
   procedures in section 4.2 of <xref target="RFC9830" format="default"/>.</t>
        <t>
   The Segment List ID sub-TLV is considered malformed if its format
   does not match the above description. If its format is considered
   malformed, the associated BGP SR Policy NLRI is considered malformed
   and the "treat-as-withdraw" strategy of <xref target="RFC7606" format="default"/> MUST be applied.</t>
      </section>
    </section>
    <section anchor="sect-3" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
   The protocol extensions defined in this document do not affect the
   base BGP security model. The security requirements and mechanisms
   described in <xref target="RFC9830" format="default"/> also apply to this document. SR operates
   within a trusted SR domain <xref target="RFC8402" format="default"/> and its security considerations
   also apply to BGP sessions when carrying SR Policy information.</t>
      <t>
   The Segment List ID sub-TLV is an optional sub-TLV that specifies an
   identifier associated with a segment list. The scope of this
   identifier is the SR Policy Candidate Path. The Segment List ID
   uniquely identifies a segment list within an SR Policy Candidate
   Path.</t>
      <t>
   The Segment List ID is assigned by a controller, distributed via
   BGP, and used as an identifier for the segment list. Since this
   identifier may expose mission-critical or commercially sensitive
   network information, it introduces a confidentiality risk.</t>
      <t>
   Network operators MUST ensure that only trusted nodes (including
   both routers and controller applications) within the SR domain are
   permitted to receive this information.</t>
    </section>
    <section anchor="sect-4" numbered="true" toc="default">
      <name>Implementation Status</name>
      <t>
   [Note to the RFC Editor - remove this section before publication, as well as remove the reference to [RFC7942].</t>
      <t>
   This section records the status of known implementations of the
   protocol defined by this specification at the time of posting of
   this Internet-Draft, and is based on a proposal described in
   [RFC7942]. The description of implementations in this section is
   intended to assist the IETF in its decision processes in progressing
   drafts to RFCs.  Please note that the listing of any individual
   implementation here does not imply endorsement by the IETF.
   Furthermore, no effort has been spent to verify the information
   presented here that was supplied by IETF contributors.  This is not
   intended as, and must not be construed to be, a catalog of available
   implementations or their features.  Readers are advised to note that
   other implementations may exist.</t>
      <t>
   According to [RFC7942], "this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature. It is up to the individual working groups to use this information as they see fit".</t>
      <section anchor="sect-4.1" numbered="true" toc="default">
        <name>New H3C Technologies</name>
        <ul spacing="normal">
          <li>
            <t>Organization: New H3C Technologies.</t>
          </li>
          <li>
            <t>Implementation: H3C CR16000, CR19000 series routers
      implementation.</t>
          </li>
          <li>
            <t>Description: All sections including all the "MUST" and "SHOULD"
      clauses have been implemented in above-mentioned New H3C
      Products(running Version 7.1.099 and above).</t>
          </li>
          <li>
            <t>Maturity Level: Product</t>
          </li>
          <li>
            <t>Coverage: All sections.</t>
          </li>
          <li>
            <t>Version: Draft-03</t>
          </li>
          <li>
            <t>Licensing: N/A</t>
          </li>
          <li>
            <t>Implementation experience: Nothing specific.</t>
          </li>
          <li>
            <t>Contact: linchangwang.04414@h3c.com</t>
          </li>
          <li>
            <t>Last updated: February 10, 2025</t>
          </li>
        </ul>
      </section>
      <section anchor="sect-4.2" numbered="true" toc="default">
        <name>ZTE Corp</name>
        <ul spacing="normal">
          <li>
            <t>Organization: ZTE Corporation</t>
          </li>
          <li>
            <t>Implementation: ZTE's ZXR10 core router</t>
          </li>
          <li>
            <t>Description: The implementation in lab has been completed. The
      commercial implementation is under development.</t>
          </li>
          <li>
            <t>Maturity Level: Product</t>
          </li>
          <li>
            <t>Coverage: All</t>
          </li>
          <li>
            <t> Version: Draft-03</t>
          </li>
          <li>
            <t> Licensing: N/A</t>
          </li>
          <li>
            <t> Implementation experience: Nothing specific.</t>
          </li>
          <li>
            <t> Contact: feng.jun99@zte.com.cn</t>
          </li>
          <li>
            <t> Last updated: February 6, 2025</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sect-5" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>
   This document defines a new Sub-TLV in the registry "SR Policy Segment List Sub-TLVs" <xref target="RFC9830" format="default"/>:</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
Value     Description                   Reference
-------------------------------------------------------
19        Segment List ID sub-TLV       This document
]]></artwork>
    </section>
    <section anchor="sect-6" numbered="true" toc="default">
      <name>Acknowledgments</name>
      <t>
   The authors would like to thank Susan Hares, Hao Li, Haiyang Zhang,
   Yisong Liu, Ran Chen, Libin Liu, Lancheng Qin and Xinxin Yi for
   their review and discussion of this document.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <?rfc include="reference.RFC.2119.xml"?>
        <?rfc include="reference.RFC.7606.xml"?>
        <?rfc include="reference.RFC.8174.xml"?>
        <?rfc include="reference.RFC.8402.xml"?>
        <?rfc include="reference.RFC.9012.xml"?>
        <?rfc include="reference.RFC.9256.xml"?>
		<?rfc include="reference.RFC.9830.xml"?>
	  </references>
	  <references>
        <name>Informative References</name>
	    <?rfc include="reference.RFC.9857.xml"?>
      </references>
	</references>
  </back>
</rfc>
