§9.2.

Object Datagram

An OBJECT_DATAGRAM carries a single object in a datagram.

An Object received in an OBJECT_DATAGRAM message has an Object Forwarding Preference = Datagram. To send an Object with Object Forwarding Preference = Datagram, determine the length of the header and payload and send the Object as datagram. In certain scenarios where the object size can be larger than maximum datagram size for the session, the Object will be dropped.

OBJECT_DATAGRAM {
  Type (i),
  Track Alias (i),
  Group ID (i),
  Object ID (i),
  Publisher Priority (8),
  [Extension Headers Length (i),
  Extension headers (...)],
  Object Payload (..),
}
Figure 30: MOQT OBJECT_DATAGRAM

The Type field takes the form 0b0000000X (or the set of values from 0x00 to 0x01). The LSB of the type determines if the Extensions Headers Length and Extension headers are present. If an endpoint receives a datagram with Type 0x01 and Extension Headers Length is 0, it MUST close the session with Protocol Violation.

There is no explicit length field. The entirety of the transport datagram following Publisher Priority contains the Object Payload.

This is one section of the MoQT specification, rendered per-section for quick reference and citation. The authoritative text is draft-ietf-moq-transport-11 at the IETF.