<?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-01" 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-01"/>
    <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="November" day="02"/>
    <workgroup>quic</workgroup>
    <keyword>internet-draft</keyword>
    <abstract>
      <?line 36?>

<t>This document specifies how a QUIC endpoint can delegate sending Stateless
Resets to a component that outlives its connection state. It also defines a
frame for clients using zero-length Connection IDs to advertise a Stateless
Reset Token and a transport parameter for servers to indicate support for
receiving the frame.</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 45?>

<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 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 mobile operating system can withdraw an application's network access before
the application can send a CONNECTION_CLOSE frame. Once the connection has been
abandoned, a delegate that retains network access can reset the peer
(<xref target="proactive"/>).</t>
      <t>Delegation is optional. A delegate, such as an operating system, system service,
or application helper, needs to survive the loss of connection state and retain
access to the connection's network path. If a reset cannot be delivered, the
peer relies on the usual QUIC termination and timeout mechanisms.</t>
      <t>A CONNECTION_CLOSE packet could be recorded for a delegate to send, but such a
packet is difficult to manage. 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, a Stateless Reset does not depend on packet-protection keys or
packet numbers. The delegate retains the token and the information needed to
match and route packets (<xref target="delegation"/>).</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>In <xref target="RFC9000"/>, 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
frame for advertising a token and a transport parameter through which servers
indicate support for receiving that frame (<xref target="advertising"/>).
Servers can advertise a token in the existing stateless_reset_token transport
parameter; the new frame is limited to clients that use zero-length Connection
IDs.</t>
      <t>The mechanisms in this document apply to QUIC versions 1 and 2 (<xref target="RFC9369"/>),
which use the same Stateless Reset format and short-header fields.</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 a registration containing:</t>
      <ul spacing="normal">
        <li>
          <t>Information the endpoint uses to match incoming datagrams to the connection,
such as endpoint-issued Connection IDs or addressing information
(<xref section="5.2" sectionFormat="of" target="RFC9000"/>).</t>
        </li>
        <li>
          <t>A return path and a peer-issued Connection ID that the peer currently accepts
(<xref target="constructing"/>).</t>
        </li>
        <li>
          <t>A Stateless Reset Token that the endpoint has advertised, or will advertise,
to the peer.</t>
        </li>
      </ul>
      <t>The delegate retains the token rather than recomputing it from a Connection ID.
It needs no packet-protection keys or packet numbers.</t>
      <t>Both clients and servers can delegate resets, regardless of the length of their
Connection IDs. Tokens are advertised in the server-only stateless_reset_token
transport parameter or in NEW_CONNECTION_ID frames. A client using zero-length
Connection IDs can advertise a token for the whole connection in RESET_TOKEN
frames (<xref target="advertising"/>).</t>
      <t>Registration can precede token advertisement, but the peer recognizes a reset
only after learning the token and associating it with the reset's source
address (<xref section="10.3.1" sectionFormat="of" target="RFC9000"/>). For tokens associated with Connection
IDs, the peer also needs to have used and not retired the ID. A reset carrying
any other token is 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 its token only once that happens.</t>
      <t>The endpoint updates a registration when its matching information, peer-issued
Connection ID, or path changes. A reset sent with stale routing information
might be dropped.</t>
      <t>Tokens associated with endpoint-issued Connection IDs remain bound to those
IDs when the path or peer-issued Connection ID changes. A token advertised
using RESET_TOKEN remains fixed for the connection's lifetime
(<xref target="reset-token-frame"/>).</t>
      <t>A connection can have registrations for multiple paths. Closing a socket or
losing a path does not authorize resetting a connection that remains active
on another path (<xref target="proactive"/>). A delegate <bcp14>MUST NOT</bcp14> use a canceled or expired
registration to send resets.</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>For a new connection or a new Connection ID issued by the application, 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>The application updates or cancels registrations as described in <xref target="delegation"/>.
Updating the registered path or peer-issued Connection ID can require rebuilding
the retained datagram, but does not require generating a new token.</t>
        <t>Once the application has lost or abandoned the connection state,
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>The operating system limits how long it retains the reset and registration
after the application loses or abandons connection state. A retained
registration applies only to the old connection. It <bcp14>MUST NOT</bcp14> prevent delivery
to a new connection that reuses the socket or 5-tuple.</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 unless the endpoint has lost or
abandoned its connection state. Loss of one path or temporary suspension of
the application does not by itself imply abandonment. Once delegated teardown
begins, the application <bcp14>MUST NOT</bcp14> resume that connection.</t>
    </section>
    <section anchor="advertising">
      <name>Advertising a Token with Zero-Length Connection IDs</name>
      <t>The RESET_TOKEN frame lets a client using zero-length Connection IDs advertise
a Stateless Reset Token. Servers indicate support with the reset_token
transport parameter. 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>Giving a delegate access to the token creates another opportunity for
disclosure, even if it can already terminate the connection. The endpoint needs
to consider this exposure when selecting a delegate.</t>
      <t>The token and routing information <bcp14>MUST</bcp14> have confidentiality and integrity in
transit and at rest. The delegate <bcp14>MUST</bcp14> restrict registration creation, update,
cancellation, and access to the endpoint and entities authorized to act for it.</t>
      <t>Removing a registration does not revoke a token retained by the delegate. A
token associated with a Connection ID is invalidated when the peer retires that
ID (<xref section="10.3" sectionFormat="of" target="RFC9000"/>). A token advertised using RESET_TOKEN remains
valid for the connection's lifetime (<xref target="reset-token-frame"/>).</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="RFC9369">
        <front>
          <title>QUIC Version 2</title>
          <author fullname="M. Duke" initials="M." surname="Duke"/>
          <date month="May" year="2023"/>
          <abstract>
            <t>This document specifies QUIC version 2, which is identical to QUIC version 1 except for some trivial details. Its purpose is to combat various ossification vectors and exercise the version negotiation framework. It also serves as a template for the minimum changes in any future version of QUIC.</t>
            <t>Note that "version 2" is an informal name for this proposal that indicates it is the second version of QUIC to be published as a Standards Track document. The protocol specified here uses a version number other than 2 in the wire image, in order to minimize ossification risks.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9369"/>
        <seriesInfo name="DOI" value="10.17487/RFC9369"/>
      </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 482?>

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

-->

</rfc>
