<?xml version="1.0" encoding="US-ASCII"?>
<?xml-model href="rfc7991bis.rnc"?>  <!-- Required for schema validation and schema-aware editing -->


<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  category="info"
  docName="draft-filsfils-srv6ops-srv6-ai-backend-04"
  ipr="trust200902"
  obsoletes=""
  updates=""
  submissionType="IETF"
  xml:lang="en"
  version="3">

  <front>
    <title abbrev="SRv6 for AI Backends">SRv6 for Deterministic Path Placement in AI Backends</title>

    <author fullname="Clarence Filsfils" initials="C" surname="Filsfils">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>Belgium</country>
        </postal>

        <email>cf@cisco.com</email>
      </address>
    </author>

    <author fullname="Pablo Camarillo Garvia" initials="P" role="editor"
            surname="Camarillo">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>Spain</country>
        </postal>

        <email>pcamaril@cisco.com</email>
      </address>
    </author>

    <author fullname="Guohan Lu" initials="G" surname="Lu">
      <organization>Microsoft</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>United States of America</country>
        </postal>

        <email>gulv@microsoft.com</email>
      </address>
    </author>

    <author fullname="Jag Brar" initials="J" surname="Brar">
      <organization>Oracle</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>United States of America</country>
        </postal>

        <email>jag.brar@oracle.com</email>
      </address>
    </author>

    <author fullname="David Becker" initials="D" surname="Becker">
      <organization>Oracle</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>United States of America</country>
        </postal>

        <email>david.b.becker@oracle.com</email>
      </address>
    </author>

    <author fullname="Abderrahman Jouhari" initials="A" surname="Jouhari">
      <organization>Oracle</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>United States of America</country>
        </postal>

        <email>abderrahman.jouhari@oracle.com</email>
      </address>
    </author>

    <author fullname="Kiran Pillai" initials="K" surname="Pillai">
      <organization>IBM</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>United States of America</country>
        </postal>

        <email>Kiran.Pillai@ibm.com</email>
      </address>
    </author>

    <author fullname="Ahmed Abdelsalam" initials="A" surname="Abdelsalam">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>Italy</country>
        </postal>

        <email>ahabdels@cisco.com</email>
      </address>
    </author>

    <author fullname="Jeff Tantsura" initials="J" surname="Tantsura">
      <organization>NVIDIA</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>United States of America</country>
        </postal>

        <email>jefftant.ietf@gmail.com</email>
      </address>
    </author>

    <author fullname="Keyur Patel" initials="K" surname="Patel">
      <organization>Arrcus, Inc.</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>United States of America</country>
        </postal>

        <email>keyur@arrcus.com</email>
      </address>
    </author>

    <date year="2026"/>

    <area>Routing</area>

    <workgroup>SRv6 Operations</workgroup>

    <keyword>SRv6</keyword>
    <keyword>AI Backend</keyword>

    <abstract>
      <t>This document describes how SRv6 uSID (NEXT-CSID) enables deterministic path placement in AI backend fabrics through L3-L4 integration: the transport stack on the NIC encodes each path as an ordered list of segments (a uSID network program) in the packet header, while the fabric forwards statelessly. It explains operational benefits including deterministic probing and alignment with hyperscale production deployments.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="Intro" title="Introduction">
      <t>Hyperscale AI training clusters rely on massive GPU-to-GPU data exchanges, where training-step synchronization delays from congestion and packet loss directly degrade training performance and operational cost.</t>

      <t>These workloads generate <strong>large, predictable flows</strong> that require ultra-low latency, high bandwidth, and precise congestion control to maintain efficiency. Traditional networking approaches, such as ECMP-based per-flow load balancing, suffer from poor entropy due to the limited number of RoCEv2 flows, leading to fabric hotspots, congestion, and slow reconvergence after failures.</t>

      <t>SRv6 uSID (NEXT-CSID) enables <strong>L3-L4 integration</strong> in AI backend fabrics: the transport stack on the NIC (i.e., SmartNIC, DPU) controls which path each packet follows by encoding an ordered list of segments in the outer IPv6 header, while switches perform simple, static forwarding without per-flow state. This ensures predictable performance, fine-grained traffic control, and rapid reaction to congestion without fabric reconvergence.</t>

      <t>This model is deployed at hyperscale. OpenAI, Microsoft, and Oracle Cloud Infrastructure operate training clusters using Multipath Reliable Connection (MRC) over static SRv6 source routing. MRC extends RoCEv2 with multipath packet spraying and transport-layer path selection; SRv6 provides a deterministic mapping from each path identifier to a unique physical path through the fabric. <xref target="deployment"/> summarizes these deployments and provides references.</t>

      <t><xref target="SRv6-E2E-Frontend-WAN"/> explains how SRv6 uSID (NEXT-CSID) is applied to an end-to-end DC Frontend and WAN fabric.</t>

      <section title="Requirements Language">
        <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.</t>
      </section>
    </section>

    <section anchor="Term" title="Terminology">
      <dl>

        <dt>SRv6</dt><dd>Segment Routing over IPv6 <xref target="RFC8986"/>. </dd>
        <dt>uSID</dt>
        <dd>
          <t>Micro-segment. Formally defined as NEXT-CSID in <xref target="RFC9800"/>. </t>
          <t>The term <em>uSID (micro SID)</em> predates the formal naming and has been widely adopted across the industry - including operators with large-scale deployments, vendors, open-source implementations, and used consistently in multi-vendor interoperability reports.</t>
          <t>To maintain alignment with the formal specification while also acknowledging the widespread and practical use of the term, this document uses uSID and NEXT-CSID interchangeably.</t>
        </dd>
        <dt>ECMP</dt><dd>Equal-Cost Multi-Path</dd>
        <dt>uN</dt><dd>The uN is a short notation for the End behavior with NEXT-CSID, PSP, and USD flavors as defined in <xref target="RFC9800"/>.</dd>
        <dt>uA</dt><dd>The uA local behavior is a short notation for the End.X behavior with NEXT-CSID, PSP, and USD flavors <xref target="RFC9800"/>.</dd>
        <dt>ROCEv2</dt><dd>RDMA over Converged Ethernet version 2 <xref target="IBTA-ROCEv2"/>.</dd>
        <dt>NIC</dt><dd>Network Interface Card, a hardware component that connects a computer to a network.</dd>
        <dt>SmartNIC</dt><dd>A Network Interface Card with embedded processing capabilities, designed to offload network and storage tasks from the host CPU.</dd>
        <dt>DPU</dt> <dd>Data Processing Unit, a specialized processor designed to offload and accelerate data-centric tasks, often used in network and storage functions.</dd>
        <dt>GPU</dt><dd>Graphics Processing Unit, a processor designed for rendering graphics and performing parallel computation tasks, commonly used for AI and machine learning workloads.</dd>
        <dt>L3-L4 integration</dt><dd>Coordination between the network layer (static SRv6 forwarding in the fabric) and the transport layer (NIC-controlled path selection, congestion response, and probing), without switch-based dynamic routing or per-flow network state.</dd>
        <dt>Deterministic path placement</dt><dd>Encoding by the source transport of the path as an SRv6 uSID network program (an ordered list of segments in the packet) so each packet or spray round follows a fixed physical path through the fabric. Distinct path identifiers map to disjoint segment programs over the multi-plane topology. Paths are not assigned by a centralized flow scheduler or traffic-engineering controller; the network holds no per-flow state and does not pre-install paths.</dd>
      </dl>
    </section>

    <section anchor="AItraffic" title="AI Traffic Characteristics and Challenges">
      <t>AI workloads exhibit highly structured traffic patterns:</t>
        <ul>
          <li><strong>Predictable Elephant Flows</strong>: Collectives&apos; communications require multiple GPUs to exchange data in a structured manner that is known in advance. Flows between GPUs are large, long-lived, high throughput and predictable.</li>
          <li><strong>Synchronized Bursts</strong>: Model synchronization causes periodic, coordinated traffic spikes.</li>
          <li><strong>Low ECMP Entropy</strong>: Data exchange between GPUs relies on a small number of flows (ROCEv2 Queue Pairs), leading to poor performance of traditional load-balancing solutions. A 5-tuple based ECMP load-balancing results in non-homogenous utilization across the fabric, leading to congestion.</li>
          <li><strong>Resilience</strong>: The fabric must minimize avoidable disruption and support fast, predictable recovery. Even brief hotspots or reconvergence delays can amplify tail latency across a synchronized job. Designs that provide multipath spraying over disjoint encoded segment programs, transport-controlled rerouting, and accurate probing reduce the risk that the network becomes the limiting factor during long training runs.</li>
      </ul>

      <t>At hyperscale, faults are routine rather than exceptional. In a 54-day Llama 3 405B pre-training run on 16,384 GPUs, Meta reported 419 unexpected interruptions (about 78% hardware-related; 8.4% network switches and cables) <xref target="Llama3-Herd"/>. Synchronized training makes fabric congestion, loss, or degraded paths costly for jobs that run for weeks. Meta&apos;s large-scale RoCE backend design is described in <xref target="Meta-RoCE-SIGCOMM24"/>.</t>
    </section>

    <section anchor="SRv6Det" title="SRv6 for Deterministic Path Placement">
      <t>The source encodes each path as a uSID network program in the packet header; transports spray packets across disjoint network paths, and choose a different path upon congestion. SRv6 enables L3-L4 integration: the transport stack on the NIC controls the AI workload traffic journey through the fabric by encoding an ordered list of segments in the packet header, while the network layer provides stateless static forwarding.</t>
        <ul>
          <li><t><strong>Control plane and orchestration</strong>: At bring-up, the orchestrator discovers topology and the SRv6 uSIDs configured on each link. These uSID instructions are statically configured on the routers and are independent of any dynamic routing protocol state.</t>
            <ul>
              <li>The orchestrator provides to the NICs with topology information, including the uSIDs available on each link in the fabric.</li>
              <li>Based on that information, the NIC transport composes a path as a sequence of uSIDs and encodes the resulting network program in the outer IPv6 Destination Address of each packet. Encoding a path in this way <strong>does not require any per-path communication between the orchestrator and the fabric</strong>.</li>
            </ul></li>
          <li><t><strong>Transport stack on the NIC</strong>: Before sending RoCEv2 traffic, the transport stack encapsulates the packet with an outer IPv6 header that carries the uSID program selected on the NIC for that packet or spray round.</t>
            <ul>
              <li>An outer IPv6 header allows encoding 6 uSIDs in the Destination Address. This implies that even with a super-spine in a 3-tier Clos fabric, the entire path can be encoded without an additional Segment Routing Header (SRH).</li>
            </ul></li>
          <li><strong>Highly Scalable Stateless Fabric</strong>: Routers enforce the path by following SRv6 instructions in the packet header. There is <strong>no per-flow state in the network</strong> (unlike MPLS RSVP-TE, which would require per-path state for each GPU-to-GPU deterministic path).</li>
          <li><strong>Congestion feedback loop</strong>: The transport stack reacts in real time to congestion notifications (ECN, in-band latency measurement, Packet Trimming, in-band packet loss). At any time, without fabric wide signaling, the source NIC can change the path by updating the outer IPv6 Destination Address. Only the source changes; intermediate devices remain unchanged.</li>
      </ul>
    </section>

    <section anchor="static-fabric" title="Statically Provisioned Fabric">
      <t>In a dynamically routed fabric, protocols such as BGP maintain reachability across the Clos fabric. When a link fails or the topology changes, switches must reconverge: prefixes are withdrawn or re-advertised, each device updates its RIB, and forwarding entries are reprogrammed. A point-to-point link-down may be detected within milliseconds, but completing BGP reconvergence in a large datacenter fabric typically takes on the order of tens of milliseconds to a sub-second interval in optimized designs, and can be substantially longer when many paths or prefixes are affected <xref target="RFC7938"/>. At extreme scale, convergence may require many round-trip times across the fabric before forwarding is stable <xref target="MRC-SRv6-Paper"/>.</t>

      <t>In the statically provisioned SRv6 model in this document, GPU traffic paths do not depend on that reconvergence cycle. uSID instructions are configured at fabric bring-up and remain in place on the routers. When a link degrades or fails, the fabric does not wait for BGP or other dynamic routing to install a new path. The source NIC or transport stack detects the problem through loss, ECN, latency, or probing, selects another uSID network program from the topology information it already holds, and encodes it in the outer IPv6 Destination Address of subsequent packets. That change is local to the sender, takes effect within microseconds, and does not require signaling to intermediate switches or coordination with routing protocol timers <xref target="Microsoft-Fairwater"/>.</t>
    </section>

    <section anchor="deterministic-probing" title="Deterministic Probing">
      <t>Accurate visibility into fabric health is essential for AI backend operations: scheduling repairs, tuning performance, and correlating transport behavior with physical paths. Traditional approaches face limitations at scale.</t>
      <t>With ECMP-based forwarding, probe and data packets may traverse different paths because hashing is sensitive to header fields. Mechanisms that send probes to remote nodes depend on remote availability and do not always localize faults precisely. ICMP probes to switches are often handled by the control plane, limiting probe frequency. Dynamic routing can change forwarding while probes are in flight, reducing the ground truth of measurements.</t>
      <t>SRv6 uSID source routing enables <strong>deterministic probe pinning</strong>: a probe encoded with the same segment program as data traffic follows the identical physical path through the fabric. There is no ECMP ambiguity, no dependence on switch control-plane ICMP handling for path validation, and no interaction with dynamic routing reconvergence during measurement.</t>
      <ul>
        <li><strong>Path pinning</strong>: Each probe is assigned a specific SRv6 network program, so operators and transport stacks know exactly which links and switches a measurement traverses.</li>
        <li><strong>Dataplane fidelity</strong>: Probes are forwarded like data traffic in the dataplane, enabling high-frequency monitoring suitable for large clusters.</li>
        <li><strong>Self-probes and localization</strong>: Agents on cluster nodes can source-route probes to a top-of-rack switch and back, or to aggregation switches and back, localizing NIC-to-fabric or fabric-internal faults without requiring a remote peer to be up.</li>
        <li><strong>Transport alignment</strong>: When the transport stack selects paths using SRv6 programs, health probes and background path validation use the same encoding, so measurements reflect the paths data actually uses.</li>
      </ul>
      <t>Deterministic probing simplifies denylist and spray/path-selection policies on the NIC, supports resurrection of paths after transient failures, and provides operations teams ground-truth telemetry independent of switch control-plane health.</t>
    </section>

    <section anchor="Illust" title="Illustration">
      <t>The following figure depicts a typical 2-tier Clos topology.</t>

      <figure align="left" anchor="topo" title="Reference Topology">
        <artwork align="left"><![CDATA[
          Spine5                      Spine6          
            |                           |             
   +--------+----+--------------+-------|-----+       
   |             |              |       |     |       
   |   +---------|---+----------|---+---+-----|----+   
   |   |         |   |          |   |         |    |   
+--+------+   +--+------+    +--+------+   +--+------+
|  Leaf1  |   |  Leaf2  |    |  Leaf3  |   |  Leaf4  |
+----+----+\ /+----+----+    +----+----+\ /+----+----+
     |      X      |              |      X      |     
     |     / \     |              |     / \     |     
     |    /   \    |              |    /   \    |     
+----+----+   +----+----+    +----+----+   +----+----+
|  DPU1   |   |  DPU2   |    |  DPU3   |   |  DPU4   |
|    |    |   |    |    |    |    |    |   |    |    |
|  GPU1   |   |  GPU2   |    |  GPU3   |   |  GPU4   |
+---------+   +---------+    +---------+   +---------+
]]></artwork>
      </figure>

      <t>The topology consists of two Spine devices. Each of the Spines is connected to four Leaf devices.</t>
      <t>There are 4 NICs, which are connected through the host interface (e.g., PCIe) to a GPU. In this example each NIC is dual-homed to two Leaf devices.</t>

      <section anchor="provisioning" title="SRv6 Fabric Provisioning">
        <t>At a day0 cluster build-up (fabric bring-up), the topology is provisioned with SRv6 SIDs on the Spine and Leafs devices. These SIDs are statically configured and thus independent of any routing protocol dynamic state. The following is provisioned:</t>

        <ul>
          <li>SRv6 SID Space in the fabric 5f00:0::/32</li>
          <li>Leaf<strong>1</strong> instantiates the SID 5f00:0:0<strong>1</strong>00::/48 associated with the uN instruction (End with NEXT-CSID, PSP &amp; USD)</li>
          <li>Leaf<strong>2</strong> instantiates the SID 5f00:0:0<strong>2</strong>00::/48 associated with the uN instruction (End with NEXT-CSID, PSP &amp; USD)</li>
          <li>Leaf<strong>3</strong> instantiates the SID 5f00:0:0<strong>3</strong>00::/48 associated with the uN instruction (End with NEXT-CSID, PSP &amp; USD)</li>
          <li>Leaf<strong>4</strong> instantiates the SID 5f00:0:0<strong>4</strong>00::/48 associated with the uN instruction (End with NEXT-CSID, PSP &amp; USD)</li>
          <li>Spine<strong>5</strong> instantiates the SID 5f00:0:0<strong>5</strong>00::/48 associated with the uN instruction (End with NEXT-CSID, PSP &amp; USD)</li>
          <li>Spine<strong>6</strong> instantiates the SID 5f00:0:0<strong>6</strong>00::/48 associated with the uN instruction (End with NEXT-CSID, PSP &amp; USD)</li>
        </ul>
      </section>

      <section anchor="srv6pathsel" title="SRv6-Based Deterministic Path Selection">
        <t>During a collective, GPU1 and GPU2 send traffic to GPU3. The transport on each NIC sprays packets across disjoint uSID network programs, each encoded as an ordered segment list in the outer IPv6 header. The orchestrator supplies topology and uSID information at bring-up; path choice and spraying are performed by the NIC transport (e.g., MRC) at send time. Example programs:</t>
        <ul>
          <li>GPU1-&gt;GPU3: via Leaf1, Spine5, Leaf3 (uSID program 5f00:0:0100:0500:0300::)</li>
          <li>GPU2-&gt;GPU3: via Leaf2, Spine6, Leaf4 (uSID program 5f00:0:0200:0600:0400::)</li>
        </ul>
        <t>When sending RoCEv2 traffic from GPU1 to GPU3:</t>
        <ul>
          <li><t>NIC1: creates a ROCEv2 packet that must be sent to NIC3. NIC1 encapsulates the ROCEv2 packet with an outer IPv6 Header (H.Encaps.Red behavior).</t>
          <ul>
            <li>IPv6 DA: 5f00:0:0100:0500:0300::</li>
            <li>The packet has no SRH.</li>
          </ul></li>
          <li><t>Leaf1:</t>
          <ul>
            <li>Packet in: (IPv6. DA=5f00:0:0100:0500:0300::)(ROCEv2)</li>
            <li>Leaf1 has the SID 5f00:0:0100::/48 instantiated with the End with NEXT-CSID, PSP &amp; USD behavior. As a result, it shifts, lookup, and forwards the packet.</li>
            <li>Packet out: (IPv6. DA=5f00:0:0500:0300::)(ROCEv2)</li>
          </ul></li>
          <li><t>Spine5:</t>
          <ul>
            <li>Packet in: (IPv6. DA=5f00:0:0500:0300::)(ROCEv2)</li>
            <li>Spine5 has the SID 5f00:0:0500::/48 instantiated with the End with NEXT-CSID, PSP &amp; USD behavior. As a result, it shifts, lookup, and forwards the packet.</li>
            <li>Packet out: (IPv6. DA=5f00:0:0300::)(ROCEv2)</li>
          </ul></li>
          <li><t>Leaf3:</t>
          <ul>
            <li>Packet in: (IPv6. DA=5f00:0:0300::)(ROCEv2)</li>
            <li>Leaf3 has the SID 5f00:0:0300::/48 instantiated with the End with NEXT-CSID, PSP &amp; USD behavior. As a result it removes the outer IPv6 header and forward the inner packet.</li>
            <li>Packet out: (ROCEv2)</li>
          </ul></li>
          <li>NIC3: receives the ROCEv2 packet, process it, and passes data to the GPU3.</li>
        </ul>
        <t><strong>Note that Leaf1, Spine5, and Leaf3 do not hold any state for this specific flow</strong>. It is a single uSID instruction per node instantiated upon cluster build-up and reused by all traffic using that program. GPU2-&gt;GPU3 uses the second example program; forwarding is the same stateless model on each hop.</t>
        <t>While in this example we have used the uN instruction, it can also be encoded using uA instructions specifying the sequence of interfaces.</t>
      </section>

      <section anchor="transport-path-selection" title="Transport-Controlled Path Selection with Congestion Feedback">
        <t>At any time during the execution of the AI job, Spine5 may experience congestion. The transport stack on NIC1 detects this via ECN, in-band latency, packet trimming, or loss feedback.</t>
        <t>Within microseconds, without fabric signaling or new state at intermediate devices, the transport stack steers traffic to a different path. NIC1 switches the path from &lt;Leaf1, Spine5, Leaf3&gt; to &lt;Leaf1, Spine6, Leaf3&gt; by encapsulating new traffic for GPU1-&gt;GPU3 with IPv6 DA 5f00:0:0100:0600:0300::.</t>
        <t><strong>This is not switch adaptive routing</strong> (e.g., dynamic ECMP or BGP reconvergence). Path changes are made only at the source NIC; switches continue static SRv6 forwarding. The fabric is entirely stateless, and the packet path is encoded in the IPv6 header built at the source. Separating transport-controlled path selection from switch-based adaptive routing avoids unpredictable interactions at scale and is essential because AI workloads cannot tolerate slow reconvergence <xref target="Microsoft-Fairwater"/>.</t>
      </section>
    </section>

    <section anchor="benefits" title="Benefits">
      <ul>
        <li><strong>Deterministic Path Placement</strong>: SRv6 allows the NIC to encode, per packet or spray round, distinct uSID network programs that pin traffic to disjoint paths through the fabric.</li>
        <li><strong>Minimum-MTU</strong>: A plain outer IPv6 encapsulation allows to encode 6 uSIDs in the outer DA. This implies that without the need of additional extension headers, only with 40Bytes of IPv6 encapsulation, we can encode up to 6 intermediate waypoints allowing to enforce a path in a 3-tier Clos network. This is sufficient to control a path hop-by-hop (link by link) through a leaf, spine, super-spine, spine, leaf. </li>
        <li><strong>Congestion Feedback Loop</strong>: Instant rerouting at the source based on ECN, in-band measured One-Way and Two-Way latency, Packet Trimming feedback and in-band packet loss, without any dependency of routing protocols. There is neither any control-plane signaling involved between the GPU and the fabric, nor between the AI orchestrator and the fabric devices. </li>
        <li><strong>Standardization</strong>: Open, vendor-agnostic implementation</li>
        <li><strong>Ease of operation</strong>: As opposed to black-box proprietary solutions that pack opaque layer-2 optimizations, the SRv6 solution is minimalistic, IP-based, fully standardized, and supported by a rich ecosystem (vendor, merchant silicon, and open source). The deterministic and open nature of the solution simplifies troubleshooting.</li>
        <li><strong>Production validation</strong>: Hyperscale AI training clusters operate static SRv6 source routing at scale; see <xref target="deployment"/>.</li>
      </ul>
    </section>

    <section anchor="hyperscale" title="Massive Scale">
      <t>AI workloads are deployed across thousands of GPUs in multi-tier Clos networks, requiring a networking architecture that scales efficiently. SRv6 uSID (NEXT-CSID) ensures deterministic path placement while maintaining scalability through the following mechanisms:</t>
      <ul>
        <li><strong>Stateless Fabric</strong>: Unlike RSVP-TE or MPLS-TE, which require per-flow state on network devices, SRv6 enforces paths by including all instructions in the packet header. This eliminates state explosion as the number of GPUs increases.</li>
        <li><strong>uSID Encapsulation</strong>: The SRv6 uSID (NEXT-CSID) encoding allows paths to be efficiently encoded even in multi-tier topologies, reducing encapsulation overhead while supporting large deployments. If more than 6 instructions are required, a simple IPv6 Segment Routing Extension Header can encode additional instructions.</li>
        <li><strong>Multi-plane topologies</strong>: High-radix, multi-plane Clos designs spread NIC capacity across parallel network planes, improving physical redundancy and enabling clusters well beyond 100K GPUs in two-tier fabrics while keeping latency low.</li>
        <li><strong>Cross-Datacenter Extension</strong>: The same SRv6-based mechanism can extend beyond a single cluster to multi-datacenter AI fabrics (inter-DC AI training), where deterministic path placement ensures efficient inter-cluster data transfers. SRv6 network programs can be extended to forward between clusters using the same path-encoding model.</li>
        <li><strong>Overlay Tenant Separation</strong>: SRv6 can provide per-tenant network segmentation, ensuring AI workloads from different tenants or jobs are isolated while sharing the same physical infrastructure. Dedicated network resources can be assigned on a per-tenant basis in the fabric, providing resource isolation so that bandwidth, paths, and forwarding capacity for one tenant are not conflated with another. By adding VPN Service SIDs into the encoded network program, distinct path identifiers and network planes per tenant can be enforced at the network level without additional overlay encapsulations.</li>
      </ul>
    </section>

    <section anchor="deployment" title="Deployment">
      <t>Static SRv6 uSID (NEXT-CSID) source routing is deployed at hyperscale in production AI training clusters together with Multipath Reliable Connection (MRC), an RDMA transport developed collaboratively by OpenAI, Microsoft, NVIDIA, AMD, Intel, and Broadcom <xref target="MRC-SRv6-Paper"/> <xref target="OpenAI-MRC"/>. MRC extends RoCEv2 Reliable Connection with multipath packet spraying, selective retransmission, packet trimming for incast, and transport-layer path health management; it runs Ethernet in best-effort mode and relies on fast recovery at the transport layer rather than Priority Flow Control. In these fabrics, dynamic routing in switches is disabled: each packet&apos;s path is encoded in the outer IPv6 destination using uSID, path identifiers map algorithmically to SRv6 network programs, and the transport stack gains deterministic control while routers forward statelessly. This combination has been used to train frontier large language models on clusters exceeding 100,000 GPUs, with implementations on 400 and 800 Gb/s RDMA NICs and SRv6 forwarding across multiple switch platforms and NOS distributions <xref target="MRC-SRv6-Paper"/>.</t>

      <t>The same architecture spans OpenAI, Microsoft, and Oracle Cloud Infrastructure (OCI) training sites that operate as one coherent design rather than isolated experiments. OpenAI runs MRC over static SRv6 on its largest NVIDIA GB200 supercomputers <xref target="OpenAI-MRC"/> <xref target="MRC-SRv6-Paper"/>; Microsoft&apos;s Fairwater supercomputer applies the same model on a two-tier, multi-plane fabric, removing BGP and other dynamic routing from the scale-out network in favor of compact uSID source routing, with probe traffic following the same paths as data for ground-truth visibility <xref target="Microsoft-Fairwater"/>; and OCI&apos;s Oracle Acceleron multiplanar networking deployed MRC and SRv6 source-based routing at scale, including the Stargate datacenter in Abilene, Texas, with path intelligence at the NIC and simple static forwarding in the network <xref target="Oracle-Acceleron-MRC"/> <xref target="Oracle-Acceleron-Arch"/>. Across these environments, multipath spraying and SRv6 path pinning reduce flow collisions, improve utilization across network planes, and allow large synchronous training jobs to continue through link flaps and partial failures that previously caused restarts <xref target="OpenAI-MRC"/> <xref target="Microsoft-Fairwater"/>. Microsoft has additionally open-sourced MRC software interfaces and SONiC SRv6 enhancements for AI backend networks <xref target="Microsoft-Fairwater"/>.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>This document is informational and does not define a new protocol. Security for the SRv6 data plane and segment programming is covered in <xref target="RFC8986"/>. The deployment model assumes a dedicated AI backend fabric in a single administrative domain: an orchestrator statically provisions uSIDs on routers and supplies topology to NICs, and transport stacks on GPU hosts encode segment programs in each packet while the fabric forwards without per-flow state. Security therefore depends on integrity of provisioning, access control over router configuration, and path-selection logic on each host.</t>

      <t>Because the source encodes the full segment list, a compromised or misconfigured host could steer traffic along unintended paths. Operators SHOULD limit which workloads may send SRv6-encapsulated traffic and constrain hosts to programs authorized by the orchestrator. Backend fabrics are typically isolated from untrusted networks, and operators SHOULD maintain that separation. Security of RoCEv2 and Multipath Reliable Connection (MRC) transports is outside the scope of this document.</t>
    </section>

    <section anchor="contributors" title="Contributors">
      <t>The following person contributed significantly to this document:</t>
      <t>Chris Martin (Cisco Systems), &lt;martincj@cisco.com&gt;</t>
    </section>

    <section anchor="ACK" title="Acknowledgements">
      <t>The authors thank the teams behind the MRC and SRv6 production deployments described in <xref target="deployment"/>, including contributors at OpenAI, Microsoft, Oracle Cloud Infrastructure, NVIDIA, AMD, Intel, and Broadcom.</t>
      <t>The authors would like to recognize the work of Lihua Yuan, Guohan Lu, Rita Hui, and Riff Jiang at Microsoft.</t>
      <t>Pablo Camarillo and Rita Hui presented this use case at NANOG 96; a recording is available at <eref target="https://www.segment-routing.net/conferences/2026-02-02-NANOG96-SRv6-AI-Backend-Microsoft"/>. Clarence Filsfils and Guohan Lu presented related material at OCP EMEA 2026; a recording is available at <eref target="https://www.segment-routing.net/conferences/2026-OCP-EMEA-summit-scalable-ai-protocol-stack"/>.</t>
      <t>The authors would like to acknowledge the work of the developers who have enabled this use-case in the open-source <xref target="SONiC" /> implementation. In particular: Carmine Scarpitta, Abhishek Dosi, Changrong Wu, Kumaresh Perumal, Eddie Ruan, Yuqing Zhao, Rajasekar Raja, and Vivek Venkatraman.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8986.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9800.xml"/>
    </references>

    <references title="Informative References">
      <reference anchor="SRv6-E2E-Frontend-WAN"
                 target="https://datatracker.ietf.org/doc/html/draft-filsfils-srv6ops-srv6-e2e-dc-frontend-wan-01">
        <front>
          <title>SRv6 End-to-End DC Frontend and WAN</title>
          <author initials="C." surname="Filsfils"/>
          <author initials="P." surname="Camarillo"/>
          <author initials="K." surname="Michielsen"/>
          <author initials="A." surname="Gorovoy"/>
          <date year="2026"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-filsfils-srv6ops-srv6-e2e-dc-frontend-wan-01"/>
      </reference>
      <reference anchor="IBTA-ROCEv2"
                 target="https://web.archive.org/web/20200917012109/https://cw.infinibandta.org/document/dl/7781">
        <front>
          <title>InfiniBand Architecture Specification Volume 1, Release 1.2.1, Annex A17: ROCEv2</title>

          <author>
            <organization>InfiniBand Trade Association</organization>
          </author>

          <date month="September" day="2" year="2014"/>
        </front>
      </reference>
      <reference anchor="SONiC" target="https://sonicfoundation.dev/">
        <front>
          <title>SONiC</title>
          <author>
            <organization>Linux Foundation</organization>
          </author>
        </front>
      </reference>
      <reference anchor="MRC-SRv6-Paper" target="https://arxiv.org/abs/2605.04333">
        <front>
          <title>Resilient AI Supercomputer Networking using MRC and SRv6</title>
          <author initials="J." surname="Araujo"/>
          <author initials="A." surname="Chow"/>
          <author initials="M." surname="Handley"/>
          <author initials="G." surname="Lu"/>
          <author initials="L." surname="Yuan"/>
          <date year="2026" month="May"/>
        </front>
      </reference>
      <reference anchor="OpenAI-MRC" target="https://openai.com/index/mrc-supercomputer-networking/">
        <front>
          <title>Supercomputer networking to accelerate large scale AI training</title>
          <author>
            <organization>OpenAI</organization>
          </author>
          <date year="2026" month="May"/>
        </front>
      </reference>
      <reference anchor="Microsoft-Fairwater" target="https://techcommunity.microsoft.com/blog/azurehighperformancecomputingblog/building-resilient-networks-for-ai-supercomputers/4516919">
        <front>
          <title>Building resilient networks for AI supercomputers</title>
          <author initials="V." surname="Cutts"/>
          <author initials="J." surname="Jose"/>
          <date year="2026" month="May"/>
        </front>
      </reference>
      <reference anchor="Oracle-Acceleron-MRC" target="https://blogs.oracle.com/cloud-infrastructure/first-principles-multipath-reliable-connection">
        <front>
          <title>First Principles: Unlocking Oracle Acceleron Multiplanar Fabric with Multipath Reliable Connection</title>
          <author initials="P." surname="Vincent"/>
          <date year="2026" month="May"/>
        </front>
      </reference>
      <reference anchor="Oracle-Acceleron-Arch" target="https://blogs.oracle.com/cloud-infrastructure/first-principles-acceleron-multiplanar-networking">
        <front>
          <title>First Principles: Oracle Acceleron Multiplanar Networking Architecture</title>
          <author initials="P." surname="Vincent"/>
          <date year="2026" month="May"/>
        </front>
      </reference>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7938.xml"/>
      <reference anchor="Llama3-Herd" target="https://arxiv.org/abs/2407.21783">
        <front>
          <title>The Llama 3 Herd of Models</title>
          <author initials="A." surname="Dubey"/>
          <author initials="A." surname="Jauhri"/>
          <author initials="A." surname="Pandey"/>
          <date year="2024" month="July"/>
        </front>
      </reference>
      <reference anchor="Meta-RoCE-SIGCOMM24" target="https://doi.org/10.1145/3651890.3672233">
        <front>
          <title>RDMA over Ethernet for Distributed AI Training at Meta Scale</title>
          <author initials="A." surname="Gangidi"/>
          <author initials="R." surname="Miao"/>
          <author initials="S." surname="Zheng"/>
          <date year="2024" month="August"/>
        </front>
      </reference>
    </references>
  </back>
</rfc>
