<?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 xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ek-dtn-qubicle-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="DTN QUIC CL">DTN QUIC Bundle Protocol Convergence Layer (qubicle)</title>
    <seriesInfo name="Internet-Draft" value="draft-ek-dtn-qubicle-03"/>
    <author fullname="Rick Taylor">
      <organization>Aalyria Technologies</organization>
      <address>
        <email>rtaylor@aalyria.com</email>
      </address>
    </author>
    <author fullname="Erik Kline">
      <organization>Aalyria Technologies</organization>
      <address>
        <email>ek.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="November" day="02"/>
    <area>INT</area>
    <workgroup>Delay/Disruption Tolerant Networking</workgroup>
    <keyword>DTN</keyword>
    <keyword>BPv7</keyword>
    <keyword>QUIC</keyword>
    <keyword>Convergence Layer</keyword>
    <abstract>
      <?line 45?>

<t>This document specifies a minimal convergence layer protocol for transferring Bundle Protocol version 7 (BPv7) bundles over QUIC. The protocol leverages QUIC's native capabilities for reliable streaming, connection management, and security. Reliable transfers use QUIC unidirectional streams carrying CBOR Sequences of definite-length byte strings, each containing exactly one bundle. A stream can carry successive bundles without closing between them. Unreliable transfers use the Bundle Transfer Protocol - Unidirectional (BTP-U) over QUIC datagrams.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ekline.github.io/draft-dtn-qubicle/draft-ek-dtn-qubicle.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ek-dtn-qubicle/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Delay/Disruption Tolerant Networking Working Group mailing list (<eref target="mailto:dtn@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/dtn/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/dtn/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ekline/draft-dtn-qubicle"/>.</t>
    </note>
  </front>
  <middle>
    <?line 49?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Bundle Protocol version 7 (BPv7) <xref target="RFC9171"/> requires Convergence Layer
Adapters (CLAs) to transfer bundles between nodes. This document specifies
the QUIC Bundle Protocol Convergence Layer, referred to in this document as
"Qubicle", a minimal CLA using QUIC <xref target="RFC9000"/> that embraces QUIC's native
capabilities rather than layering additional protocol machinery.</t>
      <t>The design philosophy is simple: QUIC already provides reliable streams, multiplexing, flow control, congestion control, and integrated security. This specification adds only what is strictly necessary to transfer bundles.</t>
      <t>The protocol provides two services:</t>
      <dl>
        <dt>Reliable Service:</dt>
        <dd>
          <t>Bundles are transferred using reliable, ordered QUIC stream transport,
with successive bundles permitted on each unidirectional stream. Each
bundle is wrapped in a definite-length CBOR byte string. This does not
guarantee successful completion across arbitrary contact loss or receiver
failure.</t>
        </dd>
        <dt>Unreliable Service:</dt>
        <dd>
          <t>Bundles are transferred via QUIC datagrams <xref target="RFC9221"/> using <xref target="BTP-U"/> framing.</t>
        </dd>
      </dl>
    </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?>

<dl>
        <dt>BPA:</dt>
        <dd>
          <t>Bundle Protocol Agent, as defined in <xref target="RFC9171"/>.</t>
        </dd>
        <dt>CLA:</dt>
        <dd>
          <t>Convergence Layer Adapter, as defined in <xref target="RFC9171"/>. Also abbreviated
"CL" where the context is clear.</t>
        </dd>
        <dt>Client:</dt>
        <dd>
          <t>The Qubicle peer that initiates the QUIC connection. This is a connection-level role and does not imply any restriction on bundle transfer direction.</t>
        </dd>
        <dt>Server:</dt>
        <dd>
          <t>The Qubicle peer that accepts the QUIC connection. This is a connection-level role and does not imply any restriction on bundle transfer direction.</t>
        </dd>
        <dt>Qubicle Session:</dt>
        <dd>
          <t>The period during which a QUIC connection is established between two Qubicle peers. A session begins when the QUIC handshake completes and ends when the QUIC connection closes. Both client and server are equal peers for the purpose of bundle transfer.</t>
        </dd>
      </dl>
    </section>
    <section anchor="applicability">
      <name>Applicability Statement</name>
      <t>Qubicle adds no transport machinery of its own, so its applicability to a
given environment is that of QUIC itself: Qubicle <bcp14>SHOULD NOT</bcp14> be used where
the QUIC transport cannot be expected to perform well. With the default
transport parameters and timer values of general-purpose QUIC
implementations, this primarily means deployments where round-trip times
(RTTs) remain under a few seconds, so that QUIC's handshake and loss-recovery
behavior are well matched to the path.</t>
      <t>This boundary is not fixed. QUIC's transport parameters and timers can be
adjusted to longer-delay paths (<xref target="timer-tuning"/>), and a profile of QUIC
developed for a particular environment, whether by tuning, by use of
optional QUIC features such as 0-RTT resumption (<xref target="zero-rtt"/>), or by other
means, applies to Qubicle sessions without modification. Where such a
profile exists for an environment, Qubicle's applicability follows it. For
extremely high-delay or disrupted environments such as deep space
communications (e.g., Earth-Mars links with multi-minute RTTs) in the
absence of such a profile, specialized protocols like the Licklider
Transmission Protocol (LTP) <xref target="RFC5326"/> may be more appropriate.</t>
      <t>Similarly, the SVCB-based DNS service discovery mechanism (<xref target="dns-example"/>)
<bcp14>SHOULD NOT</bcp14> be used in environments where DNS itself might not perform well.
DNS-based discovery is <bcp14>NOT RECOMMENDED</bcp14> for use in DTN environments where DNS
infrastructure is unavailable, network disruptions cause failed lookups or
stale cached records, DNSSEC validation fails due to a mismatch between
query RTT and valid signature lifetimes, or DNS query overhead is
significant relative to available bandwidth.
For such environments, implementations <bcp14>SHOULD</bcp14> support alternative CL
provisioning mechanisms including manual configuration with pre-planned
contact schedules, contact graph routing protocols that maintain topology
independently of DNS, or out-of-band metadata distribution through mission
management plane channels.</t>
      <t>A hybrid approach is <bcp14>RECOMMENDED</bcp14> for nodes bridging Internet and
deep-space networks: use Qubicle with DNS discovery for Internet-side
connections, and use alternate mission management planes for space-side
connections.</t>
    </section>
    <section anchor="protocol-overview">
      <name>Protocol Overview</name>
      <section anchor="connection-establishment">
        <name>Connection Establishment</name>
        <t>A Qubicle session is established by initiating a QUIC connection to a peer. The QUIC handshake authenticates both peers via TLS 1.3 <xref target="RFC9001"/> as described in <xref target="peer-node-id"/>.</t>
        <t>The ALPN identifier for Qubicle is <tt>qbcl</tt>.</t>
      </section>
      <section anchor="peer-node-id">
        <name>Peer Node Identification</name>
        <t>Qubicle does not exchange Node IDs in-band. A peer's Node ID is the Node ID
carried in the <tt>BundleEID</tt> OtherName (<xref section="4.4.2" sectionFormat="comma" target="RFC9174"/>) of the
certificate it presents during the TLS handshake. Accordingly, both client
and server <bcp14>MUST</bcp14> present a certificate containing a <tt>BundleEID</tt> OtherName,
and each peer <bcp14>MUST</bcp14> validate the certificate of the other as described in
<xref target="transport-security"/>.</t>
        <t>The sole exception is a deployment in which a peer has already been
configured with the Node ID of the remote peer by other means (e.g., a
contact plan or manual configuration keyed on the remote address). Such a
peer <bcp14>MAY</bcp14> accept a certificate lacking a <tt>BundleEID</tt> OtherName and associate
the configured Node ID with the session instead. If the peer has a configured
Node ID and the certificate also contains a <tt>BundleEID</tt> OtherName, the two
<bcp14>MUST</bcp14> match; a mismatch <bcp14>MUST</bcp14> be treated as a certificate validation failure
and the handshake terminated.</t>
        <t>The means by which a peer obtains the rendezvous information (address and
port) for a remote Node ID, whether by manual configuration, contact plan,
or DNS (see <xref target="dns-example"/>), is independent of the identification
mechanism above. Rendezvous information locates a candidate peer; only the
authenticated certificate establishes which Node ID has actually been
reached.</t>
      </section>
      <section anchor="reliable-transfer">
        <name>Reliable Bundle Transfer</name>
        <t>For reliable transfer, bundles are sent as successive items on QUIC
unidirectional streams:</t>
        <ol spacing="normal" type="1"><li>
            <t>The sender selects an existing open sending stream at an item boundary,
or creates a new unidirectional stream subject to <xref target="flow-control"/>.</t>
          </li>
          <li>
            <t>The sender writes a complete bundle wrapped in a definite-length CBOR
byte string as described in <xref target="stream-content"/>.</t>
          </li>
          <li>
            <t>The sender <bcp14>MAY</bcp14> append another bundle after writing the complete preceding
item, without closing the stream or waiting for acknowledgment of that
item. Normal QUIC transmission constraints still apply.</t>
          </li>
          <li>
            <t>When finished with the stream, the sender closes it at an item boundary
by sending a STREAM frame with the FIN bit set.</t>
          </li>
        </ol>
        <t>Receivers <bcp14>MUST</bcp14> support multiple items per stream. Senders remain free to
use a separate stream for each bundle. The receiver recognizes a complete
bundle after consuming its byte-string head and all declared content bytes,
and processes and hands off an accepted bundle to the BPA without waiting
for FIN or the next item. The receiver <bcp14>MUST NOT</bcp14> deliver an incomplete
bundle.</t>
        <section anchor="transfer-completion">
          <name>Transfer Completion</name>
          <t>QUIC provides reliable, in-order stream transport. This revision of Qubicle
defines no convergence-layer acknowledgment; per-bundle reception reporting
remains an open issue (<xref target="reception-reporting-todo"/>). An individual bundle's
transfer is complete from the sender's transport perspective when all
stream bytes comprising its item, including the CBOR byte-string head,
have been acknowledged by the peer's QUIC endpoint. Acknowledgment of FIN
is not required for per-bundle transport completion.</t>
          <t>Implementations <bcp14>MUST</bcp14> associate each outgoing bundle with the stream-offset
range occupied by its item and establish acknowledgment of every byte in
that range before reporting Transmission Success. A successful write to
the QUIC API, available flow-control credit, or acknowledgment of a later
offset alone is not proof that the entire item was acknowledged. QUIC APIs
vary in whether they expose sufficient acknowledgment information; not
every implementation can provide immediate per-bundle completion
indications. An implementation might have to defer a success indication
until its API provides sufficient evidence. This revision does not specify
a portable API mapping or an alternative completion signal for APIs that
cannot provide that evidence.</t>
          <t>This completion signal is generated by the peer's QUIC transport
implementation upon receipt of the data. It confirms that the data reached
the peer's QUIC endpoint; it does not confirm that the peer's convergence
layer has read the data, nor that the peer's BPA has accepted the bundle. In
particular, data acknowledged by the QUIC endpoint but not yet consumed by
the receiving application can be lost if the receiving process fails.
Receivers <bcp14>SHOULD</bcp14> therefore read stream data promptly and pass each completed
bundle to the BPA without unnecessary delay, so as to minimize the interval
during which acknowledged data is held only in transport buffers.</t>
          <t>Transport completion is consequently distinct from complete reception and
handoff by the remote CLA, and from reception processing by the remote BPA.
It is not a sufficient basis for a sending BPA to conclude that the
next-hop BPA has received a bundle. Where such assurance is required, it
<bcp14>MUST</bcp14> come from an appropriate bundle-layer mechanism, not be inferred from
transport completion. Ordinary status reporting (<xref section="6.1" sectionFormat="comma" target="RFC9171"/>)
is not by itself a complete forwarding-node solution: the bundle source
controls the primary-block report request and report-to destination. The
integration needed for forwarding-node assurance remains unspecified in
this revision; see <xref target="reception-reporting-todo"/>.</t>
          <t>In terms of the convergence layer service model, Qubicle uses the following
per-bundle indications to the BPA, subject to the API limitations above:</t>
          <dl>
            <dt>Transmission Success:</dt>
            <dd>
              <t>Acknowledgment of every byte in the item's stream-offset range, including
its CBOR head, has been established. Neither stream closure nor
acknowledgment of subsequent items is required.</t>
            </dd>
            <dt>Transmission Failure:</dt>
            <dd>
              <t>The stream was terminated through cancellation (<xref target="cancellation"/>), or the
connection closed, before transport completion of this item could be
established. This does not prove that the receiving BPA did not receive
the bundle.</t>
            </dd>
            <dt>Reception Success:</dt>
            <dd>
              <t>The complete byte-string head and exactly the declared content length
have been consumed, and the accepted bundle has been passed to the BPA,
without waiting for FIN or another item. This handoff is distinct from
the BPA's reception processing.</t>
            </dd>
            <dt>Reception Failure:</dt>
            <dd>
              <t>The item was rejected, truncated at clean stream end, or interrupted by
stream cancellation or connection loss before completion and handoff;
any partial bundle data has been discarded.</t>
            </dd>
          </dl>
          <t>A later truncated, malformed, or interrupted item does not revoke Reception
Success for bundles already completed and handed off. Likewise, a later
stream reset or connection loss does not revoke an established Transmission
Success for an earlier item. Transport success still does not establish
remote CLA handoff or BPA reception. A sender <bcp14>MUST NOT</bcp14> issue both
Transmission Success and Transmission Failure for the same transmission
attempt. Once either terminal indication has been issued, later transport
events, including delayed acknowledgments after cancellation, do not
reverse it. A retry is a separate transmission attempt.</t>
          <t>Qubicle does not provide intermediate progress indications; a BPA requiring
them can observe stream-level flow control state where the QUIC
implementation exposes it.</t>
          <section anchor="reception-reporting-todo">
            <name>Open Issue: Bundle Reception Reporting</name>
            <t>TODO: Specify how a forwarding BPA obtains a positive, bundle-by-bundle
indication that the next-hop BPA has received a bundle, beyond
acknowledgment of its bytes by QUIC. Evaluate incorporation of, or a
reference to, the Bundle Protocol Hop Reception Report Request Block
proposal: <eref target="https://github.com/ekline/draft-dtn-hop-reception-report">https://github.com/ekline/draft-dtn-hop-reception-report</eref>.
Resolve applicability, correlation, peer authentication, and behavior when
reports are unsupported, declined, delayed, or lost. This revision does not
yet specify that integration.</t>
            <t>The candidate mechanism requests an ordinary Bundle Status Report addressed
using the Previous Node block. It complements transport completion and does
not transfer custody. The repository link is informational; the proposal
is not a normative dependency of this revision, which adds neither an
acknowledgment frame nor a requirement for reception reporting.</t>
            <t>A missing reception report does not establish failure. Transport success
without a report does not distinguish unsupported reporting from receiver
failure after transport acknowledgment.</t>
          </section>
        </section>
        <section anchor="stream-content">
          <name>Stream Content</name>
          <t>Each reliable-transfer stream carries a CBOR Sequence <xref target="RFC8742"/> whose
items <bcp14>MUST</bcp14> be definite-length CBOR byte strings. Each byte string <bcp14>MUST</bcp14>
contain the complete encoding of exactly one bundle. Its declared length
is the encoded bundle length in octets, excluding the byte string head
(<xref section="3.1" sectionFormat="comma" target="RFC8949"/>). The sender <bcp14>MUST</bcp14> know the outgoing encoded
bundle's length before writing the head.</t>
          <t>The sequence has no enclosing array, bundle count, or separator. QUIC
STREAM frame boundaries have no significance for this framing. A sender
<bcp14>MUST NOT</bcp14> interleave bytes of different bundle items within one stream.</t>
          <t>Unwrapped bundles, indefinite-length byte strings, and other outer CBOR
types are protocol errors. An empty byte string cannot contain a bundle
and is a protocol error. The first octet of each item is interpreted as
follows:</t>
          <table align="left" anchor="tab-first-octet">
            <name>Stream Content Dispatch</name>
            <thead>
              <tr>
                <th align="left">First Octet</th>
                <th align="left">Interpretation</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">0x40 - 0x5b</td>
                <td align="left">Definite-length CBOR byte string head; a zero content length is a protocol error</td>
              </tr>
              <tr>
                <td align="left">any other value</td>
                <td align="left">Protocol error</td>
              </tr>
            </tbody>
          </table>
          <t>The receiver consumes the byte-string head and exactly the declared number
of content octets to recognize a complete bundle. It processes and hands
off an accepted bundle without waiting for FIN or the next item. Bytes
following a complete item begin the next item.</t>
          <t>FIN is valid at an item boundary, including before any item: an empty,
cleanly closed stream is an empty sequence. A clean stream end partway
through a byte-string head or its declared content is malformed framing.
A clean stream end requires FIN and receipt of all bytes preceding the
final stream offset; FIN alone does not establish that missing bytes have
arrived. For malformed framing, the receiver <bcp14>MUST</bcp14> close the connection
with <tt>QBCL_PROTOCOL_ERROR</tt>. Stream reset or connection loss instead
interrupts any incomplete transfer (<xref target="transfer-completion"/>); it is not a
clean but malformed stream end. The receiver <bcp14>MUST NOT</bcp14> deliver an incomplete
bundle. Bundles already completed and handed off remain completed even if
a later item is truncated, malformed, or interrupted.</t>
          <t>Within each byte string, the first content octet identifies BPv7 by 0x9f
(the indefinite-length outer array, <xref section="4.1" sectionFormat="comma" target="RFC9171"/>), or BPv6 by
its version octet 0x06 (<xref target="RFC5050"/>). Content that does not begin with a
recognized bundle version encoding is a protocol error, and the receiver
<bcp14>MUST</bcp14> close the connection with <tt>QBCL_PROTOCOL_ERROR</tt>. Qubicle
implementations <bcp14>MUST</bcp14> support BPv7 bundles. Support for other bundle
versions, including BPv6, is <bcp14>OPTIONAL</bcp14>; a receiver that recognizes but does
not support the version of an incoming bundle <bcp14>SHOULD</bcp14> cancel the stream
with <tt>QBCL_UNSUPPORTED_BUNDLE_VERSION</tt> rather than treating it as a protocol
error. This cancellation affects the stream, not just that item; see
<xref target="cancellation"/>. The wrapper does not change the inner BPv7 encoding,
including its indefinite-length outer array.</t>
          <t>Declaring the bundle length before its content allows the receiver to make
admission and storage decisions while transfers compete for stream slots,
flow-control credit, and processing resources. The declaration supports
these decisions but does not guarantee progress or prevent starvation.</t>
          <t>Streaming, including cut-through forwarding, remains possible when the
exact outgoing encoded length is known before transmission. Forwarding an
unknown-length outgoing encoding is not supported. The framing requirement
applies only to reliable stream transfers; unreliable transfers retain
<xref target="BTP-U"/> encapsulation (<xref target="unreliable-transfer"/>).</t>
        </section>
        <section anchor="bundle-flow-in-both-directions">
          <name>Bundle Flow in Both Directions</name>
          <t>Both peers can send bundles simultaneously. Each peer creates unidirectional streams to send its bundles. QUIC stream IDs inherently separate client-initiated streams (IDs 2, 6, 10...) from server-initiated streams (IDs 3, 7, 11...), ensuring no collision between the two directions of bundle flow.</t>
          <t>Qubicle uses only unidirectional streams. Peers <bcp14>SHOULD</bcp14> set the
<tt>initial_max_streams_bidi</tt> transport parameter to 0. A peer that
nonetheless receives a bidirectional stream <bcp14>MUST</bcp14> treat this as a protocol
error and close the connection with <tt>QBCL_PROTOCOL_ERROR</tt>.</t>
        </section>
        <section anchor="stream-selection-and-priority">
          <name>Stream Selection and Priority</name>
          <t>A sender <bcp14>MAY</bcp14> implement bundle priority by scheduling data across multiple
open streams and selecting which pending bundle to append to each stream,
or whether to open a new stream. It <bcp14>MAY</bcp14> also use stream-priority facilities
exposed by its QUIC implementation
(<xref section="2.3" sectionFormat="comma" target="RFC9000"/>). Qubicle defines no priority signaling on the
wire. Scheduling remains subject to available stream and connection
flow-control credit and QUIC congestion control. Supplying data to a QUIC
implementation does not guarantee immediate transmission or preemption of
data already queued inside it.</t>
          <t>A stream can serve as a persistent scheduling lane for successive bundles;
"lane" is explanatory, not a separate protocol object. Bundles on one
stream are serialized: a subsequent bundle cannot overtake an earlier item,
and bytes of different items <bcp14>MUST NOT</bcp14> be interleaved. Independent
scheduling requires different streams. Queued priority classes are distinct
from these lanes. The number of lanes and their relationship to priority
classes are implementation policy within QUIC's limits (<xref target="flow-control"/>);
there is no mandatory priority-to-stream mapping.</t>
          <t>If every usable stream has lower-priority items ahead of a newly arrived
higher-priority bundle and no new stream can be opened, that bundle can be
delayed. Strict priority can
indefinitely defer lower-priority transfers. If favored streams cannot
progress, refusing to service other eligible streams can leave usable
contact capacity idle. Fairness, admission policy, and any reservation of
capacity for urgent traffic are implementation matters; Qubicle neither
fixes the number of priority classes nor requires fair scheduling.</t>
        </section>
        <section anchor="flow-control">
          <name>Flow Control and Stream Limits</name>
          <t>Qubicle defines no additional stream-count negotiation or parallelism
limit. For each sending direction, stream creation follows the peer's
<tt>initial_max_streams_uni</tt> and subsequent <tt>MAX_STREAMS</tt>, as specified in
<xref section="4.6" sectionFormat="comma" target="RFC9000"/>. These are cumulative stream-opening limits, not
merely limits on the number currently open. Closing a stream does not by
itself grant permission to open another; the receiver supplies additional
credit. The two peers' advertisements govern opposite sending directions.
Implementations may choose to use fewer streams.</t>
          <t>Permission to open a stream is distinct from the ability to transmit data.
Active streams remain subject to stream-level and connection-level
flow control (<xref section="4.1" sectionFormat="comma" target="RFC9000"/>), congestion control, and sender
scheduling. QUIC's <tt>initial_max_stream_data_uni</tt> and <tt>MAX_STREAM_DATA</tt> limit
cumulative stream
data, while <tt>initial_max_data</tt> and <tt>MAX_DATA</tt> limit cumulative data across
streams. These are not fixed limits on data in flight or total bundle
storage. A receiver that is temporarily unable to accept more data can
withhold additional credit, causing the sender to pause once available
credit is exhausted, without error. Receivers <bcp14>SHOULD</bcp14> grant credit based on
the resources actually available for admitted transfers; see
<xref target="flow-control-sizing"/>.</t>
          <t>Persistent streams reduce dependence on replenishment of stream-opening
credit, but still require replenishment of stream-level and connection-level
byte credit. If further streams cannot be opened, a sender can continue
appending items to existing sending streams subject to these constraints.</t>
        </section>
      </section>
      <section anchor="unreliable-transfer">
        <name>Unreliable Bundle Transfer</name>
        <t>For unreliable transfer, bundles are sent using QUIC datagrams <xref target="RFC9221"/> with <xref target="BTP-U"/> framing.</t>
        <t>Support for the unreliable service is <bcp14>OPTIONAL</bcp14>. An implementation offering
it <bcp14>MUST</bcp14> advertise the <tt>max_datagram_frame_size</tt> transport parameter. The
unreliable service is available on a session only if both peers have
advertised this parameter; otherwise neither peer sends DATAGRAM frames and
only the reliable service is available. Implementations <bcp14>SHOULD</bcp14> make the
availability of the unreliable service known to the BPA so that it can
select an appropriate service for each bundle.</t>
        <t>Each QUIC DATAGRAM frame carries one or more <xref target="BTP-U"/> messages, and plays
the role of the Link-layer PDU in the <xref target="BTP-U"/> model: it is delivered in
its entirety or not at all. A sender <bcp14>MUST NOT</bcp14> construct a datagram larger
than the peer's advertised <tt>max_datagram_frame_size</tt>, and <bcp14>SHOULD</bcp14> size
datagrams to fit within the current path MTU so that they are not dropped by
the QUIC layer. <xref target="BTP-U"/> segmentation, reassembly, transfer identification,
and optional repetition apply unchanged.</t>
        <t>The <xref target="BTP-U"/> Transfer Window size (<xref section="5" sectionFormat="comma" target="BTP-U"/>) <bcp14>MUST</bcp14> be configured
consistently at both peers; how this is done is out of scope for this
document.</t>
        <t>QUIC DATAGRAM frames are subject to QUIC congestion control
(<xref section="5" sectionFormat="comma" target="RFC9221"/>), satisfying the <xref target="BTP-U"/> requirement that it not
be deployed without congestion control where congestion may occur.</t>
        <t>The mapping of bundle priority to <xref target="BTP-U"/> transfer interleaving is an implementation matter.</t>
      </section>
      <section anchor="connection-termination">
        <name>Connection Termination</name>
        <t>A session ends when the QUIC connection closes, whether by an explicit
<tt>CONNECTION_CLOSE</tt> from either peer or by expiry of the idle timeout
(<xref target="keepalive"/>). Idle timeout is a normal way for a session to end, not an
error; a peer with further bundles to send simply establishes a new session.</t>
        <t>A peer wishing to end a session gracefully <bcp14>SHOULD</bcp14> stop opening new streams,
starting new bundle items on existing streams, and initiating new <xref target="BTP-U"/>
transfers. It <bcp14>SHOULD</bcp14> finish current items where feasible, close its sending
streams at item boundaries, and allow outstanding reliable transfers in
both directions to complete before closing the connection with
<tt>QBCL_NO_ERROR</tt>. This revision defines no session-level shutdown signal to
prevent the remote peer from starting further items or streams, so a peer
<bcp14>SHOULD</bcp14> bound this wait with a local timer.</t>
        <t>A peer <bcp14>MAY</bcp14> instead close the connection immediately at any time. If it does
so deliberately while transfers are in progress it <bcp14>SHOULD</bcp14> use
<tt>QBCL_SHUTTING_DOWN</tt>; other codes in <xref target="error-codes"/> apply for error
conditions.</t>
        <t>When a connection closes for any reason, the receiver <bcp14>MUST</bcp14> discard any
partially received bundle data, as in <xref target="cancellation"/>. Bundles already
completed and handed off remain completed. The sender reports Transmission
Failure for outstanding items whose transport completion could not be
established, subject to the acknowledgment/API limitations in
<xref target="transfer-completion"/>; established Transmission Success indications are
not revoked. Re-forwarding is subject to BPA policy, since a failure to
establish transport completion does not prove non-reception by the remote
BPA. Any incomplete <xref target="BTP-U"/> transfers on the session are likewise lost.</t>
        <t>Two peers may establish connections to each other concurrently, resulting in
more than one session between the same pair of Node IDs. This is permitted
and is not an error. A peer <bcp14>MAY</bcp14> choose to gracefully close a redundant
session, but <bcp14>MUST</bcp14> accept bundles received on any established session.</t>
      </section>
      <section anchor="cancellation">
        <name>Transfer Cancellation</name>
        <t>Either peer may cancel a reliable-transfer stream. <tt>RESET_STREAM</tt> and
<tt>STOP_SENDING</tt> affect the stream, not one selected bundle item. This
revision defines no per-bundle cancellation protocol.</t>
        <t>A sender cancels a stream by sending <tt>RESET_STREAM</tt> with an appropriate
error code (<xref target="error-codes"/>), subject to QUIC's stream-state rules
(<xref section="3" sectionFormat="comma" target="RFC9000"/>). A sender might do this when a bundle's lifetime
expires or the BPA withdraws a bundle whose item has already been started.
A sender <bcp14>MUST NOT</bcp14> truncate an item and then append another item on the same
stream: that would corrupt framing. It must finish the item or terminate
the stream.</t>
        <t>A receiver cancels a stream by sending <tt>STOP_SENDING</tt> with an appropriate
error code, for example when a bundle exceeds its storage or policy limits,
or when its BPA is shutting down. The sender <bcp14>MUST</bcp14> handle <tt>STOP_SENDING</tt>
according to <xref section="3.5" sectionFormat="comma" target="RFC9000"/> and the stream-state rules in
<xref section="3.3" sectionFormat="comma" target="RFC9000"/>. In particular, a stream in the Send state still
requires <tt>RESET_STREAM</tt> even if all item bytes written so far have been
acknowledged; per-bundle transport completion does not close the stream.</t>
        <t>Cancelling a stream can abandon its current partial bundle and later
queued or outstanding bundles. On receiving <tt>RESET_STREAM</tt>, a receiver
<bcp14>MUST</bcp14> discard any partially received bundle data for that stream and <bcp14>MUST
NOT</bcp14> deliver a partial bundle to the BPA. A receiver that has sent
<tt>STOP_SENDING</tt> <bcp14>MUST</bcp14> likewise discard partial data and any subsequently
received data on that stream. Cancellation does not revoke bundles already
handed to the receiving BPA.</t>
        <t>An application error code describes a reason for stream cancellation; it
does not identify the item that caused it. The sender may have queued
multiple items ahead of the receiver. Cancellation can also race with
transport acknowledgment and is not a reliable per-bundle rejection
notification. The sender reports failure for affected items whose transport
completion has not been established, as described in
<xref target="transfer-completion"/>, without revoking established transport success.
Bundles <bcp14>MAY</bcp14> be re-forwarded subject to BPA policy; a failure indication
does not establish that they were not received.</t>
        <t>A receiver enforcing a maximum receivable bundle size can reject a bundle
based on its declared length as soon as it has read the byte string head
(<xref target="stream-content"/>), cancelling the stream with <tt>QBCL_BUNDLE_TOO_LARGE</tt>.
Payload bytes, including later items, may already have been sent or
received at that point. A receiver whose available storage cannot
accommodate a transfer can cancel the stream with <tt>QBCL_STORAGE_EXHAUSTED</tt>.
Admission and credit policies <bcp14>SHOULD</bcp14> consider the declared sizes of active
bundles and allow admitted transfers to progress toward completion, rather
than leaving many partial transfers
unable to complete (<xref target="flow-control-sizing"/>).</t>
        <t>If a receiver elects to skip a rejected item and continue parsing instead
of cancelling the stream, it <bcp14>MUST</bcp14> consume exactly the declared content
length before reading the next head. This does not save transmission
bandwidth or notify the sender of rejection, and does not relax the
connection-close requirement for malformed framing.</t>
        <t>The initial stream flow-control allowance is not an advertised maximum
bundle size. Receivers need sufficient available stream and connection
credit to read each head, which can occupy up to nine octets and itself
consumes credit. They can consume or spool data and replenish credit
incrementally; they need not grant credit for an entire bundle at once.</t>
        <t>Cancellation of unreliable transfers is governed by <xref target="BTP-U"/>.</t>
      </section>
      <section anchor="keepalive">
        <name>Keepalive</name>
        <t>Qubicle relies on QUIC's native idle timeout mechanism. Peers negotiate the <tt>max_idle_timeout</tt> transport parameter during connection establishment. See <xref target="timer-tuning"/> for guidance on selecting this and related values.</t>
        <t>Where a session must be kept alive across periods with no bundles to send,
implementations <bcp14>MAY</bcp14> use QUIC PING frames (<xref section="10.1.2" sectionFormat="comma" target="RFC9000"/>)
where the QUIC implementation exposes such a facility. Keepalives should be
balanced against the idle timeout guidance in <xref target="timer-tuning"/>: a session
that is deliberately allowed to time out and re-established later can be
preferable to keeping one alive through a scheduled link outage.</t>
      </section>
    </section>
    <section anchor="error-codes">
      <name>Error Codes</name>
      <t>Qubicle defines a single space of application error codes, used in the QUIC
<tt>CONNECTION_CLOSE</tt> frame (with the application-level frame type, see
<xref section="19.19" sectionFormat="comma" target="RFC9000"/>), <tt>RESET_STREAM</tt> frame, and <tt>STOP_SENDING</tt>
frame. QUIC application error codes are 62-bit unsigned integers.</t>
      <table align="left" anchor="tab-error-codes">
        <name>Qubicle Error Codes</name>
        <thead>
          <tr>
            <th align="left">Code</th>
            <th align="left">Name</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">0x00</td>
            <td align="left">QBCL_NO_ERROR</td>
            <td align="left">Graceful connection closure, no error</td>
          </tr>
          <tr>
            <td align="left">0x01</td>
            <td align="left">QBCL_PROTOCOL_ERROR</td>
            <td align="left">Peer violated this specification</td>
          </tr>
          <tr>
            <td align="left">0x02</td>
            <td align="left">QBCL_TRANSFER_CANCELLED</td>
            <td align="left">Transfer aborted for a reason not otherwise specified (e.g., bundle lifetime expired, BPA withdrew the bundle)</td>
          </tr>
          <tr>
            <td align="left">0x03</td>
            <td align="left">QBCL_BUNDLE_TOO_LARGE</td>
            <td align="left">Incoming bundle exceeds the receiver's maximum receivable bundle size</td>
          </tr>
          <tr>
            <td align="left">0x04</td>
            <td align="left">QBCL_STORAGE_EXHAUSTED</td>
            <td align="left">Receiver temporarily cannot accept bundles; the sender <bcp14>MAY</bcp14> retry later</td>
          </tr>
          <tr>
            <td align="left">0x05</td>
            <td align="left">QBCL_SHUTTING_DOWN</td>
            <td align="left">Peer is deliberately closing the session; no fault is implied</td>
          </tr>
          <tr>
            <td align="left">0x06</td>
            <td align="left">Reserved</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">0x07</td>
            <td align="left">QBCL_UNSUPPORTED_BUNDLE_VERSION</td>
            <td align="left">Receiver does not support the version of the bundle being transferred</td>
          </tr>
        </tbody>
      </table>
      <t><tt>QBCL_NO_ERROR</tt> is only meaningful on <tt>CONNECTION_CLOSE</tt>. A cancelled
transfer always has a cause, so peers <bcp14>MUST NOT</bcp14> use <tt>QBCL_NO_ERROR</tt> in
<tt>RESET_STREAM</tt> or <tt>STOP_SENDING</tt>; a peer receiving it there <bcp14>SHOULD</bcp14> treat it
as <tt>QBCL_TRANSFER_CANCELLED</tt>.</t>
      <t>When a peer closes the session deliberately while transfers are still in
progress, it <bcp14>SHOULD</bcp14> use <tt>QBCL_SHUTTING_DOWN</tt> on <tt>CONNECTION_CLOSE</tt> rather
than <tt>QBCL_NO_ERROR</tt>, so that the remote peer can distinguish an orderly
shutdown with collateral transfer failures from an idle close.</t>
      <t>A peer receiving an unrecognized error code <bcp14>MUST</bcp14> treat it as
<tt>QBCL_PROTOCOL_ERROR</tt> on <tt>CONNECTION_CLOSE</tt> and as <tt>QBCL_TRANSFER_CANCELLED</tt>
on <tt>RESET_STREAM</tt> or <tt>STOP_SENDING</tt>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="transport-security">
        <name>Transport Security</name>
        <t>QUIC mandates TLS 1.3 for all connections, providing confidentiality, integrity, and authentication. Qubicle inherits these security properties.</t>
        <t>As specified in <xref target="peer-node-id"/>, Qubicle requires mutual certificate
authentication: both client and server present certificates, and each peer
validates the other's certificate before exchanging bundles. Certificate
validation, including the <tt>BundleEID</tt> OtherName checks and the applicable
certificate profile, <bcp14>SHOULD</bcp14> follow <xref section="4.4" sectionFormat="comma" target="RFC9174"/>. Automated
certificate provisioning is available via the ACME extensions defined in
<xref target="RFC9891"/>.</t>
      </section>
      <section anchor="bundle-security">
        <name>Bundle Security</name>
        <t>Transport security protects bundles in transit between adjacent nodes. For end-to-end bundle security, implementations <bcp14>SHOULD</bcp14> use BPSec <xref target="RFC9172"/>.</t>
      </section>
      <section anchor="denial-of-service">
        <name>Denial of Service</name>
        <t>QUIC provides built-in protection against many denial-of-service attacks, including address validation and amplification prevention.</t>
        <t>QUIC flow control (<xref target="flow-control"/>) is the primary means of bounding the
resources a peer can consume; receivers <bcp14>SHOULD</bcp14> configure it accordingly
rather than accepting unbounded data and discarding it afterwards.</t>
      </section>
      <section anchor="zero-rtt">
        <name>0-RTT Considerations</name>
        <t>QUIC 0-RTT data is not protected against replay. Because a replayed bundle
transfer could cause a bundle to be received and forwarded more than once,
implementations <bcp14>SHOULD NOT</bcp14> send bundles as 0-RTT data, and servers <bcp14>MAY</bcp14>
decline to accept 0-RTT altogether.</t>
        <t>0-RTT resumption could nonetheless materially reduce session establishment
cost on long-delay paths between peers that reconnect frequently. The
consequence of a replayed transfer is duplicate receipt of a bundle, which a
BPA can detect from the combination of source node ID and creation timestamp
(<xref section="4.2.7" sectionFormat="comma" target="RFC9171"/>) together with any fragment offset, except for
anonymous bundles, and whose impact is bounded where BPSec (<xref target="RFC9172"/>)
protects the bundle. Whether this risk is acceptable in a given environment
is a matter for operational experience and for any QUIC profile applicable
to that environment (<xref target="applicability"/>); a deployment that does permit 0-RTT
<bcp14>SHOULD</bcp14> ensure that its BPAs perform duplicate bundle detection.</t>
      </section>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <section anchor="version-negotiation">
        <name>Version Negotiation</name>
        <t>To resist ossification, Qubicle endpoints are <bcp14>RECOMMENDED</bcp14> to support QUIC
version 2 <xref target="RFC9369"/> and compatible version negotiation <xref target="RFC9368"/>.
Qubicle operates identically over any QUIC version providing the features
used in this document.</t>
      </section>
      <section anchor="timer-tuning">
        <name>Timer and Transport Parameter Tuning</name>
        <t>QUIC connection behavior is governed by a number of timers. Some are
negotiated via transport parameters during the handshake (e.g.,
<tt>max_idle_timeout</tt> and <tt>max_ack_delay</tt>), while others are derived locally
from measured path characteristics (e.g., the Probe Timeout (PTO) computed
from RTT estimates per <xref target="RFC9002"/>, seeded by an implementation's initial
RTT value).</t>
        <t>In many deployments, particularly those on the terrestrial Internet, the
default values recommended by <xref target="RFC9000"/> and <xref target="RFC9002"/> and used by
general-purpose QUIC implementations are expected to be adequate, and
Qubicle implementations <bcp14>MAY</bcp14> use them unchanged.</t>
        <t>However, Qubicle peers may possess knowledge of end-to-end path
characteristics that is unavailable to the QUIC transport itself, for
example from contact plans, orbital mechanics, or link scheduling
information in non-terrestrial deployments. Such information may indicate
expected propagation delays, predictable link outages, or highly asymmetric
paths for which Internet defaults are inappropriate (e.g., an idle timeout
short enough to be tripped by a scheduled link gap, or an initial RTT small
enough to cause spurious PTO retransmissions during the handshake).
Implementations <bcp14>SHOULD</bcp14> allow these timers and transport parameters to be
configured on a per-peer basis so that they can be adjusted using such
knowledge. The means by which such path knowledge is obtained, and the
specific adjustments derived from it, are out of scope for this document and
may be the subject of environment-specific QUIC profiles.</t>
      </section>
      <section anchor="flow-control-sizing">
        <name>Flow Control Sizing</name>
        <t>Stream-opening credit, per-stream data credit, and connection-level data
credit (<xref target="flow-control"/>) interact with receiver admission and sender
scheduling. Partial transfers can collectively occupy storage, stream
slots, and connection credit without any bundle completing. This can stall
useful progress or waste a finite contact. Receiver admission and credit
policies <bcp14>SHOULD</bcp14> consider the declared sizes of active bundles and allow
admitted transfers to progress toward completion. The length prefix
supplies information for that policy; it is not a deadlock-prevention
mechanism and does not prevent starvation.</t>
        <t>The receiver needs sufficient initial stream and connection credit to read
the first CBOR byte-string head, which can occupy up to nine octets, and
sufficient replenished credit for subsequent heads. Each head itself
consumes both kinds of flow-control credit. A receiver need not grant
credit for an entire bundle at once: it can consume or spool data and
replenish credit incrementally. Granting credit <bcp14>SHOULD</bcp14> reflect actual
available resources, including storage retained for partial bundles even
after data has been consumed from transport buffers. Declared lengths are
untrusted input and <bcp14>MUST NOT</bcp14> cause unchecked allocation. The initial
flow-control allowance is not an advertised maximum bundle size; size and
resource-based rejection are described in <xref target="cancellation"/>. On a persistent
stream, completing an item neither closes the stream nor replenishes byte
credit automatically. Successive items reduce the need for new
stream-opening credit but still depend on replenishment of byte credit.
Receiver admission policies must also account for later items that the
sender may already have queued on the same stream.</t>
        <t>Throughput depends on available credit and how promptly it is replenished
relative to the path RTT, not on treating QUIC's cumulative limits as fixed
receive windows. Too little available credit, or replenishment that arrives
too late, can leave a high-bandwidth, high-delay path underutilized. The
appropriate balance between storage commitment, parallelism, and
throughput is deployment-specific, and the same out-of-scope path knowledge
discussed in <xref target="timer-tuning"/> can inform it.</t>
      </section>
      <section anchor="convergence-layer-fallback">
        <name>Convergence Layer Fallback</name>
        <t>As noted in <xref target="RFC9308"/>, some networks block UDP traffic such that
Qubicle connections cannot be established. Bundle Protocol Agents that
employ Qubicle are <bcp14>RECOMMENDED</bcp14> to support additional Convergence Layers,
e.g. TCPCLv4 <xref target="RFC9174"/>.</t>
      </section>
      <section anchor="coexistence-with-other-udp-based-convergence-layers">
        <name>Coexistence With Other UDP-based Convergence Layers</name>
        <t>It is <bcp14>RECOMMENDED</bcp14> that Qubicle implementations use a dedicated UDP port for
operational simplicity.</t>
        <t>Bundle Protocol Agents that employ Qubicle and other UDP-based Convergence
Layers on the same UDP port <bcp14>MUST</bcp14> be able to disambiguate received datagrams
in order to route them to the correct CLA. For UDP CLs that use DTLS,
<xref target="RFC9443"/> provides the required guidance to disambiguate QUIC traffic
from DTLS-encapsulated CL traffic.</t>
      </section>
      <section anchor="dns-example">
        <name>Finding a Qubicle Endpoint Via DNS</name>
        <t>Qubicle senders may be manually provisioned with a hostname
(or IP addresses) and UDP port corresponding to the listening Qubicle
endpoint for a peer Bundle Protocol Agent.
If only a hostname is known but a port is not, <xref target="RFC9460"/> SVCB
Resource Records may be looked up to find a listening
UDP port and confirm expected ALPN configuration.</t>
        <t>Consider this zone file for <tt>example.</tt>:</t>
        <artwork name="dns-zone-example"><![CDATA[
;; zone: example.
;
$ORIGIN example.
_dtn-bundle._tcp.mars-orbiter IN SRV 10 20 4556 cloud-agent.example.
_qbcl.mars-orbiter IN SVCB 0 cloud-agent.example.

cloud-agent IN A    192.0.2.1
cloud-agent IN AAAA 2001:db8::1
cloud-agent IN SVCB 10 . (
    ipv4hint=192.0.2.1
    ipv6hint=2001:db8::1
    port=1234 alpn="qbcl")
]]></artwork>
        <t>A BPA supporting both TCPCLv4 <xref target="RFC9174"/> and Qubicle may attempt to
resolve an SRV record for the <tt>_dtn-bundle._tcp</tt> prefixed hostname. A BPA
that supports Qubicle
might also issue DNS SVCB queries for the <xref target="AttrLeaf"/> prefix "_qbcl". The
sample above indicates that <tt>mars-orbiter.example.</tt> has an SVCB record in
<tt>AliasMode</tt> referring to <tt>cloud-agent.example.</tt>  The SVCB record associated
with <tt>cloud-agent.example.</tt> contains all required QUIC transport rendezvous
information.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="alpn-identifier">
        <name>ALPN Identifier</name>
        <t>IANA is requested to register the following ALPN identifier in the "TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs" registry:</t>
        <table align="left" anchor="tab-alpn">
          <name>ALPN Registration</name>
          <thead>
            <tr>
              <th align="left">Protocol</th>
              <th align="left">Identification Sequence</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Qubicle</td>
              <td align="left">0x71 0x62 0x63 0x6C ("qbcl")</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="attrleaf-node-name">
        <name>AttrLeaf Node Name</name>
        <t>Per <xref target="AttrLeaf"/>, IANA is requested to add the following entry to the DNS
"Underscored and Globally Scoped DNS Node Names" registry:</t>
        <table align="left" anchor="tab-attrleaf">
          <name>AttrLeaf Registration</name>
          <thead>
            <tr>
              <th align="left">RR Type</th>
              <th align="left">_NODE NAME</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">SVCB</td>
              <td align="left">_qbcl</td>
              <td align="left">this document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="application-error-codes">
        <name>Application Error Codes</name>
        <t>IANA is requested to create a new registry "Qubicle Error Codes".
Values in this registry are 62-bit unsigned integers, matching the range of
QUIC application error codes. Each entry consists of a Code, a Name, a brief
Description, and a Reference.</t>
        <t>The registration policy for this registry is Specification Required
<xref target="RFC8126"/> for codes in the range 0x00 to 0x3FFFFFFF. Codes in the
range 0x40000000 to 0x3FFFFFFFFFFFFFFF are reserved for Private Use
<xref target="RFC8126"/> and are not assigned by IANA.</t>
        <t>The initial contents of the registry are:</t>
        <table align="left" anchor="tab-error-registry">
          <name>Error Code Registry</name>
          <thead>
            <tr>
              <th align="left">Code</th>
              <th align="left">Name</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0x00</td>
              <td align="left">QBCL_NO_ERROR</td>
              <td align="left">Graceful connection closure, no error</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0x01</td>
              <td align="left">QBCL_PROTOCOL_ERROR</td>
              <td align="left">Peer violated this specification</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0x02</td>
              <td align="left">QBCL_TRANSFER_CANCELLED</td>
              <td align="left">Transfer aborted, unspecified reason</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0x03</td>
              <td align="left">QBCL_BUNDLE_TOO_LARGE</td>
              <td align="left">Bundle exceeds receiver's maximum size</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0x04</td>
              <td align="left">QBCL_STORAGE_EXHAUSTED</td>
              <td align="left">Receiver temporarily cannot accept bundles</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0x05</td>
              <td align="left">QBCL_SHUTTING_DOWN</td>
              <td align="left">Peer is deliberately closing the session</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0x06</td>
              <td align="left">Reserved</td>
              <td align="left"> </td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0x07</td>
              <td align="left">QBCL_UNSUPPORTED_BUNDLE_VERSION</td>
              <td align="left">Receiver does not support the bundle version</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">0x08-0x3FFFFFFF</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">0x40000000-0x3FFFFFFFFFFFFFFF</td>
              <td align="left">Reserved for Private Use</td>
              <td align="left"> </td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="AttrLeaf">
          <front>
            <title>Scoped Interpretation of DNS Resource Records through "Underscored" Naming of Attribute Leaves</title>
            <author fullname="D. Crocker" initials="D." surname="Crocker"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Formally, any DNS Resource Record (RR) may occur under any domain name. However, some services use an operational convention for defining specific interpretations of an RRset by locating the records in a DNS branch under the parent domain to which the RRset actually applies. The top of this subordinate branch is defined by a naming convention that uses a reserved node name, which begins with the underscore character (e.g., "_name"). The underscored naming construct defines a semantic scope for DNS record types that are associated with the parent domain above the underscored branch. This specification explores the nature of this DNS usage and defines the "Underscored and Globally Scoped DNS Node Names" registry with IANA. The purpose of this registry is to avoid collisions resulting from the use of the same underscored name for different services.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="222"/>
          <seriesInfo name="RFC" value="8552"/>
          <seriesInfo name="DOI" value="10.17487/RFC8552"/>
        </reference>
        <reference anchor="BTP-U">
          <front>
            <title>Bundle Transfer Protocol - Unidirectional</title>
            <author fullname="Rick Taylor" initials="R." surname="Taylor">
              <organization>Aalyria Technologies</organization>
            </author>
            <date day="15" month="October" year="2026"/>
            <abstract>
              <t>   This document defines a protocol for the unidirectional transfer of
   large binary objects, typically Bundle Protocol version 7 bundles,
   between two nodes connected by a unidirectional, unreliable, frame-
   based link-layer protocol, without requiring IP services.

   The protocol does not require a return path for acknowledgements, but
   instead supports data repetition as a mechanism to protect against
   data loss.  It fully supports the disaggregation of flows of binary
   objects of different priority, preventing head-of-line blocking
   impacting performance.

   The wire format of the protocol is designed to enable performant
   implementation in hardware or software, with the aim of enabling
   protocol implementations to run at the line-rate of the underlying
   link-layer protocol.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-dtn-btpu-05"/>
        </reference>
        <reference anchor="RFC9171">
          <front>
            <title>Bundle Protocol Version 7</title>
            <author fullname="S. Burleigh" initials="S." surname="Burleigh"/>
            <author fullname="K. Fall" initials="K." surname="Fall"/>
            <author fullname="E. Birrane, III" initials="E." surname="Birrane, III"/>
            <date month="January" year="2022"/>
            <abstract>
              <t>This document presents a specification for the Bundle Protocol, adapted from the experimental Bundle Protocol specification developed by the Delay-Tolerant Networking Research Group of the Internet Research Task Force and documented in RFC 5050.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9171"/>
          <seriesInfo name="DOI" value="10.17487/RFC9171"/>
        </reference>
        <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="RFC9221">
          <front>
            <title>An Unreliable Datagram Extension to QUIC</title>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="E. Kinnear" initials="E." surname="Kinnear"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <date month="March" year="2022"/>
            <abstract>
              <t>This document defines an extension to the QUIC transport protocol to add support for sending and receiving unreliable datagrams over a QUIC connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9221"/>
          <seriesInfo name="DOI" value="10.17487/RFC9221"/>
        </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>
        <reference anchor="RFC9174">
          <front>
            <title>Delay-Tolerant Networking TCP Convergence-Layer Protocol Version 4</title>
            <author fullname="B. Sipos" initials="B." surname="Sipos"/>
            <author fullname="M. Demmer" initials="M." surname="Demmer"/>
            <author fullname="J. Ott" initials="J." surname="Ott"/>
            <author fullname="S. Perreault" initials="S." surname="Perreault"/>
            <date month="January" year="2022"/>
            <abstract>
              <t>This document describes a TCP convergence layer (TCPCL) for Delay-Tolerant Networking (DTN). This version of the TCPCL protocol resolves implementation issues in the earlier TCPCL version 3 as defined in RFC 7242 and provides updates to the Bundle Protocol (BP) contents, encodings, and convergence-layer requirements in BP version 7 (BPv7). Specifically, TCPCLv4 uses BPv7 bundles encoded by the Concise Binary Object Representation (CBOR) as its service data unit being transported and provides a reliable transport of such bundles. This TCPCL version also includes security and extensibility mechanisms.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9174"/>
          <seriesInfo name="DOI" value="10.17487/RFC9174"/>
        </reference>
        <reference anchor="RFC8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq". A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation. This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9172">
          <front>
            <title>Bundle Protocol Security (BPSec)</title>
            <author fullname="E. Birrane, III" initials="E." surname="Birrane, III"/>
            <author fullname="K. McKeever" initials="K." surname="McKeever"/>
            <date month="January" year="2022"/>
            <abstract>
              <t>This document defines a security protocol providing data integrity and confidentiality services for the Bundle Protocol (BP).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9172"/>
          <seriesInfo name="DOI" value="10.17487/RFC9172"/>
        </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="RFC9368">
          <front>
            <title>Compatible Version Negotiation for QUIC</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="May" year="2023"/>
            <abstract>
              <t>QUIC does not provide a complete version negotiation mechanism but instead only provides a way for the server to indicate that the version the client chose is unacceptable. This document describes a version negotiation mechanism that allows a client and server to select a mutually supported version. Optionally, if the client's chosen version and the negotiated version share a compatible first flight format, the negotiation can take place without incurring an extra round trip. This document updates RFC 8999.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9368"/>
          <seriesInfo name="DOI" value="10.17487/RFC9368"/>
        </reference>
        <reference anchor="RFC9002">
          <front>
            <title>QUIC Loss Detection and Congestion Control</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="I. Swett" initials="I." role="editor" surname="Swett"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes loss detection and congestion control mechanisms for QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9002"/>
          <seriesInfo name="DOI" value="10.17487/RFC9002"/>
        </reference>
        <reference anchor="RFC9443">
          <front>
            <title>Multiplexing Scheme Updates for QUIC</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="G. Salgueiro" initials="G." surname="Salgueiro"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>RFC 7983 defines a scheme for a Real-time Transport Protocol (RTP) receiver to demultiplex Datagram Transport Layer Security (DTLS), Session Traversal Utilities for NAT (STUN), Secure Real-time Transport Protocol (SRTP) / Secure Real-time Transport Control Protocol (SRTCP), ZRTP, and Traversal Using Relays around NAT (TURN) channel packets arriving on a single port. This document updates RFC 7983 and RFC 5764 to also allow QUIC packets to be multiplexed on a single receiving socket.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9443"/>
          <seriesInfo name="DOI" value="10.17487/RFC9443"/>
        </reference>
        <reference anchor="RFC9460">
          <front>
            <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <author fullname="M. Bishop" initials="M." surname="Bishop"/>
            <author fullname="E. Nygren" initials="E." surname="Nygren"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9460"/>
          <seriesInfo name="DOI" value="10.17487/RFC9460"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9308">
          <front>
            <title>Applicability of the QUIC Transport Protocol</title>
            <author fullname="M. Kühlewind" initials="M." surname="Kühlewind"/>
            <author fullname="B. Trammell" initials="B." surname="Trammell"/>
            <date month="September" year="2022"/>
            <abstract>
              <t>This document discusses the applicability of the QUIC transport protocol, focusing on caveats impacting application protocol development and deployment over QUIC. Its intended audience is designers of application protocol mappings to QUIC and implementors of these application protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9308"/>
          <seriesInfo name="DOI" value="10.17487/RFC9308"/>
        </reference>
        <reference anchor="RFC5326">
          <front>
            <title>Licklider Transmission Protocol - Specification</title>
            <author fullname="M. Ramadas" initials="M." surname="Ramadas"/>
            <author fullname="S. Burleigh" initials="S." surname="Burleigh"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <date month="September" year="2008"/>
            <abstract>
              <t>This document describes the Licklider Transmission Protocol (LTP), designed to provide retransmission-based reliability over links characterized by extremely long message round-trip times (RTTs) and/or frequent interruptions in connectivity. Since communication across interplanetary space is the most prominent example of this sort of environment, LTP is principally aimed at supporting "long-haul" reliable transmission in interplanetary space, but it has applications in other environments as well.</t>
              <t>This document is a product of the Delay Tolerant Networking Research Group and has been reviewed by that group. No objections to its publication as an RFC were raised. This memo defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5326"/>
          <seriesInfo name="DOI" value="10.17487/RFC5326"/>
        </reference>
        <reference anchor="RFC5050">
          <front>
            <title>Bundle Protocol Specification</title>
            <author fullname="K. Scott" initials="K." surname="Scott"/>
            <author fullname="S. Burleigh" initials="S." surname="Burleigh"/>
            <date month="November" year="2007"/>
            <abstract>
              <t>This document describes the end-to-end protocol, block formats, and abstract service description for the exchange of messages (bundles) in Delay Tolerant Networking (DTN).</t>
              <t>This document was produced within the IRTF's Delay Tolerant Networking Research Group (DTNRG) and represents the consensus of all of the active contributors to this group. See http://www.dtnrg.org for more information. This memo defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5050"/>
          <seriesInfo name="DOI" value="10.17487/RFC5050"/>
        </reference>
        <reference anchor="RFC9891">
          <front>
            <title>Automated Certificate Management Environment (ACME) Delay-Tolerant Networking (DTN) Node ID Validation Extension</title>
            <author fullname="B. Sipos" initials="B." surname="Sipos"/>
            <date month="November" year="2025"/>
            <abstract>
              <t>This document specifies an extension to the Automated Certificate Management Environment (ACME) protocol that allows an ACME server to validate the Delay-Tolerant Networking (DTN) Node ID for an ACME client. A DTN Node ID is an identifier used in the Bundle Protocol (BP) to name a "singleton endpoint": an endpoint that is registered on a single BP Node. The DTN Node ID is encoded both as a certificate Subject Alternative Name (SAN) identity of type otherName with an Other Name form of BundleEID and as an ACME Identifier type "bundleEID".</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9891"/>
          <seriesInfo name="DOI" value="10.17487/RFC9891"/>
        </reference>
      </references>
    </references>
    <?line 837?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors thank Carlo Caini for discussions of QUIC stream concurrency,
sender scheduling, and flow control that helped clarify the prioritization
and framing requirements in this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8V963LcxpLm/3oKLLURlia626IkyzY5nhmKpHwYQ5M8JOUz
ExsbIrobTeIQDfQB0KTasudZ9ln2yTa/vFQV0KDsMzMR63DYEhqXqqysvH6Z
NR6PXZu3RbaXHF2fJX/+cHKYvFuX8yJLLuqqrWZVkRxW5UNW32blLEtO001W
J8//tp7msyJ74dLptM4eoocPT90sbbPbqt7sJU07d25ezcp0SR+Y1+miHWf3
43lbjvUN45evXbOeLvOmyauy3azovpPj6/dJ8ixJi6baS3bycp6tMvpP2e6M
kp1snrdVnacF/nJy8I7+V9X0p8vr9zuuXC+nWb3n5jSEPTeryiYrm3Wzl7T1
OnM0ztcurbOUvnF27R6r+v62rtYrGn5WpJuvj/KmXq9aGkhyXRVZnZZtcpa1
uC8vb527zzb05/mec2NMmP777uLhW/ofZk7/2yKUcw9ZuaaRJMnf86EkEUL8
Rf6e/Ihn6eoyzQsiY1v+S561i0lV49a0nt3tJXdtu2r2vv4at+BK/pBN7Kav
ceHraV09NtnX9PTXGE7e3q2ne0l2X+QlXeWlidaFbimIhk0bXi23TuTJSV5t
P/T10ApP7tpl4Vy6bu8qWplxslgXhTDEZT67T67TTVHV9D0aaVrmv6Qgy15y
kBYbWuXkOpvdlVVR3eZZQzdlQoO65af+JZW7JrNq2XnzcZ3fJ/+K8f6dL87u
mWz/cou/8mtdWdVLevaBl/GgbevTLF3Q4N8ffvfNN6/o2rvri/EHYqnxET/L
k5+2q7VzebmIH6ZHvn/98jvwz3icpNOmrdNZ69z1Xd4ktE3WS+LxpFlls3xB
o0rSZJmX+TItklnEWQVvwZXtTvoCcXdaNousrsEt/e1LD2JvJd8mz8GuL5Ip
39AkFf3CrDtJru+y8MYiox/SW7oDP37VJCXPIJmlq3SaF3mLseGzdVbk6ZS+
RRPJUhrr7QgjLbMZs/YyLektmNMoSct50mSzdZ23m0lyaQ/awJtk3WQiQNZl
Ps9reQXNXF7d0MfreoPpHb47v0yusr+tQQyaxCKZZwsiU5uNi6y8be+S6abl
IdHdzSjJ0tkdRtWmdBM9n30imhebpCozpcQkOdDP0FdK+VLSrGf0+gbzNno9
EudX6zaZFVWDN01px2ZZmbR32XKSfCjr4VnRz7Ym1/pDWJwxPdeZ73Pmphdh
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

-->

</rfc>
