<?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.4.9) -->
<?rfc sortfefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-kazuho-quic-delegated-stateless-reset-00" category="std" consensus="true" tocInclude="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title>Delegating QUIC Stateless Resets</title>
    <seriesInfo name="Internet-Draft" value="draft-kazuho-quic-delegated-stateless-reset-00"/>
    <author fullname="奥 一穂" asciiFullname="Kazuho Oku">
      <organization>Fastly</organization>
      <address>
        <email>kazuhooku@gmail.com</email>
      </address>
    </author>
    <author fullname="Stefano Duo">
      <organization>Google</organization>
      <address>
        <email>stefanoduo@google.com</email>
      </address>
    </author>
    <author fullname="Joseph Beshay">
      <organization>Meta</organization>
      <address>
        <email>jbeshay@meta.com</email>
      </address>
    </author>
    <author fullname="Matt Joras">
      <organization>Meta</organization>
      <address>
        <email>mjoras@meta.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="14"/>
    <workgroup>quic</workgroup>
    <keyword>internet-draft</keyword>
    <abstract>
      <?line 36?>

<t>This document specifies how a QUIC endpoint may delegate the emission of
Stateless Resets to a component that outlives the QUIC stack -- for example, an
operating system that resets the peers of an application that has exited. As such
delegation is most useful on the client side, where endpoints often use
zero-length Connection IDs, this document also defines a transport parameter and
a frame that allow those clients to advertise a Stateless Reset Token.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    QUIC Working Group mailing list (quic@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/quic/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/kazuho/draft-kazuho-quic-delegated-stateless-reset"/>.</t>
    </note>
  </front>
  <middle>
    <?line 46?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Stateless reset (<xref section="10.3" sectionFormat="of" target="RFC9000"/>) allows an endpoint that has lost
connection state to signal to its peer that a connection can no longer be
continued. Nothing a Stateless Reset carries is protected by the connection's
keys or tied to its packet number spaces: the signal is authenticated solely by
the 128-bit Stateless Reset Token it ends with, which the receiver matches
against the tokens it retains.</t>
      <t>QUIC version 1 uses that property to avoid retaining state. An endpoint
associates a Stateless Reset Token with each Connection ID it issues, delivering
the token to the peer either in the stateless_reset_token transport parameter or
in a NEW_CONNECTION_ID frame. When such an endpoint later receives a packet that
it cannot associate with any active connection, it recomputes the token from the
Destination Connection ID carried in that packet -- typically by applying a
static key to the Connection ID (<xref section="10.3.2" sectionFormat="of" target="RFC9000"/>) -- and emits a
Stateless Reset carrying that token. Because the token is derived from the
Connection ID, the resetting endpoint need not retain any per-connection state.</t>
      <t>The same property permits a different arrangement, and it is the subject of
this document: the entity that sends a Stateless Reset need not be the endpoint
that ran the connection.</t>
      <t>The ability to send a Stateless Reset is valuable precisely when connection
state has been lost involuntarily -- for example, when an application exits or
is terminated by the operating system. After the application is gone, the peer
may buffer data that will never be delivered and continue to send packets on
the connection until its idle timeout expires. It can also delay fallback
delivery, such as a push notification or a secondary connection. At scale,
abandoned connections consume memory and connection-table capacity. To cover
these scenarios, an endpoint can delegate the termination of the connection to
a component that outlives its own connection state, and that component can
reset the peer long after the endpoint is gone (<xref target="delegation"/>).</t>
      <t>A CONNECTION_CLOSE packet could be recorded and used for this scenario, but
such a packet is difficult to manage for a delegate. It is protected under the
connection's packet-protection keys that endpoints periodically rotate, and it
carries a packet number that must fall within a dynamic range the peer will accept;
thus, the recorded packet would need constant refreshing to remain usable.</t>
      <t>In contrast, sending a Stateless Reset requires only the static Stateless Reset
Token and the 5-tuple on which to send it. The token remains valid until the
associated Connection ID is retired.</t>
      <t>A delegated Stateless Reset can also be better formed than one sent by an
endpoint that has lost its state: the delegate can remember a Connection ID that
the peer has issued and place it where a 1-RTT packet carries the Destination
Connection ID, so that the Stateless Reset reaches the intended peer in a
load-balanced deployment (<xref target="constructing"/>).</t>
      <t>With QUIC version 1, Stateless Reset Tokens are issued alongside Connection IDs.
An endpoint that uses zero-length Connection IDs cannot issue one in a
NEW_CONNECTION_ID frame (<xref section="5.1.1" sectionFormat="of" target="RFC9000"/>). Only a server can provide a
token for its handshake Connection ID in the stateless_reset_token transport
parameter; clients cannot because client transport parameters are not
confidential.</t>
      <t>Zero-length Connection IDs are common for clients. A client that identifies connections
solely by the 5-tuple has no need to issue Connection IDs and can reduce
per-packet overhead by using zero-length Connection IDs. To allow such clients
to issue Stateless Reset Tokens and delegate them, this document defines a
transport parameter and a frame (<xref target="advertising"/>).
Servers can issue a stateless reset token using the transport parameter and therefore do not use this extension.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
      <?line -18?>

</section>
    <section anchor="delegation">
      <name>Delegating a Stateless Reset</name>
      <t>An endpoint can delegate the sending of a Stateless Reset to a component that
outlives its connection state. The delegate retains the Stateless Reset Token,
rather than recomputing it from a Connection ID as a resetting endpoint would,
together with whatever the endpoint uses to match a received packet to the
connection -- a Connection ID, or the 5-tuple when a client uses a zero-length
Connection ID (<xref section="5.2" sectionFormat="of" target="RFC9000"/>). To construct a reset that
can be routed to the peer, it also needs a Connection ID that the peer issued
(<xref target="constructing"/>). It needs no packet-protection keys and no packet number.</t>
      <t>Both clients and servers can delegate a Stateless Reset in this way.</t>
      <t>Any endpoint that has issued a Stateless Reset Token can delegate it, whatever
the length of the Connection IDs it issues. An endpoint that issues Connection
IDs delegates one of the tokens it has already distributed, in the
stateless_reset_token transport parameter or in a NEW_CONNECTION_ID frame. A
client that uses a zero-length Connection ID cannot issue a token under QUIC
version 1; <xref target="advertising"/> defines how it does so.</t>
      <t><xref section="10.3.1" sectionFormat="of" target="RFC9000"/> requires a peer to compare the trailing bytes of a
received datagram only against the tokens of Connection IDs that it has used and
has not retired. A Stateless Reset carrying any other token is therefore
indistinguishable from a packet that cannot be decrypted and is discarded. A
delegate <bcp14>MAY</bcp14> track when the peer starts using a Connection ID, and send a
Stateless Reset carrying the associated token only once that happens.</t>
      <t>A client that uses a zero-length Connection ID can advertise a token for the
whole connection using the extension in <xref target="advertising"/>.</t>
      <t>The endpoint updates the registration when the selected token, Connection ID,
or network path changes. A reset sent before the delegate receives an update
might be dropped.</t>
      <t>This document does not define an interface between an endpoint and a delegate.</t>
      <t>Except as described in <xref target="constructing"/> and <xref target="proactive"/>, the requirements of
<xref section="10.3" sectionFormat="of" target="RFC9000"/> and <xref section="10.3.3" sectionFormat="of" target="RFC9000"/> governing the
construction and sending of a Stateless Reset apply unchanged.</t>
      <section anchor="os-offload">
        <name>Delegating a Stateless Reset to the Operating System</name>
        <t>In some environments, the operating system sends a Stateless Reset on behalf of
an application that has exited or has been terminated. The application and the
operating system can divide the work as follows (<xref target="fig-os-offload"/>).</t>
        <t>The operating system exposes an interface through which an application
registers, for one of its connections, a Connection ID that the peer has issued
and currently accepts, together with what identifies that connection in the
datagrams the peer sends -- the socket, and the Connection ID that the
application is issuing, if any.</t>
        <t>From that registration, the operating system generates a Stateless Reset Token,
forms and retains a Stateless Reset datagram (<xref target="constructing"/>), and returns the
token to the application. The application makes the token known to its peer,
either as the token associated with the issued Connection ID or, if it is a
client that uses zero-length Connection IDs, in a RESET_TOKEN frame
(<xref target="reset-token-frame"/>).</t>
        <t>Once the application is no longer able to process packets for the connection,
the operating system sends the retained datagram once (<xref target="proactive"/>), and
thereafter responds to datagrams matching that registration by sending it again,
but does so only if the retained datagram is smaller than the one that triggered
it, as required by <xref section="10.3.3" sectionFormat="of" target="RFC9000"/>.</t>
        <t>Eventually, the operating system discards the stateless reset and the
registration, as the peer will nevertheless abandon the connection due to not
making progress.</t>
        <figure anchor="fig-os-offload">
          <name>Delegating a Stateless Reset to the Operating System</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="528" width="544" viewBox="0 0 544 528" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,512" fill="none" stroke="black"/>
                <path d="M 80,80 L 80,240" fill="none" stroke="black"/>
                <path d="M 200,304 L 200,432" fill="none" stroke="black"/>
                <path d="M 264,80 L 264,192" fill="none" stroke="black"/>
                <path d="M 264,240 L 264,296" fill="none" stroke="black"/>
                <path d="M 264,336 L 264,424" fill="none" stroke="black"/>
                <path d="M 264,440 L 264,480" fill="none" stroke="black"/>
                <path d="M 472,80 L 472,296" fill="none" stroke="black"/>
                <path d="M 472,336 L 472,424" fill="none" stroke="black"/>
                <path d="M 472,440 L 472,480" fill="none" stroke="black"/>
                <path d="M 512,304 L 512,432" fill="none" stroke="black"/>
                <path d="M 536,32 L 536,512" fill="none" stroke="black"/>
                <path d="M 8,32 L 536,32" fill="none" stroke="black"/>
                <path d="M 88,96 L 128,96" fill="none" stroke="black"/>
                <path d="M 216,96 L 256,96" fill="none" stroke="black"/>
                <path d="M 88,176 L 112,176" fill="none" stroke="black"/>
                <path d="M 224,176 L 256,176" fill="none" stroke="black"/>
                <path d="M 88,208 L 200,208" fill="none" stroke="black"/>
                <path d="M 344,208 L 464,208" fill="none" stroke="black"/>
                <path d="M 272,256 L 296,256" fill="none" stroke="black"/>
                <path d="M 440,256 L 464,256" fill="none" stroke="black"/>
                <path d="M 200,304 L 512,304" fill="none" stroke="black"/>
                <path d="M 272,352 L 288,352" fill="none" stroke="black"/>
                <path d="M 448,352 L 464,352" fill="none" stroke="black"/>
                <path d="M 272,384 L 296,384" fill="none" stroke="black"/>
                <path d="M 440,384 L 464,384" fill="none" stroke="black"/>
                <path d="M 200,432 L 512,432" fill="none" stroke="black"/>
                <path d="M 8,512 L 536,512" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="472,384 460,378.4 460,389.6" fill="black" transform="rotate(0,464,384)"/>
                <polygon class="arrowhead" points="472,256 460,250.4 460,261.6" fill="black" transform="rotate(0,464,256)"/>
                <polygon class="arrowhead" points="472,208 460,202.4 460,213.6" fill="black" transform="rotate(0,464,208)"/>
                <polygon class="arrowhead" points="280,352 268,346.4 268,357.6" fill="black" transform="rotate(180,272,352)"/>
                <polygon class="arrowhead" points="264,96 252,90.4 252,101.6" fill="black" transform="rotate(0,256,96)"/>
                <polygon class="arrowhead" points="96,176 84,170.4 84,181.6" fill="black" transform="rotate(180,88,176)"/>
                <g class="text">
                  <text x="80" y="68">Application</text>
                  <text x="268" y="68">OS</text>
                  <text x="468" y="68">Peer</text>
                  <text x="172" y="100">Register</text>
                  <text x="144" y="116">(Peer</text>
                  <text x="188" y="116">CID,</text>
                  <text x="160" y="132">Socket,</text>
                  <text x="216" y="132">etc.)</text>
                  <text x="316" y="148">(Generates</text>
                  <text x="384" y="148">Token</text>
                  <text x="288" y="164">&amp;</text>
                  <text x="320" y="164">Reset</text>
                  <text x="376" y="164">Packet)</text>
                  <text x="144" y="180">Reset</text>
                  <text x="192" y="180">Token</text>
                  <text x="248" y="212">Advertise</text>
                  <text x="312" y="212">Token</text>
                  <text x="188" y="228">(RESET_TOKEN</text>
                  <text x="252" y="228">or</text>
                  <text x="340" y="228">NEW_CONNECTION_ID)</text>
                  <text x="52" y="260">[App</text>
                  <text x="100" y="260">Exits]</text>
                  <text x="344" y="260">Proactive</text>
                  <text x="408" y="260">Reset</text>
                  <text x="324" y="276">(Usually</text>
                  <text x="408" y="276">sufficient)</text>
                  <text x="252" y="324">Optional</text>
                  <text x="304" y="324">(if</text>
                  <text x="340" y="324">more</text>
                  <text x="392" y="324">packets</text>
                  <text x="460" y="324">arrive):</text>
                  <text x="332" y="356">Incoming</text>
                  <text x="404" y="356">Datagram</text>
                  <text x="344" y="388">Stateless</text>
                  <text x="408" y="388">Reset</text>
                  <text x="304" y="404">(If</text>
                  <text x="352" y="404">smaller</text>
                  <text x="404" y="404">than</text>
                  <text x="440" y="404">Rx)</text>
                  <text x="312" y="468">(Discards</text>
                  <text x="376" y="468">Reset</text>
                  <text x="288" y="484">&amp;</text>
                  <text x="352" y="484">Registration)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-----------------------------------------------------------------+
|                                                                 |
|   Application                 OS                      Peer      |
|        |                      |                         |       |
|        |------ Register ----->|                         |       |
|        |     (Peer CID,       |                         |       |
|        |      Socket, etc.)   |                         |       |
|        |                      | (Generates Token        |       |
|        |                      |  & Reset Packet)        |       |
|        |<--- Reset Token -----|                         |       |
|        |                      |                         |       |
|        |--------------- Advertise Token --------------->|       |
|        |       (RESET_TOKEN or NEW_CONNECTION_ID)       |       |
|        |                      |                         |       |
|   [App Exits]                 |---- Proactive Reset --->|       |
|                               |   (Usually sufficient)  |       |
|                               |                         |       |
|                       +--------------------------------------+  |
|                       |  Optional (if more packets arrive):  |  |
|                       |       |                         |    |  |
|                       |       |<-- Incoming Datagram ---|    |  |
|                       |       |                         |    |  |
|                       |       |---- Stateless Reset --->|    |  |
|                       |       |   (If smaller than Rx)  |    |  |
|                       |       |                         |    |  |
|                       +--------------------------------------+  |
|                               |                         |       |
|                               | (Discards Reset         |       |
|                               |  & Registration)        |       |
|                                                                 |
+-----------------------------------------------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>In this division of labor (<xref target="fig-division-of-labor"/>), it is possible to deny
an application the use of the Stateless Reset as a means of conveying
information of its own. The Stateless Reset Token and the other bytes that the
operating system generates are outside the application's control, and the
peer's Connection ID, which the application supplies, is also the value that
it places in the Destination Connection ID field of the packets it sends. An
operating system can therefore monitor the packets that the application sends
after the registration, and send the Stateless Reset only if those packets
carried that Connection ID. The Stateless Reset then carries no Connection ID
other than the one that the application's own packets were already carrying to
the peer.</t>
        <figure anchor="fig-division-of-labor">
          <name>Division of labor between application and operating system</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="432" width="560" viewBox="0 0 560 432" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,416" fill="none" stroke="black"/>
                <path d="M 40,96 L 40,384" fill="none" stroke="black"/>
                <path d="M 72,96 L 72,128" fill="none" stroke="black"/>
                <path d="M 104,96 L 104,128" fill="none" stroke="black"/>
                <path d="M 296,96 L 296,384" fill="none" stroke="black"/>
                <path d="M 552,32 L 552,416" fill="none" stroke="black"/>
                <path d="M 8,32 L 552,32" fill="none" stroke="black"/>
                <path d="M 40,96 L 296,96" fill="none" stroke="black"/>
                <path d="M 312,112 L 344,112" fill="none" stroke="black"/>
                <path d="M 40,128 L 296,128" fill="none" stroke="black"/>
                <path d="M 312,192 L 344,192" fill="none" stroke="black"/>
                <path d="M 40,224 L 296,224" fill="none" stroke="black"/>
                <path d="M 312,256 L 344,256" fill="none" stroke="black"/>
                <path d="M 40,304 L 296,304" fill="none" stroke="black"/>
                <path d="M 312,336 L 344,336" fill="none" stroke="black"/>
                <path d="M 40,384 L 296,384" fill="none" stroke="black"/>
                <path d="M 8,416 L 552,416" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="320,336 308,330.4 308,341.6" fill="black" transform="rotate(180,312,336)"/>
                <polygon class="arrowhead" points="320,256 308,250.4 308,261.6" fill="black" transform="rotate(180,312,256)"/>
                <polygon class="arrowhead" points="320,192 308,186.4 308,197.6" fill="black" transform="rotate(180,312,192)"/>
                <polygon class="arrowhead" points="320,112 308,106.4 308,117.6" fill="black" transform="rotate(180,312,112)"/>
                <g class="text">
                  <text x="72" y="68">Stateless</text>
                  <text x="136" y="68">Reset</text>
                  <text x="188" y="68">Packet</text>
                  <text x="244" y="68">Layout</text>
                  <text x="380" y="68">Source</text>
                  <text x="416" y="68">/</text>
                  <text x="452" y="68">Origin</text>
                  <text x="56" y="116">0</text>
                  <text x="88" y="116">1</text>
                  <text x="168" y="116">Unpredictable</text>
                  <text x="236" y="116">(6</text>
                  <text x="272" y="116">bits)</text>
                  <text x="364" y="116">OS</text>
                  <text x="404" y="116">(First</text>
                  <text x="460" y="116">Byte):</text>
                  <text x="380" y="132">0:</text>
                  <text x="416" y="132">Short</text>
                  <text x="468" y="132">Header</text>
                  <text x="516" y="132">Form</text>
                  <text x="380" y="148">1:</text>
                  <text x="416" y="148">Fixed</text>
                  <text x="456" y="148">Bit</text>
                  <text x="96" y="164">Destination</text>
                  <text x="188" y="164">Connection</text>
                  <text x="244" y="164">ID</text>
                  <text x="376" y="164">6</text>
                  <text x="412" y="164">random</text>
                  <text x="460" y="164">bits</text>
                  <text x="88" y="180">(variable</text>
                  <text x="160" y="180">length)</text>
                  <text x="400" y="196">Application</text>
                  <text x="384" y="212">(Peer's</text>
                  <text x="444" y="212">active</text>
                  <text x="492" y="212">CID)</text>
                  <text x="104" y="260">Unpredictable</text>
                  <text x="192" y="260">Payload</text>
                  <text x="364" y="260">OS</text>
                  <text x="408" y="260">(Random</text>
                  <text x="468" y="260">bytes)</text>
                  <text x="60" y="276">(4</text>
                  <text x="100" y="276">bytes)</text>
                  <text x="88" y="340">Stateless</text>
                  <text x="152" y="340">Reset</text>
                  <text x="200" y="340">Token</text>
                  <text x="364" y="340">OS</text>
                  <text x="408" y="340">(Random</text>
                  <text x="468" y="340">token)</text>
                  <text x="64" y="356">(16</text>
                  <text x="108" y="356">bytes)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-------------------------------------------------------------------+
|                                                                   |
|   Stateless Reset Packet Layout           Source / Origin         |
|                                                                   |
|   +---+---+-----------------------+                               |
|   | 0 | 1 | Unpredictable (6 bits)| <---- OS (First Byte):        |
|   +---+---+-----------------------+         0: Short Header Form  |
|   |                               |         1: Fixed Bit          |
|   | Destination Connection ID     |         6 random bits         |
|   | (variable length)             |                               |
|   |                               | <---- Application             |
|   |                               |       (Peer's active CID)     |
|   +-------------------------------+                               |
|   |                               |                               |
|   | Unpredictable Payload         | <---- OS (Random bytes)       |
|   | (4 bytes)                     |                               |
|   |                               |                               |
|   +-------------------------------+                               |
|   |                               |                               |
|   | Stateless Reset Token         | <---- OS (Random token)       |
|   | (16 bytes)                    |                               |
|   |                               |                               |
|   +-------------------------------+                               |
|                                                                   |
+-------------------------------------------------------------------+
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section anchor="constructing">
      <name>Constructing a Routable Stateless Reset</name>
      <t>When constructing a Stateless Reset, the endpoint or its delegate <bcp14>SHOULD</bcp14> place a
Connection ID that the peer currently accepts in the position in which a 1-RTT
packet carries the Destination Connection ID field.</t>
      <t>If the peer uses a zero-length Connection ID, the Destination Connection ID
field is empty.</t>
      <t><xref section="10.3" sectionFormat="of" target="RFC9000"/> calls for unpredictable bits, rather than the
Destination Connection ID, because an endpoint that has lost its state cannot
recover a Connection ID that its peer accepts, observing that the resulting packet
"could be incorrectly routed" where the Connection ID is critical for routing toward
the peer, as in load-balanced deployments. Because a delegate retains state, it can
send a Stateless Reset that reaches the peer and is less distinguishable from a valid
packet.</t>
      <t>To maintain indistinguishability from a valid 1-RTT packet, the endpoint or
delegate <bcp14>MUST</bcp14> include at least 4 unpredictable bytes following the Destination
Connection ID. Doing so satisfies both the 21-byte minimum size requirement of
<xref section="10.3" sectionFormat="of" target="RFC9000"/>, when zero-length Connection IDs are used, and provides
the 4-byte offset required by <xref section="5.4.2" sectionFormat="of" target="RFC9001"/>.</t>
      <figure anchor="fig-reset-format">
        <name>Routable Stateless Reset Format</name>
        <artwork><![CDATA[
Stateless Reset {
  Fixed Bits (2) = 1,
  Unpredictable Bits (6),
  Destination Connection ID (0..160),
  Unpredictable Bits (32..),
  Stateless Reset Token (128),
}
]]></artwork>
      </figure>
    </section>
    <section anchor="proactive">
      <name>Sending a Stateless Reset Proactively</name>
      <t>An endpoint that retains the state necessary to send a CONNECTION_CLOSE frame
<bcp14>MUST</bcp14> use CONNECTION_CLOSE instead of a Stateless Reset, as required by
<xref section="11" sectionFormat="of" target="RFC9000"/>.</t>
      <t>Once the endpoint that delegated the Stateless Reset has lost or abandoned its
connection state, a delegate <bcp14>MAY</bcp14> send a single Stateless Reset proactively,
without waiting to receive a datagram from the peer. <xref section="10.3" sectionFormat="of" target="RFC9000"/>
describes a Stateless Reset only as a response to a received packet because an
endpoint that has lost its state learns of the connection's existence only from
one; an endpoint or delegate that retains the token knows which connections it
may need to reset before any packet arrives.</t>
      <t>A delegate <bcp14>MUST NOT</bcp14> send a Stateless Reset while the endpoint can still process
packets for the connection.</t>
    </section>
    <section anchor="advertising">
      <name>Advertising a Token with Zero-Length Connection IDs</name>
      <t>A client that uses zero-length Connection IDs cannot advertise a Stateless
Reset Token by any means available in QUIC version 1. This section defines a
transport parameter and a frame through which it can do so. The token is bound
to the connection and can be delegated as described in <xref target="delegation"/>.</t>
      <section anchor="reset-token-tp">
        <name>The reset_token Transport Parameter</name>
        <t>A server that is willing to accept RESET_TOKEN frames
(<xref target="reset-token-frame"/>) from its client advertises the reset_token transport
parameter (0x-TBD).</t>
        <t>The reset_token transport parameter has a zero-length value; its presence alone
conveys that willingness. A client <bcp14>MUST NOT</bcp14> send this transport parameter.
Receipt of this parameter from a client, or receipt of a non-zero value, <bcp14>MUST</bcp14> be
treated as a connection error of type TRANSPORT_PARAMETER_ERROR.</t>
      </section>
      <section anchor="reset-token-frame">
        <name>The RESET_TOKEN Frame</name>
        <t>The RESET_TOKEN frame (type 0x-TBD) carries a Stateless Reset Token that a
client associates with the connection rather than with any Connection ID.</t>
        <figure anchor="reset-token-format">
          <name>RESET_TOKEN Frame Format</name>
          <artwork><![CDATA[
RESET_TOKEN Frame {
  Type (i) = 0x-TBD,
  Stateless Reset Token (128),
}
]]></artwork>
        </figure>
        <t>The frame contains the following field:</t>
        <dl>
          <dt>Stateless Reset Token:</dt>
          <dd>
            <t>A 128-bit value that the sender will use to construct a Stateless Reset
(<xref section="10.3" sectionFormat="of" target="RFC9000"/>) for this connection. The token <bcp14>MUST</bcp14> be
generated so that it is hard to guess, as required by <xref section="10.3" sectionFormat="of" target="RFC9000"/>.</t>
          </dd>
        </dl>
        <t>RESET_TOKEN frames are ack-eliciting; a sender that detects the loss of a
RESET_TOKEN frame retransmits the token it carried. A RESET_TOKEN frame <bcp14>MUST</bcp14>
only be sent in a 1-RTT packet.</t>
        <t>A client <bcp14>MUST NOT</bcp14> send a RESET_TOKEN frame unless the server advertised the
reset_token transport parameter.</t>
        <t>Only a client that uses a zero-length Connection ID may send a RESET_TOKEN
frame; the mechanism substitutes for the tokens that a Connection ID-issuing
client sends in NEW_CONNECTION_ID frames. A client that uses a non-zero-length
Connection ID <bcp14>MUST NOT</bcp14> send a RESET_TOKEN frame. A server that receives a
RESET_TOKEN frame from such a client <bcp14>MUST</bcp14> treat this as a connection error of
type PROTOCOL_VIOLATION.</t>
        <t>An endpoint that has not advertised the reset_token transport parameter treats a
received RESET_TOKEN frame as a frame of unknown type, which is a connection
error of type FRAME_ENCODING_ERROR (<xref section="12.4" sectionFormat="of" target="RFC9000"/>). A server <bcp14>MUST
NOT</bcp14> send a RESET_TOKEN frame. Because a client cannot advertise the transport
parameter, it treats a RESET_TOKEN frame from a server as a frame of unknown
type.</t>
        <t>A server that receives a RESET_TOKEN frame recognizes the contained value as
a Stateless Reset Token for this connection and thereafter processes it exactly
as a token received in a NEW_CONNECTION_ID frame, following the requirements of
<xref section="10.3" sectionFormat="of" target="RFC9000"/> for retaining the token and for detecting a
Stateless Reset that carries it, except that this token is immediately usable
and is not subject to the rule that excludes tokens for unused Connection IDs.</t>
        <t>A client uses a single Stateless Reset Token for the lifetime of a
connection. It <bcp14>MAY</bcp14> send more than one RESET_TOKEN frame -- for example, to
retransmit a frame that was lost -- but every RESET_TOKEN frame it sends on a
connection <bcp14>MUST</bcp14> carry the same token value. A server that receives a
RESET_TOKEN frame carrying a token value different from one it received earlier
on the same connection <bcp14>MUST</bcp14> treat this as a connection error of type
PROTOCOL_VIOLATION. Receipt of the same value more than once is idempotent. The
token <bcp14>MUST NOT</bcp14> be used for another connection or for a Connection ID.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Knowledge of a Stateless Reset Token allows an entity to terminate the
connection. A token <bcp14>MUST</bcp14> be difficult to guess and <bcp14>MUST NOT</bcp14> be reused. A sender
can generate a token using a cryptographically secure random number generator.</t>
      <t>The endpoint and delegate need to protect their coordination interface. The
token and routing information <bcp14>MUST</bcp14> have confidentiality and integrity in
transit and at rest.</t>
      <t>A delegate can retain multiple registrations for a connection, such as one for
each path. Implementations <bcp14>SHOULD</bcp14> limit the number of registrations to avoid
resource exhaustion.</t>
      <t>A RESET_TOKEN frame is protected by 1-RTT packet protection. A Stateless Reset
reveals its token to an on-path observer. This does not create a new termination
capability because the peer enters the draining state after accepting the
reset. The token cannot be used for another connection.</t>
      <t>A delegate sends using the source and destination addresses of a path on which
the endpoint recently received packets from the peer. This allows the peer to
apply the remote-address check in <xref section="10.3.1" sectionFormat="of" target="RFC9000"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC9000">
        <front>
          <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
          <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
          <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
          <date month="May" year="2021"/>
          <abstract>
            <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9000"/>
        <seriesInfo name="DOI" value="10.17487/RFC9000"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="RFC9001">
        <front>
          <title>Using TLS to Secure QUIC</title>
          <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
          <author fullname="S. Turner" initials="S." role="editor" surname="Turner"/>
          <date month="May" year="2021"/>
          <abstract>
            <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9001"/>
        <seriesInfo name="DOI" value="10.17487/RFC9001"/>
      </reference>
    </references>
    <?line 441?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
fDrGZMi5ppH4Hy+5LOW1UwAA

-->

</rfc>
