<?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.2.3) -->
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-cheng-spring-srpolicy-ar-framework-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="SR-TE Dynamic Weight Path">SR-TE Path Based on Quality-Aware Dynamic Adaptive Adjustment</title>
    <seriesInfo name="Internet-Draft" value="draft-cheng-spring-srpolicy-ar-framework-01"/>
    <author initials="W." surname="Cheng" fullname="Weiqiang Cheng">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>chengweiqiang@chinamobile.com</email>
      </address>
    </author>
    <author initials="C." surname="Lin" fullname="Changwang Lin">
      <organization>New H3C Technologies</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>linchangwang.04414@h3c.com</email>
      </address>
    </author>
    <author initials="T." surname="Han" fullname="Tingting Han">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>hantingting@chinamobile.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="28"/>
    <area>ops</area>
    <workgroup>SPRING Working Group</workgroup>
    <keyword>weight, srpolicy, path, dynamic</keyword>
    <abstract>
      <?line 68?>

<t>This document defines a framework for quality-aware dynamic adaptive adjustment
   of Segment Lists within an SR-TE Candidate Path. It addresses the limitation
   of static weight assignment, which cannot adapt to dynamic changes in path
   quality (e.g., latency, loss, utilization). The framework enables continuous
   monitoring of end-to-end metrics for each Segment List, computation of updated
   weights proportional to their relative quality, and application at the policy
   head-end. This allows the Candidate Path to autonomously optimize traffic
   distribution towards higher-quality paths, enhancing performance without
   altering the SR-Policy architecture.</t>
    </abstract>
  </front>
  <middle>
    <?line 80?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Segment Routing Traffic Engineering (SR-TE) allows for the steering of traffic
   through an ordered list of segments, defined as a Segment List within
   an SR-Policy <xref target="RFC9256"/>. An SR-Policy may contain multiple Candidate Paths,
   each with its own priority. A single active Candidate Path can, in turn,
   contain multiple Segment Lists for load balancing, with each list assigned
   a static forwarding weight.</t>
      <t>Current implementations rely on these statically configured weights to
   distribute traffic among the Segment Lists. This static assignment is oblivious
   to real-time changes in the quality of the network paths each Segment List traverses,
   such as increased latency, packet loss, or link congestion. Consequently,
   traffic may continue to be pushed along a degraded path while better alternatives
   exist within the same Candidate Path.</t>
      <t>In AI-computing scenarios, large and small flows coexist for large-model training and inference. 
   Large-model training depends on collective communication (AllReduce, AllGather, ReduceScatter): 
   single flows sustain high throughput with long packets and heavy bulk parameter synchronization 
   across GPUs—characterized by long duration, high bandwidth usage, and sensitivity to throughput. 
   Inference requests and control (Ctl) signaling are small packets sensitive to initial and long-tail latency, 
   with low per-flow bandwidth demand. Consequently, traffic composition (the ratio of large to small flows) 
   changes dynamically; fixed weighting cannot match real-time traffic characteristics, preventing optimal 
   global throughput.</t>
      <t>This document proposes a framework to address this limitation. It defines a 
   Quality-Aware Dynamic Adaptive Adjustment system specifically for the Segment Lists 
   within a single Candidate Path. The framework introduces mechanisms to monitor end-to-end 
   path quality, dynamically recalculate Segment List weights based on real-time quality assessment, 
   and apply the updated weights at the policy head-end. Additionally, it provides a mechanism to 
   redirect traffic from congested segment lists to less congested ones for forwarding. 
   This enables the SR-Policy to autonomously optimize traffic distribution in response to 
   network dynamics, improving application performance and resource utilization while maintaining 
   the existing SR-Policy structure and semantics.</t>
      <section anchor="requirements-language">
        <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"/> <xref target="RFC8174"/> when, and only when, they appear in all
   capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="problem-statement">
      <name>Problem Statement</name>
      <t>The current load-balancing model within a Candidate Path is static. Once weights
   are assigned to Segment Lists, the traffic distribution ratio remains constant
   unless manually reconfigured. This model suffers from two key issues:</t>
      <ul spacing="normal">
        <li>
          <t>Lack of Adaptivity: Network conditions are dynamic. A Segment List's path
may experience temporary degradation (e.g., congestion, high latency). The head-end
device, lacking a feedback mechanism, cannot reduce the traffic share sent over
this degraded path, leading to suboptimal application performance.</t>
        </li>
        <li>
          <t>Inefficient Resource Utilization: Even if some Segment Lists traverse paths
with ample available bandwidth or superior quality, the fixed weights prevent
traffic from being automatically shifted to better utilize these resources.</t>
        </li>
      </ul>
      <t><xref target="fig-sr-te-example-network"/> illustrates a classic scenario:</t>
      <figure anchor="fig-sr-te-example-network">
        <name>A Candidate Path with Three Segment Lists</name>
        <artwork type="ascii-art"><![CDATA[
                       +------------+
                       | Controller |
                       +------------+
                            /\
                            ||
                            ||
                            \/
                ============Seglist 1========
             +---+          +---+           +---+
       +-----|R11| -------- |R12| ----X-----|R13|
      /      +---+          +---+  Degraded +---+
     /     
    /          ==============Seglist 2=======                                 
+-----+      +---+            +---+          +---+
|Head |------|R21| ---------- |R22| ---------|R23|
+-----+      +---+            +---+          +---+
   \
    \          ==============Seglist 3=======
     \       +---+            +---+          +---+
      +------|R31| ---------- |R32| ---------|R33|
             +---+            +---+          +---+
]]></artwork>
      </figure>
      <t>In <xref target="fig-sr-te-example-network"/>, the active Candidate Path at the Head node contains
   three Segment Lists. Assuming equal static weights, traffic is evenly distributed.
   If the path for Segment List 1 (R11-&gt;R12-&gt;R13) experiences degradation (e.g., high
   loss on R12-R13), the Head continues to send one-third of the traffic onto this
   poor-quality path. Local rerouting by R12 does not solve the end-to-end problem
   and wastes capacity on the other two high-quality paths.</t>
    </section>
    <section anchor="solution">
      <name>Solution</name>
      <section anchor="quality-aware-dynamic-weight-adjustment">
        <name>Quality-Aware Dynamic Weight Adjustment</name>
        <t>The proposed solution dynamically adjusts the operational forwarding weights
   of the Segment Lists within a Candidate Path based on their real-time, end-to-end
   path quality.</t>
        <section anchor="core-mechanism">
          <name>Core Mechanism</name>
          <t>The mechanism establishes a closed-loop control system:</t>
          <ul spacing="normal">
            <li>
              <t>Monitor: Network nodes measure quality metrics (e.g., delay, loss, utilization)
for links associated with specific Segment Lists.</t>
            </li>
            <li>
              <t>Report &amp; Aggregate: These per-hop metrics are reported and aggregated to form
a composite quality score for each Segment List's path.</t>
            </li>
            <li>
              <t>Calculate: A decision entity (Controller or Head-end) employs a function F to
compute a new set of operational forwarding weights based on the monitored quality
scores of all Segment Lists. The core principle governing this calculation is that
the weight for each path is directly proportional to its respective quality score.</t>
            </li>
            <li>
              <t>Apply: The head-end applies the new weights, shifting traffic proportionally towards
higher-quality Segment Lists.</t>
            </li>
          </ul>
          <t>An example of Quality-Aware Dynamic Weight Adjustment is shown in <xref target="fig-sr-te-example-network"/>.
   when R12 detects degradation on the R12-&gt;R13 link, R12 sends the quality information to the
   Controller or Head via the control plane. The Head then dynamically adjusts the forwarding
   weights of each Segment List path based on the quality status, lowering the forwarding weight
   of the degraded Segment List path, thus reducing traffic on that path and relieving its load.
   When the degradation is cleared, R12 also sends the quality information to the Controller or
   Head via the control plane, and the Head restores the original forwarding weights of the Segment
   List path.</t>
          <t>The SR-Policy forwarding table for Quality-Aware Dynamic Weight Adjustment is shown in <xref target="fig-sr-te-forwarding-table"/>.</t>
          <figure anchor="fig-sr-te-forwarding-table">
            <name>SR-Policy Forwarding Table for Quality-Aware Dynamic Weight Adjustment</name>
            <artwork type="ascii-art"><![CDATA[
     +------+       +--------------------+
     |Policy|---+-->|Seglist 1: Weight w1|<----------------+
     +------+   |   +--------------------+                 |
                |           |    +-------------------+   +--------+
                |           +--->|Path: R11->R12->R13|-->|Quality1|
                |                +-------------------+   +--------+
                |   +---------------------+
                +-->|Seglist 2:  Weight w2|<----------------+
                    +---------------------+                 |
                            |    +-------------------+   +--------+
                            +--->|Path: R21->R22->R23|-->|Quality2|
                                 +-------------------+   +--------+
]]></artwork>
          </figure>
        </section>
        <section anchor="key-properties">
          <name>Key Properties</name>
          <ul spacing="normal">
            <li>
              <t>Scope-Limited: Operates only on the Segment Lists of the active Candidate Path.
Does not change Candidate Path priority or Segment List composition.</t>
            </li>
            <li>
              <t>Policy-Driven: The definition of "quality" (metrics, aggregation method) is configurable.</t>
            </li>
            <li>
              <t>Dampened: Includes algorithms to prevent weight oscillation from transient quality fluctuations.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="quality-aware-dynamic-flow-adjustment">
        <name>Quality-Aware Dynamic Flow Adjustment</name>
        <t>When congestion occurs and nearby devices detect congestion in a specific flow, they send the 
   congestion information to the controller or Head via the control plane (CP). The Head then 
   recalculates load balancing for the congested flow and selects a less-loaded Seglist path 
   to forward the flow.</t>
        <t>The advantage of the flow redirection mode is that it can specifically adjust the congested flow, 
   thereby quickly alleviating congestion.</t>
        <t>An example of the flow redirection mode is as follows:
   Example 1:
   As shown in Figure 3, when congestion of a specific flow S is detected on the R12-&gt;R13 link, 
   R12 sends the congestion information of flow S to the controller (CTL) or Head via the control plane (CP). 
   The Head subsequently selects a less-loaded Seglist path and redirects the forwarding of flow S.</t>
        <figure anchor="fig-sr-te-adaptive-flow-table">
          <name>SR-Policy Adaptive Flow table</name>
          <artwork type="ascii-art"><![CDATA[
     +------+       +--------------------+ 
     |Flow  |---+-->|Seglist 1: Load l1  |
     +------+       +--------------------+
                            |    +-------------------+
                            +--->|Path: R11->R12->R13|
                                 +-------------------+

]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="framework">
      <name>Framework</name>
      <section anchor="functional-roles">
        <name>Functional Roles</name>
        <t>A high-level view of the SR-TE Quality-Aware Dynamic Weight Routing framework, without
   expanding the functional entities in the network, is illustrated in <xref target="fig-sr-te-dwr-framework"/>.
   And the functional role of each functional entity also is shown in <xref target="fig-sr-te-dwr-framework"/>.</t>
        <figure anchor="fig-sr-te-dwr-framework">
          <name>SR-TE Dynamic Adaptive Routing Framework Overview</name>
          <artwork type="ascii-art"><![CDATA[
        +------------+
        | Controller | <--- Optional in Distributed Mode
        +------------+
             /\
             || (Quality Reports / Weight Updates、Flow Redirection)
             ||
             \/
 +-----+          +------+              +---+
 |Head |----------|Middle| -------------|End|
 +-----+          +------+              +---+
    |                |                     |
 Policy         Quality Monitor       Quality Monitor
 Enforcer          & Reporter           & Reporter
 & Calculator
 (Distributed Mode)
]]></artwork>
        </figure>
        <ul spacing="normal">
          <li>
            <t>Quality Monitor: Resides on Middle/End nodes. Measures local link-quality metrics
and reports them for specific Segment Lists.</t>
          </li>
          <li>
            <t>Candidate Path Quality Agent (CPQA): The logical entity responsible for a specific
Candidate Path. Its functions (Collect, Aggregate, Calculate) can be centralized on
a Controller or distributed on the Head.</t>
          </li>
          <li>
            <t>Policy Head-End (Enforcer):  </t>
            <t>
When operating in Dynamic Weight Adjustment mode, 
the system installs and applies the updated weight set to its forwarding plane 
    for the Candidate Path.  </t>
            <t>
When operating in Dynamic Flow Adjustment mode, it redirects congested flows from 
a congested segment list to a non-congested segment list for forwarding.
</t>
          </li>
        </ul>
      </section>
      <section anchor="operational-modes">
        <name>Operational Modes</name>
        <ul spacing="normal">
          <li>
            <t>Centralized Mode: The Controller acts as the CPQA. It collects all reports,
calculates new weights, and pushes them to the Head.</t>
          </li>
          <li>
            <t>Distributed Mode: The Head node acts as the CPQA for its local Candidate Paths.
It receives direct quality reports from monitors and performs calculation locally.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="workflow">
      <name>Workflow</name>
      <section anchor="centralized-mode-workflow">
        <name>Centralized Mode Workflow</name>
        <ul spacing="normal">
          <li>
            <t>Subscription &amp; Baseline: The Controller subscribes to quality metrics for all links
constituting the Segment Lists of a Candidate Path. The Head reports the initial
Segment List-weight binding.</t>
          </li>
          <li>
            <t>Continuous Monitoring &amp; Reporting: Middle and End nodes (Monitors) measure metrics
and stream reports to the Controller.</t>
          </li>
          <li>
            <t>Aggregation &amp; Decision: The Controller aggregates reports into per-Segment-List
quality scores. Upon significant quality change, it triggers the weight calculation function.</t>
          </li>
          <li>
            <t>Update Enforcement: </t>
			<t>When operating in Dynamic Weight Adjustment mode, the Controller sends the new weight tuple for 
    the Segment Lists to the Head via a southbound interface (e.g., PCEP). The Head updates its forwarding entries.  </t>
            <t>When operating in Dynamic Flow Adjustment mode, the Controller redirects congested flows from 
a congested segment list to a non-congested segment list for forwarding.
</t>
          </li>
        </ul>
      </section>
      <section anchor="distributed-mode-workflow">
        <name>Distributed Mode Workflow</name>
        <ul spacing="normal">
          <li>
            <t>Path Quality Association: The Head, for its Candidate Path, instructs relevant nodes
(e.g., End nodes of each Segment List) to act as Quality Monitors and report back.</t>
          </li>
          <li>
            <t>Direct Reporting: Monitors send quality reports directly to the Head (e.g., via extended IGP/BGP-LS, in-band telemetry).</t>
          </li>
          <li>
            <t>Local Calculation &amp; Update:  </t>
            <t>
When operating in Dynamic Weight Adjustment mode, the Head aggregates the data, calculates new weights,
and immediately applies them to its local forwarding table for that Candidate Path.  </t>
            <t>
When operating in Dynamic Flow Adjustment mode, the Head extracts the first N congested flows and 
their sizes from the congested segment list, then selects a non-congested segment list and redirects 
part of the traffic to the non-congested segment list for forwarding.
           </t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The framework introduces some key information flows (quality reports, weight updates) that MUST be secured.</t>
      <t>All messages between Monitors, CPQA (Controller/Head), and Enforcer MUST be authenticated to prevent forgery.
   Protocols like TLS or TCP-AO SHOULD be used.</t>
      <t>Quality reports MAY reveal network internal state. Encryption SHOULD be considered where privacy is a concern.</t>
      <t>The system SHOULD be resilient against malicious nodes flooding false quality reports to trigger unnecessary
   re-calculations or traffic shifts (Denial-of-Service). Rate-limiting and validation of report sources are recommended.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no requests for IANA action. Future documents specifying protocol extensions MAY
   require the creation of new code points or registries.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
        <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" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
        <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>
      <reference anchor="RFC9256" target="https://www.rfc-editor.org/info/rfc9256" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9256.xml">
        <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>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
