<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-chen-spring-sr-policy-cp-validity-07" ipr="trust200902">
  <front>
   <title abbrev="Validity of SR Policy Candidate Path">Validity of SR Policy Candidate Path</title>
   <author fullname="Ran Chen" initials="R." surname="Chen">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city>Nanjing</city>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <email>chen.ran@zte.com.cn</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
	 <author fullname="Yisong Liu" initials="Y." surname="Liu">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city>Beijing</city>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <email>liuyisong@chinamobile.com</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
	 <author fullname="Ketan Talaulikar" initials="K." surname="Talaulikar">
       <organization>Cisco Systems, Inc.</organization>
      <address>
        <email>ketant.ietf@gmail.com</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
	<author fullname="Detao Zhao" initials="D." surname="Zhao">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city>Nanjing</city>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <email>zhao.detao@zte.com.cn</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
	 <author fullname="Zafar Ali" initials="Z." surname="Ali">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <email>zali@cisco.com</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    <date year="2026"/>
    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
        in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

   <!-- Meta-data Declarations -->

   <area>Routing</area>
    <workgroup>SPRING Working Group</workgroup>
    <!-- WG name at the upperleft corner of the doc,
        IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
        which is used by the RFC Editor as a nod to the history of the IETF. -->

   <keyword>Internet Draft</keyword>
    <!-- Keywords will be incorporated into HTML output
        files in a meta tag but they have no effect on text or nroff
        output. If you submit your draft to the RFC Editor, the
        keywords will be used for the search engine. -->
   
   <abstract>
	  <t>An SR Policy comprises one or more candidate paths of which at a given time one and only one may be active (i.e., installed in forwarding plane and usable for steering of traffic). Each candidate path, in turn, may have one or more segment lists of which one or more may be active. When multiple segment lists are active, traffic is load balanced over them. Currently, a candidate path is valid as long as at least one of its segment lists is active. However, this default validity criterion does not meet the requirements of some scenarios.</t>
	  <t>This document defines the new candidate path validity criterion.</t>
    </abstract>
  </front>
  <middle>
  
    <section numbered="true" toc="default">
      <name>Introduction</name>
	 <t>SR Policy architecture are specified in <xref target="RFC9256" format="default"></xref>.  An SR Policy comprises one or more candidate paths of which at a given time one and only one may be active (i.e., installed in forwarding plane and usable for steering of traffic). Each candidate path, in turn, may have one or more segment lists of which one or more may be active. When multiple segment lists are active, traffic is load balanced over them. Currently, a candidate path is valid as long as at least one of its segment lists is active. However, this default validity criterion does not meet the requirements of some scenarios.</t>
	 <t>This document defines the new candidate path validity criterions based on <xref target="RFC9256" format="default"></xref>. For the segment list invalidation rules, refer to <xref target="RFC9256" format="default"></xref> and <xref target="I-D.liu-spring-sr-policy-flexible-path-selection"></xref>. This document does not change the segment list invalidation rules.</t> 
	  
	  
	   <section 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 numbered="true" toc="default">
   <name>Motivation</name>
    <t>The candidate path validity criterion defined in <xref target="RFC9256" format="default"></xref> does not meet the requirements of the following scenarios:</t>
     <figure anchor="xml_happy1">
        <artwork align="center" name="Figure 1" type="" alt="">
		<![CDATA[
                                  +------------------------+
                        +---------| SL1(Weight 1, 100Mbps) |
+----------------+      |         +------------------------+
|  CP1 (200Mbps) |------+
+----------------+      |         +------------------------+
                        +---------| SL2(Weight 1, 100Mbps) |
                                  +------------------------+
		  ]]></artwork>             
      </figure>
	<t>The SR Policy POL1 has two candidate paths: CP1 and CP2, and CP1 is the active candidate path (it is valid and has the highest Preference). The two segment lists (SL1 and SL2) of CP1 are installed as the forwarding instantiation of the SR Policy POL1. Each segment list is assumed to have a maximum capacity of 100Mbps. CP1 carries a total of 200Mbps of traffic. Within POL1, flow-based hashing is performed across each SL based on its relative weight. With an equal weight assigned to each SL, the fraction of flows steered into each SL is 50%, meaning each SL carries 100 Mbps of traffic.</t>
	<t>At this time, if one of the segment lists is determined to be invalid by the rule defined in <xref target="RFC9256" format="default"></xref>, the remaining segment list cannot carry the full 200Mbps of traffic due to its capacity limit. However, the CP1 remains the active candidate path according to <xref target="RFC9256" format="default"></xref>, as a candidate path is valid as long as it has at least one valid segment list.</t>
   </section>
    <section numbered="true" toc="default">
   <name>Validity of a Candidate Path</name>
   <t>A headend MAY be informed about the validity control parameters of a candidate path for an SR Policy &lt;Color, Endpoint&gt; by various means including: via configuration, PCEP, or BGP. The detailed protocol extension will be described in a separate document.</t>
   <t>This document defines the following validity control parameters under candidate path to control the validity judgment of candidate path:</t>
   <ul spacing="normal">
        <li>
		<t>Minimum Valid Segment List(SL) Count: 8-bit value, The value is 0-0xff.</t> 
		<t>Indicates the minimum number of valid segment lists under the active candidate path. When the number of valid segment lists under candidate path is greater than or equal to this field, the candidate path is considered valid.</t>
		<t>A value of 0 indicates no requirement for minimum segment list count.</t>
		<t>A value of 0xff indicates that the candidate path is considered valid only if all the segment lists are valid.</t>
		</li>
        <li>
		<t>Minimum Cumulative SL Weight: 32-bit value, The value is 0-0xffffffff.</t>
		<t>Indicates the minimum value of the sum of the weights of the valid segment list under the active candidate path.</t>
		<t>When the sum of the weights of the valid segment lists under the candidate path is greater than or equal to this field, the candidate path is considered valid.</t>
		<t>A value of 0 indicates no requirement for Minimum Cumulative SL Weight.</t>
		<t>A value of 0xffffffff indicates that the candidate path is considered valid only if all the segment lists are valid.</t>
		</li>
		 </ul> 
   <t>candidate path is considered valid only if both validity control parameters are satisfied.</t>
   <t>If both the Minimum Valid SL Count and the Minimum Cumulative SL Weight are set to 0, The validity of candidate paths must be determined according to the mechanism defined in <xref target="RFC9256"/>.</t>
    </section>
   <section numbered="true" toc="default">
   <name>Use Cases for Candidate Path Validity</name>
   <t>The following scenarios illustrate how the validity control parameters of a candidate path defined in Section 3 address the capacity and validity issues described in Section 2.</t>
    <ul spacing="normal">
      <li>
	  <t>Minimum valid SL count: Following the scenario in Section 2, where the aggregate traffic load is 200 Mbps and each SL has a capacity of 100 Mbps, an operator can configure a "Minimum Valid SL Count" of 2. In this case, the candidate path is rendered invalid as soon as any single segment list becomes invalid. This prevents the candidate path from remaining active when its capacity is insufficient to carry the full traffic load.</t> 
	  </li>
      <li>
	  <t>Minimum Cumulative SL Weight: Alternatively, an operator can assign a weight of 1 to both SL1 and SL2 to reflect their identical 100 Mbps capacity. By setting the "Minimum Cumulative SL Weight" to 2, the operator ensures the candidate path remains active only when the aggregate capacity meets the 200 Mbps demand. If one segment list becomes invalid, the sum of the weights of the remaining valid SLs becomes 1, falling below the threshold. Consequently, CP1 is declared invalid, thus preventing the steering of 200 Mbps of traffic into a single 100 Mbps link.</t>
	  </li>
	</ul>
    </section>
	
   <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
	 <t>This document makes no request of IANA.</t>
	 </section>
	 
	 
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
     <t>The security considerations of segment routing in <xref target="RFC9256" format="default"></xref> are applicable to this document.</t>
    </section>
	
	  <section anchor="Acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>The authors would like to thank Joel Halpern, Samuel Sidor , Changwang Lin, Alvaro Retana and Imtiyaz Mohammad for their review and discussion of this document.</t>
    </section>
  </middle>
 
  
    <!-- Possibly a 'Contributors' section ... -->
  <!--  *****BACK MATTER ***** -->

 <back>
    <!-- References split into informative and normative -->

   <!-- There are 2 ways to insert reference entries from the citation libraries:
    1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
    2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
       (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

    Both are cited textually in the same manner: by using xref elements.
    If you use the PI option, xml2rfc will, by default, try to find included files in the same
    directory as the including file. You can also define the XML_LIBRARY environment variable
    with a value containing a set of directories to search.  These can be either in the local
    filing system or remote ones accessed by http (http://domain/dir/... ).-->
<references title="References">
	 <references title="Normative References">
      <?rfc include='reference.RFC.2119'?>
      <?rfc include='reference.RFC.8174'?>
      <?rfc include='reference.RFC.9256'?>
	 </references>
	 <references title="Informative References">
	 <?rfc include='reference.I-D.liu-spring-sr-policy-flexible-path-selection'?>
	</references>
	</references>
    <!-- Change Log

v00 2006-03-15  EBD   Initial version

v01 2006-04-03  EBD   Moved PI location back to position 1 -
                     v3.1 of XMLmind is better with them at this location.
v02 2007-03-07  AH    removed extraneous nested_list attribute,
                     other minor corrections
v03 2007-03-09  EBD   Added comments on null IANA sections and fixed heading capitalization.
                     Modified comments around figure to reflect non-implementation of
                     figure indent control.  Put in reference using anchor="DOMINATION".
                     Fixed up the date specification comments to reflect current truth.
v04 2007-03-09 AH     Major changes: shortened discussion of PIs,
                     added discussion of rfc include.
v05 2007-03-10 EBD    Added preamble to C program example to tell about ABNF and alternative 
                     images. Removed meta-characters from comments (causes problems).

v06 2010-04-01 TT     Changed ipr attribute values to latest ones. Changed date to
                     year only, to be consistent with the comments. Updated the 
                     IANA guidelines reference from the I-D to the finished RFC.
v07 2020-01-21 HL    Converted the template to use XML schema version 3.
    -->
 </back>
</rfc>
