<?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 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-sharma-moq-atomic-subscription-bundles-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="moq-atomic-subscription-bundles">Atomic Subscription Bundles for Media over QUIC Transport</title>
    <seriesInfo name="Internet-Draft" value="draft-sharma-moq-atomic-subscription-bundles-00"/>
    <author initials="A." surname="Sharma" fullname="Aman Sharma">
      <organization>Meta</organization>
      <address>
        <email>amsharma@meta.com</email>
      </address>
    </author>
    <date year="2026" month="September" day="15"/>
    <area>Web and Internet Transport</area>
    <workgroup>Media Over QUIC</workgroup>
    <keyword>media over quic</keyword>
    <keyword>subscription</keyword>
    <keyword>atomic switch</keyword>
    <abstract>
      <?line 39?>

<t>This document defines a Media over QUIC Transport (MOQT) extension for
atomically changing the Forward State of a set of established subscriptions.
It allows a subscriber to replace one set of Tracks with another without an
intermediate partially switched state at its peer.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://sharmafb.github.io/draft-sharma-moq-atomic-subscription-bundles/draft-sharma-moq-atomic-subscription-bundles.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-sharma-moq-atomic-subscription-bundles/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Media Over QUIC Working Group mailing list (<eref target="mailto:moq@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/moq/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/moq/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/sharmafb/draft-sharma-moq-atomic-subscription-bundles"/>.</t>
    </note>
  </front>
  <middle>
    <?line 47?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Applications often consume Tracks as a unit. A sports presentation can contain
video, commentary, and captions, while a monitoring view can contain several
camera Tracks. Switching each subscription independently can briefly activate
only part of the destination set or forward both the old and new sets.</t>
      <t>This document defines BUNDLE_SWITCH, a one-shot operation over established
subscriptions on one MOQT Session. The subscriber normally prepares the
destination subscriptions with Forward State 0, then atomically deactivates the
old set and activates the new set. The subscriptions remain independent after
the switch; this extension creates no persistent bundle object.</t>
      <t>Atomicity applies to Forward State at the immediate peer. It does not guarantee
simultaneous Object arrival or presentation, and data already in flight can
still arrive after a switch.</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?>

<t>This document uses the terms Object, Track, Subscription, Forward State,
Publisher, Subscriber, Relay, and Request ID as defined in <xref target="MOQT"/>.</t>
      <dl>
        <dt>Activation Set:</dt>
        <dd>
          <t>Established subscriptions whose Forward State changes from 0 to 1.</t>
        </dd>
        <dt>Deactivation Set:</dt>
        <dd>
          <t>Established subscriptions whose Forward State changes from 1 to 0.</t>
        </dd>
        <dt>Commit:</dt>
        <dd>
          <t>The single logical transition at which every requested Forward State change
takes effect.</t>
        </dd>
      </dl>
    </section>
    <section anchor="negotiation">
      <name>Negotiation</name>
      <t>Support is negotiated with the ATOMIC_SUBSCRIPTION_BUNDLES Setup Option. Its
even-numbered Option Type is TBD1 and its value is a variable-length integer
capability bit mask. Bit 0x01 enables BUNDLE_SWITCH; unknown bits are ignored.</t>
      <t>The capability is negotiated when both endpoints advertise bit 0x01. An
endpoint <bcp14>MUST NOT</bcp14> send BUNDLE_SWITCH otherwise. The 0-RTT requirements of
<xref target="MOQT"/> apply; a client <bcp14>MUST NOT</bcp14> use the extension in 0-RTT unless it has
remembered peer support.</t>
    </section>
    <section anchor="preparing">
      <name>Preparing a Bundle</name>
      <t>Every bundle member is an Established subscription on the same Session. The
subscriber <bcp14>SHOULD</bcp14> establish each destination subscription with Forward State
0 and wait for SUBSCRIBE_OK before sending BUNDLE_SWITCH. Filters, priorities,
and other subscription parameters are configured on the subscription's own
request stream and are not changed by BUNDLE_SWITCH.</t>
      <t>Preparing subscriptions in Forward State 0 allows failures to be detected
while the current bundle continues forwarding. It can consume state at the
Publisher or its upstream peers, but does not send Object payloads to the
subscriber.</t>
    </section>
    <section anchor="bundle-switch">
      <name>BUNDLE_SWITCH</name>
      <t>BUNDLE_SWITCH is a request sent as the first message on a new bidirectional
stream. It consumes a Request ID under the rules of <xref target="MOQT"/>.</t>
      <artwork><![CDATA[
BUNDLE_SWITCH Message {
  Type (vi64) = TBD2,
  Length (16),
  Request ID (vi64),
  Number of Deactivating Subscriptions (vi64),
  Deactivating Subscription Request ID (vi64) ...,
  Number of Activating Subscriptions (vi64),
  Activating Subscription Request ID (vi64) ...,
}
]]></artwork>
      <t>The subscription Request IDs identify existing SUBSCRIBE requests, not Track
Aliases. Each ID <bcp14>MUST</bcp14> occur exactly once, the two sets <bcp14>MUST</bcp14> be disjoint, and
the combined number of IDs <bcp14>MUST</bcp14> be non-zero. All referenced subscriptions <bcp14>MUST</bcp14>
have been initiated by the sender on this Session. Each deactivating
subscription <bcp14>MUST</bcp14> be Established with Forward State 1, and each activating
subscription <bcp14>MUST</bcp14> be Established with Forward State 0.</t>
      <t>The Publisher validates every member before changing any Forward State. If a
member is invalid, unauthorized, terminated, or cannot be activated, the
Publisher <bcp14>MUST</bcp14> send REQUEST_ERROR and leave all referenced subscriptions
unchanged. INVALID_BUNDLE (TBD3) is used for an invalid member list or state;
other errors such as UNAUTHORIZED, TIMEOUT, and EXCESSIVE_LOAD retain their
MOQT meanings.</t>
      <t>Once all members are ready, the Publisher commits the switch. No Object from
an activating subscription can be scheduled as a result of the switch until
the Publisher has stopped scheduling Objects from every deactivating
subscription. The normal MOQT rules for Forward State changes and outstanding
Subgroup streams apply. At Commit, the Publisher <bcp14>MUST</bcp14> save the current Largest
Location of each activating subscription as its Joining Location when Objects
have been published on that Track.</t>
      <t>The Publisher then sends REQUEST_OK on the BUNDLE_SWITCH stream; this response
is called BUNDLE_SWITCH_OK. Its Parameters and Track Properties <bcp14>MUST</bcp14> be empty.</t>
      <t>The deactivated subscriptions remain Established with Forward State 0. They
can be reactivated by a later BUNDLE_SWITCH or terminated using normal MOQT
procedures. A failure after Commit affects subscriptions independently and
does not roll the switch back.</t>
    </section>
    <section anchor="concurrency">
      <name>Concurrent Operations</name>
      <t>QUIC does not order operations sent on different streams. The Publisher <bcp14>MUST</bcp14>
serialize BUNDLE_SWITCH with every operation that updates or terminates a
referenced subscription, including REQUEST_UPDATE, subscriber cancellation
using STOP_SENDING, PUBLISH_DONE, expiration, and another overlapping
BUNDLE_SWITCH. Commit is the ordering point for BUNDLE_SWITCH.</t>
      <t>If another operation is processed first and leaves a member ineligible, the
Publisher <bcp14>MUST</bcp14> reject BUNDLE_SWITCH with INVALID_BUNDLE and apply none of its
requested Forward State changes. The earlier operation remains effective. If
BUNDLE_SWITCH commits first, it succeeds and the later operation is processed
normally without rolling back the switch. For example, cancellation of a
deactivating subscription before Commit causes the bundle switch to fail;
cancellation after Commit terminates the already-deactivated subscription.</t>
      <t>A subscriber that requires a particular order <bcp14>SHOULD</bcp14> wait for
BUNDLE_SWITCH_OK before sending a conflicting operation on another stream.</t>
    </section>
    <section anchor="atomicity">
      <name>Atomicity and Media Alignment</name>
      <t>Commit is an atomic control-plane transition at one Publisher or Relay. QUIC
streams are independent, so Objects sent before Commit can arrive after Objects
from the Activation Set. The extension does not align Groups, timestamps, or
media presentation points across Tracks. Applications that require a seamless
presentation switch need compatible media boundaries or application metadata.</t>
      <t>The operation is scoped to one MOQT Session. It cannot atomically switch
subscriptions held on different peers or Sessions.</t>
    </section>
    <section anchor="relay">
      <name>Relay Processing</name>
      <t>Request IDs are Session-local, so a Relay <bcp14>MUST NOT</bcp14> forward BUNDLE_SWITCH
unchanged. It performs the downstream Commit locally and <bcp14>MAY</bcp14> prepare or update
upstream subscriptions as needed. If it cannot make every activating
subscription ready, it fails the downstream operation without changing the
referenced downstream Forward States.</t>
      <t>Other downstream subscribers and upstream Forward States are outside the
atomicity guarantee.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="MOQT"/> apply. BUNDLE_SWITCH does not bypass
authorization on any member subscription. A Publisher <bcp14>MUST</bcp14> reject a Request ID
that does not identify an eligible subscription initiated by the sender.</t>
      <t>Large bundles and prepared subscriptions can consume state. Implementations
<bcp14>SHOULD</bcp14> limit bundle size and pending duration and <bcp14>MAY</bcp14> reject an operation with
EXCESSIVE_LOAD. A malicious peer cannot use BUNDLE_SWITCH to alter another
Session's subscriptions because Request IDs are Session-local.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document requests the following provisional registrations:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Registry</th>
            <th align="right">Value</th>
            <th align="left">Name</th>
            <th align="left">Specification</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">MOQT Setup Options</td>
            <td align="right">TBD1 (even)</td>
            <td align="left">ATOMIC_SUBSCRIPTION_BUNDLES</td>
            <td align="left">
              <xref target="negotiation"/></td>
          </tr>
          <tr>
            <td align="left">MOQT Message Types</td>
            <td align="right">TBD2</td>
            <td align="left">BUNDLE_SWITCH</td>
            <td align="left">
              <xref target="bundle-switch"/></td>
          </tr>
          <tr>
            <td align="left">MOQT REQUEST_ERROR Codes</td>
            <td align="right">TBD3</td>
            <td align="left">INVALID_BUNDLE</td>
            <td align="left">
              <xref target="bundle-switch"/></td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="MOQT">
        <front>
          <title>Media over QUIC Transport</title>
          <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
            <organization>Cisco</organization>
          </author>
          <author fullname="Victor Vasiliev" initials="V." surname="Vasiliev">
            <organization>Google</organization>
          </author>
          <author fullname="Ian Swett" initials="I." surname="Swett">
            <organization>Google</organization>
          </author>
          <author fullname="Alan Frindell" initials="A." surname="Frindell">
            <organization>Meta</organization>
          </author>
          <date day="8" month="September" year="2026"/>
          <abstract>
            <t>   This document defines Media over QUIC Transport (MOQT), a publish/
   subscribe protocol that runs over QUIC and WebTransport.  MOQT
   leverages the features of these transports, such as streams,
   datagrams, priorities, and partial reliability.  MOQT operates both
   point-to-point and through intermediate relays, enabling scalable
   low-latency delivery.  Despite its name, MOQT is media agnostic and
   can be used for a wide range of use cases.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-moq-transport-21"/>
      </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>
    </references>
    <?line 243?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This work was motivated by discussion of atomic multi-Track switching in the
MOQT working group.</t>
    </section>
    <section numbered="false" anchor="change-log">
      <name>Change Log</name>
      <section numbered="false" anchor="draft-sharma-moq-atomic-subscription-bundles-00">
        <name>draft-sharma-moq-atomic-subscription-bundles-00</name>
        <ul spacing="normal">
          <li>
            <t>Initial version.</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="use-of-generative-ai">
      <name>Use of Generative AI</name>
      <t>OpenAI Codex was used to assist with drafting and editing this document. All
generated text was reviewed and approved by the author.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
1VrLJgAA

-->

</rfc>
