<?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.21 (Ruby 3.1.2) -->


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

]>


<rfc ipr="trust200902" docName="draft-clad-rtgwg-ipfrr-aiml-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>IP Fast Reroute for AI/ML Fabrics</title>

    <author initials="F." surname="Clad" fullname="Francois Clad" role="editor">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <country>France</country>
        </postal>
        <email>fclad.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <country>Belgium</country>
        </postal>
        <email>cf@cisco.com</email>
      </address>
    </author>
    <author initials="R." surname="Jiang" fullname="Roy Jiang">
      <organization>Alibaba</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>royjiang@aliyun-inc.com</email>
      </address>
    </author>
    <author initials="D." surname="Cai" fullname="Dennis Cai">
      <organization>Alibaba</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>d.cai@alibaba-inc.com</email>
      </address>
    </author>

    <date year="2026" month="March" day="02"/>

    <area>Routing Area</area>
    <workgroup>Network Working Group</workgroup>
    

    <abstract>


<?line 139?>

<t>This document describes the requirements and mechanisms for achieving
sub-100 microsecond convergence in Artificial Intelligence (AI) Data
Center (DC) fabrics and Data Center Interconnect (DCI) environments.
It explores the limitations of current IP Fast Reroute (RFC 5714)
capabilities, such as ECMP, LFA, and TI-LFA, particularly in the
context of large-scale, multi-tier Clos topologies and BGP-only
fabrics. The draft highlights the requirements for
hardware-accelerated network notification mechanisms and
congestion-aware remote protection strategies to address the
stringent performance demands of AI workloads.</t>



    </abstract>



  </front>

  <middle>


<?line 152?>

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

<t>AI training and inference workloads are characterized by high-
bandwidth, synchronized "all-to-all" communication patterns
(<xref target="Gangidi2024"/>, <xref target="Qian2024"/>). These workloads are extremely
sensitive to packet loss and jitter. In modern AI DC fabrics, the
target convergence time for network failures is increasingly moving
toward the sub-100 microsecond threshold.</t>

<t>Traditional network recovery mechanisms operate at two distinct
timescales. Control-plane convergence, where routing protocols (BGP,
IS-IS) recompute paths and update the Forwarding Information Base
(FIB), typically operates in the sub-second range. IP Fast Reroute
mechanisms such as ECMP, LFA, and TI-LFA (<xref target="RFC5714"/>) can reduce
this to the tens of milliseconds by pre-computing backup paths in the
forwarding plane. However, even these mechanisms rely on CPU-based
activation: when a failure is detected, an interrupt is processed by
the line-card CPU to trigger FIB updates and activate the backup
path. This CPU-mediated path introduces activation delays in the
range of 10-50 milliseconds, which is still two orders of magnitude
slower than the sub-100 microsecond target required for AI workloads.</t>

<t>This document discusses the transition toward hardware-accelerated
notification and protection mechanisms that operate entirely within
the forwarding plane to meet these stringent requirements.</t>

<t>While this document focuses on AI/ML backend networks given their
particularly stringent convergence requirements, the mechanisms and
benefits described herein are equally applicable to AI/ML frontend
networks (serving inference requests), general data center networks,
and data center interconnects for other workloads. Any environment
with high-bandwidth, loss-sensitive traffic patterns can benefit from
hardware-accelerated protection and sub-millisecond convergence,
though AI training workloads represent the most demanding use case
driving these architectural changes.</t>

</section>
<section anchor="sec-ainet"><name>AI/ML Networks</name>

<section anchor="sec-ainet-scaleout"><name>Scale-Out Networks</name>

<t>Scale-out networks for AI and Machine Learning backends represent a
specialized class of data center fabric designed to support the
extreme communication demands of distributed training and large-scale
inference workloads. These networks are characterized by all-to-all
connectivity patterns where every compute node must communicate with
every other node, often with synchronized, barrier-based
communication patterns.</t>

<t>Scale-out AI networks typically employ BGP as the only routing
protocol for disseminating reachability information and computing
forwarding paths across the fabric (<xref target="RFC7938"/>).</t>

<section anchor="sec-ainet-scaleout-topology"><name>Topology Architecture</name>

<t>AI backend networks typically employ a multi-tier folded Clos
topology (<xref target="Clos53"/>, <xref target="AlFares2008"/>, <xref target="Greenberg2009"/>), most commonly
implemented as a 2-tier or 3-tier architecture:</t>

<t><list style="symbols">
  <t><strong>Leaf Layer</strong>: Direct connection to compute nodes (GPUs). Each
leaf switch connects to multiple compute nodes and uplinks to spine
switches.</t>
  <t><strong>Spine Layer(s)</strong>: Aggregation points that provide connectivity
between leaf switches. In a 2-tier design, spines directly
interconnect leaves. In a 3-tier design, an additional
"super-spine" or "core" layer provides further aggregation.</t>
</list></t>

<figure title="Example 2-tier folded Clos topology" anchor="fig-clos-topology"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="584" viewBox="0 0 584 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 96,224 L 96,256" fill="none" stroke="black"/>
<path d="M 112,192 L 112,216" fill="none" stroke="black"/>
<path d="M 128,128 L 128,160" fill="none" stroke="black"/>
<path d="M 128,224 L 128,256" fill="none" stroke="black"/>
<path d="M 136,168 L 136,192" fill="none" stroke="black"/>
<path d="M 144,96 L 144,120" fill="none" stroke="black"/>
<path d="M 152,168 L 152,192" fill="none" stroke="black"/>
<path d="M 160,128 L 160,160" fill="none" stroke="black"/>
<path d="M 160,224 L 160,256" fill="none" stroke="black"/>
<path d="M 176,192 L 176,216" fill="none" stroke="black"/>
<path d="M 192,32 L 192,64" fill="none" stroke="black"/>
<path d="M 192,224 L 192,256" fill="none" stroke="black"/>
<path d="M 208,72 L 208,96" fill="none" stroke="black"/>
<path d="M 224,32 L 224,64" fill="none" stroke="black"/>
<path d="M 224,224 L 224,256" fill="none" stroke="black"/>
<path d="M 240,192 L 240,216" fill="none" stroke="black"/>
<path d="M 256,128 L 256,160" fill="none" stroke="black"/>
<path d="M 256,224 L 256,256" fill="none" stroke="black"/>
<path d="M 264,168 L 264,192" fill="none" stroke="black"/>
<path d="M 272,96 L 272,120" fill="none" stroke="black"/>
<path d="M 280,168 L 280,192" fill="none" stroke="black"/>
<path d="M 288,128 L 288,160" fill="none" stroke="black"/>
<path d="M 288,224 L 288,256" fill="none" stroke="black"/>
<path d="M 304,192 L 304,216" fill="none" stroke="black"/>
<path d="M 320,224 L 320,256" fill="none" stroke="black"/>
<path d="M 352,224 L 352,256" fill="none" stroke="black"/>
<path d="M 368,192 L 368,216" fill="none" stroke="black"/>
<path d="M 384,128 L 384,160" fill="none" stroke="black"/>
<path d="M 384,224 L 384,256" fill="none" stroke="black"/>
<path d="M 392,168 L 392,192" fill="none" stroke="black"/>
<path d="M 400,96 L 400,120" fill="none" stroke="black"/>
<path d="M 408,168 L 408,192" fill="none" stroke="black"/>
<path d="M 416,128 L 416,160" fill="none" stroke="black"/>
<path d="M 416,224 L 416,256" fill="none" stroke="black"/>
<path d="M 432,192 L 432,216" fill="none" stroke="black"/>
<path d="M 448,32 L 448,64" fill="none" stroke="black"/>
<path d="M 448,224 L 448,256" fill="none" stroke="black"/>
<path d="M 464,72 L 464,96" fill="none" stroke="black"/>
<path d="M 480,32 L 480,64" fill="none" stroke="black"/>
<path d="M 480,224 L 480,256" fill="none" stroke="black"/>
<path d="M 496,192 L 496,216" fill="none" stroke="black"/>
<path d="M 512,128 L 512,160" fill="none" stroke="black"/>
<path d="M 512,224 L 512,256" fill="none" stroke="black"/>
<path d="M 520,168 L 520,192" fill="none" stroke="black"/>
<path d="M 528,96 L 528,120" fill="none" stroke="black"/>
<path d="M 536,168 L 536,192" fill="none" stroke="black"/>
<path d="M 544,128 L 544,160" fill="none" stroke="black"/>
<path d="M 544,224 L 544,256" fill="none" stroke="black"/>
<path d="M 560,192 L 560,216" fill="none" stroke="black"/>
<path d="M 576,224 L 576,256" fill="none" stroke="black"/>
<path d="M 192,32 L 224,32" fill="none" stroke="black"/>
<path d="M 448,32 L 480,32" fill="none" stroke="black"/>
<path d="M 192,64 L 224,64" fill="none" stroke="black"/>
<path d="M 448,64 L 480,64" fill="none" stroke="black"/>
<path d="M 144,96 L 528,96" fill="none" stroke="black"/>
<path d="M 128,128 L 160,128" fill="none" stroke="black"/>
<path d="M 256,128 L 288,128" fill="none" stroke="black"/>
<path d="M 384,128 L 416,128" fill="none" stroke="black"/>
<path d="M 512,128 L 544,128" fill="none" stroke="black"/>
<path d="M 128,160 L 160,160" fill="none" stroke="black"/>
<path d="M 256,160 L 288,160" fill="none" stroke="black"/>
<path d="M 384,160 L 416,160" fill="none" stroke="black"/>
<path d="M 512,160 L 544,160" fill="none" stroke="black"/>
<path d="M 112,192 L 136,192" fill="none" stroke="black"/>
<path d="M 152,192 L 176,192" fill="none" stroke="black"/>
<path d="M 240,192 L 264,192" fill="none" stroke="black"/>
<path d="M 280,192 L 304,192" fill="none" stroke="black"/>
<path d="M 368,192 L 392,192" fill="none" stroke="black"/>
<path d="M 408,192 L 432,192" fill="none" stroke="black"/>
<path d="M 496,192 L 520,192" fill="none" stroke="black"/>
<path d="M 536,192 L 560,192" fill="none" stroke="black"/>
<path d="M 96,224 L 128,224" fill="none" stroke="black"/>
<path d="M 160,224 L 192,224" fill="none" stroke="black"/>
<path d="M 224,224 L 256,224" fill="none" stroke="black"/>
<path d="M 288,224 L 320,224" fill="none" stroke="black"/>
<path d="M 352,224 L 384,224" fill="none" stroke="black"/>
<path d="M 416,224 L 448,224" fill="none" stroke="black"/>
<path d="M 480,224 L 512,224" fill="none" stroke="black"/>
<path d="M 544,224 L 576,224" fill="none" stroke="black"/>
<path d="M 96,256 L 128,256" fill="none" stroke="black"/>
<path d="M 160,256 L 192,256" fill="none" stroke="black"/>
<path d="M 224,256 L 256,256" fill="none" stroke="black"/>
<path d="M 288,256 L 320,256" fill="none" stroke="black"/>
<path d="M 352,256 L 384,256" fill="none" stroke="black"/>
<path d="M 416,256 L 448,256" fill="none" stroke="black"/>
<path d="M 480,256 L 512,256" fill="none" stroke="black"/>
<path d="M 544,256 L 576,256" fill="none" stroke="black"/>
<g class="text">
<text x="52" y="52">Spines</text>
<text x="208" y="52">S</text>
<text x="464" y="52">S</text>
<text x="52" y="148">Leaves</text>
<text x="144" y="148">L</text>
<text x="272" y="148">L</text>
<text x="400" y="148">L</text>
<text x="528" y="148">L</text>
<text x="40" y="244">Endpoints</text>
<text x="112" y="244">E</text>
<text x="176" y="244">E</text>
<text x="240" y="244">E</text>
<text x="304" y="244">E</text>
<text x="368" y="244">E</text>
<text x="432" y="244">E</text>
<text x="496" y="244">E</text>
<text x="560" y="244">E</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
                       +---+                           +---+
   Spines              | S |                           | S |
                       +---+                           +---+
                         |                               |
                 +-------+-------+---------------+-------+-------+
                 |               |               |               |
               +---+           +---+           +---+           +---+
   Leaves      | L |           | L |           | L |           | L |
               +---+           +---+           +---+           +---+
                | |             | |             | |             | |
             +--+ +--+       +--+ +--+       +--+ +--+       +--+ +--+
             |       |       |       |       |       |       |       |
           +---+   +---+   +---+   +---+   +---+   +---+   +---+   +---+
Endpoints  | E |   | E |   | E |   | E |   | E |   | E |   | E |   | E |
           +---+   +---+   +---+   +---+   +---+   +---+   +---+   +---+
]]></artwork></artset></figure>

<t>For higher-scale deployments, multi-plane and multi-rail extensions
are employed to increase bisection bandwidth and scaling capacity. In
multi-plane architectures, each compute node connects to multiple
independent fabric planes that operate in parallel, effectively
multiplying the network capacity by the number of planes. In
multi-rail designs, each compute node in a rack connects to an
independent fabric rail, multiplying the endpoint scale by the number
of rails at the cost of losing direct connectivity between nodes on
different rails.</t>

</section>
<section anchor="sec-ainet-scaleout-ecmp"><name>ECMP Paths</name>

<t>The set of ECMP paths between any two compute nodes in a k-ary 2- or
3-tier folded Clos fabric are determined by the location of the
source and destination nodes within the topology.</t>

<t>For a source and destination node connected to the same leaf switch,
there is a single path through that common leaf.</t>

<figure title="Path between nodes on the same leaf switch" anchor="fig-path-same-leaf"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="80" width="232" viewBox="0 0 232 80" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,64" fill="none" stroke="black"/>
<path d="M 40,32 L 40,64" fill="none" stroke="black"/>
<path d="M 96,32 L 96,64" fill="none" stroke="black"/>
<path d="M 136,32 L 136,64" fill="none" stroke="black"/>
<path d="M 192,32 L 192,64" fill="none" stroke="black"/>
<path d="M 224,32 L 224,64" fill="none" stroke="black"/>
<path d="M 8,32 L 40,32" fill="none" stroke="black"/>
<path d="M 96,32 L 136,32" fill="none" stroke="black"/>
<path d="M 192,32 L 224,32" fill="none" stroke="black"/>
<path d="M 48,48 L 88,48" fill="none" stroke="black"/>
<path d="M 144,48 L 184,48" fill="none" stroke="black"/>
<path d="M 8,64 L 40,64" fill="none" stroke="black"/>
<path d="M 96,64 L 136,64" fill="none" stroke="black"/>
<path d="M 192,64 L 224,64" fill="none" stroke="black"/>
<polygon class="arrowhead" points="192,48 180,42.4 180,53.6" fill="black" transform="rotate(0,184,48)"/>
<polygon class="arrowhead" points="96,48 84,42.4 84,53.6" fill="black" transform="rotate(0,88,48)"/>
<g class="text">
<text x="24" y="52">A</text>
<text x="116" y="52">Leaf</text>
<text x="208" y="52">Z</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
+---+      +----+      +---+
| A |----->|Leaf|----->| Z |
+---+      +----+      +---+
]]></artwork></artset></figure>

<t>For a source and destination node connected to different leaf
switches in the same pod, the source leaf switch may select any of
the k spine switches in that pod, resulting in k ECMP paths:</t>

<figure title="Paths between nodes on different leaf switches in the same pod" anchor="fig-path-diff-leaf-same-pod"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="472" viewBox="0 0 472 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 16,96 L 16,128" fill="none" stroke="black"/>
<path d="M 48,96 L 48,128" fill="none" stroke="black"/>
<path d="M 104,96 L 104,128" fill="none" stroke="black"/>
<path d="M 144,96 L 144,128" fill="none" stroke="black"/>
<path d="M 176,48 L 176,176" fill="none" stroke="black"/>
<path d="M 208,32 L 208,64" fill="none" stroke="black"/>
<path d="M 208,160 L 208,192" fill="none" stroke="black"/>
<path d="M 256,32 L 256,64" fill="none" stroke="black"/>
<path d="M 256,160 L 256,192" fill="none" stroke="black"/>
<path d="M 288,48 L 288,176" fill="none" stroke="black"/>
<path d="M 320,96 L 320,128" fill="none" stroke="black"/>
<path d="M 360,96 L 360,128" fill="none" stroke="black"/>
<path d="M 416,96 L 416,128" fill="none" stroke="black"/>
<path d="M 448,96 L 448,128" fill="none" stroke="black"/>
<path d="M 208,32 L 256,32" fill="none" stroke="black"/>
<path d="M 176,48 L 200,48" fill="none" stroke="black"/>
<path d="M 264,48 L 288,48" fill="none" stroke="black"/>
<path d="M 208,64 L 256,64" fill="none" stroke="black"/>
<path d="M 16,96 L 48,96" fill="none" stroke="black"/>
<path d="M 104,96 L 144,96" fill="none" stroke="black"/>
<path d="M 320,96 L 360,96" fill="none" stroke="black"/>
<path d="M 416,96 L 448,96" fill="none" stroke="black"/>
<path d="M 56,112 L 96,112" fill="none" stroke="black"/>
<path d="M 152,112 L 176,112" fill="none" stroke="black"/>
<path d="M 288,112 L 312,112" fill="none" stroke="black"/>
<path d="M 368,112 L 408,112" fill="none" stroke="black"/>
<path d="M 16,128 L 48,128" fill="none" stroke="black"/>
<path d="M 104,128 L 144,128" fill="none" stroke="black"/>
<path d="M 320,128 L 360,128" fill="none" stroke="black"/>
<path d="M 416,128 L 448,128" fill="none" stroke="black"/>
<path d="M 208,160 L 256,160" fill="none" stroke="black"/>
<path d="M 176,176 L 200,176" fill="none" stroke="black"/>
<path d="M 264,176 L 288,176" fill="none" stroke="black"/>
<path d="M 208,192 L 256,192" fill="none" stroke="black"/>
<polygon class="arrowhead" points="416,112 404,106.4 404,117.6" fill="black" transform="rotate(0,408,112)"/>
<polygon class="arrowhead" points="320,112 308,106.4 308,117.6" fill="black" transform="rotate(0,312,112)"/>
<polygon class="arrowhead" points="208,176 196,170.4 196,181.6" fill="black" transform="rotate(0,200,176)"/>
<polygon class="arrowhead" points="208,48 196,42.4 196,53.6" fill="black" transform="rotate(0,200,48)"/>
<polygon class="arrowhead" points="104,112 92,106.4 92,117.6" fill="black" transform="rotate(0,96,112)"/>
<g class="text">
<text x="232" y="52">SA1</text>
<text x="32" y="116">A</text>
<text x="124" y="116">LA</text>
<text x="232" y="116">...</text>
<text x="340" y="116">LZ</text>
<text x="432" y="116">Z</text>
<text x="232" y="180">SAk</text>
<text x="36" y="212">Endpoint</text>
<text x="124" y="212">Leaf</text>
<text x="232" y="212">Spine</text>
<text x="340" y="212">Leaf</text>
<text x="436" y="212">Endpoint</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
                         +-----+
                     +-->| SA1 |---+
                     |   +-----+   |
                     |             |
 +---+      +----+   |             |   +----+      +---+
 | A |----->| LA |---+     ...     +-->| LZ |----->| Z |
 +---+      +----+   |             |   +----+      +---+
                     |             |
                     |   +-----+   |
                     +-->| SAk |---+
                         +-----+
Endpoint     Leaf         Spine         Leaf      Endpoint
]]></artwork></artset></figure>

<t>For a source and destination node connected to different leaf
switches in different pods, the source leaf switch may select any of
the k spine switches in its pod, and each of those spine switches may
again select any of the k super-spine switches in the core layer,
resulting in k^2 ECMP paths.</t>

<figure title="Paths between nodes in different pods" anchor="fig-path-diff-leaf-diff-pod"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="584" viewBox="0 0 584 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,128 L 8,160" fill="none" stroke="black"/>
<path d="M 40,128 L 40,160" fill="none" stroke="black"/>
<path d="M 80,128 L 80,160" fill="none" stroke="black"/>
<path d="M 120,128 L 120,160" fill="none" stroke="black"/>
<path d="M 144,80 L 144,208" fill="none" stroke="black"/>
<path d="M 168,64 L 168,96" fill="none" stroke="black"/>
<path d="M 168,192 L 168,224" fill="none" stroke="black"/>
<path d="M 216,64 L 216,96" fill="none" stroke="black"/>
<path d="M 216,192 L 216,224" fill="none" stroke="black"/>
<path d="M 240,48 L 240,112" fill="none" stroke="black"/>
<path d="M 240,176 L 240,240" fill="none" stroke="black"/>
<path d="M 264,32 L 264,64" fill="none" stroke="black"/>
<path d="M 264,96 L 264,128" fill="none" stroke="black"/>
<path d="M 264,160 L 264,192" fill="none" stroke="black"/>
<path d="M 264,224 L 264,256" fill="none" stroke="black"/>
<path d="M 312,32 L 312,64" fill="none" stroke="black"/>
<path d="M 312,96 L 312,128" fill="none" stroke="black"/>
<path d="M 312,160 L 312,192" fill="none" stroke="black"/>
<path d="M 312,224 L 312,256" fill="none" stroke="black"/>
<path d="M 336,48 L 336,112" fill="none" stroke="black"/>
<path d="M 336,176 L 336,240" fill="none" stroke="black"/>
<path d="M 360,64 L 360,96" fill="none" stroke="black"/>
<path d="M 360,192 L 360,224" fill="none" stroke="black"/>
<path d="M 408,64 L 408,96" fill="none" stroke="black"/>
<path d="M 408,192 L 408,224" fill="none" stroke="black"/>
<path d="M 432,80 L 432,208" fill="none" stroke="black"/>
<path d="M 456,128 L 456,160" fill="none" stroke="black"/>
<path d="M 496,128 L 496,160" fill="none" stroke="black"/>
<path d="M 536,128 L 536,160" fill="none" stroke="black"/>
<path d="M 568,128 L 568,160" fill="none" stroke="black"/>
<path d="M 264,32 L 312,32" fill="none" stroke="black"/>
<path d="M 240,48 L 256,48" fill="none" stroke="black"/>
<path d="M 320,48 L 336,48" fill="none" stroke="black"/>
<path d="M 168,64 L 216,64" fill="none" stroke="black"/>
<path d="M 264,64 L 312,64" fill="none" stroke="black"/>
<path d="M 360,64 L 408,64" fill="none" stroke="black"/>
<path d="M 144,80 L 160,80" fill="none" stroke="black"/>
<path d="M 224,80 L 240,80" fill="none" stroke="black"/>
<path d="M 336,80 L 352,80" fill="none" stroke="black"/>
<path d="M 416,80 L 432,80" fill="none" stroke="black"/>
<path d="M 168,96 L 216,96" fill="none" stroke="black"/>
<path d="M 264,96 L 312,96" fill="none" stroke="black"/>
<path d="M 360,96 L 408,96" fill="none" stroke="black"/>
<path d="M 240,112 L 256,112" fill="none" stroke="black"/>
<path d="M 320,112 L 336,112" fill="none" stroke="black"/>
<path d="M 8,128 L 40,128" fill="none" stroke="black"/>
<path d="M 80,128 L 120,128" fill="none" stroke="black"/>
<path d="M 264,128 L 312,128" fill="none" stroke="black"/>
<path d="M 456,128 L 496,128" fill="none" stroke="black"/>
<path d="M 536,128 L 568,128" fill="none" stroke="black"/>
<path d="M 48,144 L 72,144" fill="none" stroke="black"/>
<path d="M 128,144 L 144,144" fill="none" stroke="black"/>
<path d="M 432,144 L 448,144" fill="none" stroke="black"/>
<path d="M 504,144 L 528,144" fill="none" stroke="black"/>
<path d="M 8,160 L 40,160" fill="none" stroke="black"/>
<path d="M 80,160 L 120,160" fill="none" stroke="black"/>
<path d="M 264,160 L 312,160" fill="none" stroke="black"/>
<path d="M 456,160 L 496,160" fill="none" stroke="black"/>
<path d="M 536,160 L 568,160" fill="none" stroke="black"/>
<path d="M 240,176 L 256,176" fill="none" stroke="black"/>
<path d="M 320,176 L 336,176" fill="none" stroke="black"/>
<path d="M 168,192 L 216,192" fill="none" stroke="black"/>
<path d="M 264,192 L 312,192" fill="none" stroke="black"/>
<path d="M 360,192 L 408,192" fill="none" stroke="black"/>
<path d="M 144,208 L 160,208" fill="none" stroke="black"/>
<path d="M 224,208 L 240,208" fill="none" stroke="black"/>
<path d="M 336,208 L 352,208" fill="none" stroke="black"/>
<path d="M 416,208 L 432,208" fill="none" stroke="black"/>
<path d="M 168,224 L 216,224" fill="none" stroke="black"/>
<path d="M 264,224 L 312,224" fill="none" stroke="black"/>
<path d="M 360,224 L 408,224" fill="none" stroke="black"/>
<path d="M 240,240 L 256,240" fill="none" stroke="black"/>
<path d="M 320,240 L 336,240" fill="none" stroke="black"/>
<path d="M 264,256 L 312,256" fill="none" stroke="black"/>
<polygon class="arrowhead" points="536,144 524,138.4 524,149.6" fill="black" transform="rotate(0,528,144)"/>
<polygon class="arrowhead" points="456,144 444,138.4 444,149.6" fill="black" transform="rotate(0,448,144)"/>
<polygon class="arrowhead" points="360,208 348,202.4 348,213.6" fill="black" transform="rotate(0,352,208)"/>
<polygon class="arrowhead" points="360,80 348,74.4 348,85.6" fill="black" transform="rotate(0,352,80)"/>
<polygon class="arrowhead" points="264,240 252,234.4 252,245.6" fill="black" transform="rotate(0,256,240)"/>
<polygon class="arrowhead" points="264,176 252,170.4 252,181.6" fill="black" transform="rotate(0,256,176)"/>
<polygon class="arrowhead" points="264,112 252,106.4 252,117.6" fill="black" transform="rotate(0,256,112)"/>
<polygon class="arrowhead" points="264,48 252,42.4 252,53.6" fill="black" transform="rotate(0,256,48)"/>
<polygon class="arrowhead" points="168,208 156,202.4 156,213.6" fill="black" transform="rotate(0,160,208)"/>
<polygon class="arrowhead" points="168,80 156,74.4 156,85.6" fill="black" transform="rotate(0,160,80)"/>
<polygon class="arrowhead" points="80,144 68,138.4 68,149.6" fill="black" transform="rotate(0,72,144)"/>
<g class="text">
<text x="288" y="52">SS1</text>
<text x="192" y="84">SA1</text>
<text x="288" y="84">...</text>
<text x="384" y="84">SZ1</text>
<text x="288" y="116">SSk</text>
<text x="24" y="148">A</text>
<text x="100" y="148">LA</text>
<text x="192" y="148">...</text>
<text x="288" y="148">...</text>
<text x="384" y="148">...</text>
<text x="476" y="148">LZ</text>
<text x="552" y="148">Z</text>
<text x="288" y="180">SS1</text>
<text x="192" y="212">SAk</text>
<text x="288" y="212">...</text>
<text x="384" y="212">SZk</text>
<text x="288" y="244">SSk^2</text>
<text x="36" y="276">Endpoint</text>
<text x="100" y="276">Leaf</text>
<text x="192" y="276">Spine</text>
<text x="288" y="276">Super-Spine</text>
<text x="384" y="276">Spine</text>
<text x="476" y="276">Leaf</text>
<text x="548" y="276">Endpoint</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
                                +-----+
                             +->| SS1 |--+
                    +-----+  |  +-----+  |  +-----+
                 +->| SA1 |--+    ...    +->| SZ1 |--+
                 |  +-----+  |  +-----+  |  +-----+  |
                 |           +->| SSk |--+           |
+---+    +----+  |              +-----+              |  +----+    +---+
| A |--->| LA |--+    ...         ...         ...    +->| LZ |--->| Z |
+---+    +----+  |              +-----+              |  +----+    +---+
                 |           +->| SS1 |--+           |
                 |  +-----+  |  +-----+  |  +-----+  |
                 +->| SAk |--+    ...    +->| SZk |--+
                    +-----+  |  +-----+  |  +-----+
                             +->|SSk^2|--+
                                +-----+
Endpoint  Leaf       Spine    Super-Spine    Spine       Leaf   Endpoint
]]></artwork></artset></figure>

<t>Notably, the ECMP path diversity is exclusively in the upward
direction, from leaf to spine and from spine to super-spine. Once
traffic reaches the highest tier switch on the path, there is only a
single downward path to the destination leaf and compute node. This
asymmetry in path diversity is a fundamental characteristic of folded
Clos fabrics and has significant implications for failure modes and
fast reroute strategies.</t>

</section>
<section anchor="sec-ainet-scaleout-resiliency"><name>Resiliency Mechanisms</name>

<t>In scale-out fabrics, Equal-Cost Multi-Path (ECMP) is the primary
mechanism for resiliency. When a local link fails, the Forwarding
Information Base (FIB) is updated to remove the failed next-hop.</t>

<t>Traffic that was using the failed path can be handled in one of two
ways: it can be shifted entirely onto a single backup ECMP member
path, or it can be redistributed and load-balanced across all
surviving ECMP member paths. The latter approach spreads the impact of the failure across multiple paths, reducing the likelihood of overloading any single backup path, but is also more complex to implement.</t>

<t>In addition, ECMP-based resiliency is fundamentally limited to
failures occurring in the upward direction of the path—the first half
of the route through the fabric where multiple paths exist. As
described in <xref target="sec-ainet-scaleout-ecmp"/>, once traffic reaches the
highest tier switch (spine or super-spine) on its path, there is only
a single downward path to the destination leaf. A failure occurring
in this second half of the path cannot be locally protected by ECMP
because the node detecting the failure has no alternate ECMP paths
available.</t>

</section>
</section>
<section anchor="sec-ainet-scaleacross"><name>Scale-Across Networks</name>

<t>Scale-across networks interconnect multiple AI scale-out fabrics,
either within the same data center campus, across geographically
distributed data centers, or both. These networks enable distributed
training and inference at mega-scale, allowing AI workloads to span
hundreds of thousands of GPUs across multiple independent clusters.
Scale-across networks operate at the boundaries between scale-out
fabrics and represent a hybrid environment combining elements of both
traditional DC networking and WAN characteristics.</t>

<t>Scale-across networks employ either link-state IGP (e.g., IS-IS) or BGP (<xref target="RFC7938"/>) as the routing protocol, depending on the deployment scenario and operational preferences.</t>

<section anchor="deployment-models-and-topology-characteristics"><name>Deployment Models and Topology Characteristics</name>

<t>Scale-across networks exist in several deployment scenarios, each with
characteristic topologies and path properties:</t>

<t><list style="symbols">
  <t><strong>Campus-scale</strong>: Multiple clusters within the same data center
campus, typically connected via dedicated high-bandwidth trunks with
latency in the single-digit microseconds to tens of microseconds
range. These connections may span multiple buildings or co-located
facilities with diverse physical routing. Campus-scale deployments
often employ full-mesh or partial-mesh topologies where every
cluster gateway connects directly to every other cluster gateway
(full-mesh) or connects through a central hub (partial-mesh with
hub). These topologies provide maximum path diversity and lowest
latency, with forwarding typically static or based on simple
multi-path load balancing rather than dynamic routing protocols.</t>
  <t><strong>Metro/Regional</strong>: Clusters distributed across metropolitan areas
or regional data centers, with latencies typically in the hundreds
of microseconds to low milliseconds. These deployments may leverage
Dark Fiber or dedicated wavelengths to minimize latency. Topologies
are often constrained by fiber routing and may form ring or chain
topologies representing physical fiber routes, or may employ
partial-mesh configurations with hub aggregation points at central
locations.</t>
  <t><strong>Wide-area</strong>: Clusters in geographically distant data centers,
spanning multiple regions or countries. Latencies are typically in
the milliseconds range. Wide-area topologies are inherently
irregular and arbitrary, shaped by geographic constraints, business
relationships, fiber availability, and historical infrastructure
decisions. Connectivity between clusters varies significantly, with
no guaranteed symmetry: some cluster pairs may have direct links,
while others may be connected through multiple intermediate
aggregation points. The number of available paths, path lengths,
and path costs are highly uneven across different cluster pairs.</t>
</list></t>

</section>
<section anchor="sec-ainet-scaleacross-resiliency"><name>Resiliency Mechanisms</name>

<t>Scale-across networks employ a combination of resiliency mechanisms
depending on the underlying routing protocol and topology
characteristics.</t>

<t><strong>ECMP</strong>: When multiple equal-cost paths exist to the destination
node, ECMP provides the same basic protection as in scale-out
fabrics. Upon detecting a local link failure, traffic is shifted to a
backup ECMP member or redistributed across all surviving paths.
However, unlike the regular Clos topology of scale-out fabrics, the
irregular nature of scale-across topologies means that equal-cost
multipath opportunities are less predictable and may not exist for
all source-destination pairs.</t>

<t><strong>LFA (Loop-Free Alternates)</strong>: In deployments using link-state IGPs,
LFA (<xref target="RFC5286"/>) can provide pre-computed backup paths for link or
node failures. LFA identifies alternate next-hops that guarantee
loop-free forwarding without requiring the IGP to reconverge.
However, LFA coverage is topology-dependent and may not provide 100%
protection, particularly in irregular topologies with limited
connectivity between nodes. Where LFA coverage gaps exist, traffic
may be dropped until the control plane converges.</t>

<t><strong>TI-LFA (Topology-Independent LFA)</strong>: TI-LFA (<xref target="RFC9855"/>) utilizes
Segment Routing to provide 100% protection coverage regardless of
topology. TI-LFA can steer traffic around failures even when no
naturally loop-free alternate exists, by encoding a repair path as a
segment list. While this ensures full protection, TI-LFA may
occasionally result in suboptimal "hairpin" routing where traffic has
to traverse an upstream node on its way to a safe release node in the
Q-Space of the destination (see <xref target="sec-limitations-repair"/>).</t>

</section>
</section>
</section>
<section anchor="sec-limitations"><name>Limitations of Existing Resiliency Mechanisms</name>

<t>The resiliency mechanisms described in <xref target="sec-ainet-scaleout-resiliency"/>
and <xref target="sec-ainet-scaleacross-resiliency"/> face several fundamental
limitations when applied to AI/ML workloads in scale-out and
scale-across networks.</t>

<section anchor="sec-limitations-cpu"><name>CPU-Based Activation Latency</name>

<t>Traditional fast reroute implementations rely on the line-card CPU to
detect interface failures and trigger FIB updates. When a physical link
fails and the failure is detected at the hardware level (e.g., loss of
optical signal), this event generates an interrupt that is processed by
the line-card CPU. The CPU then retrieves the appropriate
backup forwarding state and programs the forwarding hardware
accordingly. This CPU-mediated path introduces an activation delay
typically in the range of 10-50 milliseconds, depending on the CPU load,
software architecture, and implementation efficiency.</t>

<t>For AI training workloads with synchronized all-reduce operations and
barrier synchronization, even a few milliseconds of packet loss can
cause significant performance degradation. The target convergence time
for modern AI fabrics is increasingly moving toward the sub-100
microsecond range, two orders of magnitude faster than CPU-based
protection activation can provide.</t>

</section>
<section anchor="sec-limitations-ecmp"><name>Limited Scope of ECMP Protection</name>

<t>As described in <xref target="sec-ainet-scaleout-resiliency"/>, ECMP-based
protection is fundamentally limited to local failures. In the context
of a multi-tier folded Clos fabric, this means ECMP can only protect
failures in the upward direction, the first half of the path where
multiple equal-cost paths exist through different spine or
super-spine switches.</t>

<t>Once traffic has traversed upward to the highest tier switch on its path
(spine or super-spine), there is typically only a single downward link
to the destination leaf switch. A failure on this downward segment
cannot be protected by ECMP at the upstream node because no alternate
paths are available at that point in the topology. The traffic is
effectively dropped until the control plane converges and updates the
FIB at nodes multiple hops upstream that still have path diversity.</t>

<t>Recent proposals such as <xref target="I-D.ietf-idr-next-next-hop-nodes"/> and
<xref target="I-D.zzhang-rtgwg-router-info"/> attempt to provide visibility into
two-hop failures by advertising information about next-next-hops and
the accompanying network notifications. While these mechanisms can
extend protection to failures one hop beyond the local node, they do
not address the general case of failures occurring multiple hops
away. In a 3-tier Clos fabric, traffic from endpoint A to endpoint Z
may traverse LA -&gt; SA1 -&gt; SS1 -&gt; SZ1 -&gt; LZ. As is apparent in
<xref target="fig-path-diff-leaf-diff-pod"/>, if the spine-to-leaf link SZ1-LZ
fails, the adjacent node (SZ1) has no alternate downward path to LZ
and cannot reroute locally; the node one hop away (SS1) also has no
alternate path to reach LZ without using SZ1. The closest node with
path diversity that can avoid the failed link is LA, which is three
hops away from the failure. Similarly, in scale-across networks with
arbitrary topologies, failures may occur at any depth in the network,
well beyond the visibility provided by one extensions to BGP
visibility.</t>

</section>
<section anchor="sec-limitations-binary"><name>Binary Failure Model</name>

<t>Existing fast reroute mechanisms — ECMP, LFA, and TI-LFA — operate on a
binary failure model where a link or node is either "up" or "down." Upon
detecting a complete failure, these mechanisms activate a pre-computed
backup path or redistribute traffic across surviving ECMP members.</t>

<t>However, in AI fabrics, failures may have more nuanced impacts. A
single member failure within a link bundle between two switches does
not sever connectivity; it reduces available capacity by 1/k (where k
is the number of bundle members). Traffic can still traverse the
bundle, but the aggregate bandwidth on that hop is reduced by one
member while the ECMP set remains unchanged.</t>

<t>While control-plane mechanisms exist to adjust load-balancing weights
based on bandwidth changes, such as by leveraging the BGP link
bandwidth extended community (<xref target="I-D.ietf-bess-ebgp-dmz"/>), these rely
on control-plane signaling and operate on sub-second to second
timescales. For AI workloads requiring sub-100 microsecond
convergence, this control-plane latency is insufficient.</t>

</section>
<section anchor="sec-limitations-repair"><name>Inefficient Local Repair Paths</name>

<t>TI-LFA provides 100% protection coverage by steering traffic around
failures using Segment Routing-encoded repair paths. However, the
repair paths computed by TI-LFA are not always optimal from the
perspective of the source node and may result in "hairpin" routing
where traffic must traverse an upstream node before reaching a safe
release point in the Q-Space (the set of nodes that can reach the
destination while avoiding the failed link).</t>

<t>Consider a network where traffic from node A to node D normally flows
through node B (A -&gt; B -&gt; D), and the link B-D fails. A
TI-LFA repair path at B might send traffic back to A and from there to a node C in the Q-Space of D. This forces the traffic to go back and forth between A and B, creating a hairpin (one time loop) that consumes additional bandwidth on the A-B link and introduces additional latency compared to the more direct A -&gt; C -&gt; D path.</t>

<figure title="Hairpin for A -&gt; D traffic on repair path from B to C" anchor="fig-hairpin"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="296" viewBox="0 0 296 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,96 L 8,128" fill="none" stroke="black"/>
<path d="M 32,48 L 32,88" fill="none" stroke="black"/>
<path d="M 32,136 L 32,176" fill="none" stroke="black"/>
<path d="M 56,96 L 56,128" fill="none" stroke="black"/>
<path d="M 72,64 L 72,160" fill="none" stroke="black"/>
<path d="M 120,32 L 120,64" fill="none" stroke="black"/>
<path d="M 120,160 L 120,192" fill="none" stroke="black"/>
<path d="M 168,32 L 168,64" fill="none" stroke="black"/>
<path d="M 168,160 L 168,192" fill="none" stroke="black"/>
<path d="M 240,96 L 240,128" fill="none" stroke="black"/>
<path d="M 264,48 L 264,88" fill="none" stroke="black"/>
<path d="M 264,136 L 264,176" fill="none" stroke="black"/>
<path d="M 288,96 L 288,128" fill="none" stroke="black"/>
<path d="M 120,32 L 168,32" fill="none" stroke="black"/>
<path d="M 32,48 L 112,48" fill="none" stroke="black"/>
<path d="M 176,48 L 216,48" fill="none" stroke="black"/>
<path d="M 232,48 L 264,48" fill="none" stroke="black"/>
<path d="M 72,64 L 104,64" fill="none" stroke="black"/>
<path d="M 120,64 L 168,64" fill="none" stroke="black"/>
<path d="M 8,96 L 56,96" fill="none" stroke="black"/>
<path d="M 240,96 L 288,96" fill="none" stroke="black"/>
<path d="M 8,128 L 56,128" fill="none" stroke="black"/>
<path d="M 240,128 L 288,128" fill="none" stroke="black"/>
<path d="M 72,160 L 104,160" fill="none" stroke="black"/>
<path d="M 120,160 L 168,160" fill="none" stroke="black"/>
<path d="M 32,176 L 112,176" fill="none" stroke="black"/>
<path d="M 176,176 L 264,176" fill="none" stroke="black"/>
<path d="M 120,192 L 168,192" fill="none" stroke="black"/>
<polygon class="arrowhead" points="272,136 260,130.4 260,141.6" fill="black" transform="rotate(270,264,136)"/>
<polygon class="arrowhead" points="272,88 260,82.4 260,93.6" fill="black" transform="rotate(90,264,88)"/>
<polygon class="arrowhead" points="120,176 108,170.4 108,181.6" fill="black" transform="rotate(0,112,176)"/>
<polygon class="arrowhead" points="120,48 108,42.4 108,53.6" fill="black" transform="rotate(0,112,48)"/>
<polygon class="arrowhead" points="112,160 100,154.4 100,165.6" fill="black" transform="rotate(0,104,160)"/>
<g class="text">
<text x="144" y="52">B</text>
<text x="224" y="52">X</text>
<text x="32" y="116">A</text>
<text x="108" y="116">Repair</text>
<text x="156" y="116">path</text>
<text x="264" y="116">D</text>
<text x="144" y="180">C</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
              +-----+
   +--------->|  B  |------X----+
   |    +---- +-----+           |
   |    |                       v
+-----+ |                    +-----+
|  A  | | Repair path        |  D  |
+-----+ |                    +-----+
   |    |                       ^
   |    +---> +-----+           |
   +--------->|  C  |-----------+
              +-----+
]]></artwork></artset></figure>

<t>In the context of AI workloads, where traffic patterns are extremely
bandwidth-sensitive and latency-sensitive, hairpin routing introduces
multiple problems. First, the inefficient paths consume more bandwidth
on potentially congested upstream links, potentially creating cascading
congestion. Second, the additional latency introduced by hairpinning
can disrupt the tight synchronization required by distributed AI
training algorithms.</t>

</section>
</section>
<section anchor="sec-requirements"><name>Requirements for Enhanced Protection in AI/ML Fabrics</name>

<t>To overcome the limitations described in <xref target="sec-limitations"/>,
enhanced protection mechanisms for AI/ML fabrics should consider the
following requirements.</t>

<section anchor="sec-req-hw-protection"><name>Hardware-Accelerated Protection Activation</name>

<t>Traditional CPU-based protection with 10-50 millisecond activation delay
is insufficient for AI workloads. Protection activation must occur
entirely within the forwarding plane, using NPU-embedded logic.</t>

<t>Upon detecting a local link or interface failure, the hardware must
immediately activate a pre-computed backup forwarding state without CPU
intervention. This allows protection activation to occur in microseconds,
with a target of sub-100 microseconds to meet the most stringent AI
workload requirements.</t>

<t>The same hardware-accelerated activation principle applies to
receiving network notifications (see <xref target="sec-req-netnotif"/>). When a
node receives a notification of a remote failure or capacity drop
that impacts its forwarding paths, it should be able to adjust its
forwarding state in hardware without waiting for CPU processing.</t>

</section>
<section anchor="sec-req-visibility"><name>Complete Topology Visibility</name>

<t>Complete topology visibility is required to compute LFA and TI-LFA
protection paths. The same is also required for any form of remote
protection (ECMP, LFA, TI-LFA) at an arbitrary distance from the
failure.</t>

<t>In networks running a link-state IGP, complete topology visibility is
inherent to the protocol, as all nodes receive the full link-state
database and can compute global shortest paths. However, in BGP-only
networks, nodes typically do not have any visibility beyond their
directly connected neighbors. Yet, complete topology visibility can
easily be achieved in BGP-only networks (<xref target="RFC7938"/>) by
incrementally enabling BGP Link-State (BGP-LS) without affecting
normal BGP routing, as described in
<xref target="I-D.ietf-idr-bgp-ls-bgp-only-fabric"/>.</t>

</section>
<section anchor="sec-req-netnotif"><name>Hardware-Accelerated Network Notifications</name>

<t>A dedicated network notification mechanism is required to communicate
failures, capacity changes, congestions, and other link performance
degradation through the data plane in near real-time, allowing nodes
at an arbitrary distance from the event to trigger appropriate
remediation. When a node detecting a degradation generates and
injects notification packets into the data plane, these packets must
be able to traverse and be processed by any node in the network that
requires corrective action, not limited to one or two hops away.</t>

<t>Beyond simple up/down signals, these notifications should convey
quantitative information about the event impact—such as capacity
reduction, congestion, or link quality degradation. This allows
remote nodes to determine the scope of the event's impact on their
own forwarding paths and make intelligent local protection decisions,
rather than treating all events as failures.</t>

<t>The problem statement for those network notifications is discussed in
<xref target="I-D.ietf-rtgwg-net-notif-ps"/>.</t>

</section>
<section anchor="sec-req-remote-protect"><name>Quality-Aware Remote Protection</name>

<t>Upon receiving a network notification, forwarding nodes must be able
to adjust their forwarding state in real time based on the failure or
quantitative information conveyed in the network notification. Rather
than waiting for the control plane to converge, quality-aware
protection allows a node to immediately trigger efficient remote
protection actions in hardware within the sub-100 microsecond
timeframe.</t>

<t>Quality-aware remote protection can consist of:</t>

<t><list style="symbols">
  <t><strong>ECMP Weight Adjustment</strong>: Adjust the load-balancing weights in
the ECMP hash table to distribute traffic proportionally to remaining
available capacity while staying within the existing ECMP set. This
preserves the optimal path structure of the original topology.</t>
  <t><strong>Repair Path Outside ECMP Set</strong>: When adjustment of weights alone
cannot provide an appropriate remediation, activate one or more
weighted repair paths that steer traffic toward the destination via
alternate routes. These repair paths should be optimized to avoid
any routing hairpin that would increase latency and bandwidth
consumption.</t>
</list></t>

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

<t>To be done.</t>

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

<t>This document does not require any IANA actions.</t>

</section>


  </middle>

  <back>




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



<reference anchor="RFC5286">
  <front>
    <title>Basic Specification for IP Fast Reroute: Loop-Free Alternates</title>
    <author fullname="A. Atlas" initials="A." role="editor" surname="Atlas"/>
    <author fullname="A. Zinin" initials="A." role="editor" surname="Zinin"/>
    <date month="September" year="2008"/>
    <abstract>
      <t>This document describes the use of loop-free alternates to provide local protection for unicast traffic in pure IP and MPLS/LDP networks in the event of a single failure, whether link, node, or shared risk link group (SRLG). The goal of this technology is to reduce the packet loss that happens while routers converge after a topology change due to a failure. Rapid failure repair is achieved through use of precalculated backup next-hops that are loop-free and safe to use until the distributed network convergence process completes. This simple approach does not require any support from other routers. The extent to which this goal can be met by this specification is dependent on the topology of the network. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5286"/>
  <seriesInfo name="DOI" value="10.17487/RFC5286"/>
</reference>

<reference anchor="RFC5714">
  <front>
    <title>IP Fast Reroute Framework</title>
    <author fullname="M. Shand" initials="M." surname="Shand"/>
    <author fullname="S. Bryant" initials="S." surname="Bryant"/>
    <date month="January" year="2010"/>
    <abstract>
      <t>This document provides a framework for the development of IP fast- reroute mechanisms that provide protection against link or router failure by invoking locally determined repair paths. Unlike MPLS fast-reroute, the mechanisms are applicable to a network employing conventional IP routing and forwarding. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5714"/>
  <seriesInfo name="DOI" value="10.17487/RFC5714"/>
</reference>

<reference anchor="RFC7938">
  <front>
    <title>Use of BGP for Routing in Large-Scale Data Centers</title>
    <author fullname="P. Lapukhov" initials="P." surname="Lapukhov"/>
    <author fullname="A. Premji" initials="A." surname="Premji"/>
    <author fullname="J. Mitchell" initials="J." role="editor" surname="Mitchell"/>
    <date month="August" year="2016"/>
    <abstract>
      <t>Some network operators build and operate data centers that support over one hundred thousand servers. In this document, such data centers are referred to as "large-scale" to differentiate them from smaller infrastructures. Environments of this scale have a unique set of network requirements with an emphasis on operational simplicity and network stability. This document summarizes operational experience in designing and operating large-scale data centers using BGP as the only routing protocol. The intent is to report on a proven and stable routing design that could be leveraged by others in the industry.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7938"/>
  <seriesInfo name="DOI" value="10.17487/RFC7938"/>
</reference>

<reference anchor="RFC9855">
  <front>
    <title>Topology Independent Fast Reroute Using Segment Routing</title>
    <author fullname="A. Bashandy" initials="A." surname="Bashandy"/>
    <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
    <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
    <author fullname="P. Francois" initials="P." surname="Francois"/>
    <author fullname="B. Decraene" initials="B." surname="Decraene"/>
    <author fullname="D. Voyer" initials="D." surname="Voyer"/>
    <date month="October" year="2025"/>
    <abstract>
      <t>This document presents Topology Independent Loop-Free Alternate (TI-LFA) Fast Reroute (FRR), which is aimed at providing protection of node and Adjacency segments within the Segment Routing (SR) framework. This FRR behavior builds on proven IP FRR concepts being LFAs, Remote LFAs (RLFAs), and Directed Loop-Free Alternates (DLFAs). 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 (PLR), reducing the operational need to control the tie-breaks among various FRR options.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9855"/>
  <seriesInfo name="DOI" value="10.17487/RFC9855"/>
</reference>


<reference anchor="I-D.ietf-rtgwg-net-notif-ps">
   <front>
      <title>Fast Network Notifications Problem Statement</title>
      <author fullname="Jie Dong" initials="J." surname="Dong">
         <organization>Huawei Technologies</organization>
      </author>
      <author fullname="Mike McBride" initials="M." surname="McBride">
         <organization>Futurewei</organization>
      </author>
      <author fullname="Francois Clad" initials="F." surname="Clad">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Zhaohui (Jeffrey) Zhang" initials="Z. J." surname="Zhang">
         <organization>HPE</organization>
      </author>
      <author fullname="Yongqing Zhu" initials="Y." surname="Zhu">
         <organization>China Telecom</organization>
      </author>
      <author fullname="Xiaohu Xu" initials="X." surname="Xu">
         <organization>China Mobile</organization>
      </author>
      <author fullname="Rui Zhuang" initials="R." surname="Zhuang">
         <organization>China Mobile</organization>
      </author>
      <author fullname="Ran Pang" initials="R." surname="Pang">
         <organization>China Unicom</organization>
      </author>
      <author fullname="Hao Lu" initials="H." surname="Lu">
         <organization>Tencent</organization>
      </author>
      <author fullname="Yadong Liu" initials="Y." surname="Liu">
         <organization>Tencent</organization>
      </author>
      <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
         <organization>Telefonica</organization>
      </author>
      <author fullname="MEHMET DURMUS" initials="D." surname="Mehmet">
         <organization>Turkcell</organization>
      </author>
      <author fullname="Reshad Rahman" initials="R." surname="Rahman">
         <organization>Equinix</organization>
      </author>
      <date day="11" month="February" year="2026"/>
      <abstract>
	 <t>   Modern network applications, ranging from Artificial Intelligence
   (AI) /Machine Learning (ML) training to large-scale cloud services,
   require adaptive networks to ensure reliable and congestion-free data
   transfer within or across multiple data centers.  A good and timely
   understanding of network operational status can help to enable faster
   response to critical events, so as to enable the selection of paths
   with reduced latency and improve network utilization.  This document
   describes the existing problems and the need of fast network
   notification solutions.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-rtgwg-net-notif-ps-00"/>
   
</reference>


<reference anchor="I-D.ietf-idr-next-next-hop-nodes">
   <front>
      <title>BGP Next-next Hop Nodes</title>
      <author fullname="Kevin Wang" initials="K." surname="Wang">
         <organization>HPE</organization>
      </author>
      <author fullname="Jeffrey Haas" initials="J." surname="Haas">
         <organization>HPE</organization>
      </author>
      <author fullname="Changwang Lin" initials="C." surname="Lin">
         <organization>New H3C Technologies</organization>
      </author>
      <author fullname="Jeff Tantsura" initials="J." surname="Tantsura">
         <organization>Nvidia</organization>
      </author>
      <date day="20" month="October" year="2025"/>
      <abstract>
	 <t>   BGP speakers learn their next hop addresses for NLRI in RFC 4271 in
   the NEXT_HOP field and in RFC 4760 in the &quot;Network Address of Next
   Hop&quot; field.  Under certain circumstances, it might be desirable for a
   BGP speaker to know both the next hops and the next-next hops of NLRI
   to make optimal forwarding decisions.  One such example is global
   load balancing (GLB) in a Clos network.

   Draft-ietf-idr-entropy-label defines the &quot;Next Hop Dependent
   Characteristics Attribute&quot; (NHC) which allows a BGP speaker to signal
   the forwarding characteristics associated with a given next hop.

   This document defines a new NHC characteristic, the Next-next Hop
   Nodes (NNHN) characteristic, which can be used to advertise the next-
   next hop nodes associated with a given next hop.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-idr-next-next-hop-nodes-00"/>
   
</reference>


<reference anchor="I-D.ietf-idr-bgp-ls-bgp-only-fabric">
   <front>
      <title>BGP Link-State Extensions for BGP-only Networks</title>
      <author fullname="Ketan Talaulikar" initials="K." surname="Talaulikar">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Aravind Babu MahendraBabu" initials="A. B." surname="MahendraBabu">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Krishnaswamy Ananthamurthy" initials="K." surname="Ananthamurthy">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Shawn Zandi" initials="S." surname="Zandi">
         <organization>LinkedIn</organization>
      </author>
      <author fullname="Gaurav Dawra" initials="G." surname="Dawra">
         <organization>LinkedIn</organization>
      </author>
      <author fullname="Muhammad Durrani" initials="M." surname="Durrani">
         <organization>Equinix</organization>
      </author>
      <date day="20" month="October" year="2025"/>
      <abstract>
	 <t>   BGP is used as the only routing protocol in some networks today.  In
   such networks, it is useful to get a detailed topology view similar
   to one available when using link state routing protocols.  This
   document defines extensions to the BGP Link-state (BGP-LS) address-
   family and the procedures for advertisement of topology information
   in a BGP-only network.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-ls-bgp-only-fabric-04"/>
   
</reference>


<reference anchor="I-D.zzhang-rtgwg-router-info">
   <front>
      <title>Advertising Router Information</title>
      <author fullname="Zhaohui (Jeffrey) Zhang" initials="Z. J." surname="Zhang">
         <organization>Juniper Networks</organization>
      </author>
      <author fullname="Kevin Wang" initials="K." surname="Wang">
         <organization>Juniper Networks</organization>
      </author>
      <author fullname="Changwang Lin" initials="C." surname="Lin">
         <organization>New H3C Technologies</organization>
      </author>
      <author fullname="Niranjan Vaidya" initials="N." surname="Vaidya">
         <organization>Broadcom</organization>
      </author>
      <author fullname="Jeff Tantsura" initials="J." surname="Tantsura">
         <organization>Nvidia</organization>
      </author>
      <author fullname="Yisong Liu" initials="Y." surname="Liu">
         <organization>China Mobile</organization>
      </author>
      <date day="23" month="February" year="2026"/>
      <abstract>
	 <t>   This document specifies a generic mechanism for a router to advertise
   some information to its neighbors.  One use case of this mechanism is
   to advertise link/path information so that a receiving router can
   better react to network changes.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-zzhang-rtgwg-router-info-06"/>
   
</reference>


<reference anchor="I-D.ietf-bess-ebgp-dmz">
   <front>
      <title>BGP link bandwidth extended community use cases</title>
      <author fullname="Stephane Litkowski" initials="S." surname="Litkowski">
         <organization>Cisco</organization>
      </author>
      <author fullname="SATYA R MOHANTY" initials="M. R." surname="Satya">
         <organization>Zscaler</organization>
      </author>
      <author fullname="Arie Vayner" initials="A." surname="Vayner">
         <organization>Nvidia</organization>
      </author>
      <author fullname="Akshay Gattani" initials="A." surname="Gattani">
         <organization>Arista Networks</organization>
      </author>
      <author fullname="Ajay Kini" initials="A." surname="Kini">
         <organization>Arista Networks</organization>
      </author>
      <author fullname="Jeff Tantsura" initials="J." surname="Tantsura">
         <organization>Nvidia</organization>
      </author>
      <author fullname="Reshma Das" initials="R." surname="Das">
         <organization>HPE</organization>
      </author>
      <date day="24" month="February" year="2026"/>
      <abstract>
	 <t>   BGP link bandwidth extended community provides a way to signal a
   value along with a BGP path that can be used to perform weighted
   load-balancing in multipath scenarios.  This document details various
   use cases of the BGP link bandwidth extended community.  It also
   describes local mechanisms to dynamically adjust the BGP link
   bandwidth value or the multipath weights based on different
   considerations.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-bess-ebgp-dmz-09"/>
   
</reference>


<reference anchor="Clos53" >
  <front>
    <title>A study of non-blocking switching networks</title>
    <author initials="C." surname="Clos">
      <organization></organization>
    </author>
    <date year="1953" month="March"/>
  </front>
  <seriesInfo name="DOI" value="10.1002/j.1538-7305.1953.tb01433.x"/>
</reference>
<reference anchor="AlFares2008" >
  <front>
    <title>A scalable, commodity data center network architecture</title>
    <author initials="M." surname="Al-Fares">
      <organization></organization>
    </author>
    <author initials="A." surname="Loukissas">
      <organization></organization>
    </author>
    <author initials="A." surname="Vahdat">
      <organization></organization>
    </author>
    <date year="2008" month="August"/>
  </front>
  <seriesInfo name="DOI" value="10.1145/1402946.1402967"/>
</reference>
<reference anchor="Greenberg2009" >
  <front>
    <title>VL2: a scalable and flexible data center network</title>
    <author initials="A." surname="Greenberg">
      <organization></organization>
    </author>
    <author initials="J." surname="Hamilton">
      <organization></organization>
    </author>
    <author initials="N." surname="Jain">
      <organization></organization>
    </author>
    <author initials="S." surname="Kandula">
      <organization></organization>
    </author>
    <author initials="C." surname="Kim">
      <organization></organization>
    </author>
    <author initials="P." surname="Lahiri">
      <organization></organization>
    </author>
    <author initials="D." surname="Maltz">
      <organization></organization>
    </author>
    <author initials="P." surname="Patel">
      <organization></organization>
    </author>
    <author initials="S." surname="Sengupta">
      <organization></organization>
    </author>
    <date year="2009" month="August"/>
  </front>
  <seriesInfo name="DOI" value="10.1145/1592568.1592576"/>
</reference>
<reference anchor="Gangidi2024" >
  <front>
    <title>RDMA over Ethernet for Distributed Training at Meta Scale</title>
    <author initials="A." surname="Gangidi">
      <organization></organization>
    </author>
    <author initials="R." surname="Miao">
      <organization></organization>
    </author>
    <author initials="S." surname="Zheng">
      <organization></organization>
    </author>
    <author initials="S. J." surname="Bondu">
      <organization></organization>
    </author>
    <author initials="G." surname="Goes">
      <organization></organization>
    </author>
    <author initials="H." surname="Morsy">
      <organization></organization>
    </author>
    <author initials="R." surname="Puri">
      <organization></organization>
    </author>
    <author initials="M." surname="Riftadi">
      <organization></organization>
    </author>
    <author initials="A. J." surname="Shetty">
      <organization></organization>
    </author>
    <author initials="J." surname="Yang">
      <organization></organization>
    </author>
    <author initials="S." surname="Zhang">
      <organization></organization>
    </author>
    <author initials="M. J." surname="Fernandez">
      <organization></organization>
    </author>
    <author initials="S." surname="Gandham">
      <organization></organization>
    </author>
    <author initials="H." surname="Zeng">
      <organization></organization>
    </author>
    <date year="2024" month="August"/>
  </front>
  <seriesInfo name="DOI" value="10.1145/3651890.3672233"/>
</reference>
<reference anchor="Qian2024" >
  <front>
    <title>Alibaba HPN: A Data Center Network for Large Language Model Training</title>
    <author initials="K." surname="Qian">
      <organization></organization>
    </author>
    <author initials="Y." surname="Xi">
      <organization></organization>
    </author>
    <author initials="J." surname="Cao">
      <organization></organization>
    </author>
    <author initials="J." surname="Gao">
      <organization></organization>
    </author>
    <author initials="Y." surname="Xu">
      <organization></organization>
    </author>
    <author initials="Y." surname="Guan">
      <organization></organization>
    </author>
    <author initials="B." surname="Fu">
      <organization></organization>
    </author>
    <author initials="X." surname="Shi">
      <organization></organization>
    </author>
    <author initials="F." surname="Zhu">
      <organization></organization>
    </author>
    <author initials="R." surname="Miao">
      <organization></organization>
    </author>
    <author initials="C." surname="Wang">
      <organization></organization>
    </author>
    <author initials="P." surname="Wang">
      <organization></organization>
    </author>
    <author initials="P." surname="Zhang">
      <organization></organization>
    </author>
    <author initials="X." surname="Zeng">
      <organization></organization>
    </author>
    <author initials="E." surname="Ruan">
      <organization></organization>
    </author>
    <author initials="Z." surname="Yao">
      <organization></organization>
    </author>
    <author initials="E." surname="Zhai">
      <organization></organization>
    </author>
    <author initials="D." surname="Cai">
      <organization></organization>
    </author>
    <date year="2024" month="August"/>
  </front>
  <seriesInfo name="DOI" value="10.1145/3651890.3672265"/>
</reference>


    </references>



<?line 654?>

<!-- # Title of Appendix A -->

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

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA719e3Mbx7Xn//0peqnaWsrCwBJlybbuXlcoSrKZULIiOrGj
rc1WY6YBjDWYQWYGpGCJqXyIfMJ8kj2/c/o1A0BSfF2XZZPAPLpPn/erW1mW
qatH+r7qelMX/89UTW0f6b7dWFWuW/7U9Sd3735990Sty0f6//RNPtFd0/at
nXf0abvCh/+rVLeZrcquK5v6h+2axjh/+sMzZVprHumjV82mL+uFPqWvR+p6
QZde2P66ad/oH+kXbn3bNpv1kcpN/0iX9bxRtwrT0zC3dLMqe903urK9fruq
Ttp5rudlVel+aXW+aVtb9xoP66bVneVnC9uVrS34slJ92VeA6KV+Zrpev7I0
Fz0+p+dPzz9/fkGXZ22ZdzTZs/Ofnj9Vt8xs1tqrMHscWG6UNGyheVhVNHlt
VjR80Zp5n+WVKbK2X1wvsnI9b9vMlKsqu3s3jv3GbmnlBQY3RaFNp2trC1so
ZTb9smlxo7Vra3qG0NRbLTeUzpTWbYO12KLscUXfKusObwC+co4nm5Xpy5yQ
WPalqTpd0n913hCe8p5eEGCftYau0a0zgpeuNi0R5azs8kZfbrveroi253U+
pVt2ZcrqkZ5jZdPS9vPfLXBlmjcrups3m7pvt25EKzDeGkBJXzc02WoFQgHG
9boqczMj5P1q+Alsontu9bOy6ogbuk9aQz7/XY77Y9gf22pRblb/XcC/arb6
96WpFx7o06qcmZmJgLbN9mc88DtTldtNndEYY5jPlmVt/rsgfmLrGsxiyoMg
F9PclIAXlw8DrG7lDX0vZzRz62UgudTpma2aa2L9iv5AM3QEASSB4ISwiCx0
StV8qbyyfpRwgcRnbpk93GhKQaWMHk8u7b6g9atnZw9Ovnr4yH388t4X7uOX
X9//yn38+qsHD/DxPHvCkuEEv7Z9Vjd9Oc/W3eB2WbR0820vv5bNmh4jVbXz
zGyxzqqO/zR1tc3mrJ/8Y7/8siTWcHOxKmszLGYwzMx2XWYxQrH6BXfOqqZ7
cB+ftMOhfNaZZp44m/IjfM0pzKNT3fWbYqubOSG3zmZVk7Oy7q7LPl/iUy1q
vDvi9zrblqR5HSz4efL9+SN97+703t27J5//PL334P5X2Zf37z6Y3vv6wf1p
P7t774v796dv+WlR+M9Nmy81btPF0+oZyXlHBuirw5A/n9JzGT84uH461RfN
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
eTQnE2mPbtT/B9LtyQnzbgAA

-->

</rfc>

