<?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.23 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-karboubi-spring-sidlist-optimized-cs-sr-02" category="info" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.27.0 -->
  <front>
    <title abbrev="CS-SR Policies with Optimized SID List">Circuit Style Segment Routing Policies with Optimized SID List Depth</title>
    <seriesInfo name="Internet-Draft" value="draft-karboubi-spring-sidlist-optimized-cs-sr-02"/>
    <author initials="A." surname="Karboubi" fullname="Amal Karboubi" role="editor">
      <organization>Ciena</organization>
      <address>
        <email>akarboub@ciena.com</email>
      </address>
    </author>
    <author initials="C." surname="Alaettinoglu" fullname="Cengiz Alaettinoglu" role="editor">
      <organization>Ciena</organization>
      <address>
        <email>cengiz@ciena.com</email>
      </address>
    </author>
    <author initials="H." surname="Shah" fullname="Himanshu Shah">
      <organization>Ciena</organization>
      <address>
        <email>hshah@ciena.com</email>
      </address>
    </author>
    <author initials="S." surname="Sivalaban" fullname="Siva Sivabalan">
      <organization>Ciena</organization>
      <address>
        <email>ssivabal@ciena.com</email>
      </address>
    </author>
    <author initials="T." surname="Defillipi" fullname="Todd Defillipi">
      <organization>Ciena</organization>
      <address>
        <email>todd@ciena.com</email>
      </address>
    </author>
    <date year="2025" month="February" day="21"/>
    <area>General</area>
    <workgroup>SPRING Working Group</workgroup>
    <keyword>keyword1</keyword>
    <keyword>keyword2</keyword>
    <abstract>
      <?line 112?>

<t>Service providers require delivery of circuit-style transport services in a segment routing based IP network.
This document introduces a solution that supports circuit style segment routing policies that allows usage of optimized SID lists (i.e. SID List that may contain non-contiguous node SIDs as instructions) and describes mechanisms that would allow such encoding to still honor all the requirements of the circuit style policies notably traffic engineering and bandwidth requirements.</t>
    </abstract>
  </front>
  <middle>
    <?line 117?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Service providers require delivery of circuit-style transport services in a segment routing based IP network. <xref target="I-D.ietf-spring-cs-sr-policy"/> introduces a solution that supports circuit style SR policies. However, the solution mandates using a fully specified SID list where the path is encoded using persistent or manually configured adjacency SIDs. Using a fully specified SID list causes a very large segment stack that may not be feasible for low-end edge devices often found in access networks.</t>
      <t>This document presents a solution that removes the fully specified SID list requirement while still maintaining the key features presented in <xref target="I-D.ietf-spring-cs-sr-policy"/>. It enables use of compressed SID list (i.e. allows the use of node SIDs) in circuit-style SR policies.</t>
      <t><xref target="I-D.ietf-spring-cs-sr-policy"/> defines circuit-style SR as an SR policy with the following characteristics:</t>
      <ul spacing="normal">
        <li>
          <t>Persistent end-to-end traffic engineered paths that provide predictable and identical latency in both directions</t>
        </li>
        <li>
          <t>Strict bandwidth commitment per path to ensure no impact on the Service Level Agreement (SLA) due to changing network load from other services</t>
        </li>
        <li>
          <t>End-to-end protection (&lt;50msec protection switching) and restoration mechanisms</t>
        </li>
        <li>
          <t>Monitoring and maintenance of path integrity</t>
        </li>
        <li>
          <t>Data plane remaining up while control plane is down</t>
        </li>
      </ul>
      <t>Note that for some service providers the bidirectional co-routed paths may not be necessary.</t>
      <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>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>SID : Segment Identifier</t>
      <t>SLA : Service Level Agreement</t>
      <t>SR : Segment Routing</t>
      <t>CS-SR : Circuit-Style Segment Routing</t>
      <t>PCE : Path Computation Element</t>
      <t>PCEP : Path Computation Element Communication Protocol</t>
    </section>
    <section anchor="problem-statement-issues-with-sid-list-compression">
      <name>Problem statement: Issues with SID list compression</name>
      <t>A PCE computes a path for the service according to the network state and available capacity at that time. These paths are referred to as intended paths. It then compresses the intended path into SIDs using a combination of node and adjacency SIDs as defined in SR architecture <xref target="RFC8402"/> .
Nodes in the network forward packet to node SID N by using their IGP (or flex-algo) shortest paths to N. This is referred to as path expansion. At the time of installing the compressed SID list, this expansion and the intended path are identical.</t>
      <t>However, network changes, particularly link and/or node failures and repairs may cause the intended path and this path expansion to deviate resulting in a service's traffic to use resources on a path that the PCE did not reserve any bandwidth on, causing service degradation for both this service and the other services on that path.</t>
      <t>Both the failure and repair cases are illustrated using the example network topology of figure 1. An SR policy from node A to node Z with two diverse traffic engineered candidate paths was computed by PCE and signaled to head end node A resulting in the following intended paths and their respective compressed SID List:</t>
      <ul spacing="normal">
        <li>
          <t>Candidate path 1:  intended path A-B, B-D, D-E, E-Z links and compressed as SID list B, E, Z</t>
        </li>
        <li>
          <t>Candidate path 2: intended path  A-C, C-D, D-F, F-Z links and compressed as SID list C, F, Z</t>
        </li>
      </ul>
      <figure anchor="figure1">
        <name>SR policy with 2 diverse candidate paths</name>
        <artwork alt="SR Policy"><![CDATA[
            +-----+                 +-----+
   +--------+     +--------+ +------+     +-------+
   |        | B   |        | |      | E   |       |
   |        +--+--+        | |      +-----+       |
   |           |           | |                    |
+--+--+     +--+--+      +-+-+-+               +--+--+
| A   |     |     |      |     |               |     |
|     +-----+  G  +------+  D  |               |  Z  |
+--+--+     +-----+      +-+-+-+               +---+-+
   |                       | |                     |
   |         +-----+       | |       +-----+       |
   |         |     |       | |       |     |       |
   +---------+  C  +-------+ +-------+ F   +-------+
             +-----+                 +-----+

    SR Policy A-Z:
      Candidate path1
        SIDList1 [B,E,Z]
      Candidate path2
        SIDList2 [C,F,Z]
]]></artwork>
      </figure>
      <section anchor="deviation-due-to-failures">
        <name>Deviation due to failures</name>
        <t>In Figure 2, link B-D fails. The expected circuit-style behavior is to start using the second candidate path.
Though this path may be used initially, once the IGP converges, the candidate path 1 becomes valid as node B regains a shortest path to the next node SID E.
Once the headend switches to the candidate path 1, the intended path and the expansion of the SID list which now becomes (A-B, B-G, G-D, D-E, E-Z) deviate. The service starts to use resources on B-G and G-D links where the PCE has not made a bandwidth reservation.</t>
        <figure anchor="figure2">
          <name>SR policy CP1 deviation after link failure and IGP convergence</name>
          <artwork alt="SR Policy deviation"><![CDATA[
            +-----+                 +-----+
   +--------+     +---xxx--+ +------+     +-------+
   |        | B   |        | |      | E   |       |
   |        +--+--+        | |      +-----+       |
   |           |           | |                    |
+--+--+     +--+--+      +-+-+-+               +--+--+
| A   |     |     |      |     |               |     |
|     +-----+  G  +------+  D  |               |  Z  |
+--+--+     +-----+      +-+-+-+               +---+-+
   |                       | |                     |
   |         +-----+       | |       +-----+       |
   |         |     |       | |       |     |       |
   +---------+  C  +-------+ +-------+ F   +-------+
             +-----+                 +-----+

    SR Policy A-Z:
      Candidate path1
        SIDList1 [B,E,Z] --> deviation from intended path due to failure
      Candidate path2
        SIDList2 [C,F,Z]
]]></artwork>
        </figure>
        <t>A possible solution to this is for PCE to monitor these deviations and correct the compressed SID lists. However, the PCE is not as real-time as the IGP (e.g. many BGP-LS implementations use periodic injection of IGP events into BGP) and PCE is burdened by many more services going over this link not just by the services originating at node A. As a result, relying on PCE to correct this behavior is not desired.</t>
        <t>This document uses the proposed extension to active path selection algorithm introduced in draft <xref target="I-D.karboubi-spring-sr-policy-eligibility"/> which allows a system to render the candidate path 1 ineligible for selection at the head-end node. Making a path eligible again would be  the responsibility of the PCE. This is elaborated in <xref target="failure"/>.</t>
      </section>
      <section anchor="deviation-due-to-repairs">
        <name>Deviation due to repairs</name>
        <t>Figure 3 shows an example where a link B-E  that was down at the time PCE computed the above two candidate paths is now repaired. When the link B-E repairs, the compressed SID list expands now to (A-B, B-E, E-Z) which is a deviation from the intended path. Though this path looks attractive, it may not have the bandwidth the service needs.</t>
        <figure anchor="figure3">
          <name>SR policy CP1 deviation after link repair and IGP convergence</name>
          <artwork alt="SR Policy deviation"><![CDATA[
               +--+-----------------+--+
            +--+--+                 +--+--+
   +--------+     +--------+ +------+     +-------+
   |        | B   |        | |      | E   |       |
   |        +--+--+        | |      +-----+       |
   |           |           | |                    |
+--+--+     +--+--+      +-+-+-+               +--+--+
| A   |     |     |      |     |               |     |
|     +-----+  G  +------+  D  |               |  Z  |
+--+--+     +-----+      +-+-+-+               +---+-+
   |                       | |                     |
   |         +-----+       | |       +-----+       |
   |         |     |       | |       |     |       |
   +---------+  C  +-------+ +-------+ F   +-------+
             +-----+                 +-----+

    SR Policy A-Z:
      Candidate path1
        SIDList1 [B,E,Z] --> deviation from intended path due to repair
      Candidate path2
        SIDList2 [C,F,Z]
]]></artwork>
        </figure>
        <t>This document presents a SID compression algorithm that is resilient to such repairs.  This is elaborated in <xref target="repairs"/>.</t>
      </section>
    </section>
    <section anchor="failure">
      <name>Dealing with deviation due to failures</name>
      <t>We use the  eligibility concept introduced in <xref target="I-D.karboubi-spring-sr-policy-eligibility"/>. the head-end node is responsible for detecting failures , setting the eligibility to false and switching to the next candidate path within 50 milliseconds.</t>
      <t>The eligibility of a path is also controlled by the PCE. The PCE may set it to true or false depending on whether the  expanded SID list matches the intended path. When the link B-D in Figure 2 repairs, it is the responsibility of the PCE to set the eligibility of the candidate path 1 to true. This allows eligibility mechanism to work across IGP areas and BGP autonomous systems.</t>
      <t>We introduce a second attribute that controls this new automated behavior of setting eligibility. An operator who plans to implement circuit style policies would enable this behavior, see <xref target="control"/></t>
      <section anchor="headEnd">
        <name>Head end node procedure</name>
        <t>The head-end node shall run a connectivity verification protocol as specified in section 7.1 of <xref target="I-D.ietf-spring-cs-sr-policy"/>  to determine path failure. 
When the head end detects a failure of a candidate path, the eligibility attribute is set immediately to false. 
As per <xref target="I-D.karboubi-spring-sr-policy-eligibility"/>, Head end node will no longer consider this candidate path in its active path selection logic no matter what other link/node failures and repairs and IP convergence may happen in the network. 
If another candidate path exists, the head end will switch to the next eligible candidate path per the active candidate path selection algorithm.
The recovery scheme for such policies is same as described in CS-SR draft , where such policies can be unprotected, use 1:N protection or protection combined with restoration.</t>
        <t>Note that this implies that head end node needs to detect end-to-end failures before any local repair (TI-LFA) or IP convergence occurs. There are various implementation ways to achieve this:</t>
        <ul spacing="normal">
          <li>
            <t>Configure the CCV protocol (e.g. S-BFD or STAMP) for these SR Policies at a lower interval than the IP link BFD. This will not impact non-CS SR policies which will continue to benefit from TI-LFA local repairs with same detection/repair time as before. Note that CCV is mandatory for CS SR policies, so the only new addition imposed here is regarding its detection timer (i.e. inverted hierarchical fault detection where e2e fault is detected before 1-hop fault).</t>
          </li>
          <li>
            <t>Another implementation solution to circumvent the TI-LFA, is to disable TI-LFA for CS-SR based traffic. This can be achieved by using only flexAlgo Node SIDs that have TILFA disabled, so when computing SID List for a CS-SR Policies, only Nodes SIDs from flexAlgo with disabled TI LFA would be used. This will not require separate loopback for nodes, but simply defining a flexAlgo with TI-LFA disabled on all Nodes pertaining to CS-SR domain. So, in the case a link fails, (before the e2e failure could be detected) the PLR will perform the usual TI LFA post convergence path for standard SID and will not initiate TI-LFA for traffic destined to CS-SR SIDs. With this approach we only need to ensure that e2e detection is lower than IGP convergence time only.</t>
          </li>
        </ul>
      </section>
      <section anchor="controllerpce-component-procedure">
        <name>Controller/PCE component procedure</name>
        <t>The PCE also maintains an accurate view of the network topology in all IGP areas and BGP autonomous systems in the network. After the failures have been repaired, the candidate paths that have been set as not eligible by head-end nodes may now be eligible again. In this case, PCE will set the eligibility attribute of these candidate paths to true.</t>
        <t>It is up to the SR policy head-end node to reselect the active candidate path after PCE changes eligibility of the candidate paths. The head end may either implement a standard revertive behavior whereby it can revert immediately once a better preferred path becomes available for selection, or wait for a period of time or implement a non-revertive behavior whereby traffic is not switched back automatically until there is a failure on the currently active candidate path. This reversion behavior may be controlled by a SP provider policy and is outside the scope of this document.</t>
        <t>A PCE may also set a candidate path as ineligible if it detects that the SID list when expanded is different from the intended path. This step is not mandatory when head-end is able to monitor all candidate paths for failures. But, this step is necessary for implementations that do not monitor the inactive candidate paths.  This is an implementation detail. We allow PCE to set eligibility attribute to true or false. The node is only allowed to set it to false for our use case.</t>
      </section>
      <section anchor="control">
        <name>Eligibility control attribute</name>
        <t>The second configuration is at the SR policy level and is used by head end node to determine whether the behavior described in <xref target="headEnd"/> is desirable or not (notably the head end disabling the eligibility of a path).
This attribute is called eligibilityControl and when set to false (default) the head end node will not alter the eligibility setting of a CP.</t>
      </section>
    </section>
    <section anchor="repairs">
      <name>Dealing with deviation due to repairs/changes</name>
      <t>Network improvements and node and/or link repairs can also result in segment list expansions and intended paths to deviate.
Network improvement may include addition of brand new links or changes of link attributes such as metric, SRLG values, affinity values, etc.</t>
      <t>Most of these changes, with the exception of restoration of down links, are typically done in maintenance-windows and under the supervision of an SDN controller. By performing these operations under the supervision of a controller, operator can work around their impacts on paths before making them. Such coordination would be necessary for existing MPLS-TP based solutions or CS-SR solution, as changes to these properties e.g. affinity or delay may cause an intent violation with original path, which needs to be reassessed. Such controller role providing automation and coordination between different layers and workflows is not uncommon and is beneficial for self-optimizing networks. Hence these kinds of changes are not the focus of this solution. Our focus is on node and/or link repairs (not necessarily limited to the links used by the candidate paths)</t>
      <t>For repairs, we propose a segment compaction algorithm whose compaction is resilient to nodes and/or links repairs; that is the segment list expands to the same path before or after any of these down links in any combination repairs. Any algorithm that is resilient to repairs would work. We highlight one such algorithm in the next paragraph.</t>
      <t>While the PCE computes the intended path on current state of the network, the proposed segment compaction algorithm uses a network view where all down links are restored to produce the SID list for the intended path.
This compaction may not be as short as the compaction with the restored links as down but has the property that it is resilient to repairs. That is, the SID list will always expand to the intended path. This property is independent of the order at which the links are repaired.</t>
      <t>Note that in absence of such algorithm (SID List being resilient to repairs), the paths could still be corrected by controller where upon link repair it would assess CS-SR policies and check if the newly repair link have caused any deviation from their intended paths and when such deviation is detected, a new SID List, that is expressing the intended path, is updated on head end. The drawback though is that deviation will be momentarily observed and traffic may be going on the repaired link until controller corrects the SID List.</t>
    </section>
    <section anchor="protocol-and-model-changes">
      <name>Protocol and model changes</name>
      <section anchor="active-candidate-path-selection">
        <name>Active candidate path selection</name>
        <t>This is already covered in <xref target="I-D.karboubi-spring-sr-policy-eligibility"/>.</t>
      </section>
      <section anchor="pcep-extensions">
        <name>PCEP extensions</name>
        <t>The extensions defined in <xref target="I-D.sidor-pce-circuit-style-pcep-extensions"/> regarding the strict path enforcement (using strict adjacency SIDs) becomes optional.</t>
        <t>PCEP shall be extended to signal the new eligibility control and eligibility attributes defined above.</t>
      </section>
      <section anchor="sr-policy-yang-changes">
        <name>SR policy Yang changes</name>
        <t>The eligibility control and eligibility attributes shall be added for the SR policy and candidate path YANG models respectively.</t>
        <t>NetConf RPC calls can be used to set eligibility of candidate paths to true or false.</t>
      </section>
    </section>
    <section anchor="IANA">
      <name>IANA considerations</name>
      <t>This document includes no request to IANA.</t>
    </section>
    <section anchor="Security">
      <name>Security considerations</name>
      <t>TO BE ADDED</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8402">
          <front>
            <title>Segment Routing Architecture</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="S. Previdi" initials="S." role="editor" surname="Previdi"/>
            <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="R. Shakir" initials="R." surname="Shakir"/>
            <date month="July" year="2018"/>
            <abstract>
              <t>Segment Routing (SR) leverages the source routing paradigm. A node steers a packet through an ordered list of instructions, called "segments". A segment can represent any instruction, topological or service based. A segment can have a semantic local to an SR node or global within an SR domain. SR provides a mechanism that allows a flow to be restricted to a specific topological path, while maintaining per-flow state only at the ingress node(s) to the SR domain.</t>
              <t>SR can be directly applied to the MPLS architecture with no change to the forwarding plane. A segment is encoded as an MPLS label. An ordered list of segments is encoded as a stack of labels. The segment to process is on the top of the stack. Upon completion of a segment, the related label is popped from the stack.</t>
              <t>SR can be applied to the IPv6 architecture, with a new type of routing header. A segment is encoded as an IPv6 address. An ordered list of segments is encoded as an ordered list of IPv6 addresses in the routing header. The active segment is indicated by the Destination Address (DA) of the packet. The next active segment is indicated by a pointer in the new routing header.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8402"/>
          <seriesInfo name="DOI" value="10.17487/RFC8402"/>
        </reference>
        <reference anchor="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="I-D.ietf-spring-cs-sr-policy" target="https://datatracker.ietf.org/doc/draft-ietf-spring-cs-sr-policy">
          <front>
            <title>Circuit Style Segment Routing Policies, Work in Progress, Internet-Draft,draft-ietf-spring-cs-sr-policy-01</title>
            <author initials="C." surname="Schmutzer" fullname="C, Schmutzer">
              <organization>Cisco</organization>
            </author>
            <author initials="Z." surname="Ali" fullname="Z, Ali">
              <organization>Cisco</organization>
            </author>
            <author initials="P." surname="Maheshwari" fullname="P, Maheshwari">
              <organization>Airtel India</organization>
            </author>
            <author initials="R." surname="Rokui" fullname="R, Rokui">
              <organization>Ciena</organization>
            </author>
            <author initials="A." surname="Stone" fullname="A, Stone">
              <organization>Nokia</organization>
            </author>
            <date year="2023" month="October" day="23"/>
          </front>
        </reference>
        <reference anchor="I-D.sidor-pce-circuit-style-pcep-extensions" target="https://datatracker.ietf.org/doc/html/draft-sidor-pce-circuit-style-pcep-extensions-06">
          <front>
            <title>PCEP extensions for Circuit Style Policies", Work in Progress, Internet-Draft, draft-sidor-pce-circuit-style-pcep-extensions-06</title>
            <author initials="S." surname="Sidor" fullname="S, Sidor">
              <organization>Cisco</organization>
            </author>
            <author initials="Z." surname="Ali" fullname="Z, Ali">
              <organization>Cisco</organization>
            </author>
            <author initials="P." surname="Maheshwari" fullname="P, Maheshwari">
              <organization>Airtel India</organization>
            </author>
            <author initials="R." surname="Rokui" fullname="R, Rokui">
              <organization>Ciena</organization>
            </author>
            <author initials="A." surname="Stone" fullname="A, Stone">
              <organization>Nokia</organization>
            </author>
            <author initials="L." surname="Jalil" fullname="L, Jalil">
              <organization>Verizon</organization>
            </author>
            <author initials="S." surname="Peng" fullname="S, Peng">
              <organization>Huwaei Technologies</organization>
            </author>
            <author initials="T." surname="Saad" fullname="T, Saad">
              <organization>Juniper</organization>
            </author>
            <author initials="D." surname="Voyer" fullname="D, Voyer">
              <organization>Bell Canada</organization>
            </author>
            <date year="2023" month="December" day="15"/>
          </front>
        </reference>
        <reference anchor="I-D.karboubi-spring-sr-policy-eligibility" target="https://datatracker.ietf.org/doc/draft-karboubi-spring-sr-policy-eligibility">
          <front>
            <title>Eligibility Concept in Segment Routing Policies, Work in Progress, Internet-Draft,draft-karboubi-spring-sr-policy-eligibility</title>
            <author initials="A." surname="Karboubi" fullname="A, Karboubi">
              <organization>Ciena</organization>
            </author>
            <author initials="H." surname="Shah" fullname="H, Shah">
              <organization>Ciena</organization>
            </author>
            <author initials="S." surname="Sivalaban" fullname="S, Sivalaban">
              <organization>Ciena</organization>
            </author>
            <author initials="A." surname="Stone" fullname="A, Stone">
              <organization>Nokia</organization>
            </author>
            <author initials="C." surname="Schmutz" fullname="C, Schmutz">
              <organization>Cisco</organization>
            </author>
            <date year="2025" month="February" day="21"/>
          </front>
        </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>
      </references>
    </references>
    <?line 379?>



  </back>
  <!-- ##markdown-source:
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
aUrhHL8+/PPffU4BC8FQAAA=

-->

</rfc>
