<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-stone-spring-mpte-sr-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="spring-mpte-sr">Multipath Traffic Engineering for Segment Routing</title>
    <seriesInfo name="Internet-Draft" value="draft-stone-spring-mpte-sr-01"/>
    <author fullname="Andrew Stone">
      <organization>Nokia</organization>
      <address>
        <email>andrew.stone@nokia.com</email>
      </address>
    </author>
    <author fullname="Vishnu Pavan Beeram">
      <organization>Juniper Networks</organization>
      <address>
        <email>vbeeram@juniper.net</email>
      </address>
    </author>
    <author fullname="Nick Buraglio">
      <organization>Energy Sciences Network</organization>
      <address>
        <email>buraglio@forwardingplane.net</email>
      </address>
    </author>
    <author fullname="Shaofu Peng">
      <organization>ZTE Corporation</organization>
      <address>
        <email>peng.shaofu@zte.com.cn</email>
      </address>
    </author>
    <date/>
    <area>Routing</area>
    <workgroup>Source Packet Routing in Networking</workgroup>
    <abstract>
      <?line 50?>

<t>This document describes a mechanism to achieve Multipath Traffic Engineering for Segment Routing based networks.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Source Packet Routing in Networking Working Group mailing list (spring@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/spring/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/astone282/draft-stone-spring-mpte-sr"/>.</t>
    </note>
  </front>
  <middle>
    <?line 54?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The document <xref target="I-D.draft-kompella-teas-mpte"/> introduces a multipath traffic engineering concept that combines the benefits of both Equal-Cost Multipath (ECMP)
forwarding and traffic-engineered paths. This approach uses a Directed Acyclic Graph (DAG) based forwarding mechanism, with the DAG signaled to participating network nodes.
The concept is to move beyond simple ECMP paths by incorporating both ECMP and non-ECMP paths while still adhering to traffic engineering constraints, to provide
added resiliency while also permitting better usage of link bandwidth.</t>
      <t><xref target="I-D.draft-kompella-teas-mpte"/> outlines the architecture design which can be applied to both distributed and centralized signaling for various tunnel types,
including MPLS, IP, and others while leaving the specific details of each out of scope.</t>
      <t>This document proposes and discusses a centralized computation and signaling mechanism for SR-based networks, primarily utilizing existing constructs and capabilities.
As MPTE evolves, new extensions to SR-based documents may be needed, both in terms of architecture and protocol-specific semantics.</t>
      <t>The document assumes the reader is familiar with <xref target="RFC8402"/>, <xref target="RFC9256"/>, and <xref target="I-D.draft-kompella-teas-mpte"/>.</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>
      <ul spacing="normal">
        <li>
          <t>For MPTE terminology such as MPTED, DAG, MC, MID, Junction node and others see <xref target="I-D.draft-kompella-teas-mpte"/>.</t>
        </li>
        <li>
          <t>For SR terminology see <xref target="RFC8402"/> and <xref target="RFC9256"/>.</t>
        </li>
      </ul>
    </section>
    <section anchor="mp-te-vs-multiple-sid-lists">
      <name>MP-TE vs Multiple SID lists</name>
      <t>It's important to recognize the SR Policy information model supports multiple SID lists, effectively encoding multiple unique paths on a tunnel at the ingress.
A Directed Acyclic Graph (DAG) can be represented as a collection of individual paths, each of which can be programmed as a separate SID list within an SR Policy Candidate Path.
However, depending on the graph topology, the number of unique paths to encode can grow significantly. Additionally, in traditional SID list approaches, hashing is performed only
at the ingress, rather than at each downstream node. In contrast, a DAG-based mechanism may allow better traffic distribution or localized tuning based on localized weight changes.
Finally, the maximum segment depth (MSD) may need to be considered for long paths that deviate significantly from the shortest path.</t>
      <t>In comparison, encoding a DAG’s forwarding instructions across the participating Junction nodes reduces the number of individual SID lists at the ingress,
but at the cost of increasing state in the network. While source-based routing aims to reduce network state,
there is a trade-off between the volume and length of SID lists versus distributing that state throughout the network to achieve multipath traffic engineering use cases.</t>
      <t>The choice between using multiple ingress segment lists or the MPTE DAG-based distribution mechanism depends on the traffic engineering requirements, overall network design, link/path metrics, and the DAG’s structure.</t>
    </section>
    <section anchor="mp-te-concepts-with-segment-routing">
      <name>MP-TE concepts with Segment Routing</name>
      <t>This document proposes the below concepts for applying MPTE in an SR environment.</t>
      <section anchor="mpted">
        <name>MPTED</name>
        <t>The MPTED is managed by a centralized controller, such as a PCE acting as the MC. Topology discovery is performed using BGP-LS <xref target="RFC7752"/>, while transport control plane signaling
is achieved through controller-oriented protocols such as PCEP <xref target="RFC5440"/>, <xref target="RFC8231"/> and BGP/BGP-LS <xref target="I-D.draft-ietf-idr-segment-routing-te-policy"/>, <xref target="I-D.draft-ietf-idr-bgp-ls-sr-policy"/>.
The MC computes, manages, and distributes all forwarding information to the nodes participating in the MPTE DAG, which form the MPTED.</t>
        <t><xref target="I-D.draft-kompella-teas-mpte"/> specifies that a node in the MPTED is identified by its IPv6 loopback address. However, this document allows the use of a 32-bit dotted quad router ID as an alternative.
This value represents the headend address of a node participating in the DAG.</t>
        <t>As per <xref target="I-D.draft-kompella-teas-mpte"/>, the controller acting as the MC is responsible for assigning the MPID and incrementing the MPTED unique ID version.</t>
      </section>
      <section anchor="junction-segment">
        <name>Junction Segment</name>
        <t>The concept of a Junction Segment is introduced to describe the signaling and forwarding behavior of a Junction node in an SR network.</t>
        <t>It’s worth noting that the architectural use of a Junction Segment is analogous to a Replication Segment <xref target="RFC9524"/>, but it performs forwarding based on load balancing rather than replication.</t>
        <t>A Junction Segment is installed on nodes identified as Junction Nodes, as defined in <xref target="I-D.draft-kompella-teas-mpte"/>.</t>
        <t>This document version proposes that a Junction Segment is realized using the existing SR Policy construct with a single Candidate Path and a Binding SID.</t>
        <t>A Binding Segment is attached to an SR Policy Candidate Path with one or more SID Lists. OIF instruction signaling is achieved via segment lists, where the top SID identifies the outgoing interface(s).</t>
        <t>Since a Junction Segment may egress to multiple downstream nodes, the endpoint of the corresponding SR Policy <bcp14>MUST</bcp14> be set to the null value (0.0.0.0).
Therefore, a Junction segment is identified by its &lt;headend, color&gt; attribute.</t>
        <t>This document assumes that the color value is mapped to the &lt;MID, Version&gt; tuple and is tracked by the controller.</t>
        <t>It is <bcp14>RECOMMENDED</bcp14> that a globally consistent color value be used across all Junction Segments that belong to a single DAG instance or that serve a common DAG intent.</t>
        <t>A DAG may consist of multiple Junction Segments that collectively represent a single DAG tunnel. This MP-TE tunnel is used by one or many SR Policies instantiated on one or many ingress nodes.
A Junction Segment may be reused by multiple ingress SR Policies, provided that the subgraph it forwards over is fully shared by all SR Policies using it, including the set of their respective egress nodes.</t>
        <t>The ingress SR Policy is responsible for initiating traffic steering into the DAG and is associated with a color value representing service intent. The junction segment, on the other hand,
is a DAG forwarding construct implemented as an SR Policy with a BSID.</t>
        <t>To support global optimization with make-before-break (MBB) operations across a set of ingress SR Policies, the color value used by Junction Segments <bcp14>SHOULD</bcp14> differ from the color values of the ingress SR Policies
that are consumers of the DAG. This distinction allows ingress SR Policies to independently manage service steering while enabling consistent forwarding behavior across the DAG.</t>
        <t>The controller is responsible for maintaining and tracking the association and semantic meaning of color values across all Junction Segments that participate in the DAG.
See Section 9.5 for additional discussion.</t>
        <t>Accordingly, an implementation <bcp14>SHOULD</bcp14> treat ingress SR Policies and Junction Segments as decoupled constructs, each with their own versioning and lifecycle.</t>
        <t>Since SR-based networks support specifying multiple egress interfaces using adjacency-SID sets and Node SIDs,
the Junction Segment <bcp14>MAY</bcp14> include a SID list entry that identifies multiple outgoing interfaces. In addition to egress interfaces,
<xref target="I-D.draft-kompella-teas-mpte"/> describes signaling ingress interfaces. The use of a Junction Segment omits the need for per-interface
ingress signaling as a single Binding Segment attached to an SR Policy is used. All upstream originated traffic sent to a downstream Junction Node
uses the same, single Junction Segment value which is a Binding Segment.</t>
      </section>
      <section anchor="mpte-sr-policy-tunnel-with-multiple-ingressegress">
        <name>MPTE SR Policy - Tunnel with multiple ingress/egress</name>
        <t><xref target="I-D.draft-kompella-teas-mpte"/> specifies that an MPTE Tunnel could have multiple ingress and/or multiple egress nodes. Currently, the SR Policy architecture defines an SR Policy using a {Headend, Endpoint, Color} tuple,
where the Endpoint may be set to the null value (0.0.0.0), indicating multiple destinations.</t>
        <t>For controller-initiated tunnels, the intended ingress and egress node(s) can be provided to the controller based on implementation-specific methods. These may be signaled to the network as
multiple tunnels to support multi-ingress scenarios. Each tunnel <bcp14>MAY</bcp14> use a null Endpoint value to support multi-egress.</t>
        <t>However, MPTE SR Policies that are originated or defined by network devices are typically limited to a single ingress and a single egress endpoint unless protocols such as PCEP or NETCONF are extended
to encode additional intended destination node(s) for controller-based path computation.</t>
        <t>As mentioned in section 4.2, the DAG tunnel may be re-used by multiple ingress SR Policies. This mechanism is used to support acheiving multiple ingress nodes originated from the network,
by way of the controller binding and attaching the ingress SR Policies to a pre-existing DAG sharing the same intent and endpoints.</t>
      </section>
    </section>
    <section anchor="operation">
      <name>Operation</name>
      <t>A path computation request or tunnel delegation notification is sent to the controller, specifying one or more ingress and egress nodes, along with constraints.
This request may originate from an ingress router in the network or be provisioned directly via an API to the controller.
This tunnel computation request or delegation pertains to an instance of an MPTE Tunnel achieved with the ingress SR Policy..</t>
      <t>The controller computes the DAG for ingress and all egress endpoints to determine all Junction nodes in the DAG to be used for the tunnel.</t>
      <t>The controller signals the Junction Segment(s) to all downstream nodes, starting with the penultimate egress hop node(s) and
working upwards toward the ingress nodes.</t>
      <t>Junction Segment deployments are in the form of a unicast SR Policy with a single Candidate Path using protocols such as PCEP, BGP, or NETCONF.
The optional use of an MPTED Reflector is protocol specific. For example, PCEP sessions terminate on each
and every Junction node in the topology and BGP may do the same or make use of a BGP Route Reflector.
A BSID <bcp14>MUST</bcp14> be explicitly requested or signaled to the Junction node for assignment. If the controller opts for local node assigned value, it <bcp14>MUST</bcp14> wait to signal
upstream Junction nodes about their Junction segments in their outgoing SID lists. The BSID value <bcp14>MAY</bcp14> be a constant value globally, if assigned by PCE/Controller,
or may be a different value on each Junction Node whether it’s assigned by PCE/Controller or the local Junction Node itself.</t>
      <t>Each SR Policy contains one or more SID lists. These SID lists must
include at least two segment identifiers: one SID for forwarding to the downstream Junction node and one for the Junction Segment value (BSID) of the downstream node.
For directly connected neighbors, this may be the adjacency or node SID for the neighbor. For Junction nodes that are not directly connected,
additional SIDs <bcp14>MAY</bcp14> be used to steer the packet along an ECMP or non-ECMP path to the downstream Junction node. It is worth noting that if the SID list comprises of
only an Adjacency-SID and the Junction SID of the neighbor node, then the dataplane packet contains only one SID on egress which is the Junction SID of the neighboring node.</t>
      <section anchor="example">
        <name>Example</name>
        <artwork><![CDATA[
                  +------+       +------+
                  |      |  10   |      |
              --- |  B   | ----- |  E   |--
             /    |      |       |      |  \
         10 /     +------+       +------+   \ 10
           /         | 10                    \
          /          |                        \
    +------+      +------+       +------+     +------+
    |      |      |      |       |      |     |      |
    |  A   | -----|  C   | ----- |  F   |---- |  H   |
    |      |  10  |      |   5   |      | 10  |      |
    +------+      +------+\     /+------+     +------+
          \         | |5    \ /    5|(Pruned)  /
           \        | |     / \     |         /
         20 \    +------+ /    \+------+     / 10
             \   |      |   5   |      |    /
              ---|  D   | ----- |  G   |---
                 |      |       |      |
                 +------+       +------+

          Figure 1 : Example Topology to apply DAG

]]></artwork>
        <t>Figure 1 presents a sample topology for one ingress and one egress MPTE Tunnel established as an SR Policy. The MPTE tunnel is from A to H.
The figure presents the bi-directional link weights for an arbitrary metric (IGP, TE, Delay etc).</t>
        <t>Note there is a mesh between C, D, F and G of weight 5 per link. Pruned represents an excluded link due to TE constraints. In the below, the terminology {u,v} represents a unidirectional link between U and V. The terminology Adj-SID-XY represents an adjacency SID from X to Y. Node-SID-X represents the node SID path to X.</t>
        <t>A MPTE DAG is computed to contain nodes B,C,D,E,F,G with the links {G, F} / {F, G} pruned.</t>
        <t>The below Junction Segments are deployed to the network realized with an SR Policy with a single Candidate Path containing multiple segment lists. Note the following:</t>
        <ul spacing="normal">
          <li>
            <t>When the DAG is computed, loops cannot exist. Therefore, in the above topology the links in direction {C, B} and {C,D} and {C,F} and {C,G} are chosen in the DAG.</t>
          </li>
          <li>
            <t>The path along {B,E,H} can be represented by a single Node SID. A Junction on node E is not required. Junction Segment B may also be omitted (as per Section 8 below) but is utilized here for example purposes.</t>
          </li>
          <li>
            <t>Junction F is described below, but an optimization could be performed to exclude Junction F as it only has one egress link (see Section 8 below).</t>
          </li>
          <li>
            <t>In practice the Binding Segments <bcp14>MAY</bcp14> be all the same value. This example describes different BSID values for readability.</t>
          </li>
          <li>
            <t>Weights of each egress SID list is also currently omitted.</t>
          </li>
          <li>
            <t>The color on the ingress SR Policy still provides intent steering for ingress traffic, therefore <bcp14>SHOULD</bcp14> be unique to the color value of the Junction segments comprising of the DAG to permit globalized make-before-break behavior.</t>
          </li>
        </ul>
        <artwork><![CDATA[
Junction Segment B:
  Color: 100
  BSID: BSID-B
  SID List 1: [Node-SID-H]

Junction Segment F:
  Color: 100
  BSID: BSID-F
  SID List 1: [Adj-SID-FH]

Junction Segment G:
  Color: 100
  BSID: BSID-G
  SID List 1: [Adj-SID-GH]

Junction Segment C:
  Color: 100
  BSID: BSID-C
  SID List 1: [Adj-SID-CB, BSID-B]
  SID List 2: [Adj-SID-CF, BSID-F]
  SID List 3: [Adj-SID-CG, BSID-G]
  SID List 4: [Node-SID-D, BSID-D]

Junction Segment D:
  Color: 100
  BSID: BSID-D
  SID List 2: [Adj-SID-DF, BSID-F]
  SID List 3: [Adj-SID-DG, BSID-G]

Then lastly, at ingress the SR Policy transport tunnel is configured with the following:

Ingress SR Policy (Using Junction Segments):
  Color: 50
  Candidate Path 1:
    SID List 1: [Adj-SID-AB, BSID-B]
    SID List 2: [Adj-SID-AC, BSID-C]
    SID List 3: [Adj-SID-AD, BSID-D]

]]></artwork>
        <t>In comparison, if the above DAG was encoded at ingress then the following individual segment lists could be used to represent the above DAG.
Note, some of the below could be compressed with a Node SID(s) but listed with adjacency for explicit example.</t>
        <artwork><![CDATA[
Ingress SR Policy (Ingress only):
  Color: 50
  Candidate Path 1:
    SID List 1: [Adj-SID-AC, Adj-SID-CF, Adj-SID-FH]
    SID List 2: [Adj-SID-AC, Node-SID-D, Adj-SID-DG, Adj-SID-GH]
    SID List 3: [Adj-SID-AC, Node-SID-D, Adj-SID-DF, Adj-SID-FH]
    SID List 4: [Adj-SID-AC, Adj-SID-CF, Adj-SID-CG, Adj-SID-GH]
    SID List 5: [Adj-SID-AC, Adj-SID-CF, Adj-SID-BE, Adj-SID-EH]
    SID List 6: [Adj-SID-AB, Node-SID-H]
    SID List 7: [Adj-SID-AD, Adj-SID-DG, Adj-SID-GH]
    SID List 8: [Adj-SID-AD, Adj-SID-DF, Adj-SID-FH]
]]></artwork>
      </section>
    </section>
    <section anchor="load-balancing">
      <name>Load-balancing</name>
      <t>When a packet with the BSID assigned to the Junction Segment is received at its Junction Node,
the node performs weighted ECMP (Equal-Cost Multi-Path) flow-based forwarding across all egress SID lists associated with the Junction Segment.</t>
      <t>As per <xref target="RFC9256"/> section 2.11, The fraction of the flows associated with a given segment list is w/Sw, where w is the weight of the segment
list and Sw is the sum of the weights of the segment lists. To exclude forwarding via a specific egress interface
while preserving the forwarding structure, a weight value of zero is assigned to the corresponding segment list.</t>
    </section>
    <section anchor="constraints">
      <name>Constraints</name>
      <t>When the controller computes the DAG, traffic engineering constraints <bcp14>MUST</bcp14> be considered. Links which violate the constraints are pruned from the DAG. Nodes which do not form
the DAG are not notified with any Junction segments.</t>
    </section>
    <section anchor="protection">
      <name>Protection</name>
      <t>As described in <xref target="I-D.draft-kompella-teas-mpte"/>, as there are multiple egress interfaces (SID Lists), the loss of one interface link does not result in traffic drops,
as long as one egress interface (SID List) remains although congestion may occur. For example, in Figure 1 Node C can
tolerate the lost of up to 3 egress links and traffic will still forward (potentially with congestion).</t>
      <t>If a Junction Node experiences a failure of all egress links (including any protection for those links), it will initially
blackhole traffic until upstream nodes are notified by the controller to remove the failed Junction node from the DAG.</t>
      <t>To reduce the risk of outages caused by single link failure, the controller <bcp14>MAY</bcp14> optimize DAG deployment by assigning
Junction Segments only to nodes with more than one egress segment list. In other words, if a node in the DAG has only one egress interface,
it functions solely as a transit node for an upstream Junction Segment and does not receive a Junction Segment itself.
For example, in Figure 1, Node E is omitted from receiving a Junction Segment as it only has 1 egress link.</t>
      <t>Link protection from an upstream Junction node to its downstream Junction nodes can be achieved using existing TI-LFA <xref target="I-D.draft-ietf-rtgwg-segment-routing-ti-lfa"/> mechanisms,
applied per egress SID List on each Junction Segment. Since the top SID(s) in each SID List identify the path to the
next downstream Junction node, TI-LFA is applicable. Effectively, TI-LFA is used to protect traffic between Junction Segments along a path
within the DAG and is not intended to protect traffic directed toward the DAG’s egress nodes or the entire DAG.</t>
      <t>Local computation for node protection on an upstream Junction node is not feasible, because it lacks visibility into the
DAG beyond the immediate downstream Junction node as it only knows the next Junction Segment.
A controller <bcp14>MAY</bcp14> be used to precompute backup SR Paths and signal these backup SID Lists to the upstream Junction segments.</t>
    </section>
    <section anchor="other-considerations">
      <name>Other considerations</name>
      <section anchor="hierarchy">
        <name>Hierarchy</name>
        <t>The use of Junction Segments to achieve a DAG can be used in hierarchical organization and sharing of DAGs between end-to-end tunnels.</t>
        <t>For instance, in a multi-area or multi-instance topology, one or more shared DAGs may be created per area, connecting the border ingress node(s) and egress node(s).
These DAGs can then be stitched together for use in an end-to-end SR tunnel.</t>
        <t>Figure 2 is an example of two independent SR Policy Tunnels from Headend A and Headend B terminating on Egress X.
An instance of a DAG with MID 100 can be configured between
ABR-1 and the Egress X node. ABR-1 Junction Segment which ingresses the DAG has a Binding Segment attached, for
example BSID-100. Therefore, the SID list on Headend A and Headend B SID lists would contain
the SR Path (ex: Node-SID-ABR-1) to reach ABR 1 followed by BSID-100. The instruction set from each Headend to ABR 1
could also be another instance of a DAG, either for independent use or shared.</t>
        <artwork><![CDATA[
          -------------------------------------------------------------
          |                             |                             |
          |                             |                             |
     +-------+                          |             ---\            |
     |       |--\     Path 1            |         ---/  | ---\        |
     |Headend|   ----\                  |     ---/   -----\   --\     |
     |   A   |         ----\         +-----+-/   ---/      ---\  --+------+
     +-------+              ----\    |     |  --/   -------|   --  |      |
          |                      --- | ABR |  -------------------  |Egress|
          |                      --- |  1  |        |DAG-100       |  X   |
     +-------+              ----/    +-----+ --\    |        ----- +------+
     |       |        -----/            |  -\   ----\-------/     --  |
     |Headend|   ----/                  |    --\     ---       --/    |
     |   B   |--/     Path 2            |       -\   |      --/       |
     +-------+                          |         --\    --/          |
          |                             |            ---/             |
          |                             |                             |
          -------------------------------------------------------------
                   Domain/Area 1                  Domain/Area 2

                             Figure 2 : Reusable DAG 100
]]></artwork>
      </section>
      <section anchor="directly-connected-junction-nodes">
        <name>Directly connected Junction nodes</name>
        <t>As described in the Operational section, all transit nodes in a DAG <bcp14>MAY</bcp14> be signaled with a Junction Segment.
Alternatively depending on the topological graph and TE requirements, two Junction segments may be interconnected via an
SR Path, with a SID list, where the SR Path itself may
correspond to an ECMP or TE Path.</t>
      </section>
      <section anchor="broadcast-links">
        <name>Broadcast links</name>
        <t>SR networks abstract broadcast links with the use point to point adjacency segments identifying each neighbor. Specifying a DAG which
contains a broadcast link is feasible as an adjacency segment can be used to identify
the neighboring Junction node on the broadcast link. The outgoing SID List of the Junction Segment simply contains the adjacency SID
of the next-hop neighbor on the broadcast link.</t>
      </section>
    </section>
    <section anchor="optimization">
      <name>Optimization</name>
      <section anchor="local-optimization">
        <name>Local optimization</name>
        <t>Local optimization refers to updates applied to a single Junction node that can be performed without requiring
coordinated updates across multiple nodes in the DAG. These operations are considered safe when they do not
introduce forwarding loops or cause reachability interruptions within the DAG.</t>
        <t>Examples of local optimizations include:</t>
        <ul spacing="normal">
          <li>
            <t>Manipulating the weight distribution of the outgoing SID lists</t>
          </li>
          <li>
            <t>Replacing an existing SID list with a more optimal one (e.g. using a new adjacency SID or updated SR path to the next Junction node).</t>
          </li>
          <li>
            <t>Adding a new SID list toward an egress node that is not itself a Junction node.</t>
          </li>
          <li>
            <t>Removing a SID list, provided that at least one other outgoing SID list remains active.</t>
          </li>
          <li>
            <t>Adding a new SID list to a Junction node that connects to a new downstream sub-graph which is not yet connected to the DAG structure.</t>
          </li>
        </ul>
        <t>While these operations are scoped to a single node, their correct application may still require awareness of the surrounding DAG structure
to avoid introducing loops or reachability issues. For instance, the addition of a new SID list may require confirmation that the new sub-graph
is not already part of the DAG, or that it connects loop free.</t>
        <t>Local optimizations may also be chained in sequence across multiple nodes. When each step maintains loop free and reachable properties,
such a chain of updates is still considered local in nature.</t>
        <t>For example:</t>
        <ul spacing="normal">
          <li>
            <t>Cleaning up a upstream disconnected sub-graph following the removal of an upstream SID list (BSID is no longer used)</t>
          </li>
        </ul>
        <t>It is important to note that local optimization differs from global optimization in that it does not require versioning or re-signaling of the entire DAG structure.</t>
        <t>Since a Junction Segment is realized via an SR Policy, the controller leverages existing protocol mechanisms to update a Junction segment forwarding
instructions, as the Junction Segment itself is represented as a candidate path within the SR Policy. When updating an existing candidate path,
the binding SID <bcp14>MUST NOT</bcp14> change, as doing so would cause traffic using that binding SID to drop until upstream consumers are updated.
Such a change should instead be treated as a global optimization, not a local one.</t>
        <t>Multiple candidate paths could be used to support more comprehensive local optimizations. However, caution is required in how the MPTED version
is encoded and how version increments are signaled, since candidate paths are signaled within the context of the SR Policy.</t>
        <t>If the same color value is reused and a new candidate path is deployed, the new candidate path will not be installed in the forwarding plane
until the existing one is removed, as only one candidate path may be active per SR Policy. This operation may not be hitless, depending on hardware implementation.</t>
        <t>Alternatively, if a different color value is used, the new candidate path may be allowed to go active. However, it will still fail to do so since it should be using
the same binding SID as the existing candidate path. This results in a collision, rendering the new path ineligible, and may also violate
protocol constraints that prohibit such configurations.</t>
        <t>Therefore, it is <bcp14>RECOMMENDED</bcp14> that local optimization be performed by updating the SID list of the existing candidate path, rather than introducing new candidate paths.</t>
        <section anchor="local-optimization-example">
          <name>Local optimization Example</name>
          <t>The following examples use the topology example specified in Figure 1 and section 5.1.</t>
          <t>Example 1 – Simple SID list update</t>
          <ul spacing="normal">
            <li>
              <t>The Junction Segment B is updated. The SID list [Node-SID-H] is replaced with SID List [Adj-SID-BE, Adj-SID-EH]</t>
            </li>
          </ul>
          <t>Example 2 – Chained Local Optimization</t>
          <ul spacing="normal">
            <li>
              <t>The ingress SR Policy SID list is updated to remove { SID List 1: [Adj-SID-AB, BSID-B] }. Only SID List 2 and SID List 3 remain in the SR Policy candidate path</t>
            </li>
            <li>
              <t>The Junction Segment B is no longer used.</t>
            </li>
            <li>
              <t>A delete is sent to remove Junction Segment B</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="global-optimization">
        <name>Global optimization</name>
        <t>Global optimization of a DAG requires coordinated updates across all participating Junction Nodes.
This process follows a make-before-break model, where a new version of the DAG is deployed alongside the existing one.
The ingress SR Policy (or policies) is the last element to be updated.</t>
        <t>Since the Color field of an SR Policy indicates DAG membership, and is managed by the controller, global optimization
with make-before-break considerations necessitates deploying new Junction segments. This, in turn, requires the instantiation
of new SR Policies with unique Color values. These new SR Policies are deployed to all Junction Nodes participating in the
updated DAG instance and must be associated with distinct Binding SID values from those of the existing instance.</t>
        <t>To minimize version churn and both color and label consumption, it is <bcp14>RECOMMENDED</bcp14> that controllers limit the number of
concurrently deployed DAG versions for a given Multi-Point-to-Edge (MPTE) tunnel. Under normal conditions, only a single active
DAG version should exist. During transitions, at most two versions (the current and the new one) should be present. Color and label values may be reused once globally released.</t>
        <t>The Binding SID associated with a DAG instance <bcp14>MUST</bcp14> remain constant during local optimizations, but <bcp14>MUST</bcp14> change during global optimizations to avoid the risk of routing loops. Therefore, in the example
above, if a Junction Node is participating in DAG #1, version #1 would be using one binding SID value and version #2 is using another.</t>
        <t>Once all Junction segments are deployed to all Junction nodes, the ingress node is updated with new SID lists referencing the Binding SIDs of the new Junction segments downstream.</t>
        <t>The Color field on ingress nodes is critical for traffic steering and therefore <bcp14>MUST</bcp14> remain constant during global optimizations. In contrast, Color values used on Junction Nodes
<bcp14>MAY</bcp14> be reused or encoded to reflect DAG membership or instance mappings. Similarly, the binding SID on the ingress SR Policy also remains constant.</t>
        <t>The controller tracks the Color values and their corresponding usage for DAG ID and version. For example:</t>
        <ul spacing="normal">
          <li>
            <t>Color value 500 – DAG #1 – Version #1</t>
          </li>
          <li>
            <t>Color value 501 – DAG #2 – Version #1</t>
          </li>
          <li>
            <t>Color value 502 – DAG #1 – Version #2</t>
          </li>
        </ul>
        <t>When performing global updates, controllers <bcp14>SHOULD</bcp14> ensure that all Junction Nodes are updated in a coordinated and consistent manner before activating the new DAG on the ingress.
If the update process fails partially, the controller <bcp14>SHOULD</bcp14> roll back the new deployment and retain the existing
stable DAG version and it's Junction Segments to avoid inconsistencies in forwarding behavior.</t>
        <section anchor="global-optimization-example">
          <name>Global Optimization Example</name>
          <artwork><![CDATA[
    +------+      +------+       +------+     +------+
    |      |      |      |       |      |     |      |
    |  Z   | -----|  Y   | ----- |  X   |---- |  W   |
    |      |      |      |       |      |     |      |
    +------+      +------+       +------+     +------+
          \          |     \       |          /
           \         |      \      |         /
            \    +------+     \ +------+     /
             \   |      |       |      |    /
              ---|  V   | ----- |  U   |---
                 |      |       |      |
                 +------+       +------+

          Figure 3 : Global MBB Example Topology

]]></artwork>
          <t><strong>Step 0 - Initial State</strong></t>
          <t>Figure 3 gives an example topology containing a DAG which is to undergo optimization.
Node Z is the ingress Node with an SR Policy color 1000 representing a service intent. Node W is the egress node.
Color 2000 is the DAG MID and version tracked by the controller. In the existing state of the DAG, traffic flows from west to east, and north to south on nodes Y and X. The diagonal link
between Y and U is currently not used.</t>
          <artwork><![CDATA[
Junction Segment Y1:
  Color: 2000
  BSID: BSID-Y1
  SID List 1: [Adj-SID-YX, BSID-X1]
  SID List 2: [Adj-SID-YV, Adj-SID-VU]

Junction Segment X1:
  Color: 2000
  BSID: BSID-X1
  SID List 1: [Adj-SID-XW]
  SID List 2: [Adj-SID-XU, Adj-SID-UW]

Ingress SR Policy:
  Color: 1000
  Candidate Path 1:
  SID List 1: [Adj-SID-ZY, BSID-Y1]
  SID List 2: [Adj-SID-ZV, Adj-SID-VU, Adj-SID-UW]
]]></artwork>
          <t><strong>Step 1 - Deploy new Junction Segments</strong></t>
          <t>An optimization calculation occurs requiring the DAG to change, the traffic will now flow from south to north instead of north to south, and the diagonal link between Y and U will be used.</t>
          <t>The controller assigns and tracks color 2001 for the new DAG. The following new Junction segments are deployed in the following order. The BSID values are either assigned by the controller,
or requested by the node depending on the protocol in use. Note that after this deployment node Y has two Junction segments installed on it, both of which are active.</t>
          <artwork><![CDATA[
CREATE Junction Segment U2:
  Color: 2001
  BSID: BSID-U2
  SID List 1: [Adj-SID-UX, ADJ-SID-XW]
  SID List 2: [Adj-SID-UW]

CREATE Junction Segment Y2:
  Color: 2001
  BSID: BSID-Y2
  SID List 1: [Adj-SID-YX, ADJ-SID-XW]
  SID List 2: [Adj-SID-YU, BSID-U2]

CREATE Junction Segment V2:
  Color: 2001
  BSID: BSID-V2
  SID List 1: [Adj-SID-VY, BSID-Y2]
  SID List 2: [Adj-SID-VU, BSID-U2]
]]></artwork>
          <t><strong>Step 2 - Update ingress nodes</strong></t>
          <t>The existing SR Policy candidate path is updated to use the new DAG. Note, the color and any associated binding SID values remain.</t>
          <artwork><![CDATA[
UPDATE Ingress SR Policy:
  Color: 1000
  Candidate Path 1:
    SID List 1: [Adj-SID-ZY, BSID-Y2]
    SID List 2: [Adj-SID-ZV, BSID-V2]
]]></artwork>
          <t><strong>Step 3 - Delete the no longer used Junction segments</strong></t>
          <artwork><![CDATA[
DELETE Junction Segment Y1:
  Color: 2000
  BSID: BSID-Y1

DELETE Junction Segment X1:
  Color: 2000
  BSID: BSID-X1
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO</t>
    </section>
    <section anchor="manageability-considerations">
      <name>Manageability Considerations</name>
      <t>This document currently proposes using the existing SR Policy construct with a color value representing the DAG MID and version.
Since SR Policy color value is originally intended for ingress traffic
steering on matched routers, a deployment <bcp14>MUST</bcp14> allocate a color range which will be used for MPTE and <bcp14>MUST NOT</bcp14> be assigned
to any advertised routes in the network.</t>
      <t>TODO</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>None at this time</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.draft-kompella-teas-mpte">
          <front>
            <title>Multipath Traffic Engineering</title>
            <author fullname="Kireeti Kompella" initials="K." surname="Kompella">
              <organization>Juniper Networks</organization>
            </author>
            <author fullname="Luay Jalil" initials="L." surname="Jalil">
              <organization>Verizon</organization>
            </author>
            <author fullname="Mazen Khaddam" initials="M." surname="Khaddam">
              <organization>Cox Communications</organization>
            </author>
            <author fullname="Andy Smith" initials="A." surname="Smith">
              <organization>Oracle Cloud Infrastructure</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   Shortest path routing offers an easy-to-understand, easy-to-implement
   method of establishing loop-free connectivity in a network, but
   offers few other features.  Equal-cost multipath (ECMP), a simple
   extension, uses multiple equal-cost paths between any two points in a
   network: at any node in a path (really, Directed Acyclic Graph),
   traffic can be (typically equally) load-balanced among the next hops.
   ECMP is easy to add on to shortest path routing, and offers a few
   more features, such as resiliency and load distribution, but the
   feature set is still quite limited.

   Traffic Engineering (TE), on the other hand, offers a very rich
   toolkit for managing traffic flows and the paths they take in a
   network.  A TE network can have link attributes such as bandwidth,
   colors, risk groups and alternate metrics.  A TE path can use these
   attributes to include or avoid certain links, increase path
   diversity, manage bandwidth reservations, improve service experience,
   and offer protection paths.  However, TE typically doesn't offer
   multipathing as the tunnels used to implement TE usually take a
   single path.

   This memo proposes multipath traffic-engineering (MPTE), combining
   the best of ECMP and TE.  The multipathing proposed here need not be
   strictly equal-cost, nor the load balancing equally weighted to each
   next hop.  Moreover, the desired destination may be reachable via
   multiple egresses.  The proposal includes a protocol for signaling
   MPTE paths using various types of tunnels, some of which are better
   suited to multipathing.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-kompella-teas-mpte-01"/>
        </reference>
        <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="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>
        <reference anchor="RFC5440">
          <front>
            <title>Path Computation Element (PCE) Communication Protocol (PCEP)</title>
            <author fullname="JP. Vasseur" initials="JP." role="editor" surname="Vasseur"/>
            <author fullname="JL. Le Roux" initials="JL." role="editor" surname="Le Roux"/>
            <date month="March" year="2009"/>
            <abstract>
              <t>This document specifies the Path Computation Element (PCE) Communication Protocol (PCEP) for communications between a Path Computation Client (PCC) and a PCE, or between two PCEs. Such interactions include path computation requests and path computation replies as well as notifications of specific states related to the use of a PCE in the context of Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineering. PCEP is designed to be flexible and extensible so as to easily allow for the addition of further messages and objects, should further requirements be expressed in the future. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5440"/>
          <seriesInfo name="DOI" value="10.17487/RFC5440"/>
        </reference>
        <reference anchor="RFC8231">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for Stateful PCE</title>
            <author fullname="E. Crabbe" initials="E." surname="Crabbe"/>
            <author fullname="I. Minei" initials="I." surname="Minei"/>
            <author fullname="J. Medved" initials="J." surname="Medved"/>
            <author fullname="R. Varga" initials="R." surname="Varga"/>
            <date month="September" year="2017"/>
            <abstract>
              <t>The Path Computation Element Communication Protocol (PCEP) provides mechanisms for Path Computation Elements (PCEs) to perform path computations in response to Path Computation Client (PCC) requests.</t>
              <t>Although PCEP explicitly makes no assumptions regarding the information available to the PCE, it also makes no provisions for PCE control of timing and sequence of path computations within and across PCEP sessions. This document describes a set of extensions to PCEP to enable stateful control of MPLS-TE and GMPLS Label Switched Paths (LSPs) via PCEP.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8231"/>
          <seriesInfo name="DOI" value="10.17487/RFC8231"/>
        </reference>
        <reference anchor="RFC7752">
          <front>
            <title>North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP</title>
            <author fullname="H. Gredler" initials="H." role="editor" surname="Gredler"/>
            <author fullname="J. Medved" initials="J." surname="Medved"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <author fullname="S. Ray" initials="S." surname="Ray"/>
            <date month="March" year="2016"/>
            <abstract>
              <t>In a number of environments, a component external to a network is called upon to perform computations based on the network topology and current state of the connections within the network, including Traffic Engineering (TE) information. This is information typically distributed by IGP routing protocols within the network.</t>
              <t>This document describes a mechanism by which link-state and TE information can be collected from networks and shared with external components using the BGP routing protocol. This is achieved using a new BGP Network Layer Reachability Information (NLRI) encoding format. The mechanism is applicable to physical and virtual IGP links. The mechanism described is subject to policy control.</t>
              <t>Applications of this technique include Application-Layer Traffic Optimization (ALTO) servers and Path Computation Elements (PCEs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7752"/>
          <seriesInfo name="DOI" value="10.17487/RFC7752"/>
        </reference>
        <reference anchor="I-D.draft-ietf-idr-segment-routing-te-policy">
          <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.draft-ietf-idr-bgp-ls-sr-policy">
          <front>
            <title>Advertisement of Segment Routing Policies using BGP Link-State</title>
            <author fullname="Stefano Previdi" initials="S." surname="Previdi">
              <organization>Individual</organization>
            </author>
            <author fullname="Ketan Talaulikar" initials="K." surname="Talaulikar">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Jie Dong" initials="J." surname="Dong">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Hannes Gredler" initials="H." surname="Gredler">
              <organization>RtBrick Inc.</organization>
            </author>
            <author fullname="Jeff Tantsura" initials="J." surname="Tantsura">
              <organization>Nvidia</organization>
            </author>
            <date day="6" month="March" year="2025"/>
            <abstract>
              <t>   This document describes a mechanism to collect the Segment Routing
   Policy information that is locally available in a node and advertise
   it into BGP Link-State (BGP-LS) updates.  Such information can be
   used by external components for path computation, re-optimization,
   service placement, network visualization, etc.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-ls-sr-policy-17"/>
        </reference>
        <reference anchor="I-D.draft-ietf-rtgwg-segment-routing-ti-lfa">
          <front>
            <title>Topology Independent Fast Reroute using Segment Routing</title>
            <author fullname="Ahmed Bashandy" initials="A." surname="Bashandy">
              <organization>Individual</organization>
            </author>
            <author fullname="Stephane Litkowski" initials="S." surname="Litkowski">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Pierre Francois" initials="P." surname="Francois">
              <organization>INSA Lyon</organization>
            </author>
            <author fullname="Bruno Decraene" initials="B." surname="Decraene">
              <organization>Orange</organization>
            </author>
            <author fullname="Daniel Voyer" initials="D." surname="Voyer">
              <organization>Bell Canada</organization>
            </author>
            <date day="12" month="February" year="2025"/>
            <abstract>
              <t>   This document presents Topology Independent Loop-free Alternate Fast
   Reroute (TI-LFA), aimed at providing protection of node and adjacency
   segments within the Segment Routing (SR) framework.  This Fast
   Reroute (FRR) behavior builds on proven IP Fast Reroute concepts
   being LFAs, remote LFAs (RLFA), and remote LFAs with directed
   forwarding (DLFA).  It extends these concepts to provide guaranteed
   coverage in any two-connected networks using a link-state IGP.  An
   important aspect of TI-LFA is the FRR path selection approach
   establishing protection over the expected post-convergence paths from
   the point of local repair, reducing the operational need to control
   the tie-breaks among various FRR options.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rtgwg-segment-routing-ti-lfa-21"/>
        </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="RFC9524">
          <front>
            <title>Segment Routing Replication for Multipoint Service Delivery</title>
            <author fullname="D. Voyer" initials="D." role="editor" surname="Voyer"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="R. Parekh" initials="R." surname="Parekh"/>
            <author fullname="H. Bidgoli" initials="H." surname="Bidgoli"/>
            <author fullname="Z. Zhang" initials="Z." surname="Zhang"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document describes the Segment Routing Replication segment for multipoint service delivery. A Replication segment allows a packet to be replicated from a replication node to downstream nodes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9524"/>
          <seriesInfo name="DOI" value="10.17487/RFC9524"/>
        </reference>
      </references>
    </references>
    <?line 617?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>None at this time</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
gQAA

-->

</rfc>
