<?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.43 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-camarillo-fann-lsn-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.35.0 -->
  <front>
    <title abbrev="LSN">Lightspeed Notification Protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-camarillo-fann-lsn-00"/>
    <author initials="P." surname="Camarillo" fullname="Pablo Camarillo Garvia" role="editor">
      <organization>Cisco</organization>
      <address>
        <postal>
          <country>Spain</country>
        </postal>
        <email>pcamaril@cisco.com</email>
      </address>
    </author>
    <author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
      <organization>Cisco</organization>
      <address>
        <postal>
          <country>Belgium</country>
        </postal>
        <email>cf@cisco.com</email>
      </address>
    </author>
    <author initials="N." surname="Chachmon" fullname="Nadav Chachmon">
      <organization>Cisco</organization>
      <address>
        <postal>
          <country>Israel</country>
        </postal>
        <email>nchachmo@cisco.com</email>
      </address>
    </author>
    <author initials="O." surname="Iny" fullname="Ofer Iny">
      <organization>Cisco</organization>
      <address>
        <postal>
          <country>Israel</country>
        </postal>
        <email>oiny@cisco.com</email>
      </address>
    </author>
    <author initials="Y." surname="Su" fullname="Yuanchao Su">
      <organization>Alibaba</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>yitai.syc@alibaba-inc.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>
    <date year="2026" month="November" day="02"/>
    <area>Routing</area>
    <workgroup>FANN</workgroup>
    <keyword>Dense encoding</keyword>
    <keyword>Sparse encoding</keyword>
    <keyword>Lightspeed Notification</keyword>
    <keyword>LSN</keyword>
    <keyword>Data Center</keyword>
    <keyword>DCI</keyword>
    <keyword>WAN</keyword>
    <keyword>Efficient Remote Protection</keyword>
    <keyword>Global Adaptive Routing</keyword>
    <abstract>
      <?line 101?>

<t>This document defines the Lightspeed Notification Protocol (LSN), a hardware-accelerated signaling mechanism designed for sub-100 microsecond network convergence in AI/ML data center fabrics. By remaining on chip and never punting to the host CPU, LSN bypasses traditional CPU-based latencies to propagate link failures and congestion via a hardware-efficient encoding. It serves as a high-speed complement to routing protocols such as BGP, providing an immediate hardware veto that prunes failed or congested paths while maintaining control-plane stability for path recovery.</t>
      <t>The same mechanism applies inside the DC Clos and, in some deployments, across the Data Center Interconnect (DCI) and WAN. This document defines two encoding modes: a dense encoding for DC fabrics, where traffic is load-balanced over many ECMP spines, and a sparse encoding for the DCI and WAN.</t>
    </abstract>
  </front>
  <middle>
    <?line 107?>

<section anchor="Intro">
      <name>Introduction</name>
      <t>Artificial Intelligence (AI) and Machine Learning (ML) workloads impose stringent demands on data center fabrics, and in some deployments on the Data Center Interconnect (DCI) and WAN that join those fabrics. As outlined in <xref target="I-D.clad-rtgwg-ipfrr-aiml"/>, these environments require network convergence times in the sub-100 microsecond range to avoid performance degradation caused by packet loss and jitter.</t>
      <t>Traditional routing protocols and convergence mechanisms rely on control-plane intervention, where link state changes are processed by the CPU. This introduces activation latencies in the tens of milliseconds, which is orders of magnitude too slow for these requirements. Furthermore, existing mechanisms typically operate on a binary "up/down" model and do not signal capacity degradation or congestion.</t>
      <t>This document defines the Lightspeed Notification Protocol (LSN), a hardware-accelerated notification mechanism that operates on chip to handle both network failures and congestion events. LSN is complementary to traditional routing protocols (for example, BGP). The interaction between the routing protocol and LSN is functionally equivalent to a boolean AND operation: a path is eligible for forwarding only if permitted by the routing protocol AND confirmed healthy by the hardware notification.</t>
      <t>This enforces an asymmetric reaction. "Bad news" (failure or congestion) acts as an immediate hardware veto, disabling the path in sub-microseconds. "Good news" (recovery) is gated by the routing protocol, ensuring the control plane has fully converged before traffic resumes. This approach combines sub-microsecond protection with routing coherence and stability.</t>
      <t>LSN defines two encoding modes. Dense encoding (<xref target="DC"/>) is used in DC fabrics, where ECMP is always present through many spines. Sparse encoding (<xref target="DCI"/>) is used in the DCI and WAN. The encodings differ due to the different network characteristics of those environments.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
      </section>
      <section anchor="Terminology">
        <name>Terminology</name>
        <ul spacing="normal">
          <li>
            <t>LSN: Lightspeed Notification Protocol.</t>
          </li>
          <li>
            <t>Dense encoding: The LSN encoding used in DC fabrics, where the destination set is the other leaves and forwarding is ECMP across many spines.</t>
          </li>
          <li>
            <t>Sparse encoding: The LSN encoding used in the DCI and WAN, where the destination set is sparse and large and forwarding may be ECMP, weighted ECMP, or primary/backup.</t>
          </li>
          <li>
            <t>DC: Data Center fabric, typically a Clos spine-leaf topology.</t>
          </li>
          <li>
            <t>DCI: Data Center Interconnect, the network that joins DC fabrics.</t>
          </li>
          <li>
            <t>WAN: The wide-area network that carries traffic between regions or sites of an AI/ML fabric.</t>
          </li>
          <li>
            <t>uN: The uSID function defined in <xref target="RFC9800"/>. In the context of LSN, uN identifies the node advertising the LSN event.</t>
          </li>
          <li>
            <t>uA: The uSID function defined in <xref target="RFC9800"/>. In the context of LSN, uA identifies the link or bundle member associated with the LSN event.</t>
          </li>
          <li>
            <t>Efficient Remote Protection: The IP Fast Reroute mechanism specified in <xref target="I-D.clad-rtgwg-efficient-remote-protection"/>, also known as remote TI-LFA. It activates a pre-computed backup at a node upstream of the failure to avoid hairpinning.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="Problem">
      <name>Problem Statement</name>
      <t>Current IP Fast Reroute (IPFRR) and resiliency mechanisms face fundamental limitations when a remote hop fails or congests behind a next-hop that remains up.</t>
      <t><strong>Latency of CPU-Based Processing</strong></t>
      <t>Existing failure detection and propagation mechanisms generally trigger interrupts that must be processed by a line-card or system CPU. As noted in <xref target="I-D.clad-rtgwg-ipfrr-aiml"/>, this host-CPU path introduces an activation delay typically in the range of 10-50 milliseconds. For AI training workloads requiring barrier synchronization, this latency results in unacceptable flow disruption. To achieve the required sub-100 microsecond convergence, the propagation and processing of network state changes MUST occur on chip and MUST NOT be punted to the host CPU.</t>
      <t><strong>Remote Failure Behind a Live Next-Hop</strong></t>
      <t>A common failure mode is that the ingress node's immediate next-hop remains reachable while a downstream link has failed. In a DC Clos fabric, traditional BFD/TWAMP liveness of the BGP session to the spine remains up, so local detection and PIC-core at the ingress leaf do not fire. In a DCI or WAN, traditional BFD/TWAMP liveness of the BGP session to the next-hop likewise remains up, so local FRR does not activate. In both cases the control plane will eventually withdraw the affected prefixes, but traffic blackholes for the entire control-plane window. The final FIB produced by BGP is already correct; the issue is that the dataplane sits wrong until that reconvergence completes.</t>
      <t><strong>Inability to Handle Congestion and Partial Failures</strong></t>
      <t>Standard routing protocols and ECMP operate on a binary failure model: a link is either available or unavailable. AI fabrics, including the DCI and the WAN, frequently experience brownout scenarios, such as partial capacity reduction (for example, loss of a single member in a bundle) or acute congestion. Current mechanisms lack the granularity to signal these states, causing traffic to be blackholed or hashed onto congested paths. When the BGP next-hop represents a LAG, the safe reaction without per-destination visibility is to disable the whole bundle, taking remaining healthy members out of service.</t>
      <t><strong>Limited Visibility of Remote Network State</strong></t>
      <t>In multi-stage Clos topologies and in DCI and WAN topologies, a failure or congestion event often occurs multiple hops away from the ingress point. Local protection at the point of failure is often insufficient, or it leads to suboptimal hairpin routing that increases latency and wastes bandwidth. Efficient Remote Protection <xref target="I-D.clad-rtgwg-efficient-remote-protection"/> addresses the hairpin by activating a backup at an upstream node, but it depends on a timely forwarding-plane notification of the remote event. Current routing protocols do not provide that notification in the required time budget.</t>
    </section>
    <section anchor="Common">
      <name>Common Operation</name>
      <t>LSN is not a routing protocol and is not a BGP attribute. It is an on-chip notification, generated and processed without the host CPU, that overlays a health signal on the paths already installed by the routing protocol.</t>
      <t>The following properties apply to both the dense and the sparse encodings:</t>
      <ul spacing="normal">
        <li>
          <t>A node monitors the status of its local interfaces in hardware. Upon a local link failure, capacity change, or congestion-level change, it originates an LSN notification. Local origination is based on interface status and local congestion state, not on traditional BFD/TWAMP liveness.</t>
        </li>
        <li>
          <t>A single notification packet is pre-crafted and ready to send. Crafting a distinct packet per neighbor at the time of the event introduces unacceptable delay. The hardware rewrites the fields that identify the event and replicates the packet on the relevant interfaces.</t>
        </li>
        <li>
          <t>A receiving node MUST process the notification on chip. The packet MUST NOT be punted to the host CPU.</t>
        </li>
        <li>
          <t>A path is usable if and only if the routing protocol has installed it AND LSN reports it healthy. Bad news is a hardware veto. Good news waits for the routing protocol.</t>
        </li>
        <li>
          <t>LSN does not recompute routes. In dense encoding, used in DC fabrics, it masks members of an existing ECMP set. In sparse encoding, used in the DCI and WAN, it eliminates a member from an ECMP set, changes the weighted-ECMP (wECMP) weights, or activates a pre-computed backup (for example an Efficient Remote Protection / remote TI-LFA path).</t>
        </li>
      </ul>
      <t>Two encodings are defined, due to the different network characteristics of DC fabrics and of the DCI and WAN. <xref target="DC"/> specifies the dense encoding and illustrates it in a DC Clos. <xref target="DCI"/> specifies the sparse encoding and illustrates it in a DCI/WAN topology.</t>
    </section>
    <section anchor="DC">
      <name>Dense Encoding</name>
      <t>This section specifies the dense encoding. Dense encoding is used in DC fabrics, where ECMP is always present through many spines and the destination set is the other leaves of the fabric. The notification carries a bitmap of destination reachability or congestion, and the ingress leaf overlays that bitmap on the spine next-hops already installed by BGP.</t>
      <section anchor="dc-format">
        <name>Dense Notification Packet Format</name>
        <t>The dense notification is an Ethernet MAC Control frame. The packet header is the following:</t>
        <figure anchor="fig-dc-hdr">
          <name>Dense LSN Ethernet header</name>
          <artwork align="left"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   MAC Destination Address (DA)                |
+-------------------------------+-------------------------------+
|      MAC DA (continued)       |    MAC Source Address (SA)    |
+-------------------------------+-------------------------------+
|                   MAC Source Address (continued)              |
+-------------------------------+-------------------------------+
|        EtherType (TBD1)       |         OpCode (TBD2)         |
+-------------------------------+-------------------------------+
|                                                               |
.                         LSN Payload                           .
.                                                               .
|                                                               |
+---------------------------------------------------------------+
|                           CRC (FCS)                           |
+---------------------------------------------------------------+
]]></artwork>
        </figure>
        <t>Notes:</t>
        <ul spacing="normal">
          <li>
            <t>MAC Destination Address: 01-80-C2-00-00-01 (IEEE MAC-specific control protocols)</t>
          </li>
          <li>
            <t>Ethertype = TBD1</t>
          </li>
          <li>
            <t>Opcode = TBD2</t>
          </li>
          <li>
            <t>MAC Source Address: the neighbor that originated the notification. The receiver uses the source address to identify which spine next-hop (column) to update.</t>
          </li>
        </ul>
        <t>The LSN Payload is defined as follows:</t>
        <figure anchor="fig-dc-payload">
          <name>Dense LSN payload</name>
          <artwork align="left"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type  |R|Msg| Rsv | Dev-Range |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                                                               |
|                   Reachable-Devices-Bitmap                    |
|                          (256 bits)                           |
|                                                               |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>Field Descriptions:</t>
        <ul spacing="normal">
          <li>
            <t>Header Type (4 bits): Value '12' - Identifies this as a topology reachability packet.</t>
          </li>
          <li>
            <t>R (1 bit): Reserved. It MUST be set to zero upon transmission and ignored upon receipt.</t>
          </li>
          <li>
            <t>Msg-type (2 bits): Indicates the information conveyed by the bitmap. It may represent reachability or congestion status. The congestion status is defined as 3 different congestion levels, which are implementation specific. The following Msg-Types are defined:
            </t>
            <ul spacing="normal">
              <li>
                <t>0x0: Reachable</t>
              </li>
              <li>
                <t>0x1: Reachable and not congested (Congestion Level 1)</t>
              </li>
              <li>
                <t>0x2: Reachable and not congested (Congestion Level 2)</t>
              </li>
              <li>
                <t>0x3: Reachable and not congested (Congestion Level 3)</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Reserved (3 bits): Reserved. It MUST be set to zero upon transmission and ignored upon receipt.</t>
          </li>
          <li>
            <t>Reachable-Devices-Range (6 bits): Determines the range of the reachable devices bitmap. The range per packet is within [Reachable-Devices-Range*256, Reachable-Devices-Range*256 + 255].
            </t>
            <ul spacing="normal">
              <li>
                <t>'0': Devices 0-255</t>
              </li>
              <li>
                <t>'1': Devices 256-511</t>
              </li>
              <li>
                <t>'2': Devices 512-767</t>
              </li>
              <li>
                <t>... (Covers up to 16K devices).</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Reachable-Devices-Bitmap (256 bits): One bit per destination leaf. Bit i indicates whether destination leaf i is healthy through the device sending this message.</t>
          </li>
        </ul>
      </section>
      <section anchor="dc-ident">
        <name>Dense Node Identification</name>
        <t>To facilitate bitmap-based signaling, every leaf node within the fabric is assigned a unique Global Node ID. This identifier maps the node to a specific bit position within the notification bitmap.</t>
        <t>The allocation, synchronization, and lifecycle management of these Global Node IDs are performed by an external central controller or management plane. The specific mechanisms for ID allocation are outside the scope of this document.</t>
      </section>
      <section anchor="dc-orig">
        <name>Dense Origination</name>
        <t>Each spine is responsible for generating notification messages that convey the direct reachability or congestion state of the leaves attached to it.</t>
        <t><strong>Message Scope and Fragmentation</strong></t>
        <t>A single notification message supports a payload covering up to 256 destination devices.</t>
        <ul spacing="normal">
          <li>
            <t>The message header MUST specify the Reachable-Devices-Range (or Base ID), indicating the starting Global Node ID for the bitmap payload.</t>
          </li>
          <li>
            <t>If the fabric scale exceeds 256 leaves, the originating node MUST generate multiple distinct notification messages. Each message corresponds to a different, non-overlapping Reachable-Devices-Range to cover the full topology.</t>
          </li>
        </ul>
        <t><strong>MSG-Type and State Encoding</strong></t>
        <t>The interpretation of the bitmap payload is determined by the MSG-Type field in the header.</t>
        <ul spacing="normal">
          <li>
            <t><strong>Reachability Information:</strong> When the MSG-Type indicates reachability, the bitmap encodes the binary status of the downlinks:
            </t>
            <ul spacing="normal">
              <li>
                <t><strong>Bit value 1:</strong> Indicates the destination leaf is directly reachable.</t>
              </li>
              <li>
                <t><strong>Bit value 0:</strong> Indicates the destination leaf is not reachable.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong>Congestion Information:</strong> When the MSG-Type indicates congestion, the bitmap conveys the congestion status of the associated downlinks. The mapping of queue congestion levels to the various congestion values is implementation-specific, provided it supports the hardware logic required for path pruning or de-prioritization.</t>
          </li>
        </ul>
        <t>Notifications are event-driven. One is emitted when an interface changes state or a path's congestion level changes significantly; the originating node does not restate the whole fabric on every tick. A low-rate periodic refresh sits underneath those events, so that a switch that missed a notification resynchronizes without waiting for the next change.</t>
      </section>
      <section anchor="dc-process">
        <name>Dense Hardware Processing</name>
        <t>Upon receipt of a dense notification message, the receiving leaf MUST process the packet on chip. The packet MUST NOT be punted to the host CPU.</t>
        <t><strong>State Aggregation</strong></t>
        <t>The receiving leaf maintains a local health table with one row per destination leaf and one column per spine next-hop. When a message is received:</t>
        <ol spacing="normal" type="1"><li>
            <t>The hardware identifies the column from the MAC Source Address (the advertising spine) and the row-range from the Reachable-Devices-Range.</t>
          </li>
          <li>
            <t>The received bitmap is overlaid onto that column, updating the reachability or congestion status for the corresponding destination leaves.</t>
          </li>
        </ol>
        <t><strong>Forwarding Decision Logic</strong></t>
        <t>To derive the final forwarding decision, the hardware performs a bitwise operation between the standard routing table and the aggregated notification state.</t>
        <ul spacing="normal">
          <li>
            <t>For reachability, this is functionally a <strong>Bitwise AND</strong> operation: a path is valid if and only if the routing protocol has installed it (Logical 1) <strong>AND</strong> the notification protocol reports it as reachable (Logical 1).</t>
          </li>
          <li>
            <t>If the result of this operation is 0 for a specific next-hop, the hardware immediately removes that next-hop from the Equal-Cost Multi-Path (ECMP) set for that destination. Next-hops used for other destinations are unchanged.</t>
          </li>
        </ul>
        <t>When a bundle (LAG) is used toward a spine, the health table MAY be maintained per bundle member. A single member failure then reduces capacity toward the affected destination (for example from 100% to 75% on a 4-member bundle) rather than withdrawing the entire BGP next-hop. The BGP adjacency remains up; LSN only changes membership or weight for the destinations that use the failed member.</t>
      </section>
      <section anchor="dc-illust">
        <name>Illustration: Dense Encoding in a DC Fabric</name>
        <t>This section illustrates dense encoding in a DC Clos fabric. The example uses three spines and three leaves so that the topology is readable; the same procedure applies to a fabric of 256 spines and 256 leaves.</t>
        <section anchor="dc-topo">
          <name>DC Topology</name>
          <t>Spines are identified by letters. Leaves are identified by numbers. Every leaf is connected to every spine.</t>
          <ul spacing="normal">
            <li>
              <t>Spines: A, B, C.</t>
            </li>
            <li>
              <t>Leaves: 1, 2, 3. Each leaf's Global Node ID equals its number.</t>
            </li>
            <li>
              <t>Traffic: leaf 1 sends traffic to leaf 3 (and also to leaf 2).</t>
            </li>
            <li>
              <t>Routing state: BGP advertises that leaf 3 is reachable via all spines. Leaf 1 maintains ECMP {A, B, C} for destination 3, and the same ECMP for destination 2.</t>
            </li>
          </ul>
          <figure anchor="fig-dc-topo">
            <name>DC Clos fabric used in the illustration</name>
            <artset>
              <artwork type="svg" name="dc-clos.svg" align="left">
      <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 640 340">
                  <title>DC Clos topology with spines A B C and leaves 1 2 3</title>
                  <desc>Two-tier Clos fabric. Spines A, B, and C on the top row. Leaves 1, 2, and 3 on the bottom row. Every leaf is connected to every spine. The link from spine B to leaf 3 is marked as failed.</desc>
                  <g fill="none" stroke="black" stroke-width="2">
                    <line x1="120" y1="80" x2="120" y2="240"/>
                    <line x1="120" y1="80" x2="320" y2="240"/>
                    <line x1="120" y1="80" x2="520" y2="240"/>
                    <line x1="320" y1="80" x2="120" y2="240"/>
                    <line x1="320" y1="80" x2="320" y2="240"/>
                    <line x1="520" y1="80" x2="120" y2="240"/>
                    <line x1="520" y1="80" x2="320" y2="240"/>
                    <line x1="520" y1="80" x2="520" y2="240"/>
                  </g>
                  <g fill="none" stroke="black" stroke-width="3">
                    <line x1="320" y1="80" x2="520" y2="240"/>
                    <line x1="343" y1="89" x2="353" y2="115"/>
                    <line x1="361" y1="97" x2="335" y2="107"/>
                  </g>
                  <g fill="white" stroke="black" stroke-width="2">
                    <rect x="80" y="40" width="80" height="40"/>
                    <rect x="280" y="40" width="80" height="40"/>
                    <rect x="480" y="40" width="80" height="40"/>
                    <rect x="80" y="240" width="80" height="40"/>
                    <rect x="280" y="240" width="80" height="40"/>
                    <rect x="480" y="240" width="80" height="40"/>
                  </g>
                  <g fill="black" font-family="sans-serif" font-size="18">
                    <text x="120" y="66" text-anchor="middle">A</text>
                    <text x="320" y="66" text-anchor="middle">B</text>
                    <text x="520" y="66" text-anchor="middle">C</text>
                    <text x="120" y="266" text-anchor="middle">1</text>
                    <text x="320" y="266" text-anchor="middle">2</text>
                    <text x="520" y="266" text-anchor="middle">3</text>
                  </g>
                  <g fill="black" font-family="sans-serif" font-size="11">
                    <text x="120" y="28" text-anchor="middle">Spine</text>
                    <text x="320" y="28" text-anchor="middle">Spine</text>
                    <text x="520" y="28" text-anchor="middle">Spine</text>
                    <text x="120" y="300" text-anchor="middle">Leaf</text>
                    <text x="320" y="300" text-anchor="middle">Leaf</text>
                    <text x="520" y="300" text-anchor="middle">Leaf</text>
                    <text x="358" y="90">B-3 down</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" name="dc-clos.txt" align="left"><![CDATA[
          Spine            Spine            Spine
         +-----+          +-----+          +-----+
         |  A  |          |  B  |          |  C  |
         +--+--+          +--+--+          +--+--+
            |                |                |
            |\              /|\              /|
            | \            / | \            / |
            |  \          /  |  \          /  |
            |   \        /   |   \        /   |
            |    \      /    |    X      /    |
            |     \    /     |     \    /     |
            |      \  /      |      \  /      |
            |       \/       |       \/       |
         +--+--+          +--+--+          +--+--+
         |  1  |          |  2  |          |  3  |
         +-----+          +-----+          +-----+
          Leaf             Leaf             Leaf

         Full mesh: every leaf is connected to every spine.
         X = failed link B-3.
]]></artwork>
            </artset>
          </figure>
        </section>
        <section anchor="dc-fail">
          <name>DC Failure Scenario</name>
          <t>A physical link failure occurs between spine B and destination leaf 3.</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Detection and Generation:</strong> Spine B detects that the port connected to leaf 3 is down. The hardware at spine B immediately generates a notification packet and transmits it to all connected leaves, including leaf 1.
              </t>
              <ul spacing="normal">
                <li>
                  <t><strong>MAC Destination Address:</strong> 01-80-C2-00-00-01 (MAC Control)</t>
                </li>
                <li>
                  <t><strong>MAC Source Address:</strong> spine B</t>
                </li>
                <li>
                  <t><strong>Reachable-Devices-Range (Base ID):</strong> 0 (covering leaves 0-255, here 1, 2, and 3).</t>
                </li>
                <li>
                  <t><strong>MSG-Type:</strong> Reachability.</t>
                </li>
                <li>
                  <t><strong>Bitmap:</strong> three entries, one per attached leaf. 1 and 2 remain active (1). The third entry, Leaf 3, is set to inactive (0).</t>
                </li>
              </ul>
            </li>
          </ol>
          <figure anchor="fig-dc-bitmap">
            <name>Next-hop vector for spine B after failure of B-3</name>
            <artwork align="left"><![CDATA[
  1  2  3
 [1, 1, 0]
        ^
  only 3 is down
]]></artwork>
          </figure>
          <ol spacing="normal" type="1" start="2"><li>
              <t><strong>Hardware Processing at Ingress:</strong> Leaf 1 receives the notification from spine B. The forwarding engine overlays column B of its health table and performs a logical AND with the BGP ECMP set.
              </t>
              <ul spacing="normal">
                <li>
                  <t><strong>Destination 3 via spine B:</strong>
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>Routing table state for leaf 3: 1 (the control plane has not yet converged; leaf 3 is still considered reachable via B).</t>
                    </li>
                    <li>
                      <t>Notification state from spine B for leaf 3: 0.</t>
                    </li>
                    <li>
                      <t><strong>Result:</strong> 1 AND 0 = 0 (path invalid).</t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t><strong>Destination 3 via spines A and C:</strong>
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>Routing table state for leaf 3: 1.</t>
                    </li>
                    <li>
                      <t>Notification state from A and from C for leaf 3: 1.</t>
                    </li>
                    <li>
                      <t><strong>Result:</strong> 1 AND 1 = 1 (path valid).</t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t><strong>Destination 2 via spine B:</strong>
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>The bit for leaf 2 in the same notification is 1. Traffic from leaf 1 to leaf 2 continues to use B. Spine B is not drained.</t>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>
              <t><strong>Forwarding Result:</strong> Because the result for spine B is 0 only for destination 3, the forwarding hardware excludes B from the ECMP group for leaf 3. Traffic to leaf 3 is rebalanced across {A, C}. Balancing of traffic to leaf 2 is unchanged: {A, B, C}.</t>
            </li>
          </ol>
          <t>This mechanism provides sub-microsecond protection. When the link B-3 is restored, spine B sends an updated bitmap with the leaf-3 bit set to 1. Traffic does not resume via B until BGP also re-installs the route, satisfying the 1 AND 1 condition.</t>
        </section>
      </section>
    </section>
    <section anchor="DCI">
      <name>Sparse Encoding</name>
      <t>This section specifies the sparse encoding. Sparse encoding is used in the DCI and WAN, where the destination set is sparse and large. Forwarding may be an ECMP set, a weighted-ECMP (wECMP) set, or a primary/backup pair; it is not limited to the wide spine ECMP of a Clos fabric. The notification identifies the event type, the node that detected the event, and the affected adjacency. A node that has registered interest in that adjacency either eliminates a member from an ECMP set, changes the wECMP weights, or activates a pre-programmed backup, most commonly an Efficient Remote Protection (remote TI-LFA) path <xref target="I-D.clad-rtgwg-efficient-remote-protection"/>.</t>
      <t>LSN does not compute that ECMP change or that backup. An agent with visibility of the topology programs the ECMP membership, the wECMP weights, and the backup pointers before any failure. LSN only sets the protection state that the agent has already installed.</t>
      <section anchor="dci-format">
        <name>Sparse Notification Packet Format</name>
        <t>The sparse notification is an Ethernet frame carrying an IPv6 header and no payload.</t>
        <figure anchor="fig-dci-pkt">
          <name>Sparse LSN packet</name>
          <artwork align="left"><![CDATA[
+------------------+------------------+
| Ethernet header  | IPv6 header      |
|                  | (no payload)     |
+------------------+------------------+
]]></artwork>
        </figure>
        <t>The IPv6 header <xref target="RFC8200"/> is used as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Source Address: an IPv6 address of the node originating the notification.</t>
          </li>
          <li>
            <t>Destination Address: the LSN Notification SID of the domain. 2001:db8::/32 is the documentation prefix <xref target="RFC3849"/> standing in for the SRv6 uSID block of the domain <xref target="RFC8986"/>. This SID is associated with the LSN Endpoint Behavior (TBD3). The LSN Endpoint Behavior takes three 16-bit arguments, in order:
            </t>
            <ul spacing="normal">
              <li>
                <t>Event-Type: the kind of event being advertised.</t>
              </li>
              <li>
                <t>uN: the uSID function defined in <xref target="RFC9800"/>; in LSN it identifies the advertising node.</t>
              </li>
              <li>
                <t>uA: the uSID function defined in <xref target="RFC9800"/>; in LSN it identifies the affected link or bundle member.</t>
              </li>
            </ul>
            <t>
In this document's illustrations, FF00 is a SID associated with the LSN Endpoint Behavior. The resulting SID is structured as 2001:db8:FF00:Event-Type:uN:uA:: (see <xref target="Running"/>).</t>
          </li>
          <li>
            <t>Payload Length: 0.</t>
          </li>
          <li>
            <t>Next Header: 59 (IPv6 No Next Header).</t>
          </li>
          <li>
            <t>Hop Limit: the blast radius of the notification.</t>
          </li>
        </ul>
        <figure anchor="fig-dci-sid">
          <name>LSN Notification SID</name>
          <artwork align="left"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         uSID block                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     LSN SID                   |         Event-Type            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              uN               |              uA               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            0                                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The Event-Type argument indicates the information conveyed by the notification. Value 0x0000 is reserved. The following values are defined:</t>
        <ul spacing="normal">
          <li>
            <t>0x0001: Down / not reachable</t>
          </li>
          <li>
            <t>0x0002: Up / recovered</t>
          </li>
          <li>
            <t>0x0003: Congestion Level 1</t>
          </li>
          <li>
            <t>0x0004: Congestion Level 2</t>
          </li>
          <li>
            <t>0x0005: Congestion Level 3</t>
          </li>
        </ul>
        <t>Congestion levels are implementation specific. When Event-Type indicates congestion, a registered node MAY change wECMP weights or de-prefer the adjacency; it is not required to treat the adjacency as failed.</t>
        <t>This document uses the following identifier convention in its illustrations:</t>
        <ul spacing="normal">
          <li>
            <t>Event-Type uses the values defined above. The failure illustration uses Event-Type = 0001 (Down).</t>
          </li>
          <li>
            <t>uN is 0X00, where X is the node number of the advertising node. For example, node 2 uses uN = 0200.</t>
          </li>
          <li>
            <t>uA is F0YZ, where Y is the source node of the adjacency and Z is the destination node of the adjacency. For example, the link from node 2 to node 3 uses uA = F023.</t>
          </li>
        </ul>
        <t>The allocation of uN and uA values in a deployment is performed by the operator or by a controller. The specific allocation protocol is outside the scope of this document.</t>
      </section>
      <section anchor="dci-orig">
        <name>Sparse Origination</name>
        <t>Every node monitors its local links. Upon detecting a local link failure, a link-up event, a congestion-level change, or a change of link properties (for example a bundle capacity change that must be reflected in weighted ECMP), the node originates a sparse LSN notification.</t>
        <t>The originating hardware keeps one pre-crafted IPv6 notification ready to send. Distinct packets per neighbor MUST NOT be required. When the local interface-status or congestion logic detects the event, it writes the LSN Notification SID (a SID associated with the LSN Endpoint Behavior, together with the three arguments Event-Type, uN, and uA) and sends that same packet out on all interfaces.</t>
        <t>Local origination is based on interface status registers (on the order of 10 microseconds), not on traditional BFD/TWAMP liveness. Traditional BFD/TWAMP liveness continues to serve the BGP session; it is not the trigger for LSN.</t>
      </section>
      <section anchor="dci-process">
        <name>Sparse Processing and Registration</name>
        <t>Upon receipt, the packet is processed in the dataplane.</t>
        <t>A hardware classifier matches the LSN Notification SID (domain uSID block and the SID associated with the LSN Endpoint Behavior). The match triggers two actions:</t>
        <ol spacing="normal" type="1"><li>
            <t>If the Hop Limit is greater than 1, decrement the Hop Limit and forward the notification on the interfaces indicated by the local LSN forwarding policy, so that registered upstream nodes can receive it.</t>
          </li>
          <li>
            <t>Process a copy of the packet on chip. The LSN Endpoint Behavior (TBD3) is invoked with its three arguments (Event-Type, uN, uA) to activate any locally registered protection for that tuple.</t>
          </li>
        </ol>
        <t>an agent, before any failure, programs an exact-match table:</t>
        <ul spacing="normal">
          <li>
            <t>Key: the three arguments of the LSN Endpoint Behavior (Event-Type, uN, uA).</t>
          </li>
          <li>
            <t>Value: a linked list of local protection pointers. Each pointer identifies a FIB protection bit to set: elimination of an ECMP member, a wECMP weight update, or activation of an Efficient Remote Protection (remote TI-LFA) backup.</t>
          </li>
        </ul>
        <t>A single DCI or WAN adjacency often covers many destinations. The linked list allows one notification to enable every locally relevant protection entry without a host-CPU walk of the RIB. Failure and congestion on the same adjacency use different Event-Type values and therefore different table entries, so they MAY install different protection lists.</t>
        <t>The lookup on (Event-Type, uN, uA) returns the first protection pointer and the next-member link. The protection pointer is set on chip and the list is walked until it terminates. The packet MUST NOT be punted to the host CPU.</t>
        <t>LSN does not compute the ECMP change or the backup path. The agent has already installed the ECMP members, the wECMP weights, and any Efficient Remote Protection (remote TI-LFA) backup <xref target="I-D.clad-rtgwg-efficient-remote-protection"/>. LSN sets the protection state that applies them.</t>
      </section>
      <section anchor="dci-illust">
        <name>Illustration: Sparse Encoding in the DCI and WAN</name>
        <t>This section illustrates sparse encoding in a DCI/WAN topology. The example uses a primary/backup pair and Efficient Remote Protection. The same notification can instead eliminate a member of an ECMP set or change wECMP weights. Routers are identified by numbers. Numbers are not reused.</t>
        <section anchor="dci-topo">
          <name>DCI/WAN Topology</name>
          <t>Consider the topology in <xref target="fig-dci-topo"/>.</t>
          <ul spacing="normal">
            <li>
              <t>Node 1 is the ingress / Point of Remote Repair.</t>
            </li>
            <li>
              <t>The primary path from 1 to destination 7 is 1-2-3-7.</t>
            </li>
            <li>
              <t>The backup path from 1 to destination 7 is 1-4-5-6-7.</t>
            </li>
            <li>
              <t>The protected resource is the adjacency 2-3.</t>
            </li>
          </ul>
          <t>Identifier assignment for the illustration:</t>
          <ul spacing="normal">
            <li>
              <t>Node 1: uN = 0100</t>
            </li>
            <li>
              <t>Node 2: uN = 0200</t>
            </li>
            <li>
              <t>Node 3: uN = 0300</t>
            </li>
            <li>
              <t>Node 4: uN = 0400</t>
            </li>
            <li>
              <t>Node 5: uN = 0500</t>
            </li>
            <li>
              <t>Node 6: uN = 0600</t>
            </li>
            <li>
              <t>Node 7: uN = 0700</t>
            </li>
            <li>
              <t>Adjacency 2-3: uA = F023</t>
            </li>
            <li>
              <t>Failure of adjacency 2-3: Event-Type = 0001</t>
            </li>
          </ul>
          <figure anchor="fig-dci-topo">
            <name>DCI/WAN topology used in the illustration</name>
            <artset>
              <artwork type="svg" name="dci-wan.svg" align="left">
      <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 720 340">
                  <title>DCI topology with routers 1 through 7</title>
                  <desc>Primary path 1-2-3-7 and backup path 1-4-5-6-7. The link from node 2 to node 3 is marked as failed. Node 2 sends an LSN notification toward node 1 with Event-Type 0001, uN 0200, and uA F023. Node 1 activates the backup via 4, 5, and 6.</desc>
                  <g fill="none" stroke="black" stroke-width="2">
                    <line x1="100" y1="100" x2="250" y2="50"/>
                    <line x1="530" y1="50" x2="640" y2="100"/>
                    <line x1="70" y1="120" x2="230" y2="250"/>
                    <line x1="270" y1="270" x2="370" y2="270"/>
                    <line x1="450" y1="270" x2="550" y2="270"/>
                    <line x1="590" y1="250" x2="670" y2="120"/>
                    <line x1="122" y1="111" x2="132" y2="102"/>
                    <line x1="122" y1="111" x2="135" y2="112"/>
                  </g>
                  <g fill="none" stroke="black" stroke-width="2" stroke-dasharray="6 4">
                    <line x1="246" y1="68" x2="122" y2="111"/>
                  </g>
                  <g fill="none" stroke="black" stroke-width="3">
                    <line x1="330" y1="50" x2="450" y2="50"/>
                    <line x1="375" y1="38" x2="405" y2="62"/>
                    <line x1="405" y1="38" x2="375" y2="62"/>
                  </g>
                  <g fill="white" stroke="black" stroke-width="2">
                    <rect x="40" y="80" width="60" height="40"/>
                    <rect x="250" y="30" width="80" height="40"/>
                    <rect x="450" y="30" width="80" height="40"/>
                    <rect x="640" y="80" width="60" height="40"/>
                    <rect x="190" y="250" width="80" height="40"/>
                    <rect x="370" y="250" width="80" height="40"/>
                    <rect x="550" y="250" width="80" height="40"/>
                  </g>
                  <g fill="black" font-family="sans-serif" font-size="18">
                    <text x="70" y="106" text-anchor="middle">1</text>
                    <text x="290" y="56" text-anchor="middle">2</text>
                    <text x="490" y="56" text-anchor="middle">3</text>
                    <text x="670" y="106" text-anchor="middle">7</text>
                    <text x="230" y="276" text-anchor="middle">4</text>
                    <text x="410" y="276" text-anchor="middle">5</text>
                    <text x="590" y="276" text-anchor="middle">6</text>
                  </g>
                  <g fill="black" font-family="sans-serif" font-size="11">
                    <text x="175" y="55">primary</text>
                    <text x="390" y="22" text-anchor="middle">2-3 down</text>
                    <text x="585" y="55">primary</text>
                    <text x="210" y="124" text-anchor="middle">LSN (ETYP=0001, uN=0200, uA=F023)</text>
                    <text x="410" y="318" text-anchor="middle">backup 1-4-5-6-7 (Efficient Remote Protection)</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" name="dci-wan.txt" align="left"><![CDATA[
                    primary              primary
               +---+  2-3 down  +---+
               | 2 |-----X------| 3 |
               +-+-+            +-+-+
              /    ^              \
             /     | LSN           \
            /      | ETYP=0001      \
           /       | uN=0200         \
          /        | uA=F023          \
      +---+                           +---+
      | 1 |                           | 7 |
      +-+-+                           +-+-+
        |                               |
        |     +---+    +---+    +---+   |
        +-----| 4 |----| 5 |----| 6 |---+
              +---+    +---+    +---+
                 backup 1-4-5-6-7
            (Efficient Remote Protection)
]]></artwork>
            </artset>
          </figure>
        </section>
        <section anchor="dci-fail">
          <name>DCI/WAN Failure Scenario</name>
          <t>Traffic from node 1 to destination 7 uses next-hop 2. Local FRR at node 1 does not fire, because the protected resource is the remote adjacency 2-3.</t>
          <t>If only local TI-LFA were used at node 2, traffic already at node 1 would continue toward node 2 and would then be repaired in a way that hairpins back through the upstream path. Efficient Remote Protection programs the repair at node 1: if adjacency 2-3 fails, traffic from 1 to 7 is steered on 1-4-5-6-7.</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Pre-failure programming:</strong> The agent installs at node 1:
              </t>
              <ul spacing="normal">
                <li>
                  <t>An Efficient Remote Protection backup for destination 7, protecting adjacency 2-3, via 4-5-6.</t>
                </li>
                <li>
                  <t>An exact-match entry for (Event-Type=0001, uN=0200, uA=F023) whose protection pointer enables that backup.</t>
                </li>
                <li>
                  <t>On node 2, a Hop Limit of 1.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><strong>Detection and Generation:</strong> Node 2 detects that the local port toward node 3 is down. The hardware originates one IPv6 LSN notification:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Source Address: node 2.</t>
                </li>
                <li>
                  <t>Destination: LSN Notification SID 2001:db8:FF00:0001:0200:F023::.</t>
                </li>
                <li>
                  <t>Hop Limit: 1.</t>
                </li>
                <li>
                  <t>Payload Length: 0; Next Header: 59.
The packet is replicated in hardware on the interfaces of node 2, including the interface toward node 1.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><strong>Processing at node 1:</strong> The classifier matches the LSN Notification SID. Node 1 invokes the LSN Endpoint Behavior (TBD3) with arguments (0001, 0200, F023), walks the protection linked list, and sets the Efficient Remote Protection pointer for destination 7. Traffic from 1 to 7 is switched onto 1-4-5-6-7. The packet MUST NOT be punted to the host CPU.</t>
            </li>
            <li>
              <t><strong>AND with routing:</strong> The backup is used only while BGP still authorizes a path from 1 to 7 and LSN reports adjacency 2-3 as failed. When 2-3 is restored, node 2 may originate a corresponding recovery notification with Event-Type = 0002 (Up). Traffic returns to 1-2-3-7 only after BGP has reconverged, satisfying the AND condition.</t>
            </li>
          </ol>
          <t>The same notification can enable more than one protection pointer. If adjacency 2-3 is also a weighted-ECMP input for other destinations at node 1, those destinations are chained from the same (0001, 0200, F023) entry.</t>
          <t>A congestion event on the same adjacency uses a different Event-Type (0x0003, 0x0004, or 0x0005) and therefore a different exact-match entry, which MAY update wECMP weights without activating the backup.</t>
        </section>
      </section>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>The Lightspeed Notification Protocol (LSN) is designed to achieve sub-100 microsecond convergence on chip. To achieve this performance, LSN messages do not include cryptographic authentication or integrity checks. Consequently, the protocol introduces several security considerations that must be mitigated by the deployment architecture.</t>
      <t><strong>Spoofing and Denial of Service (DoS):</strong> Because LSN messages are unauthenticated, an attacker capable of injecting forged LSN frames into the fabric could advertise false congestion or failure notifications. This would cause receiving nodes to prune valid paths or to activate backups, potentially leading to forced congestion, suboptimal routing, or a denial of service.</t>
      <t><strong>Mitigation via Boundary Filtering:</strong> LSN is intended exclusively for internal use within a single administrative domain (a DC fabric and, where deployed, that operator's DCI and WAN). To prevent spoofing, boundary nodes MUST implement strict port-level filtering. LSN notification packets MUST be dropped unconditionally on any port facing a server, host, or external network. LSN processing MUST only be enabled on trusted infrastructure links. In the sparse encoding, the Hop Limit further constrains how far a notification can travel.</t>
      <t><strong>Fail-Safe Routing Logic:</strong> As defined in this document, LSN acts only as a hardware veto (a logical AND operation with the routing protocol). While an attacker can maliciously prune a path or force a pre-authorized backup, they cannot force the network to forward traffic into a blackhole or an invalid topology segment, because reachability still requires the routing protocol (for example, BGP) to authorize the path. The control plane remains the source of truth for topology validation.</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This document requests the following allocations.</t>
      <ul spacing="normal">
        <li>
          <t><strong>Ethertype:</strong> A new Ethertype for the Lightspeed Notification Protocol (LSN) dense encoding (TBD1).</t>
        </li>
        <li>
          <t><strong>Opcode:</strong> A new MAC Control Opcode for LSN dense bitmap reachability (TBD2).</t>
        </li>
      </ul>
      <t>IANA is requested to allocate a codepoint in the "SRv6 Endpoint Behaviors" registry as follows:</t>
      <table anchor="tab-iana-srv6">
        <name>SRv6 Endpoint Behavior allocation</name>
        <thead>
          <tr>
            <th align="right">Value</th>
            <th align="left">Hex</th>
            <th align="left">Endpoint Behavior</th>
            <th align="left">Reference</th>
            <th align="left">Change Controller</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right">TBD3</td>
            <td align="left"> </td>
            <td align="left">LSN Notification</td>
            <td align="left">This document</td>
            <td align="left">IETF</td>
          </tr>
        </tbody>
      </table>
      <t>Upon assignment of these values, the RFC Editor is requested to replace all instances of TBD1, TBD2, and TBD3 with the allocated values.</t>
    </section>
    <section anchor="Running">
      <name>Running Code</name>
      <t>The dense encoding is running on Cisco Silicon One G300. Notification generation and notification processing are performed entirely on chip, at linerate. LSN notifications are not processed on the host CPU and are not handed to the control plane.</t>
      <t>The prototype instantiates the IANA codepoints of this document as follows:</t>
      <ul spacing="normal">
        <li>
          <t>TBD1 (Ethertype): 0x8808 (IEEE 802.3 MAC Control <xref target="IEEE802.3"/>)</t>
        </li>
        <li>
          <t>TBD2 (MAC Control Opcode): 0x5AA5</t>
        </li>
      </ul>
    </section>
    <section anchor="ACK">
      <name>Acknowledgements</name>
      <t>The authors would like to acknowledge Kris Michielsen.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>
        <reference anchor="RFC8986">
          <front>
            <title>Segment Routing over IPv6 (SRv6) Network Programming</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="P. Camarillo" initials="P." role="editor" surname="Camarillo"/>
            <author fullname="J. Leddy" initials="J." surname="Leddy"/>
            <author fullname="D. Voyer" initials="D." surname="Voyer"/>
            <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
            <author fullname="Z. Li" initials="Z." surname="Li"/>
            <date month="February" year="2021"/>
            <abstract>
              <t>The Segment Routing over IPv6 (SRv6) Network Programming framework enables a network operator or an application to specify a packet processing program by encoding a sequence of instructions in the IPv6 packet header.</t>
              <t>Each instruction is implemented on one or several nodes in the network and identified by an SRv6 Segment Identifier in the packet.</t>
              <t>This document defines the SRv6 Network Programming concept and specifies the base set of SRv6 behaviors that enables the creation of interoperable overlays with underlay optimization.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8986"/>
          <seriesInfo name="DOI" value="10.17487/RFC8986"/>
        </reference>
        <reference anchor="RFC9800">
          <front>
            <title>Compressed SRv6 Segment List Encoding</title>
            <author fullname="W. Cheng" initials="W." role="editor" surname="Cheng"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="Z. Li" initials="Z." surname="Li"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="F. Clad" initials="F." role="editor" surname="Clad"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>Segment Routing over IPv6 (SRv6) is the instantiation of Segment Routing (SR) on the IPv6 data plane. This document specifies new flavors for the SRv6 endpoint behaviors defined in RFC 8986, which enable the compression of an SRv6 segment list. Such compression significantly reduces the size of the SRv6 encapsulation needed to steer packets over long segment lists.</t>
              <t>This document updates RFC 8754 by allowing a Segment List entry in the Segment Routing Header (SRH) to be either an IPv6 address, as specified in RFC 8754, or a REPLACE-CSID container in packed format, as specified in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9800"/>
          <seriesInfo name="DOI" value="10.17487/RFC9800"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC3849">
          <front>
            <title>IPv6 Address Prefix Reserved for Documentation</title>
            <author fullname="G. Huston" initials="G." surname="Huston"/>
            <author fullname="A. Lord" initials="A." surname="Lord"/>
            <author fullname="P. Smith" initials="P." surname="Smith"/>
            <date month="July" year="2004"/>
            <abstract>
              <t>To reduce the likelihood of conflict and confusion when relating documented examples to deployed systems, an IPv6 unicast address prefix is reserved for use in examples in RFCs, books, documentation, and the like. Since site-local and link-local unicast addresses have special meaning in IPv6, these addresses cannot be used in many example situations. The document describes the use of the IPv6 address prefix 2001:DB8::/32 as a reserved prefix for use in documentation. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3849"/>
          <seriesInfo name="DOI" value="10.17487/RFC3849"/>
        </reference>
        <reference anchor="I-D.clad-rtgwg-ipfrr-aiml" target="https://datatracker.ietf.org/doc/draft-clad-rtgwg-ipfrr-aiml/">
          <front>
            <title>IP Fast Reroute for AI/ML Fabrics</title>
            <author initials="F." surname="Clad" fullname="Francois Clad">
              <organization/>
            </author>
            <author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
              <organization/>
            </author>
            <author initials="R." surname="Jiang" fullname="Roy Jiang">
              <organization/>
            </author>
            <author initials="D." surname="Cai" fullname="Dennis Cai">
              <organization/>
            </author>
            <date year="2026" month="March"/>
          </front>
        </reference>
        <reference anchor="I-D.clad-rtgwg-efficient-remote-protection" target="https://datatracker.ietf.org/doc/draft-clad-rtgwg-efficient-remote-protection/">
          <front>
            <title>Efficient Remote Protection</title>
            <author initials="F." surname="Clad" fullname="Francois Clad">
              <organization/>
            </author>
            <author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
              <organization/>
            </author>
            <author initials="Y." surname="Su" fullname="Yuanchao Su">
              <organization/>
            </author>
            <author initials="D." surname="Cai" fullname="Dennis Cai">
              <organization/>
            </author>
            <date year="2026" month="March"/>
          </front>
        </reference>
        <reference anchor="IEEE802.3" target="https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;arnumber=9844436">
          <front>
            <title>IEEE Standard for Ethernet; IEEE Std 802.3-2022</title>
            <author>
              <organization>IEEE Computer Society</organization>
            </author>
            <date year="2022" month="May"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
EOFIJp7D+YhfJarCR1DWa0i06bQp9W40RgOPTN5p4i78EpsENjVBc0b4uRb5
ILb/8Y9/bKmOqv/rNjzrNTzrY/cuvOqrAzVQh+pIHas3L3m29Z3zT/6/rceG
hSFEzqwzH7FOq3bORrvVto+whs3/nnyv10DTjtQO+gaCKPcnerJH/fY6zhPQ
Lcx6rnk933ANNThUp6wt7tvDQTFu3qyWvtq5OT3rluBA/z4sxyj18W1v989Z
wx/897jVXvsO5fNHd4W+1A0jtDeM8Lx/7W+wi6cg9dS/zZAcX43Vzvn4ukZO
33gNyKO+DEFkk0B23BDMnpPt0J9m2+rVNJg5wC/nk4STS0+2mcHiMRnuyPxv
G9gp8F2fzZU1/GGoOl3nuOOMe06nQ/+/q3YooxQ6OCIZvcK9qC3RXQov4YRY
8qFOFOI8Pvuw9BDL6UFPT1wmyKF4QEWDZ2tPmzCTmibMrJ11Z+DqubbTUx5U
jHfUaIy2ztlOZUmFbCDMF9EutsyXmF8rNqGN4hg7l2gdOqZJdKT/gwQHMSj1
ePX4Lp09qqv0HhjUmX/vXFFw5SkSfHx6DU+M8C2YVdMIVzrQ4MBuArConFPW
Wp49gvzb6Q0OUeNJN5P5N2BWT7T4Y2pAZY4nx3gOs1kKbdQYjrxARnOORjMy
GC8JKD7GXOdn1sRYLB4wXIfq390QTJDX3d5r5agLO9QdSKa0VuLLqiurd2Q2
XqmdLg4Ho135lGM9IScUWchgHaMqDXT+dz9BYmePRZRKlRrbELMoRg8ZvSXu
suShgTIcYmo7Pb3gi2himfumfIYTPe/9VeF2Yl2ZloLZGcYxvUEHF7cLs7na
4wpH6lsmm9WWXEImzROtvcDkGdo2jlgPhRcMN4unUzIRubxgT3U+d4YFZW2Z
p13rKSfgx5nlqt+xQi+X5Kvq7hadey/t3LM691/auU+CSqOI2unrI/3WWFNn
QMxSdw71jGd+RjlPgkUmnM0+I72pCfc2iHRjmqLbq3CfoecUbNBP/7lm4k97
wMha65ZFb9V3qjcYfPqvtoD3dec1rpLn7zjwTgP+ddd6Az2dQbdr3vWsd4Nu
zzk6PNLv2u02nsk9emRySp3tHv5Fb3F3DdyEcReMeKg+RERZBALbsEVjta1O
0QUAVKlpFGxxsp6rLbFRamI22ihnIxynJs8jxyEC9CSlqTvzK2YsqDaaYXna
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
3gWoS4MGB/zu/wGo3E/QMKUAAA==

-->

</rfc>
