<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.3) -->
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-amahale-mpls-for-aidc-00" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="MPLS for AIDC">MPLS for AIDC Probing</title>
    <seriesInfo name="Internet-Draft" value="draft-amahale-mpls-for-aidc-00"/>
    <author initials="A." surname="Mahale" fullname="Aditya Mahale">
      <organization>Cerebras Systems</organization>
      <address>
        <email>aditya.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="K." surname="Kompella" fullname="Kireeti Kompella">
      <organization>Juniper Networks</organization>
      <address>
        <email>kireeti.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="V. P." surname="Beeram" fullname="Vishnu Pavan Beeram">
      <organization>Juniper Networks</organization>
      <address>
        <email>vbeeram@juniper.net</email>
      </address>
    </author>
    <author initials="D." surname="Patel" fullname="Devang Patel">
      <organization>AMD</organization>
      <address>
        <email>devang.patel@amd.com</email>
      </address>
    </author>
    <date year="2025" month="October" day="20"/>
    <area>Routing</area>
    <workgroup>MPLS</workgroup>
    <keyword>AIDC, MPLS, Probing</keyword>
    <abstract>
      <?line 46?>

<t>This document describes a method for using Multi-Protocol Label
   Switching (MPLS) encapsulation to perform scalable and vendor-
   agnostic network probing within AI/ML data centers.  The goal is to
   detect and isolate gray failures—non-deterministic hardware and
   software faults—in large-scale lossless networks.  The approach
   enables targeted probing at per-link and per-node granularity,
   independent of IP/BGP control plane operation, and is extensible to
   Various CLOS topologies.</t>
    </abstract>
  </front>
  <middle>
    <?line 57?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The advent of large-scale AI/ML data centers and the adoption of
   lossless networking paradigms have increased the operational risk of
   gray failures—partial, intermittent, or non-deterministic faults in
   network components.  These failures are notoriously difficult to
   detect and isolate, especially in high-performance environments that
   rely on congestion control mechanisms such as PFC, ECN, and DCQCN.</t>
      <t>This document proposes a vendor-agnostic probing mechanism leveraging
   MPLS encapsulation to detect gray failures.  The technique provides
   deterministic path visibility and decouples the probing infrastructure
   from the routing control plane.</t>
    </section>
    <section anchor="problem-statement-gray-failures">
      <name>Problem Statement: Gray Failures</name>
      <t>Gray failures refer to partial or intermittent faults in network
   devices such as switches, routers, NICs, optics, and cables that do
   not manifest as complete outages.  These failures often evade
   monitoring systems and may take hours or days to isolate.</t>
      <t>Traditional white-box monitoring approaches that rely on ASIC error
   counters or register captures are insufficient because the failure
   mode is not deterministic.  ASICs may not be capable of self-
   detection when specific functional blocks wedge or stall.</t>
      <t>Proactive network probing provides a means of external validation of
   data-plane health by exercising network paths in controlled ways.</t>
    </section>
    <section anchor="network-probing-overview">
      <name>Network Probing Overview</name>
      <t>Network probing supplements standard telemetry and monitoring systems
   by introducing synthetic traffic to verify forwarding correctness.
   There are two primary categories of network probing mechanisms:</t>
      <artwork><![CDATA[
 *  End-to-End Probing
 *  Direct Network Probing
]]></artwork>
      <t>Generally prober machines are co-located with other AI compute and 
   attached to the leaf switches.</t>
      <section anchor="end-to-end-probing">
        <name>End-to-End Probing</name>
        <t>End-to-end probing systems, such as [Pingmesh], rely on hosts sending
   probes to all other hosts to verify reachability.  While effective at
   identifying connectivity and control-plane issues, this approach lacks
   sufficient entropy to exercise all paths in large CLOS networks and
   does not directly map probe failures to specific components.</t>
      </section>
      <section anchor="direct-network-probing">
        <name>Direct Network probing</name>
        <t>Direct network probing targets intermediate hops and links directly.
   Implementations such as [NetNorad] generate probes toward every network
   node or link from each source.  This provides superior fault
   localization but presents challenges in targeting granularity,
   particularly in pure IP networks where multiple encapsulations may be
   required.</t>
        <t>MPLS provides a clean mechanism to express path and target semantics
   through label stacking.</t>
      </section>
    </section>
    <section anchor="mpls-operations-for-probing-in-aidc">
      <name>MPLS Operations for Probing in AIDC</name>
      <section anchor="mpls-refresher">
        <name>MPLS Refresher</name>
        <t>MPLS is a 4-byte shim header inserted between Ethernet and IP headers.
   It contains:</t>
        <artwork><![CDATA[
 *  20-bit Label field
 *  3-bit QoS (Traffic Class)
 *  1-bit Bottom of Stack (BOS)
 *  8-bit TTL
]]></artwork>
        <t>MPLS allows multiple labels to be stacked to represent a sequence of
   hops or links, enabling source routing and fine-grained path control.</t>
        <t>The 20-bit label space (1,048,576 possible labels) is sufficient for
   even the largest data centers.  MPLS labels may also be used to
   exercise lossless and lossy queues by mapping QoS bits to specific
   hardware queues.</t>
      </section>
      <section anchor="mpls-operations-and-label-stack-use">
        <name>MPLS Operations and Label Stack Use</name>
        <t>The POP operation is central to MPLS probing.  Each network element
   receiving a packet with a label stack removes the top label and
   forwards the remaining packet based on the next label or IP header.</t>
        <t>This enables hierarchical targeting where each label represents a
   link or node.  A single probe packet can traverse multiple layers of
   the CLOS fabric.</t>
      </section>
      <section anchor="mpls-myths-and-clarifications">
        <name>MPLS Myths and Clarifications</name>
        <t><em>MPLS needs an additional protocol to function.</em></t>
        <t>MPLS is an encapsulation, not a routing protocol.  Labels MAY be
   distributed using dynamic protocols such as LDP, RSVP, or BGP, but
   they MAY also be configured statically.  Static assignment is
   sufficient for probing use cases.</t>
        <t><em>MPLS is complex to implement in ASICs.</em></t>
        <t>MPLS lookup is simpler than IPv4/IPv6 LPM lookups, as it is an exact
   match on a fixed-width 20-bit key.  Modern ASICs implement MPLS
   forwarding efficiently using hash-based tables.</t>
        <t><em>Network ASICs cannot handle multiple labels.</em></t>
        <t>Most modern data center ASICs support 8 or more MPLS labels in the
   stack, sufficient for multi-stage Clos topologies.</t>
        <t><em>SRv6 obsoletes MPLS.</em></t>
        <t>While SRv6 provides similar functionality, it requires IPv6 and adds
   considerable packet overhead and implementation complexity.  MPLS
   offers a lightweight and control-plane-agnostic alternative suitable
   for IPv4-only environments.</t>
      </section>
    </section>
    <section anchor="mpls-for-ai-cluster-network-probing">
      <name>MPLS for AI Cluster Network Probing</name>
      <section anchor="topology-considerations">
        <name>Topology Considerations</name>
        <t>Prober to Leaf1 to SP1 to Leaf1 to Prober</t>
        <artwork><![CDATA[
       +--------+                     +--------+         
       |        ||ETH|30|IP|          |        |
       |  SP1   |                     |  SP2   |  
       |        |                     |        |              
       |        |                     |        |
       +---+--+-+                     +--+--+--+              
        30 |  |40                      30|  |40               
           |  +-------------------------+|  |                 
           ||ETH|IP|                    ||  |
           |  +-------------------------++  |                 
        20 |  |25                     20|   |25               
       +---+--+-+                     +-+---+--+              
       |        |                     |        |
       |        |                     |        |              
       | LEAF1  |                     | LEAF2  |
       |        |                     |        |              
       +----+---+                     +--------+              
            |                                                 
            ||ETH|20|30|IP|  
            ||ETH|IP                                         
            |                                                 
       +----+----+                                            
       |         |
       | PROBER  |                                            
       +---------+                                            
]]></artwork>
        <t>Prober to Leaf1 to SP2 to Leaf2 to SP2 to Leaf1 to Prober</t>
        <artwork><![CDATA[
       +--------+                     +--------+              
       |        |                     |        |
       |  SP1   |    |ETH|40|25|30|IP||  SP2   | |ETH|30|IP|  
       |        |                     |        |              
       |        |                     |        |
       +---+--+-+                     +--+--+--+              
        30 |  |40                      30|  |40               
           |  +-------------------------+|  |                 
           |                            ||  |
           |  +-------------------------++  |                 
        20 |  |25      |ETH|IP|       20|   |25               
       +---+--+-+                     +-+---+--+              
       |        |                     |        |
       |        |                     |        |              
       | LEAF1  |                     | LEAF2  ||ETH|25|30|IP|
       |        |                     |        |              
       +----+---+                     +--------+              
            |                                                 
            ||ETH|25|40|25|30|IP|
            ||ETH|IP|                                         
            |                                                 
       +----+----+                                            
       |         |
       | PROBER  |                                            
       +---------+      
]]></artwork>
        <t>In a three-stage CLOS topology, MPLS labels are provisioned statically
   for each leaf and spine link.  A probe server connected to each leaf
   switch sends labeled packets that describe both the forward and return
   paths.</t>
        <t>For example:
     * Stage-1 probes target directly connected leaf–spine links.
     * Stage-2 probes target remote leaf–spine links.</t>
        <t>Each probe’s IP destination is set to the local probe server, enabling
   the packet to return once all labels are popped.</t>
        <t>Labels have local significance and may be reused across the topology,
   simplifying configuration.</t>
        <t>Example:
     Label 20: LF-1 to SP-1 link
     Label 30: SP-1 to LF-1 link</t>
        <t>The prober sends a two-label packet for Stage-1 probing.  LF-1 pops
   label 20 and forwards label 30 to SP-1.  SP-1 pops label 30 and
   returns the packet toward LF-1, completing the loop.</t>
        <t>Stage-2 probing uses four-label stacks to test multi-hop paths.  A
   complete mesh of connectivity can be established across the entire
   data center fabric.</t>
      </section>
      <section anchor="scaling-and-label-allocation">
        <name>Scaling and Label Allocation</name>
        <t>MPLS provides a 20-bit label space (1 million+ labels).  Even large
   topologies with thousands of leaf-spine interfaces consume only a
   small fraction of the space.</t>
        <t>Label provisioning may be static or automated via controller software.
   A consistent label pattern can be repeated across leaves and spines,
   simplifying operational overhead.</t>
        <t>An Example label allocation scheme can use a formula like:
        2 * (m + M * n) + 100
        Where m is leaf index and n is spine index and M is number of leaf switches.</t>
      </section>
      <section anchor="failure-correlation-and-control-plane-independence">
        <name>Failure Correlation and Control Plane Independence</name>
        <t>Because MPLS probing operates entirely in the data plane, it continues
   to function even if the IP or BGP control plane is unavailable.
   End-to-end probing shares fate with routing protocols, whereas MPLS
   probing isolates data-plane verification.</t>
        <t>This separation provides improved resilience and faster failure
   localization in large AI/ML clusters.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>MPLS probing MUST be isolated from tenant or production traffic.
   Probes SHOULD be rate-limited and authenticated where feasible.
   Incorrect label provisioning MAY cause unintended forwarding loops or
   leakage into production paths. Also MPLS TTL will prevent forwarding
   loop packets from looping indefinitely.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>To be added.</t>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
    </section>
    <section anchor="references">
      <name>References</name>
      <t>[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.</t>
      <t>[NetNorad]  Facebook Engineering, “NetNorad: End-to-End and Direct
               Probing in Production Networks,” 2016.</t>
      <t>[Pingmesh]  Microsoft Research, “Pingmesh: A Large-Scale System for
               Data Center Network Latency Measurement,” 2015.</t>
    </section>
  </middle>
  <back>








  </back>
  <!-- ##markdown-source:
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
2Pi/gumqdKOugc9OzBWl+ax39v8BAOYcz1owAAA=

-->

</rfc>
