<?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-jennings-moq-log-04" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="moqt-log">Logging over Media over QUIC Transport</title>
    <seriesInfo name="Internet-Draft" value="draft-jennings-moq-log-04"/>
    <author initials="C." surname="Jennings" fullname="Cullen Jennings">
      <organization>Cisco</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>fluffy@iii.ca</email>
      </address>
    </author>
    <author initials="S." surname="Nandakumar" fullname="Suhas Nandakumar">
      <organization>Cisco</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>snandaku@cisco.com</email>
      </address>
    </author>
    <date year="2026" month="November" day="02"/>
    <area>transport</area>
    <workgroup/>
    <keyword>realtime</keyword>
    <keyword>quicr</keyword>
    <abstract>
      <?line 68?>

<t>Real time systems often run into the problems where the network
bandwidth for logging is shared with the real time media and impacts the
media quality. There is a desire to transport the logging data at an
appropriate priority level over the same transport as the media. This
allows the logging data to take advantage of times when the media
bitrate is below the peak rate while not impacting the peak rate
available for media.</t>
      <t>This document specifies how to send syslog <xref target="RFC5424"/> type information
over Media over QUIC Transport (MOQT) <xref target="MOQT"/>.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Media Over QUIC Working Group mailing list (moq@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/moq/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/fluffy/moq-log"/>.</t>
    </note>
  </front>
  <middle>
    <?line 81?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Each device that logs publishes its log messages as MOQT objects. The
devices or systems publishing the logs are referred to as resources and
have a unique ResourceID. Track names are set up such that a subscriber
can subscribe to the logs of each resource separately, and can pick the
log severity levels it wants. A log collector subscribes to the logs of
the resources it wishes to monitor, and MOQT relays cache logs so that
they can be retrieved later, when needed.</t>
      <t>The data model used is consistent with the OpenTelemetry logs data model
<xref target="OTEL"/> and a superset of the <xref target="RFC5424"/> data model for logging.</t>
      <t><xref target="RFC5424"/> specifies a layered architecture that provides for support
of any number of transport layer mappings for transmitting syslog
messages. This document describes the MOQT transport mapping for the
syslog protocol.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="arch">
      <name>Architecture Overview</name>
      <t>This section describes two deployment models for logging over MOQT. In
both, resources publish logs as MOQT tracks (see <xref target="naming"/>) to a relay,
and log collectors subscribe to them via relays. Relays cache logs so
that collectors can retrieve them later.</t>
      <section anchor="arch-shared">
        <name>Logs Sharing a Session with Media</name>
        <t>In this model, an endpoint such as a realtime conferencing client
publishes its media and its logs over the same MOQT session, and thus
the same QUIC connection, to its ingress relay. Media and logs share the
congestion control context of that connection, and MOQT priorities
(see <xref target="priorities"/>) determine what is sent when the available bandwidth
is limited. At the relay, media and logs are forwarded to different
destinations: media to the other participants, and logs to a log
collector, possibly through other relays.</t>
        <artwork type="ascii-art"><![CDATA[
                  one QUIC connection
              (shared congestion control)
+------------+                   +---------+  media  +--------------+
|  Endpoint  |      media        |         |-------->| Participants |
| +--------+ |==================>|         |         +--------------+
| | Media  | |                   |  Relay  |
| +--------+ |      logs         |         |  logs   +--------------+
| |  Logs  | |==================>| (cache) |-------->|     Log      |
| +--------+ |   (pri 128..240)  |         |         |  Collector   |
+------------+                   +---------+         +--------------+
]]></artwork>
        <t>When congestion occurs on the endpoint's connection, log messages of the
higher severity levels are the first to be delayed and, with
OBJECT_DELIVERY_TIMEOUT, dropped, while media is unaffected. The relay
continues to cache what it has received, and a collector can retrieve
logs for a time window of interest later (see <xref target="retrieval"/>).</t>
      </section>
      <section anchor="arch-dedicated">
        <name>Logs as the Primary Data</name>
        <t>In this model, the endpoints, such as servers, network devices or
sensors, send logs as their main data over MOQT. Each endpoint publishes
its log tracks to a relay, which may aggregate many endpoints, and one or
more log collectors subscribe to them.</t>
        <artwork type="ascii-art"><![CDATA[
+------------+
| Endpoint 1 |---logs----+
+------------+           |
                         v
+------------+      +---------+       +---------+     +-----------+
| Endpoint 2 |----->|  Relay  |------>|  Relay  |---->|    Log    |
+------------+      | (cache) |       | (cache) |     | Collector |
                    +---------+       +---------+     +-----------+
+------------+           ^                 |
| Endpoint N |---logs----+                 |          +-----------+
+------------+                             +--------->| Dashboard |
                                                      +-----------+
]]></artwork>
        <t>Collectors discover endpoints and subscribe to the severity levels of
interest (see <xref target="discovery"/>), while the remaining levels stay in relay
caches until needed (see <xref target="retrieval"/>).</t>
      </section>
    </section>
    <section anchor="sec-res-id">
      <name>Resource ID</name>
      <t>Each Resource that creates logs has a unique ResourceID. This is created
by taking the MAC address of the primary network interface in binary,
computing the SHA-1 hash of it, then truncating to lower 64 bits. Note
that SHA-1 does not provide any security properties here; it is just a
hash that is widely implemented in hardware. If this is not possible, any
other random stable 64-bit identifier <bcp14>MAY</bcp14> be used. The advantage of using
a MAC address is that many other management systems use this address and
using it makes it easier to correlate with other systems. The
disadvantage is that it reveals the MAC address.</t>
      <t>When carried in MOQT names, the ResourceID is encoded as exactly 16
lowercase hexadecimal ASCII characters.</t>
    </section>
    <section anchor="mapping">
      <name>Logs and MOQT</name>
      <section anchor="naming">
        <name>Track Naming</name>
        <t>Each resource publishes its logs under the Track Namespace consisting of
the following three Track Namespace Fields, each encoded as ASCII:</t>
        <artwork><![CDATA[
("logs.moq.arpa", "v1", <resourceID>)
]]></artwork>
        <t>The Track Namespace Prefix <tt>("logs.moq.arpa", "v1")</tt> is common to all
resources, which allows a collector to discover all resources (see
<xref target="discovery"/>). Within a resource's namespace there is one track per
severity level. The Track Name is a single ASCII digit identifying the
<xref target="RFC5424"/> severity of the log messages it carries:</t>
        <table>
          <name>Severity levels</name>
          <thead>
            <tr>
              <th align="left">Severity</th>
              <th align="center">Track Name</th>
              <th align="center">Default Publisher Priority</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Emergency</td>
              <td align="center">
                <tt>0</tt></td>
              <td align="center">128</td>
            </tr>
            <tr>
              <td align="left">Alert</td>
              <td align="center">
                <tt>1</tt></td>
              <td align="center">144</td>
            </tr>
            <tr>
              <td align="left">Critical</td>
              <td align="center">
                <tt>2</tt></td>
              <td align="center">160</td>
            </tr>
            <tr>
              <td align="left">Error</td>
              <td align="center">
                <tt>3</tt></td>
              <td align="center">176</td>
            </tr>
            <tr>
              <td align="left">Warning</td>
              <td align="center">
                <tt>4</tt></td>
              <td align="center">192</td>
            </tr>
            <tr>
              <td align="left">Notice</td>
              <td align="center">
                <tt>5</tt></td>
              <td align="center">208</td>
            </tr>
            <tr>
              <td align="left">Informational</td>
              <td align="center">
                <tt>6</tt></td>
              <td align="center">224</td>
            </tr>
            <tr>
              <td align="left">Debug</td>
              <td align="center">
                <tt>7</tt></td>
              <td align="center">240</td>
            </tr>
          </tbody>
        </table>
        <t>In this document, "lower levels" refers to Emergency (0) towards Error (3),
and "higher levels" to Warning (4) towards Debug (7).</t>
        <t>Using the serialization format in <xref section="8.8" sectionFormat="of" target="MOQT"/>, the
Informational track of the resource with ResourceID <tt>8f2c4a1b0e9d7c63</tt> is
rendered as:</t>
        <artwork><![CDATA[
logs.2emoq.2earpa-v1-8f2c4a1b0e9d7c63--6
]]></artwork>
      </section>
      <section anchor="groups">
        <name>Groups and Objects</name>
        <t>Each group in a log track holds the log messages produced by the resource
during one second. The Group ID is the start of that second, in seconds
since the UNIX Epoch (00:00:00 UTC on 1 January 1970). This satisfies the
requirement that Group IDs increase with time (<xref section="2.3.1" sectionFormat="of" target="MOQT"/>)
and allows subscribers to express time ranges directly as Location
filters (see <xref target="retrieval"/>).</t>
        <t>Each log message is one object, carrying a Log Record (<xref target="record"/>). Object
IDs start at 0 in each group and increase by one for each log message in
the order they are produced. Each object is self-contained, so a
subscriber can use any object without other objects of the group.</t>
        <t>All objects of a group <bcp14>MUST</bcp14> be sent in a single subgroup with Subgroup ID
0. The publisher sends each object as soon as the log message is
produced, keeping the subgroup open until the end of the second. The
publisher <bcp14>MUST</bcp14> then end the group with an object with the End of Group
Object Status (<xref section="11.1.1" sectionFormat="of" target="MOQT"/>) and an Object ID one greater
than the last log message, and close the subgroup. The Datagram delivery
mode <bcp14>MUST NOT</bcp14> be used.</t>
        <t>Seconds without log messages have no group. The publisher <bcp14>MUST</bcp14> include
the Prior Group ID Gap Object Property (<xref section="10.8" sectionFormat="of" target="MOQT"/>) on the
first object of each group, set to the number of seconds since the
previous group minus one, except on the first group it publishes after
starting, when the previous group is not known. This allows relays and
fetches to know that the intervening groups will never exist, rather than
leaving them in the unknown state. Object IDs within a group are
contiguous, so the Prior Object ID Gap Object Property is not used.</t>
      </section>
      <section anchor="record">
        <name>Log Record</name>
        <t>The payload of each log message object is a Log Record, encoded as
follows using the notation of <xref section="1.3" sectionFormat="of" target="RFC9000"/> and the
variable-length integer (vi64) of <xref section="8.1" sectionFormat="of" target="MOQT"/>.</t>
        <figure>
          <name>Log Record</name>
          <artwork><![CDATA[
Log Record {
  Timestamp Offset (vi64),
  Facility (vi64),
  Hostname Length (vi64),
  Hostname (..),
  App Name Length (vi64),
  App Name (..),
  Proc ID Length (vi64),
  Proc ID (..),
  Msg ID Length (vi64),
  Msg ID (..),
  Message Length (vi64),
  Message (..),
  Number of Attributes (vi64),
  Attribute (..) ...,
}

Attribute {
  Key Length (vi64),
  Key (..),
  Value Length (vi64),
  Value (..),
}
]]></artwork>
        </figure>
        <ul spacing="normal">
          <li>
            <t>Timestamp Offset: The nanoseconds to add to the Group ID, in seconds,
to obtain the time the log message was produced. The value is less
than 1000000000.</t>
          </li>
          <li>
            <t>Facility: The facility as defined in <xref target="RFC5424"/>, from 0 to 23.</t>
          </li>
          <li>
            <t>Hostname, App Name, Proc ID, Msg ID: The HOSTNAME, APP-NAME, PROCID
and MSGID fields as defined in <xref target="RFC5424"/>, as ASCII strings. An empty
field corresponds to the <xref target="RFC5424"/> NILVALUE.</t>
          </li>
          <li>
            <t>Message: The MSG as defined in <xref target="RFC5424"/>, as a UTF-8 string. This is
the Body in <xref target="OTEL"/>.</t>
          </li>
          <li>
            <t>Attribute: A key-value pair, where Key and Value are UTF-8 strings.
Attributes carry <xref target="RFC5424"/> structured data. The keys "TraceID" and
"SpanID", defined in <xref target="CRD-trace-context-2-20240328"/>, and
"InstrumentationScope" have the meaning defined in <xref target="OTEL"/>. Other
attributes map to Attributes in <xref target="OTEL"/>.</t>
          </li>
        </ul>
        <t>The severity of a log message is given by the track that carries it and
is not repeated in the Log Record. Receivers <bcp14>MUST</bcp14> ignore any bytes
following the fields defined in this document, to allow future extension.</t>
      </section>
      <section anchor="track-properties">
        <name>Track Properties</name>
        <t>Publishers <bcp14>SHOULD</bcp14> include the following Track Properties
(<xref section="8.4" sectionFormat="of" target="MOQT"/>) on each log track:</t>
        <ul spacing="normal">
          <li>
            <t>DEFAULT_PUBLISHER_PRIORITY: see <xref target="priorities"/>.</t>
          </li>
          <li>
            <t>DEFAULT_PUBLISHER_GROUP_ORDER: Ascending (0x1), so that collectors
receive log messages in order.</t>
          </li>
          <li>
            <t>MAX_CACHE_DURATION: the retention time for which relays may serve
cached log messages. Lower levels are typically retained longer than
higher levels.</t>
          </li>
          <li>
            <t>OBJECT_DELIVERY_TIMEOUT: for higher levels, a timeout after which a
stale log message is dropped rather than delivered late.</t>
          </li>
        </ul>
      </section>
      <section anchor="priorities">
        <name>Priorities</name>
        <t>Logs are expected to yield to the primary application under congestion.
The publisher <bcp14>SHOULD</bcp14> set the DEFAULT_PUBLISHER_PRIORITY Track Property of
each log track to the value in <xref target="naming"/>, or another value that keeps
lower levels ahead of higher levels. These values are in the lower
priority half of the range, behind the MOQT default of 128 typically used
for media, with Emergency at par with the default.</t>
        <t>Subscribers can adjust the relative importance of logs against other
subscriptions in the session using the SUBSCRIBER_PRIORITY parameter,
which is considered before publisher priority.</t>
      </section>
      <section anchor="discovery">
        <name>Discovery and Subscription</name>
        <t>A collector discovers resources by sending SUBSCRIBE_NAMESPACE with the
Track Namespace Prefix <tt>("logs.moq.arpa", "v1")</tt>. The relay responds with a
NAMESPACE message for each resource namespace, and NAMESPACE_DONE when a
resource stops publishing.</t>
        <t>For each discovered resource, the collector subscribes by name to the
tracks of the levels it wants to receive continuously, for example levels
0 to 3. Resources that start publishing later are learned from subsequent
NAMESPACE messages. Tracks of other levels are not subscribed to and
remain available from the relay cache via FETCH (see <xref target="retrieval"/>).</t>
        <t>Collectors can further select log messages using MOQT Object Property
range filters (<xref section="3.3.2" sectionFormat="of" target="MOQT"/>) on application-defined Object
Properties, which are outside the scope of this document. Range Filters
are only available when the relay advertises a non-zero
MAX_FILTER_RANGES, so collectors <bcp14>MUST</bcp14> be able to process unfiltered
tracks.</t>
      </section>
      <section anchor="retrieval">
        <name>Retrieval of Past Logs</name>
        <t>Since Group IDs are times in seconds, a time range of logs corresponds
directly to a range of Locations:</t>
        <ul spacing="normal">
          <li>
            <t>A collector retrieves past log messages for a time window <tt>[T1, T2]</tt> by
sending FETCH with a Location filter from {T1, 0} to {T2, max}. The
request is served from the relay cache, subject to MAX_CACHE_DURATION.</t>
          </li>
          <li>
            <t>A collector that wants recent history followed by live log messages
sends a SUBSCRIBE with a Location filter starting at the Next Object,
together with FILL_PARAMETERS whose Location filter selects the
starting point of the history. The relay delivers the history on a fill
fetch stream and live log messages on the subscription, without gaps or
duplicates (<xref section="3.4" sectionFormat="of" target="MOQT"/>).</t>
          </li>
          <li>
            <t>A collector that only needs live log messages subscribes with a
Location filter starting at the Next Object.</t>
          </li>
        </ul>
        <t>This enables "just in time" collection of logs: resources publish all
levels to a nearby relay, while collectors subscribe to the lower levels
and fetch the higher levels for the time windows of interest, for example
around an error.</t>
      </section>
      <section anchor="examples">
        <name>Examples</name>
        <t>On 31 December 1999, a server publishes two Informational log messages
in the second starting at 23:59:59 UTC (Group 946684799), and one more
five seconds later (Group 946684805).</t>
        <figure>
          <name>Log track example</name>
          <artwork type="ascii-art"><![CDATA[
Track "6", Group 946684799

 Obj  Content                         Meaning
 ---  ------------------------------  ----------------------------
  0   Log Record                      23:59:59.250000000
        offset 250000000 ns           user facility
        facility 1, app "y2kd"        "preparing for Y2K"
        msg "preparing for Y2K"
  1   Log Record                      23:59:59.900000000
        offset 900000000 ns           user facility
        facility 1, app "y2kd"        "shutting down for Y2K"
        msg "shutting down for Y2K"
  2   End of Group                    no further log messages

Track "6", Group 946684805

 Obj  Content                         Meaning
 ---  ------------------------------  ----------------------------
  0   Log Record                      2000-01-01 00:00:05.000120000
        offset 120000 ns              "back online"
        facility 1, app "y2kd"
        msg "back online"
        [Prior Group ID Gap 5]        no groups since previous one
  1   End of Group                    no further log messages

[ ] denotes an Object Property.
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="msf">
      <name>Use with MSF</name>
      <t>An MOQT Streaming Format (MSF) <xref target="MSF"/> catalog can
direct a client to publish logs using a <tt>publishTracks</tt> entry with a
<tt>packaging</tt> of <tt>"moqlog"</tt> and a <tt>role</tt> of <tt>"log"</tt>. In such an entry:</t>
      <ul spacing="normal">
        <li>
          <t><tt>namespace</tt> is the Track Namespace of <xref target="naming"/> rendered using
<xref section="8.8" sectionFormat="of" target="MOQT"/>, with <tt>%resourceId%</tt> as a placeholder for the
client's ResourceID: <tt>logs.2emoq.2earpa-v1-%resourceId%</tt>.</t>
        </li>
        <li>
          <t><tt>name</tt> is the track for a severity level (<xref target="naming"/>). A catalog can
include one entry per level it wants the client to publish.</t>
        </li>
      </ul>
    </section>
    <section anchor="sec-iana">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
    <section anchor="sec-security">
      <name>Security Considerations</name>
      <t>TODO</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <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="1" month="October" 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-22"/>
        </reference>
        <reference anchor="RFC5424">
          <front>
            <title>The Syslog Protocol</title>
            <author fullname="R. Gerhards" initials="R." surname="Gerhards"/>
            <date month="March" year="2009"/>
            <abstract>
              <t>This document describes the syslog protocol, which is used to convey event notification messages. This protocol utilizes a layered architecture, which allows the use of any number of transport protocols for transmission of syslog messages. It also provides a message format that allows vendor-specific extensions to be provided in a structured way.</t>
              <t>This document has been written with the original design goals for traditional syslog in mind. The need for a new layered specification has arisen because standardization efforts for reliable and secure syslog extensions suffer from the lack of a Standards-Track and transport-independent RFC. Without this document, each other standard needs to define its own syslog packet format and transport mechanism, which over time will introduce subtle compatibility issues. This document tries to provide a foundation that syslog extensions can build on. This layered architecture approach also provides a solid basis that allows code to be written once for each syslog feature rather than once for each transport. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5424"/>
          <seriesInfo name="DOI" value="10.17487/RFC5424"/>
        </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="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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="OTEL" target="https://opentelemetry.io/docs/specs/otel/logs/">
          <front>
            <title>OpenTelemetry Specification 1.34.0</title>
            <author initials="A." surname="Ruech" fullname="Armin Ruech">
              <organization/>
            </author>
            <date year="2024" month="June" day="11"/>
          </front>
        </reference>
        <reference anchor="CRD-trace-context-2-20240328" target="https://www.w3.org/TR/2024/CRD-trace-context-2-20240328/">
          <front>
            <title>Trace Context Level 2</title>
            <author initials="S." surname="Kanzhelev" fullname="Sergey Kanzhelev">
              <organization/>
            </author>
            <author initials="D." surname="Dyla" fullname="Daniel Dyla">
              <organization/>
            </author>
            <author initials="Y." surname="Shkuro" fullname="Yuri Shkuro">
              <organization/>
            </author>
            <author initials="J. K." surname="Sundaram" fullname="J. Kalyana Sundaram">
              <organization/>
            </author>
            <author initials="B." surname="Krol" fullname="Bastian Krol">
              <organization/>
            </author>
            <date year="2024" month="March" day="28"/>
          </front>
          <seriesInfo name="W3C" value="CRD-trace-context-2-20240328"/>
        </reference>
        <reference anchor="MSF">
          <front>
            <title>MOQT Streaming Format</title>
            <author fullname="Will Law" initials="W." surname="Law">
              <organization>Akamai</organization>
            </author>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <date day="2" month="June" year="2026"/>
            <abstract>
              <t>   This document specifies the MOQT Streaming Format, designed to
   operate on Media Over QUIC Transport.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-moq-msf-01"/>
        </reference>
      </references>
    </references>
    <?line 468?>

<section numbered="false" anchor="changes-from-the-03-version">
      <name>Changes from the -03 Version</name>
      <ul spacing="normal">
        <li>
          <t>Aligned with draft-ietf-moq-transport-22.</t>
        </li>
        <li>
          <t>Added an Architecture Overview describing logs sharing a session with
media, and logs as the primary data.</t>
        </li>
        <li>
          <t>Track Namespace is now the tuple ("logs.moq.arpa", "v1", resourceID),
replacing the moq:// URL form, and the Track Name is the severity level
as an ASCII digit.</t>
        </li>
        <li>
          <t>Each group holds the log messages of one second, sent on a single
subgroup and ended with an End of Group object, instead of one group
per log message.</t>
        </li>
        <li>
          <t>Log Records use a binary encoding following the MOQT notation instead
of JSON, with timestamps relative to the Group ID.</t>
        </li>
        <li>
          <t>Added the use of Prior Group ID Gap, Track Properties for priority,
group order, caching and delivery timeouts, SUBSCRIBE_NAMESPACE for
discovery, and FETCH and fill for time range retrieval.</t>
        </li>
        <li>
          <t>Added use with MSF.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Tim Evens for contributions and suggestions to this
specification.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
1EIjjP8/T2mL/wHHfrAb0kcAAA==

-->

</rfc>
