<?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-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="spring-mpte-sr">Multipath Traffic Engineering for Segment Routing</title>
    <seriesInfo name="Internet-Draft" value="draft-stone-spring-mpte-sr-00"/>
    <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>
    <date/>
    <area>Routing</area>
    <workgroup>Source Packet Routing in Networking</workgroup>
    <abstract>
      <?line 41?>

<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 45?>

<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.
Future document versions may evolve the Junction segment into its own explicit segment type as opposed to leveraging the existing SR Policy constructs.
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. This document currently assumes that the color value be encoded with both the MID and version.
However, further updates may include additional encoding of these independent values in the SR Policy model.</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. Extensions to the SR Policy architecture may be needed to support signaling of multiple intended destinations for path computation.</t>
        <t>Support for network-originated or device-defined MPTE SR Policies with multiple ingress nodes is currently out of scope.</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 MPTED, which is assigned an identifier and a version.</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 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.</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.</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. A generalized mechanism to optimize
the DAG distribution could omit Junction segments if the Junction segment contains only one egress SID list.</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>
        </ul>
        <artwork><![CDATA[
Junction Segment B:
  BSID: BSID-B
  SID List 1: [Node-SID-H]

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

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

Junction Segment C:
  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:
  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):
  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):
  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 ingress, the node performs weighted ECMP forwarding among all egress SID lists associated with the SR Policy.</t>
      <t>It is worth noting that <xref target="I-D.draft-kompella-teas-mpte"/> introduces the concepts of both unequal weight balancing and 0 weight to omit forwarding out of an egress interface while maintaining the instruction signaling.
The 0 weight capability is not supported in the current SR Policy model and may be considered in future updates to this document.</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 an interface link does not result in traffic drops
as long as one egress interface (SID List) remains, although congestion may occur.</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. Since the top SID(s) in each SID List identify the path to the next downstream Junction node, TI-LFA is applicable.</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>
      <t>In a situation where a downstream Junction node experiences system or connectivity failure, the upstream Junction node will begin to blackhole the traffic until a notification can be sent to upstream nodes to remove
the Junction node from the DAG.</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 adjcency 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 anchor="local-optimization">
        <name>Local optimization</name>
        <t>An individual Junction Segment can be optimized by adding new SID lists for downstream neighbors in the DAG or removing downstream nodes.
Additionally, the SR path between two Junction nodes whether directly or indirectly connected may also be updated. The controller utilizes
existing protocol mechanisms to update the forwarding instructions of the Junction Segment.</t>
        <t>Multiple candidate paths can be used to facilitate local optimization. However, care must be taken regarding how the MPTED version is encoded and how version increments are signaled.
Specifically, if the MPTED version is encoded in the color attribute or another attribute of the SR Policy, rather than within the Candidate Path itself, multiple Candidate Paths
<bcp14>SHOULD NOT</bcp14> be used when an operation requires incrementing the MPTED version to maintain consistency.</t>
        <t>The implications of MPTED version encoding and management will be further addressed in future versions of this document.</t>
      </section>
      <section anchor="global-optimization">
        <name>Global optimization</name>
        <t>Reoptimizing the DAG requires potentially redeploying all new Junction Segments network wide in a coordinated, make before break manner.</t>
        <t>Since the DAG MID and version are encoded in the color field of an SR Policy, globally optimizing a DAG with make-before-break considerations requires
deploying new Junction segments as SR Policies with unique color values to all Junction nodes of the new DAG. After all of the new Junction segments are deployed,
the ingress node can be updated with new SID lists which utilize the new DAG Junction segments of its's neighbors.</t>
        <t>TODO This section needs further discussion.</t>
        <t>TODO</t>
      </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="3" month="March" 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-00"/>
        </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 391?>

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

-->

</rfc>
