<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-kompella-teas-mpte-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="MPTE">Multipath Traffic Engineering</title>

    <author initials="K." surname="Kompella" fullname="Kireeti Kompella">
      <organization>HPE</organization>
      <address>
        <postal>
          <city>Sunnyvale</city>
          <region>California</region>
          <code>94089</code>
          <country>United States of America</country>
        </postal>
        <email>kireeti.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="L." surname="Jalil" fullname="Luay Jalil">
      <organization>Verizon</organization>
      <address>
        <postal>
          <city>Richardson</city>
          <region>Texas</region>
          <code>75081</code>
          <country>United States of America</country>
        </postal>
        <email>luay.jalil@verizon.com</email>
      </address>
    </author>
    <author initials="M." surname="Khaddam" fullname="Mazen Khaddam">
      <organization>Cox Communications</organization>
      <address>
        <postal>
          <city>Atlanta</city>
          <region>Georgia</region>
          <code>30328</code>
          <country>United States of America</country>
        </postal>
        <email>mazen.khaddam@cox.com</email>
      </address>
    </author>
    <author initials="N." surname="Geyer" fullname="Nik Geyer">
      <organization>CoreWeave</organization>
      <address>
        <postal>
          <city>Livingston</city>
          <region>NJ</region>
          <code>07039</code>
          <country>United States of America</country>
        </postal>
        <email>ngeyer@coreweave.com</email>
      </address>
    </author>
    <author initials="A. J." surname="Smith" fullname="Andy J. Smith">
      <organization>Arrcus, Inc.</organization>
      <address>
        <postal>
          <city>Philadelphia</city>
          <region>Pennsylvania</region>
          <code>19104</code>
          <country>United States of America</country>
        </postal>
        <email>andy@arrcus.com</email>
      </address>
    </author>

    <date year="2026"/>

    <area>Routing</area>
    <workgroup>TEAS WG</workgroup>
    <keyword>multipath, traffic engineering</keyword>

    <abstract>


<?line 73?>

<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.</t>

<t>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.</t>

<t>This memo proposes multipath traffic-engineering (MPTE), combining the best of ECMP and TE. The multipathing proposed here need not be strictly equal-cost, allowing for some "slack" to admit more paths. The load balancing at each hop is optimally weighted to each next hop rather than always being equally weighted. Moreover, traffic can enter and leave an MPTE construct via multiple ingresses and egresses. The proposal includes several choices of control and data planes.</t>



    </abstract>



  </front>

  <middle>


<?line 81?>

<section anchor="intro"><name>Introduction</name>

<t>Operators managing traffic within their networks have several tools, among them:</t>

<t><list style="numbers" type="1">
  <t>Equal-cost Multipath (ECMP): balance traffic along multiple paths. This yields some resilience and some traffic management, as traffic can be load-balanced across multiple paths. To use ECMP effectively, one may have to adjust link metrics to allow multiple paths to have the same overall distance.</t>
  <t>Traffic Engineering (TE): state constraints for a path from an ingress router to an egress router, and let a path computation engine compute it. This gives much greater control over the nodes and links traversed, but is usually limited to finding a single path from ingress to egress <xref target="RFC2702"/>.</t>
  <t>Multi-egress: allow traffic from an ingress router to a destination dst to use several egress routers, all of which have routes to that destination. dst may be an Internet prefix <xref target="RFC4271"/>, a VPN prefix <xref target="RFC4364"/>, an EVPN address <xref target="RFC7432"/>, a VPLS site <xref target="RFC4761"/>, <xref target="RFC4762"/> or some other service destination. For BGP-signaled destinations, this requires that the BGP tie-breaking algorithm yield multiple results (rather than a single one), all of which become candidates for egress.</t>
  <t>Multi-ingress: consider multiple ingress routers as "equivalent" with respect to some of the traffic they sent to one or more egress routers. For example, an eBGP peer router or a VPN site may be multi-homed to several ingress routers, all of which would send such traffic to the same set of egress routers.</t>
</list></t>

<t><xref target="RFC2702"/> describes requirements for MPLS-based TE, and thus is relevant to this memo. However, the authors focus on paths. This is further emphasized by the notion of a Label Switched Path, which is used to implement MPLS-based TE. RSVP-TE (<xref target="RFC3209"/>), the protocol designed to meet the requirements of <xref target="RFC2702"/>, builds a path from one ingress to one egress (for unicast traffic).</t>

<section anchor="existing-approaches-to-multipathing-in-te-networks"><name>Existing Approaches to Multipathing in TE Networks</name>

<t>Multipathing has traditionally been realized in TE networks by establishing multiple TE paths between a pair of endpoints and distributing traffic across them.  For example, Section 5.6.5 of <xref target="RFC2702"/> describes the use of multiple parallel traffic trunks between two nodes, with each trunk carrying a proportion of the aggregate traffic.  In MPLS TE networks, this can be realized using multiple parallel TE LSPs between the same ingress and egress.  Such LSPs may be explicitly provisioned by an operator or automatically created and maintained by an implementation and grouped under a common "container" construct.  <xref target="RFC4974"/> also notes that a TE tunnel may be supported by multiple parallel LSPs for purposes including load balancing.  Traffic arriving at the ingress can then be distributed across these LSPs, while each LSP may be independently computed subject to its TE objectives and constraints.</t>

<t>Segment Routing (SR) Policies <xref target="RFC9256"/> provide another approach for realizing multiple TE paths with a common intent.  An SR Policy is instantiated at an ingress and may have an active candidate path comprising a set of segment lists, where each segment list represents a source-routed path from the ingress toward the policy endpoint.  Each segment list is associated with a weight, and traffic steered onto the SR Policy is distributed across the segment lists using weighted load balacing according to their relative weights.  <xref target="RFC9256"/> also defines a composite candidate path that can group multiple constituent SR Policies and distribute traffic among them according to their relative weights. (Note that SR-MPLS and SRv6 do not inherently support bandwidth reservations and management, which is a key requirement of <xref target="RFC2702"/>; this can be augmented using an external controller to do the entire task of bandwidth management. This function is an intrinsic aspect of RSVP-TE.)</t>

<t>A common characteristic of these approaches is that for a given packet (or flow), one of the explicitly represented TE alternatives is selected, and traffic is sent to it, at the ingress. In the parallel-LSP model, the ingress distributes traffic across a set of TE LSPs.  In the SR Policy model, the ingress distributes traffic across the segment lists of the active candidate path, or across constituent SR Policies in the case of a composite candidate path.  Thus, the TE multipath decision is primarily (or entirely) an ingress function.</t>

<t>The multipathing described in this document differs from this model.  Rather than representing multipathing as a collection of parallel end-to-end TE paths with traffic distribution primarily at the ingress, MPTE represents the TE forwarding construct as a Directed Acyclic Graph (DAG).  A junction within the DAG may have multiple outgoing branches and may independently distribute traffic among those branches according to the load shares associated with the DAG.  Consequently, weighted multipath forwarding can occur at multiple junctions within the TE construct, rather than only when traffic enters it.</t>

<t>This distinction allows paths through the TE construct to diverge and subsequently converge while naturally sharing forwarding state and network resources within the DAG.  It also avoids requiring each possible end-to-end path through the multipath construct to be represented and managed as an independent TE path.</t>

<t>In order to satisfy the constraints, TE often uses non-shortest paths. To do so without looplng packets, a tunnel is used. Such tunnels have to be signaled. RSVP-TE is a signaling protocol for MPLS-based tunnels.</t>

<t>In this memo, we introduce a new tool: multipath TE (MPTE). This allows an operator to specify constraints for paths (as in TE), specify multiple ingresses and egresses, and use multiple paths from ingress to egress. Effectively, MPTE combines the advantages of the four tools above. The resulting set of paths from ingresses to egresses is a Directed Acyclic Graph (DAG), here called an MPTE DAG or MPTED. Finally, this memo allows the use of multiple types of tunnels. The main contribution of this memo is the notion of a (multipath) unicast tunnel across an MPTED, called an MPTE tunnel or MPTET, and an overview of how they are created. Protocols for provisioning such tunnels will be specified in companion documents. Another companion document defines how to distribute MPTE capabilities in an IGP so that entities computing MPTEDs can know which nodes to include in the DAG.</t>

</section>
<section anchor="terminology"><name>Terminology</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?></t>

<section anchor="definition-of-commonly-used-terms"><name>Definition of Commonly Used Terms</name>

<t>This section provides definitions for terms and abbreviations that have a specific meaning to the MPTE protocol and that are used throughout this memo.</t>

<dl>
  <dt>constraints:</dt>
  <dd>
    <t>desired properties of paths between ingresses and egresses.</t>
  </dd>
  <dt>constrained shortest path first (CSPF):</dt>
  <dd>
    <t>A modification to SPF to take into account TE constraints.</t>
  </dd>
  <dt>directed acyclic graph (DAG):</dt>
  <dd>
    <t>a directed graph that has no cycles. The result of a multipath SPF or CSPF computation is a DAG.</t>
  </dd>
  <dt>directed graph:</dt>
  <dd>
    <t>a set of nodes and directed links. A network is represented by a directed graph.</t>
  </dd>
  <dt>egress:</dt>
  <dd>
    <t>an end node of an MPTE DAG.</t>
  </dd>
  <dt>equal-cost multipath (ECMP):</dt>
  <dd>
    <t>a DAG consisting of shortest paths from an ingress to an egress.</t>
  </dd>
  <dt>flow-aware load balancing (FALB):</dt>
  <dd>
    <t>load balancing that maps packets that belong to a given flow onto the same path. What consitutes a flow depends on the type of traffic; for IP traffic, a flow is typically defined by the 5-tuple &lt;source IP, dest IP, protocol type, source port, dest port&gt;.</t>
  </dd>
  <dt>ingress:</dt>
  <dd>
    <t>a starting node of an MPTE DAG.</t>
  </dd>
  <dt>label-switched path (LSP):</dt>
  <dd>
    <t>an MPLS tunnel from an ingress to one or more egresses.</t>
  </dd>
  <dt>link:</dt>
  <dd>
    <t>A (directed) edge between two nodes. A pair of nodes may have 0 or more links between them. A link between nodes u and v will be denoted by (u, v, i), where i is u's oif for the link. A link may have associated attributes, in particular, a metric.</t>
  </dd>
  <dt>load balancing (LB):</dt>
  <dd>
    <t>a method whereby traffic to an egress is distributed among multiple next hops at each node along the DAG.</t>
  </dd>
  <dt>metric:</dt>
  <dd>
    <t>a positive number describing the contribution of a link to the oveall path length.</t>
  </dd>
  <dt>MC:</dt>
  <dd>
    <t>MPTED computer: the entity computing the MPTED, typically the ingress (if there is a single ingress) or a Path Computation Element</t>
  </dd>
  <dt>MPTE:</dt>
  <dd>
    <t>multipath TE with path constraints (including a slack) using nECMP paths from an ingress to one or more egresses.</t>
  </dd>
  <dt>MPTED:</dt>
  <dd>
    <t>an MPTE DAG resulting from CSPF-type computation on MPTE constraints.</t>
  </dd>
  <dt>MPTEP:</dt>
  <dd>
    <t>MPTE protocol: the protocol used to signal MPTETs.</t>
  </dd>
  <dt>MPTET:</dt>
  <dd>
    <t>MPTE tunnel: the signaled (and hence, forwarding) entity associated with an MPTED. Note: this terminology dates back to <xref target="RFC3209"/>, where the signaled entity was a simple path with one ingress and one egress. MPTE constructs a DAG, not a path. This document will use the term DAG (MPTED) (rather than path) for the result of a CSPF computation, and the term tunnel (MPTET) for the signaled entity. If it helps visualization, imagine a multi-branched tunnel in a cave with multiple entry and exit points.</t>
  </dd>
  <dt>non-equal-cost multipath (nECMP) (generally qualified by "with slack s"):</dt>
  <dd>
    <t>a DAG of paths from an ingress u to an egress v that are within s of min(u, v).</t>
  </dd>
  <dt>node:</dt>
  <dd>
    <t>a vertex of a graph. A node may have associated attributes.</t>
  </dd>
  <dt>outgoing interface (oif):</dt>
  <dd>
    <t>a unique number (oif) assigned by a node for each outgoing link it has.</t>
  </dd>
  <dt>Path Computation Element (PCE):</dt>
  <dd>
    <t>an entity capable of performing CSPF on behalf of another node, the path computation client.</t>
  </dd>
  <dt>path length:</dt>
  <dd>
    <t>the sum of the metrics of the links that constitute path p, denoted by len(p)</t>
  </dd>
  <dt>shared risk group (SRG):</dt>
  <dd>
    <t>nodes and/or links that share "risk" (e.g., have a common power feed, or use a common fiber conduit)</t>
  </dd>
  <dt>shortest path:</dt>
  <dd>
    <t>a path between a pair of nodes u, v with minimum length. The set of shortest paths between u and v is a DAG, denoted by sp(u, v). The length of a shortest path from u to v is denoted by min(u, v)</t>
  </dd>
</dl>

<t>shortest path first (SPF):
an algorithm for computing the shortest path DAG from an ingress to an egress; typically refers to Dijkstra's algorithm for computing shortest paths between a given pair of nodes, or pairwise between all nodes.</t>

<dl>
  <dt>signaling source (SS):</dt>
  <dd>
    <t>an entity responsible for signaling an MPTET</t>
  </dd>
  <dt>slack:</dt>
  <dd>
    <t>a path p from u to v has slack s if len(p) = min(u, v) + s.</t>
  </dd>
</dl>

<t>traffic engineering (TE):
a methodology for mapping traffic trunks to given paths or DAGs across a network.</t>

<dl>
  <dt>traffic trunk:</dt>
  <dd>
    <t>a unidirectional aggregate of traffic flows from an ingress to a set of egresses that is treated identically in the forwarding plane.</t>
  </dd>
  <dt>tunnel originator (TO):</dt>
  <dd>
    <t>entity having the specifications of the MPTET</t>
  </dd>
</dl>

</section>
</section>
</section>
<section anchor="overview"><name>Overview</name>

<t>Consider <xref target="nw-1"/>:</t>

<figure title="Network 1" anchor="nw-1"><artwork><![CDATA[
      r
    2 == 3         Link Metrics (symm): 0-2: 100; 0-4: 200; 0-6: 110
 r/ r\  r\\        1-2 (not shown): 110; 1-4 (not sh): 100; 1-6: 100
 0 -- 4 -- 5       2-3: (100, 100); 2-4: 100; 3-5: (100, 110)
  \  / \  / \      4-5: 100; 4-6: 110; 4-7: 50
1 - 6 = 7 -- 8     5-7: 100; 5-8: 10; 6-7: (100, 110); 7-8: 50
      r            Node pairs 2-3, 3-5 and 6-7 each have two links.
                   Links marked with 'r' have color red.
]]></artwork></figure>

<section anchor="multipathing"><name>Multipathing</name>

<section anchor="ecmp-slack-0-from-node-0-to-node-5"><name>ECMP (slack 0) from node 0 to node 5</name>

<t>There are 4 ECMP paths from node 0 to node 5:</t>

<t><list style="numbers" type="1">
  <t>0-2=3-5 (2 paths)</t>
  <t>0-2-4-5</t>
  <t>0-4-5</t>
</list></t>

<t>These 4 distinct paths all have length 300.</t>

</section>
<section anchor="necmp-from-node-0-to-node-5-with-slack-10"><name>nECMP from node 0 to node 5 with slack 10</name>

<t>There are 7 nECMP paths with slack 10 to node 5:</t>

<t><list style="numbers" type="1">
  <t>0-2=3=5 (4 paths)</t>
  <t>0-2-4-5</t>
  <t>0-4-5</t>
  <t>0-6-7-5</t>
</list></t>

<t>These 7 paths have lengths 300 or 310. Thus, allowing nECMP paths a slack of 10 has yielded 3 additional paths, which provide increased diversity and load balancing, and possibly decreased congestion.</t>

</section>
<section anchor="multipathing-from-node-0-to-egresses-5-8"><name>Multipathing from node 0 to egresses {5, 8}</name>

<t>If, for some traffic trunk that starts at node 0, nodes 5 and 8 are equally good as egresses, then one can compute an ECMP DAG from 0 to {5, 8}; this yields 4 paths to 5 and 6 paths to 8, for a total of 10 paths this traffic trunk can take. Similarly, a nECMP DAG to {5, 8} with slack 10 has 15 paths, whereas one with slack 5 has the same 10 paths as with slack 0.</t>

</section>
<section anchor="mpted-from-ingresses-0-1-to-egresses-5-8"><name>MPTED from ingresses {0, 1} to egresses {5, 8}</name>

<t>If traffic from node 0 to nodes {5, 8} and from node 1 to nodes {5, 8} have common characteristics, it may make sense to compute a single DAG from {0, 1} to {5, 8}. Doing so allows the operator to view this entire DAG as one logical entity; a nice side benefit is reduced control and data plane state due to state sharing.</t>

</section>
</section>
<section anchor="load-balancing"><name>Load balancing</name>

<t>Nodes in a netword have a Forwarding Information Base (FIB). A FIB maps a packet's destination address da to one or more "next hops". When a packet with address da arrives at n, n sends the packet to one of the next hops. n typically will distribute packets in a given ratio among the next hops. This is load balancing.</t>

<t>The main goal of ECMP/nECMP is to supply as many nodes as possible in the MPTED with multiple next hops on which to forward the traffic trunk. At such nodes, traffic belonging to the trunk can be distributed among the next hops instead of going to a single next hop. This has the potential to reduce congestion and provide better utilization of available links.</t>

<section anchor="flow-aware-load-balancing"><name>Flow-aware load balancing</name>

<t>When load balancing packets from a traffic trunk, it is often required that packets from a given flow be sent to the same next hop. This improves the probability of in-order delivery of packets in that flow, which is important for certain types of traffic. This is called flow-aware load balancing (FALB). The most common flow in IP traffic is defined by a 5-tuple (typically from the innermost IP header) consisting of the source IP address, the destination IP address, the protocol, the source port and the destination port. A hash (usually 16- or 20-bit) of this 5-tuple is called the packet's entropy.</t>

<t>There are two common ways to achieve FALB of IP traffic. One is to do a "deepish" packet inspection (dPI), find the relevant 5-tuple, and use that to compute the packet's entropy. The entropy is then used to ensure that packets in the flow are sent to the same next hop. This memo suggests sending TE traffic over a tunnel (see {tunnels}); this can make the identification of IP flows expensive and error-prone.</t>

<t>Another way of accomplishing this is to insert the entropy in the tunnel header. Many of the tunnels suggested in this memo have such a field. The ingress is in a good position to identify flows, and, when encapsulating the packet into the tunnel, can insert the entropy in the header. The heavy lifting of identifying flows is thus placed on the ingress. Transit nodes can simply use the entropy field to correctly map packets in a flow to the same next hop, thus ensuring FALB.</t>

</section>
<section anchor="per-packet-load-balancing"><name>Per-packet load balancing</name>

<t>FALB is often required and is a good default behavior, especially as end applications may be expecting packets in a flow to be delivered in order. However, FALB has the issue that it attempts (statistically) to place roughly the number of flows in the given ratio on the outgoing links; that may not place traffic in the same ratio, as flows need not carry the same amount of traffic. In some cases (typically when configured to), one can do per-packet load balancing (PPLB), meaning that load balancing is no longer flow aware. This can be done when the end applications do not require packets in a flow to be in order, or if some (bookended) devices outside the network put the packets back in order before delivering them to the applications (typically by addind a sequence number). When feasible, PPLB gives much better load distribution, and is currently the subject of investigation, implementation and standardization.</t>

<t>One can achieve this by configuring each router in the DAG to do PPLB for the traffic trunks in the MPTET, or more simply by the ingress router assigning entropy at random to each packet it places in the MPTET. The latter approach keeps the decision of which DAGs (and corresponding traffic trunks) should be flow-aware and which not at the ingress; all other nodes simply do what the entropy fields tells them to do.</t>

</section>
</section>
<section anchor="constraints"><name>Constraints</name>

<t>Constraints are an intent-based specification of acceptable paths that a traffic trunk may take from ingress(es) to egress(es). Constraints are thus an abstract way to control the resources that a particular traffic trunk uses.</t>

<t>One way to do this is to add "resource class attributes" or "colors" <xref target="RFC2702"/> to links, and then specify "include" and "exclude" sets. An include set means that all links that a path traverses must contain at least one element of the include set. An exclude set means that no link in the path can contain any color from the exclude set.</t>

<t>Another way is to specify a (maximum) bandwidth that a traffic trunk can carry. This means that all links in the path must have that much available capacity. Packets exceeding the bandwidth can be forwarded normally, marked as droppable, or dropped.</t>

<t>Let's add some simple constraints to our DAG. We associate the color red to one of the links from 2 to 3, and to the shorter of the links from 6 to 7. Then, we constrain the paths to "include red or blue", meaning only use links with either color red or blue. This yields the following:</t>

<t><list style="symbols">
  <t>ECMP from node 0 to node 5 with constraints "include red or blue" yields a single path.</t>
</list></t>

</section>
<section anchor="protection"><name>Protection</name>

<t>One very useful aspect of TE is the ability to specify that a path must be link- or node- or shared-risk-disjoint from another path. That means that the two paths do not have links or nodes or "shared risk groups". Additionally, one can build protection paths for an existing path to protect against link or node failures <xref target="RFC4090"/>. This is especially important as traditional TE currently takes a single path through the network, meaning that a link or node failure will result in dropped traffic until the TE path is restored.</t>

<t>While not quite as crucial in the case of an MPTET, since ideally, there will be multiple nexthops at each node, there will be cases where a node has a single next hop, or all next hops share a common failure mode. Identifying these cases and building protection paths for such nodes will be described in a future version of this memo.</t>

</section>
<section anchor="tunnels"><name>Tunnels</name>

<t>The shortest path first algorithm <xref target="SPF"/> is an easy-to-implement and very efficient algorithm whereby all routers in a network can agree on the path that a packet to a particular destination should take. That means if all routers are agreed (roughly) on the topology and metrics of the network, they will forward packets in a loop-free manner to all destinations -- without the need for signaling or tunnels. However, an MPTED will not contain the same paths -- some paths may be rejected as they don't satisfy the constraints; other paths may be used even though they are not shortest paths. Thus, to route packets in a traffic trunk over a computed MPTED, a tunnel is typically used. This tunnel will have to be signaled to the MPTED nodes. The tunnel may be MPLS- or IP-based.</t>

<t>A few things are important about tunnel headers: whether they carry an entropy field (EF), whether they have a "discriminator" (D) that allows multiple tunnels between an ingress-egress pair, whether they allow multiple egresses (ME), and whether they allow multiple ingresses (MI). These will be discussed in the description of the tunnels below.</t>

<t>In the memo, we consider the following tunnel types:</t>

<t><list style="numbers" type="1">
  <t>IP-in-IP: <xref target="RFC2003"/> encapsulation allows the creation of an "outer" IP header (IPv4 or IPv6) to carry a payload packet (which is typically an IP payload). The outer IP header's protocol field indicates the "protocol" of the inner payload packet. The outer header of IP-in-IPv4 tunnel doesn't contain an EF; transit nodes can either spray packets across outgoing next hops, attempt to do dPI, or use the same next hop for all packets. For IP-in-IPv6, the outer header's flow label can be used for the EF. To accommodate ME, the egresses have to have the same (anycast) IP address which would be used as the destination IP of the tunnel. MI is not possible.</t>
  <t>GRE: Generic Routing Encapsulation. We include in this definition <xref target="RFC2784"/> and <xref target="RFC2890"/> with the Key Present (bit 2) set to 0. This is similar to IP-in-IP; however, the payload is not required to be IP. There is no EF in the header. D, ME and MI same as for IP-in-IP.</t>
  <t>GRE-E: GRE with Key Present; the Key value is the EF. D, ME and MI same as for IP-in-IP.</t>
  <t>GRE6: GRE with IPv6 addresses. The EF is the Flow Label field of the IPv6 header. D, ME and MI same as for IP-in-IP.</t>
  <t>G-in-U: GRE-in-UDP <xref target="RFC8086"/>. The UDP source port is the EF; the GRE Key, if present, can be ignored from a load balancing point of view. D, ME and MI as in IP-in-IP.</t>
  <t>MPLS-in-UDP <xref target="RFC7510"/>. The UDP source port is the EF; D, ME and MI as in IP-in-IP.</t>
  <t>SRv6 <xref target="RFC8754"/>. The EF is the Flow Label in the IPv6 header.</t>
  <t>SigLab (signaled label switching). The labels to be used are signaled. Signaling proceeds from egress(es) to ingress(es). An entropy label can be used as the EF. At each node, a different label is used for each MPTED; this is the discriminator. ME and MI are both allowed.</t>
  <t>StatLab (static label). A single statically-assigned label defines the tunnel throughout the MPTED. Here, a block of MPLS labels is given to a label allocator; these labels MUST NOT be allocated by any node in the network. EF, D, ME and MI are as for SigLab. The MPTED computer (MC) must interact with the allocator when creating or deleting an MPTED.</t>
</list></t>

</section>
<section anchor="backward-compatibility"><name>Backward Compatibility</name>

<t>Introducing a new idea to the network (and thus new protocols, new extenstion and new software) is typically done incrementally. Thus, in a network transitioning to MPTE, there will be some nodes that are MPTE-capable, and others that are not.</t>

<t>In <xref target="nw-1"/> above, if node 4 is not MPTE-capable, it can either be left out of the MPTED, or a "classical" tunnel can be constructed from (say) node 2 to node 5, allowing hybrid paths 0-2-(4)-5 and 0-2-(4)-5-8 for a DAG from {0} to {5, 8}. The signaling specs will say whether this is possible, and if so, how it can be achieved.</t>

</section>
</section>
<section anchor="operation"><name>Operation</name>

<t>Here are the steps to create an MPTE tunnel:</t>

<t><list style="numbers" type="1">
  <t>Define the traffic trunk for the MPTET. Examples include "BGP destinations with community xyz" or "gold class traffic belonging to VPN foo" or "AI workload bar from DC A to DC B".</t>
  <t>Define the constraints of the traffic trunk, including:
  <list style="numbers" type="1">
      <t>ingresses, and the bandwidth entering the DAG at each ingress;</t>
      <t>egresses;</t>
      <t>metric to minimize (perhaps with slack) -- this could capture delay or fiber length;</t>
      <t>criteria of acceptable nodes and links for the DAG, including link colors and shared risk groups (SRGs).</t>
    </list>
This information is given to the Tunnel Originator (TO).</t>
  <t>The TO sends this information to the MPTE Computer (MC).</t>
  <t>The MC computes a DAG that satisfies the constraints. The DAG consists of a set of junctions; these are sent to the Signaling Source (SS).</t>
  <t>The SS instantiates the MPTET by sending signaling messages to all the junctions.</t>
  <t>When ready, the SS tells each ingress that the MPTET meeting the DAG constraints is ready for traffic.</t>
  <t>The ingresses map traffic matching the traffic trunk to the MPTET.</t>
</list></t>

<t>Computation (possibly using a variant of CSPF) of an MPTED is done by the MC, which may be an ingress or a PCE <xref target="RFC4655"/>. (This memo does not specify such an algorithm.) Signaling primarily occurs between the SS and each junction node. Auxiliary signaling may occur among junction nodes.</t>

<section anchor="mpted"><name>MPTED</name>

<t>In this memo, a node is identified by its IP loopback address. A link from node u to node v is identified by u's loopback address and its (4-octet) outgoing interface index (oif), a unique identifier for the link allocated by u. oifs are usually exchanged in the TE extensions of an IGP. (A link also has a (4-octet) incoming interface index, the iif. For neighbors u and v, the correlation between u's oif and v's iif is typically done by the IGP. iifs are not used in this memo.) For now, this memo only deals with point-to-point links; a future revision will describe the use of multi-access links.</t>

<t>An MPTED is identified by a unique (4-octet) ID (the MID) assigned to the MPTED by the MC. As an MPTED can change over its lifetime, it is assigned a version number starting at 0 and incremented every time the MPTED is recomputed. Thus, a full MPTED ID (the FID) consists of &lt;MC, MID, version&gt;.</t>

<t>An MPTED consists of two or more "junction nodes". A junction node can have one of five types:</t>

<t><list style="numbers" type="1">
  <t>a pure ingress node has zero incoming links and one or more outgoing links in the MPTED. Traffic routed on a MPTED enters at the ingress.</t>
  <t>a pure egress node has one or more incoming links and zero outgoing links in the MPTED. Traffic routed on a MPTED leaves at an egress.</t>
  <t>a transit ingress node where traffic can either enter the MPTED or arrive from another ingress node to continue on in the MPTED.</t>
  <t>a transit egress node where traffic can either exit the MPTED or go on to another egress node.</t>
  <t>a "regular" junction node has one or more incoming links and one or more outgoing links. Traffic does not enter or leave at such a node: it comes from a phop and goes to an nhop.</t>
</list></t>

<t>A junction node v consists of v, its previous hops (phops) and its next hops (nhops). A phop is specified by an incoming link of v: (u, v, oif1); an nhop by an outgoing link of v: (v, w, oif2). Note that, since links are point-to-point, it is sufficient to specify (u, oif1) ((v, oif2)) for a phop (nhop, respectively). The nodes u (and w) are loosely referred to as a phop (and nhop) of v, although strictly speaking the link should be included. A pure ingress has no phops and a pure egress has no nhops.</t>

<t>The MPTED is broken down into a set of junction nodes. A junction node v is specified by:</t>

<t><list style="numbers" type="1">
  <t>bandwidth (coming in to and going out of v)</t>
  <t>a list of phops of v</t>
  <t>a list of nhops of v, with corresponding load balancing shares</t>
</list></t>

</section>
<section anchor="tunnel-provisioning"><name>Tunnel Provisioning</name>

<t>A designated entity, the Tunnel Originator (TO), is given the specifications of the MPTET: the ingresses, the egresses and the constraints. The TO is typically one of the tunnel ingresses or a PCE. The TO sends the tunnel specification to the MC. The MC computes the MPTED (as a list of junctions) and returns this to the TO. The TO then sends the list of junctions to the Signaling Source (SS) which provisions the tunnel.</t>

<t>Note that TO, MC and SS are functional blocks; they may reside on separate nodes or co-reside on the same node. For example, a single node X may be the TO and SS but decide to delegate computation to a (remote) PCE. X then gets the results via PCEP and signals the tunnel. Other permutations are possible.</t>

</section>
<section anchor="signaling-overview"><name>Signaling Overview</name>

<t>The SS signals the creation or update of an MPTE tunnnel by sending to each junction node v a JUNCTION message consisting of:</t>

<t><list style="numbers" type="1">
  <t>the MPTET ID</t>
  <t>the junction node specification</t>
  <t>the tunnel type</t>
  <t>some flags</t>
</list></t>

<t>After v parses this specification, for all tunnel types other than SigLab, it installs FIB state for the junction.</t>

<t>For tunnel type SigLab, v allocates an incoming MPLS label L_u for each phop u (u, oif), and sends a LABEL message to u containing:</t>

<t><list style="numbers" type="1">
  <t>the MPTET ID</t>
  <t>the phop (u's loopback + u's oif for the link)</t>
  <t>the allocated label L_u</t>
</list></t>

<t>u records label L_u as part of its own junction state.</t>

<t>When v receives a LABEL message from all its nhops, it installs swap state in its LFIB.</t>

</section>
</section>
<section anchor="signaling"><name>Signaling</name>

<t>Several signaling protocols are being extended to provision MPTETs: RSVP-TE <xref target="I-D.kbr-teas-mptersvp"/>, PCEP <xref target="I-D.beeram-pce-pcep-mpted"/> and BGP <xref target="I-D.zzhang-idr-mpte-signaling"/>, among others. The details of each will be specified in companion documents; this memo restricts itself to an overview of the common elements.</t>

<section anchor="message-flow"><name>Message Flow</name>

<t>Provisioning messages (to create, update and delete a tunnel) are sent from the Signaling Source (SS) to each junction node (including possibly other ingresses). Notifications are sent from each junction node to the SS to send updates on the state of that node with respect to the MPTET. Label messages (when needed) are sent hop-by-hop from egresses to their phops and further upstream in an ordered fashion.</t>

<t>In special scenarios, a node may send a message to one or more of its nhops.</t>

</section>
<section anchor="message-types"><name>Message Types</name>

<section anchor="junction"><name>JUNCTION</name>

<t>A JUNCTION message contains the following information elements:</t>

<dl>
  <dt>MPTET ID:</dt>
  <dd>
    <t>a unique identifier for an MPTE tunnel. This usually consists of the TO ID and a unique ID in the namespace of the TO. It also includes a version number to distinguish among instances of a tunnel as it is undergoes updates. The companion signaling documents will describe the MPTET ID in more detail.</t>
  </dd>
  <dt>Tunnel Type:</dt>
  <dd>
    <t>various types of tunnels are used, so each node must be told which type of tunnel this MPTET consists of.</t>
  </dd>
  <dt>Tunnel Information:</dt>
  <dd>
    <t>provides details for the MPTET. For example, for an MPLS tunnel with a statically assigned label, the Tunnel Information is the label. For IP-based tunnels, the Tunnel Information is the source and destination IP addresses (plus optional other information).</t>
  </dd>
  <dt>Junction Bandwidth:</dt>
  <dd>
    <t>specifies the bandwidth incoming to the junction in Megabits per second (Mbps).</t>
  </dd>
  <dt>nhop share:</dt>
  <dd>
    <t>a 2-octet share of the outgoing bandwidth per nhop. A Junction should attempt to send a ratio of (share n)/(sum (share i)) of the incoming bandwidth to nhop #n.</t>
  </dd>
</dl>

</section>
<section anchor="label"><name>LABEL</name>

<t>A LABEL message is used to let each junction know what to use to forward packets in the MPTET. A LABEL message is sent from an egress junction node to each of its phops. A pure ingress node never sends a LABEL message as it has no phops. The LABEL message carries the MPTET ID and a label, which can be an MPLS label or an IP destination address.</t>

</section>
<section anchor="notify"><name>NOTIFY</name>

<t>A NOTIFY is sent from a junction node to the SS to let the SS know the state of the MPTET at that node. This could be the labels it assigned to its phops, or error conditions.</t>

</section>
</section>
<section anchor="forwarding-state"><name>Forwarding State</name>

<t>From a forwarding point of view, an ingress's job is to:</t>

<t><list style="numbers" type="1">
  <t>identify the traffic trunk, i.e., the set of packets that are to be sent via the MPTET;</t>
  <t>encapsulate the packets in the signaled tunnel type;</t>
  <t>forward the packet to the ingress's next hops, in accordance with the computed weights.</t>
</list></t>

<t>FIB entries have a lookup portion (the "routes") and a next hop portion. In all cases, the next hop at junction J is a weighted list of J's nhops as specified by the SS in the JUNCTION message.</t>

<t>For an ingress node, the routes define the traffic trunk meant to be carried by the MPTET.</t>

<t>For a non-ingress node v, the routes identify the MPTET from its phops.</t>

<section anchor="ip-tunnels"><name>IP Tunnels</name>

<t>If the MPTET is an IP tunnel, all junctions will need to know the MPTET type, the MPTET source IP src and destination IP dst.</t>

<section anchor="mptet-type"><name>MPTET Type</name>

<t>MPTET signaling determines the tunnel type. This is typically configured at the TO.</t>

</section>
<section anchor="mptet-destination-ip-address-dst"><name>MPTET Destination IP Address dst</name>

<t>Consider first the case that the MPTET has a single egress E. Here are two ways to support multiple MPTETs to the egress:</t>

<t><list style="numbers" type="1">
  <t>E has an Egress Address Block (EAB) consisting of a set of IPv4 and/or IPv6 prefixes and/or SRv6 locators <xref target="I-D.saad-teas-rsvpte-ip-tunnels"/>. E chooses an element of the appropriate EAB, dst, and signals dst in its LABEL message to its phops.</t>
  <t>E uses an IP tunnel that has a discriminator field D, and uses that in conjunction with its loopback dst. The LABEL message consists of &lt;dst, D&gt;.</t>
</list></t>

<t>If there are multiple egresses, dst MUST be a common (anycast) address amomg all the egresses. One of the egresses, E, is chosen to pick dst (using either of the methods above), and signals this to its phops, as well as all other egresses.</t>

</section>
<section anchor="mptet-source-ip-address-src"><name>MPTET Source IP Address src</name>

<t>If there is a single ingress I, src is set to I's loopback.</t>

<t>If there are multiple ingresses, and dst was chosen from an EAB, each ingress sets src to its own loopback.</t>

<t>If there are multiple ingresses, and a discriminator D is being used, there MUST be a designated ingress I who picks src, and sends it to all other ingresses.</t>

</section>
<section anchor="ip-mptet-fib-entries"><name>IP MPTET FIB Entries</name>

<t>In the case where an EAB was used to pick dst, the route consists simply of dst.</t>

<t>In the case where a discriminator D is being used for the MPTET, the route consists of &lt;dst, src, D&gt; at each junction. Otherwise, the route is &lt;dst, src&gt;. (Note: this last case only allows one MPTET between a src-dst pair, for each tunnel type.)</t>

</section>
</section>
<section anchor="static-label"><name>Static Label</name>

<t>For a MPTET with a "statically assigned" label (typically by a PCE), the route consists of the assigned label, and the nexthops are a set of interfaces. In the simplest case, the entire DAG has a single label; if so, the label operation is null. A variant allows for different controller-assigned labels for each junction node; in this case, the forwarding state is as for "signaled" labels, where the incoming label is swapped to the correct outgoing label.</t>

</section>
<section anchor="signaled-label"><name>Signaled Label</name>
<t>For signaled labels, the routes for node v are the labels v sent to its phops. Each nexthop is a swap of the incoming label to the label sent by v's nhops.</t>

</section>
</section>
</section>
<section anchor="GR"><name>Graceful Restart</name>

<t>A node N is capable of Graceful Restart if a) it can maintain control plane state across restarts; and b) it can maintain forwarding state across restarts. If N is capable of Graceful Restart, an MPTE DAG going through N can continue functioning while N restarts. While N is restarting, new JUNCTION/LABEL messages will be dropped or ignored; new MPTE DAGs passing through N will not be established. Once restart is complete, N will send an OPEN message and re-establish connections will all its peers (or all the MPTEP Reflectors). Thereafter, N can participate in new DAGs passing through it by processing received JUNCTION messages.</t>

<t>More details will be described in a future version.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>None. The related protocol documents will have IANA requirements.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>TBD</t>

</section>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>Many thanks to Kostas Zorbadelos for his careful reading and useful suggestions, and his continued interest in this technology. Many thanks as well to the MPTE group at HPE Networking for the active discussions that advance the technology and make it implementable.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC3209">
  <front>
    <title>RSVP-TE: Extensions to RSVP for LSP Tunnels</title>
    <author fullname="D. Awduche" initials="D." surname="Awduche"/>
    <author fullname="L. Berger" initials="L." surname="Berger"/>
    <author fullname="D. Gan" initials="D." surname="Gan"/>
    <author fullname="T. Li" initials="T." surname="Li"/>
    <author fullname="V. Srinivasan" initials="V." surname="Srinivasan"/>
    <author fullname="G. Swallow" initials="G." surname="Swallow"/>
    <date month="December" year="2001"/>
    <abstract>
      <t>This document describes the use of RSVP (Resource Reservation Protocol), including all the necessary extensions, to establish label-switched paths (LSPs) in MPLS (Multi-Protocol Label Switching). Since the flow along an LSP is completely identified by the label applied at the ingress node of the path, these paths may be treated as tunnels. A key application of LSP tunnels is traffic engineering with MPLS as specified in RFC 2702. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3209"/>
  <seriesInfo name="DOI" value="10.17487/RFC3209"/>
</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>
<reference anchor="RFC2003">
  <front>
    <title>IP Encapsulation within IP</title>
    <author fullname="C. Perkins" initials="C." surname="Perkins"/>
    <date month="October" year="1996"/>
    <abstract>
      <t>This document specifies a method by which an IP datagram may be encapsulated (carried as payload) within an IP datagram. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2003"/>
  <seriesInfo name="DOI" value="10.17487/RFC2003"/>
</reference>
<reference anchor="RFC2784">
  <front>
    <title>Generic Routing Encapsulation (GRE)</title>
    <author fullname="D. Farinacci" initials="D." surname="Farinacci"/>
    <author fullname="T. Li" initials="T." surname="Li"/>
    <author fullname="S. Hanks" initials="S." surname="Hanks"/>
    <author fullname="D. Meyer" initials="D." surname="Meyer"/>
    <author fullname="P. Traina" initials="P." surname="Traina"/>
    <date month="March" year="2000"/>
    <abstract>
      <t>This document specifies a protocol for encapsulation of an arbitrary network layer protocol over another arbitrary network layer protocol. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2784"/>
  <seriesInfo name="DOI" value="10.17487/RFC2784"/>
</reference>
<reference anchor="RFC2890">
  <front>
    <title>Key and Sequence Number Extensions to GRE</title>
    <author fullname="G. Dommety" initials="G." surname="Dommety"/>
    <date month="September" year="2000"/>
    <abstract>
      <t>This document describes extensions by which two fields, Key and Sequence Number, can be optionally carried in the GRE Header. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2890"/>
  <seriesInfo name="DOI" value="10.17487/RFC2890"/>
</reference>
<reference anchor="RFC8086">
  <front>
    <title>GRE-in-UDP Encapsulation</title>
    <author fullname="L. Yong" initials="L." role="editor" surname="Yong"/>
    <author fullname="E. Crabbe" initials="E." surname="Crabbe"/>
    <author fullname="X. Xu" initials="X." surname="Xu"/>
    <author fullname="T. Herbert" initials="T." surname="Herbert"/>
    <date month="March" year="2017"/>
    <abstract>
      <t>This document specifies a method of encapsulating network protocol packets within GRE and UDP headers. This GRE-in-UDP encapsulation allows the UDP source port field to be used as an entropy field. This may be used for load-balancing of GRE traffic in transit networks using existing Equal-Cost Multipath (ECMP) mechanisms. There are two applicability scenarios for GRE-in-UDP with different requirements: (1) general Internet and (2) a traffic-managed controlled environment. The controlled environment has less restrictive requirements than the general Internet.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8086"/>
  <seriesInfo name="DOI" value="10.17487/RFC8086"/>
</reference>
<reference anchor="RFC7510">
  <front>
    <title>Encapsulating MPLS in UDP</title>
    <author fullname="X. Xu" initials="X." surname="Xu"/>
    <author fullname="N. Sheth" initials="N." surname="Sheth"/>
    <author fullname="L. Yong" initials="L." surname="Yong"/>
    <author fullname="R. Callon" initials="R." surname="Callon"/>
    <author fullname="D. Black" initials="D." surname="Black"/>
    <date month="April" year="2015"/>
    <abstract>
      <t>This document specifies an IP-based encapsulation for MPLS, called MPLS-in-UDP for situations where UDP (User Datagram Protocol) encapsulation is preferred to direct use of MPLS, e.g., to enable UDP-based ECMP (Equal-Cost Multipath) or link aggregation. The MPLS- in-UDP encapsulation technology must only be deployed within a single network (with a single network operator) or networks of an adjacent set of cooperating network operators where traffic is managed to avoid congestion, rather than over the Internet where congestion control is required. Usage restrictions apply to MPLS-in-UDP usage for traffic that is not congestion controlled and to UDP zero checksum usage with IPv6.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7510"/>
  <seriesInfo name="DOI" value="10.17487/RFC7510"/>
</reference>
<reference anchor="RFC8754">
  <front>
    <title>IPv6 Segment Routing Header (SRH)</title>
    <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
    <author fullname="D. Dukes" initials="D." role="editor" surname="Dukes"/>
    <author fullname="S. Previdi" initials="S." surname="Previdi"/>
    <author fullname="J. Leddy" initials="J." surname="Leddy"/>
    <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
    <author fullname="D. Voyer" initials="D." surname="Voyer"/>
    <date month="March" year="2020"/>
    <abstract>
      <t>Segment Routing can be applied to the IPv6 data plane using a new type of Routing Extension Header called the Segment Routing Header (SRH). This document describes the SRH and how it is used by nodes that are Segment Routing (SR) capable.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8754"/>
  <seriesInfo name="DOI" value="10.17487/RFC8754"/>
</reference>

<reference anchor="I-D.kbr-teas-mptersvp">
   <front>
      <title>RSVP-TE Extensions for Multipath Traffic Engineered Directed Acyclic Graph Tunnels</title>
      <author fullname="Kireeti Kompella" initials="K." surname="Kompella">
         <organization>HPE</organization>
      </author>
      <author fullname="Vishnu Pavan Beeram" initials="V. P." surname="Beeram">
         <organization>HPE</organization>
      </author>
      <author fullname="Chandra Ramachandran" initials="C." surname="Ramachandran">
         <organization>HPE</organization>
      </author>
      <date day="6" month="July" year="2026"/>
      <abstract>
	 <t>   A Multipath Traffic Engineered Directed Acyclic Graph (MPTED) tunnel
   is a Traffic Engineering (TE) construct that facilitates weighted
   load balancing of unicast traffic across a constrained set of paths
   optimized for a specific objective.

   This document describes the provisioning of an MPTED Tunnel in a TE
   network using RSVP-TE.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-kbr-teas-mptersvp-04"/>
   
</reference>

<reference anchor="I-D.beeram-pce-pcep-mpted">
   <front>
      <title>Path Computation Element Communication Protocol (PCEP) Extensions for Multipath Traffic Engineered Directed Acyclic Graph (MPTED) Tunnels</title>
      <author fullname="Vishnu Pavan Beeram" initials="V. P." surname="Beeram">
         <organization>HPE</organization>
      </author>
      <author fullname="Kireeti Kompella" initials="K." surname="Kompella">
         <organization>Juniper Networks</organization>
      </author>
      <author fullname="Andrew Stone" initials="A." surname="Stone">
         <organization>Nokia</organization>
      </author>
      <date day="1" month="March" year="2026"/>
      <abstract>
	 <t>   A Multipath Traffic Engineered Directed Acyclic Graph (MPTED) tunnel
   is a Traffic Engineering (TE) construct that facilitates weighted
   load balancing of unicast traffic across a constrained set of paths
   optimized for a specific objective.

   This document describes the provisioning of an MPTED Tunnel in a TE
   network using Path Computation Element Communication Protocol (PCEP)
   in a stateful PCE model.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-beeram-pce-pcep-mpted-01"/>
   
</reference>

<reference anchor="I-D.zzhang-idr-mpte-signaling">
   <front>
      <title>BGP Signaling for Multipath Traffic Engineering Junction States</title>
      <author fullname="Zhaohui (Jeffrey) Zhang" initials="Z. J." surname="Zhang">
         <organization>HPE</organization>
      </author>
      <author fullname="Kireeti Kompella" initials="K." surname="Kompella">
         <organization>HPE</organization>
      </author>
      <author fullname="Aditya Mahale" initials="A." surname="Mahale">
         <organization>Meta</organization>
      </author>
      <author fullname="Raghav Bhargava" initials="R." surname="Bhargava">
         <organization>Crusoe</organization>
      </author>
      <author fullname="Aaron Zhang" initials="A." surname="Zhang">
         <organization>Westford Academy</organization>
      </author>
      <date day="2" month="March" year="2026"/>
      <abstract>
	 <t>   Multi-Path Traffic Engineering (MPTE) combines Traffic Engineering
   with Multi-Path forwarding, offering a much desired TE solution for
   both traditional WAN and new AIML DC/DCI.  MPTE tunnels are based on
   MPTE Directed Acyclic Graph (DAG) and can be signaled with extensions
   to RSVP-TE, PCEP, BGP.  This document specifies the BGP protocol
   extensions and procedures for signaling MPTE DAGs.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-zzhang-idr-mpte-signaling-00"/>
   
</reference>

<reference anchor="I-D.saad-teas-rsvpte-ip-tunnels">
   <front>
      <title>IP RSVP-TE: Extensions to RSVP for P2P IP-TE LSP Tunnels</title>
      <author fullname="Tarek Saad" initials="T." surname="Saad">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Vishnu Pavan Beeram" initials="V. P." surname="Beeram">
         <organization>HPE</organization>
      </author>
      <author fullname="Andy Smith" initials="A." surname="Smith">
         <organization>Arrcus, Inc.</organization>
      </author>
      <date day="5" month="July" year="2026"/>
      <abstract>
	 <t>   This document describes the use of RSVP (Resource Reservation
   Protocol), including all the necessary extensions, to establish
   Point-to-Point (P2P) Traffic Engineered IP (IP-TE) Label Switched
   Path (LSP) tunnels for use in native IP forwarding networks.

   This document defines specific extensions to the RSVP protocol to
   allow the establishment of explicitly routed IP paths using RSVP as
   the signaling protocol.  The result is the instantiation of an IP
   path which can be automatically routed away from network failures,
   congestion, and bottlenecks.  This document also defines
   considerations for using these extensions in networks that support
   SRv6.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-saad-teas-rsvpte-ip-tunnels-03"/>
   
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">

<reference anchor="SPF" target="https://doi.org/10.1007/BF01386390">
  <front>
    <title>A note on two problems in connexion with graphs</title>
    <author initials="E. W." surname="Dijkstra" fullname="Dijkstra, E. W.">
      <organization></organization>
    </author>
    <date year="1959" month="December" day="01"/>
  </front>
</reference>


<reference anchor="RFC2702">
  <front>
    <title>Requirements for Traffic Engineering Over MPLS</title>
    <author fullname="D. Awduche" initials="D." surname="Awduche"/>
    <author fullname="J. Malcolm" initials="J." surname="Malcolm"/>
    <author fullname="J. Agogbua" initials="J." surname="Agogbua"/>
    <author fullname="M. O'Dell" initials="M." surname="O'Dell"/>
    <author fullname="J. McManus" initials="J." surname="McManus"/>
    <date month="September" year="1999"/>
    <abstract>
      <t>This document presents a set of requirements for Traffic Engineering over Multiprotocol Label Switching (MPLS). It identifies the functional capabilities required to implement policies that facilitate efficient and reliable network operations in an MPLS domain. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2702"/>
  <seriesInfo name="DOI" value="10.17487/RFC2702"/>
</reference>
<reference anchor="RFC4271">
  <front>
    <title>A Border Gateway Protocol 4 (BGP-4)</title>
    <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
    <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
    <author fullname="S. Hares" initials="S." role="editor" surname="Hares"/>
    <date month="January" year="2006"/>
    <abstract>
      <t>This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
      <t>The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems. This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
      <t>BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR). These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP. BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
      <t>This document obsoletes RFC 1771. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4271"/>
  <seriesInfo name="DOI" value="10.17487/RFC4271"/>
</reference>
<reference anchor="RFC4364">
  <front>
    <title>BGP/MPLS IP Virtual Private Networks (VPNs)</title>
    <author fullname="E. Rosen" initials="E." surname="Rosen"/>
    <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
    <date month="February" year="2006"/>
    <abstract>
      <t>This document describes a method by which a Service Provider may use an IP backbone to provide IP Virtual Private Networks (VPNs) for its customers. This method uses a "peer model", in which the customers' edge routers (CE routers) send their routes to the Service Provider's edge routers (PE routers); there is no "overlay" visible to the customer's routing algorithm, and CE routers at different sites do not peer with each other. Data packets are tunneled through the backbone, so that the core routers do not need to know the VPN routes. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4364"/>
  <seriesInfo name="DOI" value="10.17487/RFC4364"/>
</reference>
<reference anchor="RFC7432">
  <front>
    <title>BGP MPLS-Based Ethernet VPN</title>
    <author fullname="A. Sajassi" initials="A." role="editor" surname="Sajassi"/>
    <author fullname="R. Aggarwal" initials="R." surname="Aggarwal"/>
    <author fullname="N. Bitar" initials="N." surname="Bitar"/>
    <author fullname="A. Isaac" initials="A." surname="Isaac"/>
    <author fullname="J. Uttaro" initials="J." surname="Uttaro"/>
    <author fullname="J. Drake" initials="J." surname="Drake"/>
    <author fullname="W. Henderickx" initials="W." surname="Henderickx"/>
    <date month="February" year="2015"/>
    <abstract>
      <t>This document describes procedures for BGP MPLS-based Ethernet VPNs (EVPN). The procedures described here meet the requirements specified in RFC 7209 -- "Requirements for Ethernet VPN (EVPN)".</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7432"/>
  <seriesInfo name="DOI" value="10.17487/RFC7432"/>
</reference>
<reference anchor="RFC4761">
  <front>
    <title>Virtual Private LAN Service (VPLS) Using BGP for Auto-Discovery and Signaling</title>
    <author fullname="K. Kompella" initials="K." role="editor" surname="Kompella"/>
    <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
    <date month="January" year="2007"/>
    <abstract>
      <t>Virtual Private LAN Service (VPLS), also known as Transparent LAN Service and Virtual Private Switched Network service, is a useful Service Provider offering. The service offers a Layer 2 Virtual Private Network (VPN); however, in the case of VPLS, the customers in the VPN are connected by a multipoint Ethernet LAN, in contrast to the usual Layer 2 VPNs, which are point-to-point in nature.</t>
      <t>This document describes the functions required to offer VPLS, a mechanism for signaling a VPLS, and rules for forwarding VPLS frames across a packet switched network. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4761"/>
  <seriesInfo name="DOI" value="10.17487/RFC4761"/>
</reference>
<reference anchor="RFC4762">
  <front>
    <title>Virtual Private LAN Service (VPLS) Using Label Distribution Protocol (LDP) Signaling</title>
    <author fullname="M. Lasserre" initials="M." role="editor" surname="Lasserre"/>
    <author fullname="V. Kompella" initials="V." role="editor" surname="Kompella"/>
    <date month="January" year="2007"/>
    <abstract>
      <t>This document describes a Virtual Private LAN Service (VPLS) solution using pseudowires, a service previously implemented over other tunneling technologies and known as Transparent LAN Services (TLS). A VPLS creates an emulated LAN segment for a given set of users; i.e., it creates a Layer 2 broadcast domain that is fully capable of learning and forwarding on Ethernet MAC addresses and that is closed to a given set of users. Multiple VPLS services can be supported from a single Provider Edge (PE) node.</t>
      <t>This document describes the control plane functions of signaling pseudowire labels using Label Distribution Protocol (LDP), extending RFC 4447. It is agnostic to discovery protocols. The data plane functions of forwarding are also described, focusing in particular on the learning of MAC addresses. The encapsulation of VPLS packets is described by RFC 4448. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4762"/>
  <seriesInfo name="DOI" value="10.17487/RFC4762"/>
</reference>
<reference anchor="RFC4974">
  <front>
    <title>Generalized MPLS (GMPLS) RSVP-TE Signaling Extensions in Support of Calls</title>
    <author fullname="D. Papadimitriou" initials="D." surname="Papadimitriou"/>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <date month="August" year="2007"/>
    <abstract>
      <t>In certain networking topologies, it may be advantageous to maintain associations between endpoints and key transit points to support an instance of a service. Such associations are known as Calls.</t>
      <t>A Call does not provide the actual connectivity for transmitting user traffic, but only builds a relationship by which subsequent Connections may be made. In Generalized MPLS (GMPLS) such Connections are known as Label Switched Paths (LSPs).</t>
      <t>This document specifies how GMPLS Resource Reservation Protocol - Traffic Engineering (RSVP-TE) signaling may be used and extended to support Calls. These mechanisms provide full and logical Call/Connection separation.</t>
      <t>The mechanisms proposed in this document are applicable to any environment (including multi-area), and for any type of interface: packet, layer-2, time-division multiplexed, lambda, or fiber switching. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4974"/>
  <seriesInfo name="DOI" value="10.17487/RFC4974"/>
</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="RFC4090">
  <front>
    <title>Fast Reroute Extensions to RSVP-TE for LSP Tunnels</title>
    <author fullname="P. Pan" initials="P." role="editor" surname="Pan"/>
    <author fullname="G. Swallow" initials="G." role="editor" surname="Swallow"/>
    <author fullname="A. Atlas" initials="A." role="editor" surname="Atlas"/>
    <date month="May" year="2005"/>
    <abstract>
      <t>This document defines RSVP-TE extensions to establish backup label-switched path (LSP) tunnels for local repair of LSP tunnels. These mechanisms enable the re-direction of traffic onto backup LSP tunnels in 10s of milliseconds, in the event of a failure.</t>
      <t>Two methods are defined here. The one-to-one backup method creates detour LSPs for each protected LSP at each potential point of local repair. The facility backup method creates a bypass tunnel to protect a potential failure point; by taking advantage of MPLS label stacking, this bypass tunnel can protect a set of LSPs that have similar backup constraints. Both methods can be used to protect links and nodes during network failure. The described behavior and extensions to RSVP allow nodes to implement either method or both and to interoperate in a mixed network. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4090"/>
  <seriesInfo name="DOI" value="10.17487/RFC4090"/>
</reference>
<reference anchor="RFC4655">
  <front>
    <title>A Path Computation Element (PCE)-Based Architecture</title>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <author fullname="J.-P. Vasseur" initials="J.-P." surname="Vasseur"/>
    <author fullname="J. Ash" initials="J." surname="Ash"/>
    <date month="August" year="2006"/>
    <abstract>
      <t>Constraint-based path computation is a fundamental building block for traffic engineering systems such as Multiprotocol Label Switching (MPLS) and Generalized Multiprotocol Label Switching (GMPLS) networks. Path computation in large, multi-domain, multi-region, or multi-layer networks is complex and may require special computational components and cooperation between the different network domains.</t>
      <t>This document specifies the architecture for a Path Computation Element (PCE)-based model to address this problem space. This document does not attempt to provide a detailed description of all the architectural components, but rather it describes a set of building blocks for the PCE architecture from which solutions may be constructed. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4655"/>
  <seriesInfo name="DOI" value="10.17487/RFC4655"/>
</reference>



    </references>

</references>



  </back>

<!-- ##markdown-source:
H4sIAEaux2oAA51963bbRrbmfz5FHfqHyXVIRpLvcqe7ZUtOlFi2xlI658z0
rLNAAiQRkQAbACUrXp5nmWeZJ5v97UtVAaRyOVndCUUChV279v2G8Xjca/Jm
lR27i+2qyTdJs3TXVTKf5zN3VizyIsuqvFj0kum0ym7pqsvrs15azopkTfek
dGUzvinXm2y1SsZNltTj9abJxgdPe2nS0BVHB0fPezP6uCir+2NXN2mv98iV
07pcZU1WH/fyTXXsmmpbN0cHB68Ojnp1U2XJ+tidn12/6yX0+dh9KrcNgLgr
q5tFVW43x+767OTK/fxd7+bu2K0N8hEtJKBnEei0YlKk/5WsyoIAus/q3iY/
dv+rKWcjV5cVPW5e06f7NT78714v2TbLsjruOTd2eVEfux8n7kfdIn3pnOz9
x7zKsiZv/1RWi6TIf02avCyO3feXZ/ztLG9o71fbori/TVYZf1dlC77mbbLK
52VV5LLArExp7VdPD16+0r+3RQPM/VTkTZa6q4ZwWbty7k7WtL2Z3JWtk3x1
7G4EpEmeNfO/L/DdZFauw0Yi6N9vk3v3Az17tQfuf9DKv5ZFBPunfLZMqrTW
Lw346+xzUkdwv3h28PLwz8O9ImAmvwCYv9/Ko1twR2BfJL9mhftxmaRpst4D
+dvyM/1/vd4W9Ah8VUebOGlWSdEkrR18l9ECLdw/OXhy9PLP72ENyCY3Atnf
Z+Xnh7bwIb+hp95nldsLf5X9nCW3WQT2+/yWyLhuOrj/8EME9MGLgyf/DYIp
FgCEoK2yOzz1IZhPipSoZeKu1nmz3AP2SVXNtsRE58VsEkF+ucxXSZqtNsu8
jfXLrCjq+9Vt0ib7w1eHJDj+9C6Iu+//njAIvIFeUVZrguw2O+718mIe/nLu
6vKdbKxJqkXWHLtl02zq42++Sct8Qpv65vBgcnhw8OKbN+8ODp+8fP7k1YFc
LkLyxBVlk7mycM1d6TZVOV1l65rQRRAXRfaZdufuCEduUSWbpRBfkCcBoaf5
Lzck6JKRO5u4nyf6GzPp2eTnif+dfxBJevjq2avx4dH44LDXG5PYxr9cMsVV
s6bXu6JnEIoaxyK8EolJCJtnVU0YciSa78dNOd4WKX0DiTjy3+XrDW0jKxq3
zgjWFHimpZLpKq+XWGZVlpvxnISLbHNG2KQDxrYTV2QN5PLITbeNPW+e3bmy
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
+/3cJuQhmHWPk/7jiz+P1gZt2QmbmAfgsi5ykDqoSthQT5bv+rO7wh8/8aP5
0+mlteEdvHwuZnfm8G2c9PL7k40DbNr8CNaJ9kuNjPRJecH0tURmNz3KfguB
j8KEDszS+9uGlpVbC8wXzw4P/gCYv7syzx7Rnb949tSW3It0pZ8Y3bJGvqAL
3MBrbBEC0kKEfgKL2k2hP4Q8hV+ruEf7Km7LRoxAnemsFauKQlcSTFHlvCt4
kkCNJy3fINH5EDwYQ3ZWB1nFF7Kx8TpEppaiI71yn8RopV1MS5ROQGex4QGk
NEkjWEGEdiYP4toN9Tnke+igsa9IF2isCTdKj7W6IzPrwvie9oDtTFelVH9x
b5biWadIFmJvy8qAcAb4X6u7otdaKy3Pg5FrbLZVGO0cGdATwuqoQ1yV5zSh
Bzn0dkMQGR9vh+Lec7k+xxNNLnrgNHfBal+s6DRbZU1UJ3wqHtAb0k5svKM0
ny6WqAJME+nRl74edOnDizRD0nyVgZ+0hytMh5OixJ8yJduH1vFVXc4bRIWH
nY496VOZyawdfGVGc8szUv2tnduYPXd5fdb1U9ne1+Zo657AdWNtKtDGYNwU
XUHSX+wxK8mVBn2WS3x4T01HtNfKm9iOQLwlmzfQ6nH576n4xK7PwVjsuW9E
qczm23BM3A3qhNwxfvJRiDJFtYvL+2mVp+qVoDpy8HSoxa3+r/FLrbCLyr5a
NV/s6oaa8002U1eanh6ZwsLApuo1zYIs0oib3BUHoHvJkYB9HzmZzMvxrO99
+QEe2HCmodT2/E57v9i33G6d7WZMvCWkmYwzGd1Xe5OijzmWLRdTA3P8toXm
3n2+/1VC4IuStJ9Ex/dWGmH25bws5eKTc3TO36gK0ujx6VuSRGgTeOve9Ceu
C3gcDOyO6dQaHuuc47H7dLf3MEJXVAju8pgVi/ly8Z1KZEum6CJmCdrf4r/z
wEh0euS/kjVIR7NE6VsobhzCV5aaBrYHicI5dkJiA3UJlTacSFWtLU3CHDAl
nRxKd6quHRq3ikRD9BAkk0yE5N52YobcRENKih7Hldli2EUVfbGA5siZcNXH
drm+TinG7x99BV5npbjF/m0sasPNF29NCGvfi4gPiRvkqmzi5kO+K+rOrrUP
RjoT/NwdUyTdqpWgzK9CN0gA5+oqnqFXB7bgLhytZwncvSai4FkkGofB5R4E
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
XDXRkCFOiv5/vxuG7sySAAA=

-->

</rfc>

