Skip to content

MoQT draft-15 Control Message Types

MoQT draft-15 defines 23 control message types and marks 3 code points reserved — 26 rows in all. The type code is the first field of every control message, so this is the table a decoder dispatches on.

The rows come from the draft's own Control Messages table, not from a hand-kept list. For the field layout of a message, follow its section link into the draft-15 text.

Renamed or retired

  • 0x7 REQUEST_OK — was PUBLISH_NAMESPACE_OK in draft-14
  • 0x5 REQUEST_ERROR — was SUBSCRIBE_ERROR in draft-14

Removed

  • 0x1F PUBLISH_ERROR
  • 0x19 FETCH_ERROR
  • 0xE TRACK_STATUS_OK
  • 0xF TRACK_STATUS_ERROR
  • 0x8 PUBLISH_NAMESPACE_ERROR
  • 0x12 SUBSCRIBE_NAMESPACE_OK
  • 0x13 SUBSCRIBE_NAMESPACE_ERROR
Type Message Defined in Test vectors
0x01 RESERVED — SETUP for version 00
0x40 RESERVED — CLIENT_SETUP for versions <= 10
0x41 RESERVED — SERVER_SETUP for versions <= 10
0x20 CLIENT_SETUP §9.3 11
0x21 SERVER_SETUP §9.3 4
0x10 GOAWAY §9.4 5
0x15 MAX_REQUEST_ID §9.5 3
0x1A REQUESTS_BLOCKED §9.6 2
0x7 REQUEST_OK §9.7 3
0x5 REQUEST_ERROR §9.8 15
0x3 SUBSCRIBE §9.9 12
0x4 SUBSCRIBE_OK §9.10 9
0x2 SUBSCRIBE_UPDATE §9.11 4
0xA UNSUBSCRIBE §9.12 4
0x1D PUBLISH §9.13 7
0x1E PUBLISH_OK §9.14 7
0xB PUBLISH_DONE §9.15 10
0x16 FETCH §9.16 6
0x18 FETCH_OK §9.17 4
0x17 FETCH_CANCEL §9.18 2
0xD TRACK_STATUS §9.19 5
0x6 PUBLISH_NAMESPACE §9.20 4
0x9 PUBLISH_NAMESPACE_DONE §9.21 3
0xC PUBLISH_NAMESPACE_CANCEL §9.22 3
0x11 SUBSCRIBE_NAMESPACE §9.23 4
0x14 UNSUBSCRIBE_NAMESPACE §9.24 2

26 rows from the Control Messages table of draft-15. The test-vector column counts the encode/decode vectors moqtap publishes for that type; it is a cross-check, not part of the registry.

Cross-check against the test-vector corpus

Section titled “Cross-check against the test-vector corpus”

moqtap publishes 129 encode/decode vectors for draft-15 across 23 message types, and all three moqtap implementations validate against them. Comparing that corpus with the draft's table is an independent check on this page: all 23 assigned types have vectors.

Neither source has a message type the other lacks.

The table is parsed from table-1 of draft-ietf-moq-transport-15, in the frozen rendering this site keeps at spec-sources/draft-15.html. That file hashes to 152e19d37385195267071ba1e673dba20244559151656ddda84f3d3fd861c7e8, which is the same source_sha256 the moqtap codec's committed registry extraction records for draft-15 — the two inputs are provably the same document.

Control message types are not an IANA registry in the drafts, so they are not part of the codec's registry extraction; the table id above is taken from that extraction's record of the tables it deliberately excluded, which is how this page finds the right table without guessing.

draft-15 error codes · Read draft-15 section by section

moqtap covers drafts 07 through 20.

All MoQT control message types, draft by draft · How control messages work