<?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.24 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-zzd-idr-sr-policy-scheduling-08" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="BGP SR Policy Scheduling">BGP SR Policy Extensions for Path Scheduling</title>
    <seriesInfo name="Internet-Draft" value="draft-zzd-idr-sr-policy-scheduling-08"/>
    <author initials="L." surname="Zhang" fullname="Li Zhang" role="editor">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street>Beiqing Road</street>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>zhangli344@huawei.com</email>
      </address>
    </author>
    <author initials="T." surname="Zhou" fullname="Tianran Zhou">
      <organization>Huawei</organization>
      <address>
        <email>zhoutianran@huawei.com</email>
      </address>
    </author>
    <author initials="J." surname="Dong" fullname="Jie Dong">
      <organization>Huawei</organization>
      <address>
        <email>jie.dong@huawei.com</email>
      </address>
    </author>
    <author initials="M." surname="Wang" fullname="Minxue Wang">
      <organization>China Mobile</organization>
      <address>
        <email>wangminxue@chinamobile.com</email>
      </address>
    </author>
    <author initials="N." surname="Nzima" fullname="Nkosinathi Nzima">
      <organization>MTN</organization>
      <address>
        <email>Nkosinathi.Nzima@mtn.com</email>
      </address>
    </author>
    <date year="2025" month="March" day="03"/>
    <area>General</area>
    <workgroup>IDR</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 53?>

<t>Segment Routing (SR) policy enables instantiation of an ordered list of segments with a specific intent for traffic steering. When using SR policy in a time-variant network, delivering the time-variant information associated with paths is necessary in some scenarios.</t>
      <t>This document proposes extensions to BGP SR Policy to deliver the schedule information of candidate path (segment list) and its associated attributes.</t>
    </abstract>
  </front>
  <middle>
    <?line 59?>

<section anchor="intro">
      <name>Introduction</name>
      <t><xref target="RFC9657"/> introduces a set of time-variant network use cases where the topology of the network changes predictably. When the networks uses traditional routing protocols, it takes these topology changes as unexpected events and may cause and packet loss. However, the topology changes of these networks can be predicted in advance, therefore some measures can be taken in advance to prevent the packet loss. With this idea, <xref target="I-D.ietf-tvr-requirements"/> describes the requirements of using the time-variant information in a network. In <xref section="3.4.1" sectionFormat="of" target="I-D.ietf-tvr-requirements"/>, it describes the centralized routing scenarios with time-variant information, in which the network entities receive the time variable information and traffic forwarding rules directly from a logically centralized source(an Orchestrator or network controller). The time-variant information is especially essential when there is a risk that a logically centralized source may loses connectivity with the network entities.</t>
      <t>Segment Routing (SR) policy <xref target="RFC9256"/> is a set of candidate SR paths consisting of one or more segment lists and necessary path attributes. It describes the traffic forwarding rules for specific flows. <xref target="I-D.ietf-idr-sr-policy-safi"/> introduces how BGP may be used to distribute SR Policy candidate paths. It introduces a BGP SAFI with new NLRI to advertise the candidate paths and specific attributes of a SR Policy from a controller or path computation engine (PCE) to the network entities. However, when using BGP SR Policy in a time-variant network, it can't advertise the schedule information associated with paths.</t>
      <t>This document proposes extensions to BGP SR Policy to carry the schedule information of candidate paths/segment lists.</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="motivation">
      <name>Motivation</name>
      <t>Most of the time-variant network use cases using BGP SR Policy could be benefit from this work. In some cases, carrying the time-variant information with SR Policy is essential.</t>
      <t>This section describes the cases that requires extending SR Policy with schedule information.</t>
      <section anchor="network-with-discontinuous-links">
        <name>Network with Discontinuous Links</name>
        <t>In some time-variant network cases, the links between the network entities and network controller may very weak or intermittent, this is very typical in Resource Preservation and Dynamic Reachability network<xref target="RFC9657"/>. In these cases, Real-time SR policy advertising (before changes occur) may not be timely. For example, when a link of an old path is about to be disconnected, the network controller is going to advertise a new path to the headend. However, the link between the headend and the network controller is not available. As a result, the new path cannot be advertised in time, causing packet loss.</t>
        <t>Therefore, in these cases, once the links between the headend and network controller are available, the controller need to advertise the paths with schedule information for a period in the future to the headend. Then the headend could determine valid paths in the future based on the schedule information of SR policy.</t>
      </section>
      <section anchor="network-with-frequent-topology-changes">
        <name>Network with Frequent Topology Changes</name>
        <t>There are also some time-variant network cases that topology changes frequently. This is very typical when the number of network entities is very large (For example, a Dynamic Reachability network with hundreds or thousands of nodes). In this kind of time-variant network, a path form one network entity to another changes frequently, sometimes it can only be maintained for a few minutes or seconds.</t>
        <t>Considering that there are multiple paths in a network that computed by the controller, the SR Policies with candidate paths may be advertised to the headend every few seconds. It poses great changeling to the network controller. However, using schedule information could advertise several paths once, which greatly mitigate the pressure of network controllers.</t>
      </section>
    </section>
    <section anchor="schedule-information-in-sr-policy">
      <name>Schedule Information in SR Policy</name>
      <t>The NLRI defined in <xref target="I-D.ietf-idr-segment-routing-te-policy"/> contains the SR Policy candidate path. The content of the SR Policy Candidate Path is encoded in the Tunnel Encapsulation Attribute defined in <xref target="RFC9012"/> using a new Tunnel-Type called SR Policy Type with codepoint 15. The SR Policy encoding structure is as follows:</t>
      <artwork><![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>
      <t>A candidate path includes multiple SR paths, each of which is specified by a segment list. The schedule information can be applied to a candidate path, indicating the valid time for each candidate path and its associated attributes.
The new SR Policy encoding structure is expressed as below:</t>
      <artwork><![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)
                Schedule Information
                Segment List
                    Weight
                    Segment
                    Segment
                    ...
                ...
]]></artwork>
      <t>The schedule Information also can be applied to a segment list to indicate the valid time for a segment list and its associated attributes. 
The new SR Policy encoding structure is expressed as below:</t>
      <artwork><![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
                    Schedule Information
                    Weight
                    Segment
                    Segment
                    ...
                ...
]]></artwork>
    </section>
    <section anchor="schedule-information-sub-tlv">
      <name>Schedule Information Sub-TLV</name>
      <t>The schedule information sub-TLV indicates one or more valid time slot for one or more paths. The format of schedule information sub-TLV is shown as follows:</t>
      <figure anchor="ref-to-fig1">
        <name>Scheduling Information Sub-TL</name>
        <artwork><![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    |Schedule Number|    Reserved   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
/                        Schedules                              /
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <t>Type: TBD1</t>
      <t>Length: the size of the value field in octets.</t>
      <t>Schedule Number: indicates the number of schedules.</t>
      <t>Schedules: one or more schedules, each schedule indicates the duration when the candidate path (segment list) is active. The format of each schedule is shown as follows:</t>
      <figure anchor="ref-to-fig2">
        <name>Format of Schedules</name>
        <artwork><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Schedule-id                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Flags  |S|P|R|    Length     |          Reserved             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Start Time                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Start Time(Continue)                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       End Time/Duration                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  End Time/Duration(Continue)                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   Recurrence count/Bound(Optional)            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   Recurrence count/Bound(Optional)            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Frequency (Optional)                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
      </figure>
      <t>Schedule-id: 32-bit value, the unique identifier to distinguish each schedule within a SR Policy, this value is allocated by the SR Policy generator.</t>
      <t>Flags: 8 bits, currently only 2 bits are used, the other bits are reserved.</t>
      <t>Length: 8 bits, indicates the length of this schedule in octets.</t>
      <t>S (Schedule type): one-bit flag to indicate the type of a schedule. If S=0, it indicates the schedule only has one instance, the Recurrence Count/Bound, Frequency and Interval field should not be included in the sub-TLV; If S=1, it indicates the schedule has multiple instances, the Recurrence Count/Bound, Frequency and Interval field should be included.</t>
      <t>P (Period type): one-bit flag to indicate the description type of a period. if P=1, then the period is described by a start time filed and an end time field; If P =0, then the period is described by a start time field and a duration time field.</t>
      <t>R (Recurrence bound type): one-bit flag to indicate the how to determine whether the recurrence is end. if R=1, then the end of recurrence is determined by a detail timepoint; If R = 0, then the end of the recurrence is determined by the number of occurrences.</t>
      <t>Start Time: 64-bit value, the number of seconds since the epoch, it indicates when the candidate path (segment list) and its associated attributes start to take effect.</t>
      <t>End Time (Duration): 64-bit value, if the flag P=1, then it is the number of seconds since the epoch, it indicates when the candidate path (segment list) and its associated attributes becomes ineffective. If the flag P=0, then it is the number of seconds since the Start Time, it indicates how long the candidate path (segment list) and its associated attributes are effective.</t>
      <t>Recurrence Count/Bound(optional): 64-bit value, this field <bcp14>SHOULD</bcp14> be included when the flag P is set to 1. When the flag R=0, then this field indicates the max number of occurrences. For example, if it is set to 2, then the schedule will repeat twice with the specified Frequency and Interval. When the flag R=1, then tis field indicates the bounded timepoint of recurrence, it is descripted by the number of seconds since the epoch.</t>
      <t>Frequency(optional): 32-bit value, this field should be included when the flag S is set to 1. It is the numbers of seconds since the Start Time of an instance to the Start Time of next instance. This field indicates the recurrence frequency for all the instance of this schedule.</t>
    </section>
    <section anchor="operations">
      <name>Operations</name>
      <section anchor="advertisement-of-sr-policies-with-schedule-information">
        <name>Advertisement of SR Policies with Schedule Information</name>
        <t>As described in <xref section="4.1" sectionFormat="of" target="I-D.ietf-idr-sr-policy-safi"/>, typically, an SR Policy is computed by a controller or a path computation engine (PCE) and originated by a BGP speaker on its behalf. The schedule information is also computed by a controller or a PCE which can access to all the predicted topology changes. The predicted topology changes could be got from management interfaces or other means.</t>
        <t>The controller or PCE <bcp14>SHOULD</bcp14> maintain a time-variant event database as described in <xref section="6" sectionFormat="of" target="I-D.zdm-tvr-applicability"/> to store all the predicted information, and compute SR Policies with schedule information based on the database.</t>
        <t>Each Candidate Path or Segment List may have multiple schedules, each schedule is identified by schedule-id, the controller or PCE <bcp14>MUST</bcp14> make the schedule-id unique within a specific SR Policy.</t>
        <t>The controller or PCE <bcp14>MUST</bcp14> ensure that the BGP speakers who will receive the SR Policy with schedule information have the capability to deal with the schedule information.</t>
      </section>
      <section anchor="reception-of-an-sr-policy-with-schedule-information">
        <name>Reception of an SR Policy with Schedule Information</name>
        <section anchor="validation-of-schedule-information">
          <name>Validation of Schedule Information</name>
          <t>On reception of an SR Policy, a BGP speaker first determines if it is valid as described in <xref section="4.2.1" sectionFormat="of" target="I-D.ietf-idr-sr-policy-safi"/>. When a headend receives a SR Policy form it neighbors or controller, it <bcp14>SHOULD</bcp14> perform schedule information validation based on the following rules:</t>
          <ul spacing="normal">
            <li>
              <t>The headend <bcp14>MUST NOT</bcp14> use the SR Policy with schedule information when it does not have the capability to deal with the schedule information.</t>
            </li>
            <li>
              <t>When multiple schedules are present within one SR Policy, the schedule-id of each schedules <bcp14>MUST</bcp14> be different. If there are multiple schedules with the same schedule-id, then the SR Policy <bcp14>MUST</bcp14> be considered as malformed.</t>
            </li>
            <li>
              <t>The Start Time of Schedule Information TLV <bcp14>MUST</bcp14> be later than the time it be received, if not, the SR Policy <bcp14>MUST</bcp14> be considered as malformed.</t>
            </li>
            <li>
              <t>If the End Time/Duration field is used to indicated the end time, then it <bcp14>MUST</bcp14> be later than the Start Time, if not, the SR Policy <bcp14>MUST</bcp14> be considered as malformed.</t>
            </li>
            <li>
              <t>If the Frequency field is present in the Schedule Information TLV, then it <bcp14>MUST</bcp14> be greater than the difference between the End Time and Start Time(P=1), or greater than the Duration(P=0), if not, the SR Policy <bcp14>MUST</bcp14> be considered as malformed.</t>
            </li>
            <li>
              <t>If the Recurrence Count/Bound field is present and used to indicate the boundary time point, then it <bcp14>MUST</bcp14> be greater than the End Time(P=1), or greater than the sum of Start Time and Duration(P=0), if not, the SR Policy <bcp14>MUST</bcp14> be considered as malformed.</t>
            </li>
          </ul>
          <t>If a headend receives a SR Policy that considered as malformed, then the SR Policy <bcp14>MUST NOT</bcp14> be used.</t>
          <t>As described in <xref target="I-D.ietf-idr-sr-policy-safi"/>, the BGP SR Policy is distinguished by &lt;distinguisher, color, endpoint&gt; tuple. Whenever a headend receives a SR Policy that it has received before, the SR Policy is considered as the fully replacement of the old one.</t>
        </section>
        <section anchor="enabledisable-candidate-pathssegment-lists">
          <name>Enable/Disable Candidate Paths/Segment Lists</name>
          <t>When a headend receives a SR Policy with schedule information, it <bcp14>SHOULD</bcp14> parse the SR Policy and save the schedule information locally. When a data packet arrives, it will steer it to a specific SR Policy by color or other means.</t>
          <t>Within a specific SR Policy, the headend dynamically enable/desable different Candidate Paths/Segment Lists based on the schedule information.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document defines a sub-TLV in the registry "BGP Tunnel Encapsulation Attribute sub-TLVs" to be assigned by IANA:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Value</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">TBD1</td>
            <td align="left">Schedule Information (SI) sub-TLV</td>
            <td align="left">This document</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.ietf-tvr-requirements" target="https://datatracker.ietf.org/doc/html/draft-ietf-tvr-requirements-04" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tvr-requirements.xml">
          <front>
            <title>TVR (Time-Variant Routing) Requirements</title>
            <author fullname="Daniel King" initials="D." surname="King">
              <organization>Lancaster University</organization>
            </author>
            <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Brian Sipos" initials="B." surname="Sipos">
              <organization>JHU/APL</organization>
            </author>
            <author fullname="Li Zhang" initials="L." surname="Zhang">
              <organization>Huawei</organization>
            </author>
            <date day="13" month="September" year="2024"/>
            <abstract>
              <t>Time-Variant Routing (TVR) refers to calculating a path or subpath through a network where the time of message transmission (or receipt) is part of the overall route computation. This means that, all things being equal, a TVR computation might produce different results depending on the time that the computation is performed without other detectable changes to the network topology or other cost functions associated with the route This document introduces requirements where TVR computations could improve message exchange in a network.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tvr-requirements-04"/>
        </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>
        <reference anchor="I-D.ietf-idr-sr-policy-safi" target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-sr-policy-safi-13" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-idr-sr-policy-safi.xml">
          <front>
            <title>Advertising Segment Routing Policies in BGP</title>
            <author fullname="Stefano Previdi" initials="S." surname="Previdi">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Ketan Talaulikar" initials="K." surname="Talaulikar">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Paul Mattes" initials="P." surname="Mattes">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Dhanendra Jain" initials="D." surname="Jain">
              <organization>Google</organization>
            </author>
            <date day="6" month="February" year="2025"/>
            <abstract>
              <t>A Segment Routing (SR) Policy is an ordered list of segments (also referred to as instructions) that define a source-routed policy. An SR Policy consists of one or more candidate paths, each comprising one or more segment lists. A headend can be provisioned with these candidate paths using various mechanisms, such as CLI, NETCONF, PCEP, or BGP. This document specifies how BGP can be used to distribute SR Policy candidate paths. It introduces a BGP SAFI for advertising a candidate path of an SR Policy and defines sub-TLVs for the Tunnel Encapsulation Attribute to signal information related to these candidate paths. Furthermore, this document updates RFC9012 by extending the Color Extended Community to support additional steering modes over SR Policy.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-idr-sr-policy-safi-13"/>
        </reference>
        <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="I-D.ietf-idr-segment-routing-te-policy" target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-26" xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-idr-segment-routing-te-policy.xml">
          <front>
            <title>Advertising Segment Routing Policies in BGP</title>
            <author fullname="Stefano Previdi" initials="S." surname="Previdi">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Ketan Talaulikar" initials="K." surname="Talaulikar">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Paul Mattes" initials="P." surname="Mattes">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Dhanendra Jain" initials="D." surname="Jain">
              <organization>Google</organization>
            </author>
            <date day="23" month="October" year="2023"/>
            <abstract>
              <t>This document introduces a BGP SAFI with two NLRIs to advertise a candidate path of a Segment Routing (SR) Policy. An SR Policy is an ordered list of segments (i.e., instructions) that represent a source-routed policy. An SR Policy consists of one or more candidate paths, each consisting of one or more segment lists. A headend may be provisioned with candidate paths for an SR Policy via several different mechanisms, e.g., CLI, NETCONF, PCEP, or BGP. This document specifies how BGP may be used to distribute SR Policy candidate paths. It defines sub-TLVs for the Tunnel Encapsulation Attribute for signaling information about these candidate paths. This documents updates RFC9012 with extensions to the Color Extended Community to support additional steering modes over SR Policy.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-idr-segment-routing-te-policy-26"/>
        </reference>
        <reference anchor="I-D.zdm-tvr-applicability" target="https://datatracker.ietf.org/api/v1/doc/document/draft-zdm-tvr-applicability/" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.zdm-tvr-applicability.xml">
          <front>
            <title>Applicability of TVR YANG Data Models</title>
            <author fullname="Li Zhang"/>
            <author fullname="Jie Dong"/>
            <author fullname="Mohamed Boucadair"/>
            <date day="28" month="February" year="2025"/>
            <abstract>
              <t>Time-Variant Routing (TVR) is a routing system that can support the
   predicted topology changes caused by internal or external reasons.
   Typical use cases include resource preservation networks, operating
   efficiency networks and dynamic reachability networks.  This document
   provides examples of how to implement the TVR scheduling capabilities
   for key use cases.  It describes which part of the TVR data model is
   used and why, and it outlines operational and security considerations
   when deploying TVR-based technologies.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-zdm-tvr-applicability-02"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9657" target="https://www.rfc-editor.org/info/rfc9657" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9657.xml">
          <front>
            <title>Time-Variant Routing (TVR) Use Cases</title>
            <author fullname="E. Birrane, III" initials="E." surname="Birrane, III"/>
            <author fullname="N. Kuhn" initials="N." surname="Kuhn"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <author fullname="R. Taylor" initials="R." surname="Taylor"/>
            <author fullname="L. Zhang" initials="L." surname="Zhang"/>
            <date month="October" year="2024"/>
            <abstract>
              <t>This document introduces use cases where Time-Variant Routing (TVR) computations (i.e., routing computations that take into consideration time-based or scheduled changes to a network) could improve routing protocol convergence and/or network performance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9657"/>
          <seriesInfo name="DOI" value="10.17487/RFC9657"/>
        </reference>
        <reference anchor="RFC9012" target="https://www.rfc-editor.org/info/rfc9012" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9012.xml">
          <front>
            <title>The BGP Tunnel Encapsulation Attribute</title>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <author fullname="G. Van de Velde" initials="G." surname="Van de Velde"/>
            <author fullname="S. Sangli" initials="S." surname="Sangli"/>
            <author fullname="J. Scudder" initials="J." surname="Scudder"/>
            <date month="April" year="2021"/>
            <abstract>
              <t>This document defines a BGP path attribute known as the "Tunnel Encapsulation attribute", which can be used with BGP UPDATEs of various Subsequent Address Family Identifiers (SAFIs) to provide information needed to create tunnels and their corresponding encapsulation headers. It provides encodings for a number of tunnel types, along with procedures for choosing between alternate tunnels and routing packets into tunnels.</t>
              <t>This document obsoletes RFC 5512, which provided an earlier definition of the Tunnel Encapsulation attribute. RFC 5512 was never deployed in production. Since RFC 5566 relies on RFC 5512, it is likewise obsoleted. This document updates RFC 5640 by indicating that the Load-Balancing Block sub-TLV may be included in any Tunnel Encapsulation attribute where load balancing is desired.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9012"/>
          <seriesInfo name="DOI" value="10.17487/RFC9012"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1b63bjuJH+z6dA3D/WTiS17Xb3zGjn5rbdGef4trImc7I5
+QGRkISYIhQCtNvd7nmWPMs+2VYVABKgKNkz3TMnN+Vk2iRBoK5fVQHFfr+f
GGlyMWSvf3/FrkfsSuUyvWcnb40otFSFZlNVsitu5uw6nYusymUxS/hkUorb
9kvBgEylBV/AtFnJp6b/7l3Wl1nZ12V/SWP7uh7b3/08UROtcmGEHibVMuP0
B/4zTFL470yV90OmTZboarKQGuka3y9h9tOT8ZskkctyyExZabO/u/vF7n7C
S8GH7PeiECXPkztV3sxKVS1h/PEouRH3cCeDi8KIshCmf4w0JgmvzFyVw4T1
E8ZkoYfsbMD+d86BHcYsN2eyvqHKGS/kO26AmCH7ruJ3QsJtseAyH7J3OCqX
Lw4Ovp3To0GqFvC4VChrkUmjSrjUphTCgByF/BuIgo0Uz+B2Ks093fyrpLVS
VRUGZXA0lwUPCBwjgaqq6RtLXpS88Dcfo1FVxr4QEVnP/ocBO1YB93+Qwt/Y
PPNfpRhkMLB72vMB+yEU6rks3lbC34tnJobZuZrIXDTz38HQBb31bYoDFvS8
tczFgF28kwter3NxozQMNnNZP4gXOx9fNGs0owc0+tuFKWiFpFDlAt64BetM
ZDFtrlgyGAySpN/vMz4B1fIUrOpazBaiMKBaEDaoePt6tMOsEzBR8EkuNNJr
eAG6QDqYmjJQIZioKEXGcqkN3tJ2Hs3uJPgiZ3opUjmVKbxscH50U1hyire0
EaKExUDQc1GwSuPC4KduWVnA+0YuRP+Wl2AAhoEXoJf0WCZyYAXfZWYu4kE1
r0Aj11qlQC8QSPQsQVDAh4aZUqE1L2kVrRaC6RTYLKXSIJrxHIYANlQkkmWp
lkoD/6JBG6NaoAI3HFFEkcMNEVED4kl5kUmEDCKFbTtxkfh2QJ4ZkyC7gGxu
TCknFUCNU9lCZhkYWfIMgaFUWZXS3O+fSbz8kCTv338zenP0xauXn334wKQb
A9SDLgSpqEukIHwBxCGXd3NQqBUr8J2r2T29BNd+bIqoASOXoHiZGjCOe6fC
YJTGKTXqGlAEKOQ5oIq1LRCoUanKdQ+4ZYbf4Li50MGKfgkO0xTiLRgRCkPc
kmmhmBYcBnGkGq+WPL0B5nKl9YB9p+5gYNmLefAzWl50QCfohE2E5waWQcPL
bnmRCpqjFKBCYa1kIbiuSlG/hMQXwQtoBzAR0knLR4T9gCZo0LZkJniPvX//
m9P+8UAKM+2b27Jfir9VshTkP6C7TOgUdG+Fw8KHyIT1lo3WTw7k2ByAucCC
18Kay4vBwWAPp9lEAaknpgKcBDSay3cgJq/O2nOsj60jp4f03M1lOo+MCSYE
+4DpS3BJ8J+aJUZzTFo+hNr2+AF373iZIQ1lhQCVAe2pye/ZtFQL4B0UL1Oe
w42Qbq2qMhXboMDLEtwUERDCHCBZY+AK3SbPRbkzYOONIgZUIIijVQBSkB0w
9TvnDWA3El2vlPoGrrl5hCqy65zQBogoUFu3EGWdZDvENmCbsRtsDNFg/+Ur
RIMABRokQsQlXIQVNeAQTgEDVCFQJguy/QCmrP81AEpAFsAUO20bzVp9YTCo
A8Q0V3fwdugUrVyMT2UMaXN1RzCMQgNnBDTICIiBSktNANAx8loyI3QkPD98
c2plXYg7dnE2OsX5wLdFaaS2ttmaiKRRM9HIgeJjsL4zyca0ULgkO4jWy8pY
exLFTILct6+OTnZw6W6V1wh318TNOBxtiJ3g08DCf5kWW50RqzN+/uwAmfIS
7OXp4VE/j+wO1n32jI1CHDwDTK/4TCBFgkHKzDBn1mzr/Pvr8VbP/ssuLunv
0cn/fH86OjnGv6+/Ozw7q/9I3Ijr7y6/Pztu/mrePLo8Pz+5OLYvw10W3Uq2
zg//BE/QFLYur8anlxeHZ1uoBBMJipcUICaCsqESAgWFeJ14f6HY8/ro6v/+
vnfgXHd/b+8LsHp78fneZwdwgWq3q6kCYMReglzvE75cCl6S+vMcxLmUhmOc
hTiqwVsKhpAEgvztn1EyfxmyLyfpcu/ga3cDGY5ueplFN0lmq3dWXrZC7LjV
sUwtzeh+S9IxvYd/iq693IObX36Tozf19z7/5usEU6ZzBXhqrS1JzpVNWVdi
6GpO1OViUO3kGepyAgXcFLyKPJwUXgdcyhloip61/kdjNrlZ4Me6CSre77SL
4a3ITIRSiHFR3Plj5rJqNyMt0OV/1r0uHO807FhqxCtZVKoCZ5PFjU4Sz1an
yByvSFCOw0E45k7EmWET8m0gacdcgnOAJqBV8BuESfKWhTRYQfRcBqXtEHO/
xGCKFj8SLoZeAe+ivG0ShuN7KK0AnUeCQxoIRRiGVLdwmC6Tzmx26BiBN/I+
ZSNNXeJxk0LtxCaHdXaZplW5QxwUylCGCC9jfvwG+BBv+WKZC4fbnETk66g8
s9EAY/QEArkDioxUUFD+24uz8EZg8M5MkWmFwYpTEKNJXSSZC56BQbRSZKIi
1JMbZnOttSsif/wWilDM0QbskNIcoavceDrd4gDqThY1bYRzKJkeJfFUFISZ
MuG5zbt7FkYDnSjKszstLKS8g2rE35pkS2XwtBA2fYjjog3ya72GchjOllCM
qsyRyqaVqSzUR1Ifz1tkWgjJBFl3gRlvLjNfpEZTTTgKTRUbo2dtoijAti+/
QVTAIDT2FdGRtVknayucXKvHvNtizEpdNXXzo62Puzz0ri4Qq8UE05/pKiD4
d3JeziALinyGb3Rjy+S8KjIo4zSChpkDaIEhUCZWKEDLHeffsMqNxODZXQvj
UmS4KFxKgyM6KZXhYNEgtQ7ueyQ/nFe7VMsG6Qnm9gBk8H/QpLWaKbgIKN6m
iyUCuwJ6UXtHmIpnfoeDG1dLoI4W4GESJNLYSV3k2aE2n4RFJvctE7cm72MB
Cpyk1s5oXTodeGtsyViHg5KQ+ppkyKZtDjgrBdJAcskdJnWDSABDFgI67dr6
SOOTGt8Ac7KkKirSbVVJK4OkIVDIGXJD7guQhBV7aG4NCZRT+g1hAdYRFc91
0LTpJZUDGYT6wuLXSqVik9W+q4v7RrjKBTI2XBI0ryMFtIsSW2viUPRTl5k0
g4/qwVcuUIgiBbuuYWdcQaDI2UkBeR/gsOXj0FckMekU9Hb39oE2K3wbLewU
fdy2ZlijwvCGALprLQaWXULEMWzvpaW6GUVEkTpNWaWEXpI2cqYgcijxhkny
448/JsF+PBZdKFxI3I5t/VlJPUe7sCP6RwA1cHVSZLTo1wmjX80azMn87xEh
bO+/2GkGN+PtRn1D1Pbey3gc/l5Ll02dHq88ux7dvto4ALKSKfgwGGzHI6lK
QJbVB5aYC77oeKnTKjqHnrxdor8bdvE9pOlnfAIMez5PLs6uVjn1WwpnoI+V
h/j7QcjZvPuRe/cnP8Nd6a57aC3JYXvrVBZpXgGoN3jo9zF6DOMD+o/FBUyZ
bX1uMZFH2xnWfLuhx+7xQU2VS5catKjA5CSD6GZ8Xm8jOCWMCPFESIvwRzZ5
xy51esyhxFuCNqofgUrwrP841j+DY3XEmn9874tcJIySlDB2+UnoYnjH+Yno
8pLW6M0Owv7jIStq/dfykMeM/0kuhL9f20vWZJLX1aQ/Pvtjy4vCQKPtiNpJ
dLT5HniLzpU9Qg2fu/1snN1OSeewG9fxu4ErWRnb7WB6r+Pefse9F/j6Hjx6
wQ7YS/aKfcY+Z1/8lHvJ7/of+b/kgUihVJV+9vpMFDMwUbyudXRBdSg9H9GG
ESAFPP9kNPz830PyfN0jT73ePMPzT0DDx8sBLer9kD0D+Okb1Z/KGZgSNfJ8
tdV04XQ4y9YH8BaCxfHr470kseob2t0P+U744ghcowKrlyKnskalRtA5QUvH
w8Cz4h0I7ybhS3oYn3352y6vDDwrnDOrSreD6/c5Np/1Y02Ep3ui7bmtRf7l
XbX755UBlfUvaqJAw5uczzQCw8PVw4hoatCCBTQGIPHJaVgrBsNLw8aI/et/
vxwNzfLbR/YgQOz82jQwTL6IhufH3sd+VRpWlt8ki19KDiORViWlcLbN7vlr
+G+2fbm0vTU7/y40ML+RjQlk58qfloaOGLZfx7A3NWjXsQMjV4BdQ/Zivz+B
9Jcild1/rQoJDGAPEFgRxK7S9yy46qMVAXDDjTZ56wrBHYHZ4IdxBMJCyoMd
36aWmFFzqVElxDfCuSHgN9CD55GkS9wwpf3pfbpNO8zYR2FJtZvc9YPSIeCg
ich+tjgY5hZAKUpjBGtCZhCj2XYdpg3E+h0KuySsKVC6UjTiGNtU4acbsFOQ
/Fe71NMQE1CvSLzNuc2obQOja+sKzfmoMedeYGBYiVL7LYjaZRkQjHE/2h1o
uU2oegfWJdj/bQnb20QY0lRvXXnC9MdTFlAFQr5i21f2aOopIrYnyuRUgbjt
2daAySm7Qp6MT3D8oZdmTf+C3V+jsGHre4l7yJzO5BieHbi7QDFJ6Yqh/n7i
lMguTdlkXc0T4HrEtgMRTlB4T+If+4mokdMfyEEuRx5gG/DqGWnr3UpkFElE
2FOleGg9nWMFrrnMiWLaUyA5jNhXbHd1ptWF49nibJZOn2kkOVgdvIfs1UEb
hYIc2J7hQGLtD1aBrnTeMt4nprUbN2+8FhX1TTIxnYrUAKU+wrJtH2J32iRL
KwtSW2OFSOFKSv/rsTOBpeicr7CsUDZ/GlG6+5MobVTWIhctM1duk/ljSEYY
b4gFV+mEmm3lI+uq6QAb1gNdL08Ig7VULfdUvQhS+F7QIUwPR4Hf11PGWLng
b9cYd9xNAbZhxevW2g/8KAijeQ6utMTTSXMnU9H0VDanA90Au0p67fNrKCfI
EVnj4zEq9By9Hm+7fHmNGWMc90SGWmqnGTVhq2GhpaXrWEunLUPVj1mqa2Dx
Icyf98YDCvHW1ENcg0CX4AKsm9a6oD1i0B4OqJdp5xZ0knu5FBY/NDVAHPpT
44U7UF05+u7cS0wOw/Ajw75p1zX9zcYW1Z7vecBuAF7E7Vzh6Xy7HZQ/0hBK
HX+lnOEHH34GbEoDAwY8xV1B8vyJmPN8uuFgi3JG3LjfSAss6U7QcIOfp9jw
S5v7ThVNw3y7GcQuvf550zs3U65vbsELPrN6om6vKU9tU4RNQReCF7bxVLTo
RCodEvn+inbrq23HB8Dk2EaDOylrtPuq7oh/ly2oIZ7ONFLXa/LhA7KvjaJO
mbYQolZ3Tt09JN1Vo+vUSdTh42nF2IjFQGunHdgOd8mpYWPOb4PekPWbVrop
PEjvuilWVjqinHipM3SBETtEVNyZcaVMXaLUfdC1ya/VGU0qCurN8B0uoTFj
iFYetZsvA57QyGhFYQPl0rcJUVqHXUg16K9tgYSQKJbBJ06tJbsh4xm8+Efc
qG+6sTrHXRbETuf8vZY7T2WpTZPw6SbQ2SOB9YZ8MNhvf97RBVQusPG6scdJ
Wsed69gGJbE9Ss7mE1WSW4ZNRfDMeSDAL43uVMttI57I2O22Zv1VwDBJ+oQf
nijfmEz9uE+1gTuXdGVK2FbFjzGKvpXTqndROoWnjOiKzguw0IxK9dhl2ju8
2vJHrZ5TOqUzPodsN3w1rzQE84VYceGiJSW/QOqayuyJ6AJiBPBIZaIVeByy
O8+y8PTIT5cDHmFpxIu6pRklPhHejDJKzUD4vZ9BkEujV/f+XNqg6889fAaR
1YWT7Sz1efcaeqNc+2PJbBLHmjxvFm5rYJ04V+mkPraQUm8YWMsGza511YTB
JtiphfJop4c+ujJRvYEJdcnOJ+C6u3hYFQES2NZWkyfjR0RkPJQpP0EenvEN
nOpqQTbcWDT1gX8a/k+nj0Gm68PsnGC9iyLGuc+YBl1J6GYw79URNMo3g41F
G/C/zOJGh9R2OAjf4cBMtcS9NYQ87LV8Eq/S0IaWd3w2cb3bMZdSt4RC8F/h
p3BQmeWQ8i2CzkdsiQcwHdjgekIfIT8/lpq+CYwzIv08zIcg+X9KXFsbPKKI
xsuVqENffPlw0hl9cD82r7+K5ZTP+Q53XpZICi1C6Q19Bk1fwqrOFAqVRkpa
TYd/WJ949aKO3cy2TtuvFK0kwbhIknXY2SzTx1vQbS8tQgLGVt/B7Mux8etj
+mj58OKw/Sz+msy2qdKXinVbhKsNZ/hh3z3bQiN/pNnGvau33HcUXGs5c5tm
SANkGQ+YsEH2+sCOg33PB0A1j7YPyUPf/vy/q1cwhg6p4cVOiN++Pt2pOXlg
Ma8P9pvuCVhG8v/bXErP5UIAAA==

-->

</rfc>
