<?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.6.39 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wilaw-moq-catalogformat-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <front>
    <title>Common Catalog Format for moq-transport</title>
    <seriesInfo name="Internet-Draft" value="draft-wilaw-moq-catalogformat-00"/>
    <author fullname="Suhas Nandakumar">
      <organization>Cisco</organization>
      <address>
        <email>snandaku@cisco.com</email>
      </address>
    </author>
    <author fullname="Will Law">
      <organization>Akamai</organization>
      <address>
        <email>wilaw@akamai.com</email>
      </address>
    </author>
    <author fullname="Mo Zanaty">
      <organization>Cisco</organization>
      <address>
        <email>mzanaty@cisco.com</email>
      </address>
    </author>
    <date year="2023" month="September" day="26"/>
    <area>Applications and Real-Time</area>
    <workgroup>Media Over QUIC</workgroup>
    <keyword>moq</keyword>
    <keyword>warp</keyword>
    <keyword>catalog</keyword>
    <abstract>
      <?line 64?>

<t>This specification defines an Common Catalog specification for streaming formats implementing the MOQ Transport Protocol <xref target="MoQTransport"/>. Media over QUIC Transport (MOQT) defines a publish/subscribe based unified media delivery protocol for delivering media for streaming and interactive applications over QUIC. The catalog describes the content made available by a publisher, including information necessary for subscribers to select, subscribe and initialize tracks.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://wilaw.github.io/catalog-format/draft-wilaw-moq-catalogformat.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-wilaw-moq-catalogformat/"/>.
      </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/wilaw/catalog-format"/>.</t>
    </note>
  </front>
  <middle>
    <?line 69?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>MOQT <xref target="MoQTransport"/> defines a transport protocol that utilizes the QUIC network protocol [QUIC] and WebTransport[WebTrans] to move objects between publishers, subscribers and intermediaries. Tracks are identified using a tuple of the Track Namespace and the Track Name. A MOQT Catalog is a specialized track which captures details of all the tracks output by a publisher, including the identities, media profiles, initialization data and inter-track relationships. The mapping of media characteristics of objects with the tracks, as well as relative prioritization of those objects, are captured in separate MoQ Streaming Format specifications. This specification defines a JSON encoded catalog.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].</t>
    </section>
    <section anchor="catalog">
      <name>Catalog</name>
      <t>A Catalog is a MOQT Object that provides information about tracks from a given publisher. A Catalog is used by publishers for advertising their output and for subscribers in consuming that output. The payload of the Catalog object is opaque to Relays and can be end-to-end encrypted. The Catalog provides the names and namespaces of the tracks being produced, along with the relationship between tracks, properties of the tracks that consumers may use for selection and any relevant initialization data.</t>
      <t>A special case of the catalog exists which describes other catalogs instead of tracks. A catalog might describe tracks, or catalogs, but never both at the same time.</t>
      <section anchor="catalogversion">
        <name>Catalog version</name>
        <t>Versions of this catalog specification are defined using monotonically increasing integers. There is no gaurantee that future catalog versions are backwards compatible and field definitions and interpretaiton may change between versions. A subscriber MUST NOT attempt to parse a catalog version which it does not understand.</t>
        <t>This document defines version 1.</t>
      </section>
      <section anchor="catalog-fields">
        <name>Catalog Fields</name>
        <t>A catalog is a JSON <xref target="JSON"/> document, comprised of a series of mandatory and optional fields. At a minimum, a catalog MUST provide all mandatory fields and one of either a 'tracks' field or a 'catalogs' field.  A producer MAY add additional fields to the ones described in this draft. Custom field names MUST NOT collide with field names described in this draft. To prevent custom field name collisions with future versions, custom field names SHOULD be prefixed using reverse domain name notation e.g "com.example-size". The order of field names within the JSON document is not important. Any track or catalog field declared at the root level is inherited by all tracks or catalogs. Any track or catalog field declared within a track or catalog object overwrites any inherited value.</t>
        <t>A parser MUST ignore fields it does not understand.</t>
        <t>Table 1 provides an overview of all fields defined by this document.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Name</th>
              <th align="left">Required</th>
              <th align="left">Location</th>
              <th align="left">JSON type</th>
              <th align="left">Definition</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Catalog version</td>
              <td align="left">version</td>
              <td align="left">yes</td>
              <td align="left">R</td>
              <td align="left">String</td>
              <td align="left">
                <xref target="catalogversion"/></td>
            </tr>
            <tr>
              <td align="left">Streaming format</td>
              <td align="left">streamingFormat</td>
              <td align="left">yes</td>
              <td align="left">RC</td>
              <td align="left">String</td>
              <td align="left">
                <xref target="streamingformat"/></td>
            </tr>
            <tr>
              <td align="left">Streaming format version</td>
              <td align="left">streamingFormatVersion</td>
              <td align="left">yes</td>
              <td align="left">RC</td>
              <td align="left">String</td>
              <td align="left">
                <xref target="streamingformatversion"/></td>
            </tr>
            <tr>
              <td align="left">Catalog sequence number</td>
              <td align="left">sequence</td>
              <td align="left">yes</td>
              <td align="left">R</td>
              <td align="left">Number</td>
              <td align="left">
                <xref target="sequencenumber"/></td>
            </tr>
            <tr>
              <td align="left">Tracks</td>
              <td align="left">tracks</td>
              <td align="left">opt</td>
              <td align="left">R</td>
              <td align="left">Array</td>
              <td align="left">
                <xref target="tracks"/></td>
            </tr>
            <tr>
              <td align="left">Catalogs</td>
              <td align="left">catalogs</td>
              <td align="left">opt</td>
              <td align="left">R</td>
              <td align="left">Array</td>
              <td align="left">
                <xref target="catalogs"/></td>
            </tr>
            <tr>
              <td align="left">Parent sequence number</td>
              <td align="left">parentSequence</td>
              <td align="left">opt</td>
              <td align="left">R</td>
              <td align="left">Array</td>
              <td align="left">
                <xref target="parentsequence"/></td>
            </tr>
            <tr>
              <td align="left">Track namespace</td>
              <td align="left">namespace</td>
              <td align="left">yes</td>
              <td align="left">RTC</td>
              <td align="left">String</td>
              <td align="left">
                <xref target="tracknamespace"/></td>
            </tr>
            <tr>
              <td align="left">Track name</td>
              <td align="left">name</td>
              <td align="left">yes</td>
              <td align="left">TC</td>
              <td align="left">String</td>
              <td align="left">
                <xref target="trackname"/></td>
            </tr>
            <tr>
              <td align="left">Packaging</td>
              <td align="left">packaging</td>
              <td align="left">yes</td>
              <td align="left">RT</td>
              <td align="left">String</td>
              <td align="left">
                <xref target="packaging"/></td>
            </tr>
            <tr>
              <td align="left">Track operation</td>
              <td align="left">operation</td>
              <td align="left">yes</td>
              <td align="left">RT</td>
              <td align="left">String</td>
              <td align="left">
                <xref target="trackoperations"/></td>
            </tr>
            <tr>
              <td align="left">Track label</td>
              <td align="left">label</td>
              <td align="left">opt</td>
              <td align="left">RT</td>
              <td align="left">String</td>
              <td align="left">
                <xref target="tracklabel"/></td>
            </tr>
            <tr>
              <td align="left">Render group</td>
              <td align="left">renderGroup</td>
              <td align="left">opt</td>
              <td align="left">RT</td>
              <td align="left">Number</td>
              <td align="left">
                <xref target="rendergroup"/></td>
            </tr>
            <tr>
              <td align="left">Alternate group</td>
              <td align="left">altGroup</td>
              <td align="left">opt</td>
              <td align="left">RT</td>
              <td align="left">Number</td>
              <td align="left">
                <xref target="altgroup"/></td>
            </tr>
            <tr>
              <td align="left">Initialization data</td>
              <td align="left">initData</td>
              <td align="left">opt</td>
              <td align="left">RT</td>
              <td align="left">String</td>
              <td align="left">
                <xref target="initdata"/></td>
            </tr>
            <tr>
              <td align="left">Initialization track</td>
              <td align="left">initTrack</td>
              <td align="left">opt</td>
              <td align="left">RT</td>
              <td align="left">String</td>
              <td align="left">
                <xref target="inittrack"/></td>
            </tr>
            <tr>
              <td align="left">Selection parameters</td>
              <td align="left">selectionParams</td>
              <td align="left">opt</td>
              <td align="left">RT</td>
              <td align="left">Object</td>
              <td align="left">
                <xref target="selectionparameters"/></td>
            </tr>
            <tr>
              <td align="left">Dependencies</td>
              <td align="left">depends</td>
              <td align="left">opt</td>
              <td align="left">T</td>
              <td align="left">Array</td>
              <td align="left">
                <xref target="dependencies"/></td>
            </tr>
            <tr>
              <td align="left">Temporal ID</td>
              <td align="left">temporalId</td>
              <td align="left">opt</td>
              <td align="left">T</td>
              <td align="left">Number</td>
              <td align="left">
                <xref target="temporalid"/></td>
            </tr>
            <tr>
              <td align="left">Spatial ID</td>
              <td align="left">spatialId</td>
              <td align="left">opt</td>
              <td align="left">T</td>
              <td align="left">Number</td>
              <td align="left">
                <xref target="spatialid"/></td>
            </tr>
            <tr>
              <td align="left">Codec</td>
              <td align="left">codec</td>
              <td align="left">opt</td>
              <td align="left">S</td>
              <td align="left">String</td>
              <td align="left">
                <xref target="codec"/></td>
            </tr>
            <tr>
              <td align="left">Mime type</td>
              <td align="left">mimeType</td>
              <td align="left">opt</td>
              <td align="left">S</td>
              <td align="left">String</td>
              <td align="left">
                <xref target="mimetype"/></td>
            </tr>
            <tr>
              <td align="left">Framerate</td>
              <td align="left">framerate</td>
              <td align="left">opt</td>
              <td align="left">S</td>
              <td align="left">Number</td>
              <td align="left">
                <xref target="framerate"/></td>
            </tr>
            <tr>
              <td align="left">Bitrate</td>
              <td align="left">bitrate</td>
              <td align="left">opt</td>
              <td align="left">S</td>
              <td align="left">Number</td>
              <td align="left">
                <xref target="bitrate"/></td>
            </tr>
            <tr>
              <td align="left">Width</td>
              <td align="left">width</td>
              <td align="left">opt</td>
              <td align="left">S</td>
              <td align="left">Number</td>
              <td align="left">
                <xref target="width"/></td>
            </tr>
            <tr>
              <td align="left">Height</td>
              <td align="left">height</td>
              <td align="left">opt</td>
              <td align="left">S</td>
              <td align="left">Number</td>
              <td align="left">
                <xref target="height"/></td>
            </tr>
            <tr>
              <td align="left">Audio sample rate</td>
              <td align="left">sampleRate</td>
              <td align="left">opt</td>
              <td align="left">S</td>
              <td align="left">Number</td>
              <td align="left">
                <xref target="audiosamplerate"/></td>
            </tr>
            <tr>
              <td align="left">Channel configuration</td>
              <td align="left">channelConfig</td>
              <td align="left">opt</td>
              <td align="left">S</td>
              <td align="left">String</td>
              <td align="left">
                <xref target="channelconfiguration"/></td>
            </tr>
            <tr>
              <td align="left">Display width</td>
              <td align="left">displayWidth</td>
              <td align="left">opt</td>
              <td align="left">S</td>
              <td align="left">Number</td>
              <td align="left">
                <xref target="displaywidth"/></td>
            </tr>
            <tr>
              <td align="left">Display height</td>
              <td align="left">displayHeight</td>
              <td align="left">opt</td>
              <td align="left">S</td>
              <td align="left">Number</td>
              <td align="left">
                <xref target="displayheight"/></td>
            </tr>
            <tr>
              <td align="left">Language</td>
              <td align="left">lang</td>
              <td align="left">opt</td>
              <td align="left">S</td>
              <td align="left">String</td>
              <td align="left">
                <xref target="language"/></td>
            </tr>
          </tbody>
        </table>
        <t>Required: 'yes' indicates a mandatory field, 'opt' indicates an optional field</t>
        <t>Location:</t>
        <ul spacing="normal">
          <li>'R' - the field is located in the Root of the JSON object.</li>
          <li>'RC' - the field may be located in either the Root or a Catalog object.</li>
          <li>'RTC' - the field may be located in either the Root, or a Track object or a Catalog object.</li>
          <li>'TC' - the field may be located in either a Track object or a Catalog object.</li>
          <li>'RT' - the field may be located in either the Root or a Track object.</li>
          <li>'T' - the field is located in a Track object.</li>
          <li>'S' - the field is located in the Selection Parameters object.</li>
        </ul>
        <section anchor="streamingformat">
          <name>Streaming format</name>
          <t>A number indicating the streaming format type. Every MoQ Streaming Format normatively referencing this catalog format MUST register itself in the "MoQ Streaming Format Type" table. See <xref target="iana"/> for additional details.</t>
        </section>
        <section anchor="streamingformatversion">
          <name>Streaming format version</name>
          <t>A string indicating the version of the streaming format to which this catalog applies. The structure of the version string is defined by the streaming format.</t>
        </section>
        <section anchor="sequencenumber">
          <name>Catalog sequence number</name>
          <t>An integer indicating the sequence of this catalog object update. The first catalog object produced under a given name|namespace carries a sequence number of zero. Each successive update of that catalog, either as an independent or delta update, increments the sequence number by one.</t>
        </section>
        <section anchor="tracks">
          <name>Tracks</name>
          <t>An array of track objects <xref target="trackobject"/>. If the 'tracks' field is present then the 'catalog' field MUST NOT be present.</t>
        </section>
        <section anchor="catalogs">
          <name>Catalogs</name>
          <t>An array of catalog objects <xref target="catalogobject"/>. If the 'catalogs' field is present then the 'tracks' field MUST NOT be present. A catalog MUST NOT list itself in the catalog array.</t>
        </section>
        <section anchor="catalogobject">
          <name>Catalog object</name>
          <t>A catalog object is a collection of fields whose location is specified as 'RC', 'TC' or 'RTC' in Table 1.</t>
        </section>
        <section anchor="trackobject">
          <name>Tracks object</name>
          <t>A track object is a collection of fields whose location is specified as 'RT', 'TC' or 'RTC' in Table 1.</t>
        </section>
        <section anchor="parentsequence">
          <name>Parent sequence number</name>
          <t>An optional integer specifying the catalog sequence number <xref target="sequencenumber"/> number from which this catalog represents a delta update. See <xref target="deltaupdate"/> for additional details. Absence of this parent sequence number indicates that this catalog is independent and completely describes the content available in the broadcast.</t>
        </section>
        <section anchor="tracknamespace">
          <name>Track namespace</name>
          <t>The name space under which the track name is defined. See section 2.3 of <xref target="MoQTransport"/>. The track namespace is required to be specified for each track object. If the track namespace is declared in the root of the JSON document, then its value is inherited by all tracks and catalogs and it does not need to be re-declared within each track or catalog object. A namespace declared in a track object or catalog object overwrites any inherited name space.</t>
        </section>
        <section anchor="trackname">
          <name>Track name</name>
          <t>A string defining the name of the track. See section 2.3 of <xref target="MoQTransport"/>. Within the catalog, track names MUST be unique per namespace.</t>
        </section>
        <section anchor="packaging">
          <name>Packaging</name>
          <t>A string defining the type of payload encapsulation. Allowed values are strings as defined in Table 2.</t>
          <t>Table 2: Allowed packaging values</t>
          <table>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
                <th align="left">Draft</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">CMAF</td>
                <td align="left">"cmaf"</td>
                <td align="left">See RFC XXXX</td>
              </tr>
              <tr>
                <td align="left">LOC</td>
                <td align="left">"loc"</td>
                <td align="left">See RFC XXXX</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="trackoperations">
          <name>Track operations</name>
          <t>Each track description can specify an optional operation value that identifies
the catalog producer's intent. Track operation is a enumeration of values
as defined below.</t>
          <ul spacing="normal">
            <li>Add: Indicates the track is added to the catalog and the consumers of the
 catalog may subscribe to the track.</li>
            <li>Delete: Indicates that media producer is no longer producing media on the
associated track. Subscribers SHOULD terminate their subscriptions.</li>
          </ul>
          <t>A catalog update in which all previously added tracks are deleted SHOULD be interpreted by a subscriber to indicate that the publisher has terminated the broadcast.</t>
          <t>Table 3 defines the numerical values for the track operations.</t>
          <t>Table 3: Allowed track operations</t>
          <table>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
                <th align="left">Default value</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Add</td>
                <td align="left">add</td>
                <td align="left">yes</td>
              </tr>
              <tr>
                <td align="left">Delete</td>
                <td align="left">delete</td>
                <td align="left"> </td>
              </tr>
            </tbody>
          </table>
          <t>The default track operation is 'add'. This value does not need to be declared in the track object.</t>
        </section>
        <section anchor="tracklabel">
          <name>Track label</name>
          <t>A string defining a human-readable label for the track. Examples might be "Overhead camera view" or "Deutscher Kommentar". Note that the <xref target="JSON"/> spec requires UTF-8 support by decoders.</t>
        </section>
        <section anchor="rendergroup">
          <name>Render group</name>
          <t>An integer specifying a group of tracks which are designed to be rendered together. Tracks with the same group number SHOULD be rendered simultaneously, are usually time-aligned and are designed to accompany one another. A common example would be tying together audio and video tracks.</t>
        </section>
        <section anchor="altgroup">
          <name>Alternate group</name>
          <t>An integer specifying a group of tracks which are alternate versions of one-another. Alternate tracks represent the same media content, but differ in their selection properties. Alternate tracks SHOULD have matching framerate <xref target="framerate"/> and media time sequences. A subscriber typically subscribes to one track from a set of tracks specifying the same alternate group number. A common example would be a set video tracks of the same content offered in alternate bitrates.</t>
        </section>
        <section anchor="initdata">
          <name>Initialization data</name>
          <t>A string holding Base64 <xref target="BASE64"/> encoded initialization data for the track.</t>
        </section>
        <section anchor="inittrack">
          <name>Initialization track</name>
          <t>A string specifying the track name of another track which holds initialization data for the current track. Initialization tracks MUST NOT be added to the tracks array <xref target="tracks"/>. They are referenced only via the initialization track field of the track which they initialize.</t>
        </section>
        <section anchor="selectionparameters">
          <name>Selection parameters</name>
          <t>An object holding a series of name/value pairs which a subscriber can use to select tracks for subscription. If present, the selection parameters object MUST NOT be empty. Any selection parameters declared at the root level are inherited by all tracks. A selection parameters object may exist at both the root and track level. Any declaration of a selection parameter at the track level overrides the inherited root value.</t>
        </section>
        <section anchor="dependencies">
          <name>Dependencies</name>
          <t>Certain tracks may depend on other tracks for decoding. Dependencies holds an array of track names <xref target="trackname"/> on which the current track is dependent. Since only the track name is signaled, the namespace of the dependencies is assumed to match that of the track declaring the dependencies.</t>
        </section>
        <section anchor="temporalid">
          <name>Temporal ID</name>
          <t>A number identifying the temporal layer/sub-layer encoding of the track, starting with 0 for the base layer, and increasing with higher temporal fidelity.</t>
        </section>
        <section anchor="spatialid">
          <name>Spatial ID</name>
          <t>A number identifying the spatial layer encoding of the track, starting with 0 for the base layer, and increasing with higher fidelity.</t>
        </section>
        <section anchor="codec">
          <name>Codec</name>
          <t>A string defining the codec used to encode the track.
For LOC packaged content, the string codec registrations are defined in Sect 3 and Section 4 of <xref target="WEBCODECS-CODEC-REGISTRY"/>.
For CMAF packaged content, the string codec registrations are defined in XXX.</t>
        </section>
        <section anchor="mimetype">
          <name>Mimetype</name>
          <t>A string defining the mime type <xref target="MIME"/> of the track. This parameter is typically supplied with CMAF packaged content.</t>
        </section>
        <section anchor="framerate">
          <name>Framerate</name>
          <t>A number defining the framerate of the track, expressed as frames per second.</t>
        </section>
        <section anchor="bitrate">
          <name>Bitrate</name>
          <t>A number defining the bitrate of track, expressed in bits second.</t>
        </section>
        <section anchor="width">
          <name>Width</name>
          <t>A number expressing the encoded width of the track content in pixels.</t>
        </section>
        <section anchor="height">
          <name>Height</name>
          <t>A number expressing the encoded height of the video frames in pixels.</t>
        </section>
        <section anchor="audiosamplerate">
          <name>Audio sample rate</name>
          <t>The number of audio frame samples per second. This property SHOULD only accompany audio codecs.</t>
        </section>
        <section anchor="channelconfiguration">
          <name>Channel configuration</name>
          <t>A string specifying the audio channel configuration. This property SHOULD only accompany audio codecs. A string is used in order to provide the flexibility to describe complex channel configurations for multi-channel and Next Generation Audio schemas.</t>
        </section>
        <section anchor="displaywidth">
          <name>Display width</name>
          <t>A number expressing the intended display width of the track content in pixels.</t>
        </section>
        <section anchor="displayheight">
          <name>Display height</name>
          <t>A number expressing the intended display height of the track content in pixels.</t>
        </section>
        <section anchor="language">
          <name>Language</name>
          <t>A string defining the dominant language of the track. The string MUST be one of the standard Tags for Identifying Languages as defined by <xref target="LANG"/>.</t>
        </section>
      </section>
      <section anchor="deltaupdate">
        <name>Catalog Delta Updates</name>
        <t>A catalog might contain incremental changes. This is a useful property if many tracks may be initially declared but then there are small changes to a subset of tracks. The producer can issue a delta update to describe these small changes. Changes are described incrementally, meaning that a delta-update can itself depend on a previous delta update.</t>
        <t>The following rules MUST be followed in processing delta updates:</t>
        <ul spacing="normal">
          <li>If a catalog is received without the parent sequence number field <xref target="parentsequence"/> defined, then it is an independent catalog and no delta update processing is required.</li>
          <li>If a catalog is received with the parent sequence number field present, then the contents of the catalog MUST be parsed as if the catalog contents had been added to the state represented by the catalog whose sequence number matches the parent sequence number. Newer field definitions overwrite older field definitions.</li>
          <li>Track namespaces may not be changed across delta updates.</li>
          <li>Contents of the track selection properties object may not be varied across updates. To adjust a track selection property, the track must first be removed and then added with the new selection properties and a different name.</li>
          <li>Track names may not be changed across delta updates. To change a track name, remove the track and then add a new track with the new name and matching properties.</li>
        </ul>
      </section>
      <section anchor="catalog-examples">
        <name>Catalog Examples</name>
        <t>The following section provides non-normative JSON examples of various catalogs compliant with this draft.</t>
        <section anchor="time-aligned-audiovideo-tracks-with-single-quality">
          <name>Time-aligned Audio/Video Tracks with single quality</name>
          <t>This example shows catalog for a media producer capable of sending LOC packaged, time-aligned audio and video tracks.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": 1,
  "sequence": 0,
  "streamingFormat": 1,
  "streamingFormatVersion": "0.2",
  "namespace": "conference.example.com/conference123/alice",
  "packaging": "loc",
  "renderGroup": 1,
  "tracks": [
    {
      "name": "video",
      "selectionParams":{"c":"av01.0.08M.10.0.110.09","wd":1920,"ht":1080,"fr":30,"br":1500000}
    },
    {
      "name": "audio",
      "selectionParams":{"c":"opus","sr":48000,"cc":"2","br":32000}
    }
   ]
}

]]></sourcecode>
        </section>
        <section anchor="simulcast-video-tracks-3-alternate-qualities-along-with-audio">
          <name>Simulcast video tracks - 3 alternate qualities along with audio</name>
          <t>This example shows catalog for a media producer capable
of sending 3 time-aligned video tracks for high definition, low definition and
medium definition video qualities, along with an audio track.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": 1,
  "sequence": 0,
  "streamingFormat": 1,
  "streamingFormatVersion": "0.2",
  "namespace": "conference.example.com/conference123/alice",
  "renderGroup": 1,
  "packaging": "loc",
  "tracks":[
    {
      "name": "hd",
      "selectionParams": {"c":"av01","wd":1920,"ht":1080,"br":5000000,"fr":30},
      "altGroup":1
    },
    {
      "name": "md",
      "selectionParams": {"c":"av01","wd":720,"ht":640,"br":3000000,"fr":30},
      "altGroup":1
    },
    {
      "name": "sd",
      "selectionParams": {"c":"av01","wd":192,"ht":144,"br":500000,"fr":30},
      "altGroup":1
    },
    {
      "name": "audio",
      "selectionParams":{"c":"opus","sr":48000,"cc":"2","br":32000},
    }
   ]
}
]]></sourcecode>
        </section>
        <section anchor="svc-video-tracks-with-2-spatial-and-2-temporal-qualities">
          <name>SVC video tracks with 2 spatial and 2 temporal qualities</name>
          <t>This example shows catalog for a media producer capable
of sending scalable video codec with 2 spatial and 2 temporal
layers with a dependency relation as shown below:</t>
          <sourcecode type="ascii-figure"><![CDATA[
                  +----------+
     +----------->|  S1T1    |
     |            | 1080p30  |
     |            +----------+
     |                  ^
     |                  |
+----------+            |
|  S1TO    |            |
| 1080p15  |            |
+----------+      +-----+----+
      ^           |  SOT1    |
      |           | 480p30   |
      |           +----------+
      |               ^
+----------+          |
|  SOTO     |         |
| 480p15    |---------+
+----------+
]]></sourcecode>
          <t>The corresponding catalog uses "depends" attribute to
express the track relationships.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": 1,
  "sequence": 0,
  "streamingFormat": 1,
  "streamingFormatVersion": "0.2",
  "namespace": "conference.example.com/conference123/alice",
  "renderGroup": 1,
  "packaging": "loc",
  "tracks":[
    {
      "name": "480p15",
      "selectionParams": {"c":"av01.0.01M.10.0.110.09","wd":640,"ht":480,"br":3000000,"fr":15},
    },
    {
      "name": "480p30",
      "selectionParams": {"c":"av01.0.04M.10.0.110.09","wd":640,"ht":480,"br":3000000,"fr":30},
      "depends": ["480p15"],
    },
    {
      "name": "1080p15",
      "selectionParams": {"c":"av01.0.05M.10.0.110.09","wd":1920,"ht":1080,"br":3000000,"fr":15},
      "depends":["480p15"]
    },

    {
      "name": "1080p30",
      "selectionParams": {"c":"av01.0.08M.10.0.110.09","wd":1920,"ht":1080,"br":5000000,"fr":30},
      "depends": ["480p30", "1080p15"]
    },
    {
      "name": "audio",
      "selectionParams":{"c":"opus","sr":48000,"cc":"2","br":32000},
    }
   ]
}
]]></sourcecode>
        </section>
        <section anchor="delta-update-adding-a-track">
          <name>Delta update adding a track</name>
          <t>This example shows catalog for the media producer adding a slide track to an established video conference</t>
          <sourcecode type="json"><![CDATA[
{
  "sequence": 1,
  "parentSequence":0,
  "tracks": [
    {
      "name": "slides",
      "selectionParams":{"c":"av01.0.08M.10.0.110.09","wd":1920,"ht":1080,"fr":15,"br":750000},
      "renderGroup":1
    }
   ]
}

]]></sourcecode>
        </section>
        <section anchor="delta-update-removing-a-track">
          <name>Delta update removing a track</name>
          <t>This example shows delat catalog update for a media producer removing a slide track from an established video conference</t>
          <sourcecode type="json"><![CDATA[
{
  "sequence": 2,
  "parentSequence":1,
  "tracks": [
    {
      "name": "slides",
      "operation": "delete"
    }
   ]
}

]]></sourcecode>
        </section>
        <section anchor="delta-update-removing-all-tracks-and-terminating-the-broadcast">
          <name>Delta update removing all tracks and terminating the broadcast</name>
          <t>This example shows a delta catalog update for a media producer removing all tracks and terminating the broadcast.</t>
          <sourcecode type="json"><![CDATA[
{
  "sequence": 3,
  "parentSequence":2,
  "operation": "delete",
  "tracks": [{"name": "audio"},{"name": "video"}]
}

]]></sourcecode>
        </section>
        <section anchor="cmaf-tracks-with-multiple-qualities-of-audio-and-video">
          <name>CMAF Tracks with multiple qualities of audio and video</name>
          <t>This example shows catalog for a sports broadcast sending time-aligned audio and video tracks using CMAF packaging. Init segments are delivered as separate tracks.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": 1,
  "sequence": 0,
  "streamingFormat": 1,
  "streamingFormatVersion": "0.2",
  "namespace": "sports.example.com/games/08-08-23/12345",
  "packaging": "cmaf",
  "renderGroup":1,
  "tracks": [
    {
      "name": "video_4k",
      "selectionParams":{"c":"avc1.640033","mt":"video/mp4","wd":3840,"ht":2160,"fr":30,"br":14931538},
      "initTrack":"init_video_4k",
      "altGroup": 1
    },
    {
      "altGroup": "video_1080",
      "selectionParams":{"c":"avc1.640028","mt":"video/mp4","wd":1920,"ht":1080,"fr":30,"br":9914554},
      "initTrack":"init_video_1080",
      "altGroup": 1
    },
    {
      "altGroup": "video_720",
      "selectionParams":{"c":"avc1.64001f","mt":"video/mp4","wd":1280,"ht":720,"fr":30,"br":4952892},
      "initTrack":"init_video_720",
      "altGroup": 1
    },
    {
      "altGroup": "audio_aac",
      "selectionParams":{"c":"mp4a.40.5","mt":"audio/mp4","sr":48000,"cc":"2","br":67071},
      "initTrack":"init_audio_aac",
      "altGroup": 2
    },
    {
      "name": "audio_ec3",
      "selectionParms":{"c":"ec-3","mt":"audio/mp4","sr":48000,"cc":"F801","br":256000},
      "initTrack":"init_audio_ec3",
      "altGroup": 2
    }
   ]
}
]]></sourcecode>
        </section>
        <section anchor="mixed-format-example-cmaf-and-loc-packaging-in-the-same-catalog">
          <name>Mixed format example - CMAF and LOC packaging in the same catalog</name>
          <t>This example shows catalog describing a broadcast with CMAF packaged video and LOC packaged audio.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": 1,
  "sequence": 0,
  "streamingFormat": 1,
  "streamingFormatVersion": "0.2",
  "namespace": "output.example.com/event/12345",
  "renderGroup":1
  "tracks": [
    {
      "name": "video0",
      "selectionParams":{"c":"avc1.64001f","mt":"video/mp4","wd":1280,"ht":720,"fr":30,"br":4952892},
      "initTrack":"init_video_720",
      "packaging":"cmaf",
    },
    {
      "name": "audio",
      "selectionParams":{"c":"opus","sr":48000,"cc":"2","br":32000},
      "packaging": "loc",
    }
   ]
}
]]></sourcecode>
        </section>
        <section anchor="cmaf-tracks-with-inband-init-segments">
          <name>CMAF Tracks with inband init segments</name>
          <t>This example shows catalog for a sports broadcast sending time-aligned audio and video tracks using CMAF packaging. Init segments are delivered as inband data.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": 1,
  "sequence": 0,
  "streamingFormat": 1,
  "streamingFormatVersion": "0.2",
  "namespace": "sports.example.com/games/08-08-23/12345",
  "packaging": "cmaf",
  "renderGroup":1,
  "tracks": [
    {
      "name": "video_1080",
      "selectionParams":{"c":"avc1.640028","mt":"video/mp4","wd":1920,"ht":1080,"fr":30,"br":9914554},
"initData":"AAAAGGZ0eXBpc282AAAAAWlzbzZkYXNoAAAARWZyZWVJc29NZWRpYSBGaWxlIFByb2R1Y2VkIHdpdGggR1BBQyAxLjAuMS1yZXYwLWdkODUzOGU4YS1tYXN0ZXIAAAADLW1vb3YAAABsbXZoZAAAAADfdnly33Z5cgABX5AAAAAAAAEAAAEAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAA4bXZleAAAABBtZWhkAAAAAAPwOXgAAAAgdHJleAAAAAAAAAABAAAAAQAAA+gAAAAAAAEAAAAAAkd0cmFrAAAAXHRraGQAAAAB33Y1w992eXIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAABQAAAAIWAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAAAAAAD6AABAAAAAAG/bWRpYQAAACBtZGhkAAAAAN92NcPfdnlyAABdwAAAAAAVxwAAAAAAQGhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAAAfTWFpbmNvbmNlcHQgVmlkZW8gTWVkaWEgSGFuZGxlcgAAAVdtaW5mAAAAFHZtaGQAAAABAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAADkc3RibAAAAJhzdHNkAAAAAAAAAAEAAACIYXZjMQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAUAAhYASAAAAEgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj//wAAADJhdmNDAU1AH//hABpnTUAfllKAoAi/NNQYGBkAAAMAAQAAAwAwhAEABWjpCTUgAAAAEHN0dHMAAAAAAAAAAAAAABBzdHNjAAAAAAAAAAAAAAAUc3RzegAAAAAAAAAAAAAAAAAAABBzdGNvAAAAAAAAAAAAAAAzaGRscgAAAAAAAAAAYWxpcwAAAAAAAAAAAAAAAEFsaWFzIERhdGEgSGFuZGxlcgAAAAA6dWR0YQAAABepVElNAAsAADAwOjAwOjAwOjAwAAAADqlUU0MAAgAAMjQAAAANqVRTWgABAAAx"
    },
    {
      "name": "audio_aac",
      "selectionParams":{"c":"mp4a.40.5","mt":"audio/mp4","sr":48000,"cc":"2","br":67071},
"initData":"AAAAGGZ0eXBpc282AAAAAWlzbzZkYXNoAAAARWZyZWVJc29NZWRpYSBGaWxlIFByb2R1Y2VkIHdpdGggR1BBQyAxLjAuMS1yZXYwLWdkODUzOGU4YS1tYXN0ZXIAAAACzG1vb3YAAABsbXZoZAAAAADfdnly33Z5cgABX5AAAAAAAAEAAAEAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAA4bXZleAAAABBtZWhkAAAAAAPwSAAAAAAgdHJleAAAAAAAAAACAAAAAQAABAAAAAAAAgAAAAAAAeZ0cmFrAAAAXHRraGQAAAAB33Y1w992eXIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAGCbWRpYQAAACBtZGhkAAAAAN92NcPfdnlyAAC7gAAAAAAVxwAAAAAARGhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAAAjTWFpbmNvbmNlcHQgTVA0IFNvdW5kIE1lZGlhIEhhbmRsZXIAAAEWbWluZgAAABBzbWhkAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAACnc3RibAAAAFtzdHNkAAAAAAAAAAEAAABLbXA0YQAAAAAAAAABAAAAAAAAAAAAAgAQAAAAALuAAAAAAAAnZXNkcwAAAAADGQAAAAQRQBUABgAACBXTAATXtwUCEZAGAQIAAAAQc3R0cwAAAAAAAAAAAAAAEHN0c2MAAAAAAAAAAAAAABRzdHN6AAAAAAAAAAAAAAAAAAAAEHN0Y28AAAAAAAAAAAAAADNoZGxyAAAAAAAAAABhbGlzAAAAAAAAAAAAAAAAQWxpYXMgRGF0YSBIYW5kbGVyAAAAADp1ZHRhAAAAF6lUSU0ACwAAMDA6MDA6MDA6MDAAAAAOqVRTQwACAAAyNAAAAA2pVFNaAAEAADE="
    }
   ]
}
]]></sourcecode>
        </section>
        <section anchor="time-aligned-audiovideo-tracks-with-custom-field-values">
          <name>Time-aligned Audio/Video Tracks with custom field values</name>
          <t>This example shows catalog for a media producer capable of sending LOC packaged, time-aligned audio and video tracks along with custom fields in each track description.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": 1,
  "sequence": 0,
  "streamingFormat": 1,
  "streamingFormatVersion": "0.2",
  "namespace": "conference.example.com/conference123/alice",
  "packaging": "loc",
  "renderGroup": 1,
  "tracks": [
    {
      "name": "video",
      "selectionParams":{"c":"av01.0.08M.10.0.110.09","wd":1920,"ht":1080,"fr":30,"br":1500000},
      "com.example-billing-code": 3201,
      "com.example-tier": "premium",
      "com.example-debug": "h349835bfkjfg82394d945034jsdfn349fns"
    },
    {
      "name": "audio",
      "selectionParams":{"c":"opus","sr":48000,"cc":"2","br":32000}
    }
   ]
}

]]></sourcecode>
        </section>
        <section anchor="a-catalog-referencing-catalogs-for-two-different-formats">
          <name>A catalog referencing catalogs for two different formats</name>
          <t>This example shows the catalog for a media producer that is outputting two streaming formats simultaneously under different namespaces. Note that each track name referenced points at another catalog object.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": 1,
  "sequence": 0,
  "catalogs": [
    {
      "name": "catalog-for-format-one",
      "namespace": "sports.example.com/games/08-08-23/live",
      "streamingFormat":1,
      "streamingFormatVersion": "0.2"
    },
    {
      "name": "catalog-for-format-five",
      "namespace": "chat.example.com/games/08-08-23/chat",
      "streamingFormat":5,
      "streamingFormatVersion": "1.6.2"
    }
  ]
}

]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The catalog contents MAY be encrypted. The mechanism of encryption and the signalling of the keys are left to the Streaming Format referencing this catalog format.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This section details how the MoQ Streaming Format Type can be registered. The type registry can be updated by incrementally expanding the type space, i.e., by allocating and reserving new type identifiers. As per [RFC8126], this section details the creation of the "MoQ Streaming Format Type" registry.</t>
      <section anchor="moq-streaming-format-type-registry">
        <name>MoQ Streaming Format Type Registry</name>
        <t>This document creates a new registry, "MoQ Streaming Format Type". The registry policy is "RFC Required". The Type value is 2 octets. The range is 0x0000-0xFFFF.The initial entry in the registry is:</t>
        <artwork><![CDATA[
     +--------+-------------+----------------------------------+
     | Type   |     Name    |            RFC                   |
     +--------+-------------+----------------------------------+
     | 0x0000 |   Reserved  |                                  |
     +--------+-------------+----------------------------------+
]]></artwork>
        <t>Every MoQ streaming format draft normatively referencing this catalog format MUST register itself a unique type identifier.</t>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <ul spacing="normal">
        <li>Suhas Nandakumar &amp; Mo Zanaty - this <eref target="https://github.com/suhasHere/moq-drafts/tree/master/moq-catalog">draft</eref>.</li>
        <li>The IETF MoQ mailing lists and discussion groups.</li>
      </ul>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="MoQTransport">
        <front>
          <title>Media over QUIC Transport</title>
          <author fullname="Luke Curley" initials="L." surname="Curley">
            <organization>Twitch</organization>
          </author>
          <author fullname="Kirill Pugin" initials="K." surname="Pugin">
            <organization>Meta</organization>
          </author>
          <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
            <organization>Cisco</organization>
          </author>
          <author fullname="Victor Vasiliev" initials="V." surname="Vasiliev">
            <organization>Google</organization>
          </author>
          <date day="5" month="July" year="2023"/>
          <abstract>
            <t>   This document defines the core behavior for Media over QUIC Transport
   (MOQT), a media transport protocol over QUIC.  MOQT allows a producer
   of media to publish data and have it consumed via subscription by a
   multiplicity of endpoints.  It supports intermediate content
   distribution networks and is designed for high scale and low latency
   distribution.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-moq-transport-00"/>
      </reference>
      <reference anchor="Framemarking">
        <front>
          <title>Video Frame Marking RTP Header Extension</title>
          <author fullname="Mo Zanaty" initials="M." surname="Zanaty">
            <organization>Cisco Systems</organization>
          </author>
          <author fullname="Espen Berger" initials="E." surname="Berger">
            <organization>Cisco Systems</organization>
          </author>
          <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
            <organization>Cisco Systems</organization>
          </author>
          <date day="26" month="July" year="2023"/>
          <abstract>
            <t>   This document describes a Video Frame Marking RTP header extension
   used to convey information about video frames that is critical for
   error recovery and packet forwarding in RTP middleboxes or network
   nodes.  It is most useful when media is encrypted, and essential when
   the middlebox or node has no access to the media decryption keys.  It
   is also useful for codec-agnostic processing of encrypted or
   unencrypted media, while it also supports extensions for codec-
   specific information.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-avtext-framemarking-15"/>
      </reference>
      <reference anchor="WebCodecs" target="https://www.w3.org/TR/webcodecs/">
        <front>
          <title>WebCodecs</title>
          <author>
            <organization/>
          </author>
          <date year="2023" month="July"/>
        </front>
      </reference>
      <reference anchor="WEBCODECS-CODEC-REGISTRY" target="https://www.w3.org/TR/webcodecs-codec-registry/">
        <front>
          <title>WebCodecs Codec Registry</title>
          <author>
            <organization/>
          </author>
          <date year="2023" month="July"/>
        </front>
      </reference>
      <reference anchor="CMAF">
        <front>
          <title>Information technology -- Multimedia application format (MPEG-A) -- Part 19: Common media application format (CMAF) for segmented media</title>
          <author>
            <organization/>
          </author>
          <date year="2020" month="March"/>
        </front>
      </reference>
      <reference anchor="JSON">
        <front>
          <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
          <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
          <date month="December" year="2017"/>
          <abstract>
            <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
            <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="90"/>
        <seriesInfo name="RFC" value="8259"/>
        <seriesInfo name="DOI" value="10.17487/RFC8259"/>
      </reference>
      <reference anchor="BASE64">
        <front>
          <title>The Base16, Base32, and Base64 Data Encodings</title>
          <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
          <date month="October" year="2006"/>
          <abstract>
            <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4648"/>
        <seriesInfo name="DOI" value="10.17487/RFC4648"/>
      </reference>
      <reference anchor="LANG">
        <front>
          <title>Tags for Identifying Languages</title>
          <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips"/>
          <author fullname="M. Davis" initials="M." role="editor" surname="Davis"/>
          <date month="September" year="2009"/>
          <abstract>
            <t>This document describes the structure, content, construction, and semantics of language tags for use in cases where it is desirable to indicate the language used in an information object. It also describes how to register values for use in language tags and the creation of user-defined extensions for private interchange. 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="47"/>
        <seriesInfo name="RFC" value="5646"/>
        <seriesInfo name="DOI" value="10.17487/RFC5646"/>
      </reference>
      <reference anchor="MIME">
        <front>
          <title>Media Type Specifications and Registration Procedures</title>
          <author fullname="N. Freed" initials="N." surname="Freed"/>
          <author fullname="J. Klensin" initials="J." surname="Klensin"/>
          <author fullname="T. Hansen" initials="T." surname="Hansen"/>
          <date month="January" year="2013"/>
          <abstract>
            <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="13"/>
        <seriesInfo name="RFC" value="6838"/>
        <seriesInfo name="DOI" value="10.17487/RFC6838"/>
      </reference>
    </references>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
