Skip to content

MoQT draft-23 Control Message Types

MoQT draft-23 defines 18 control message types and marks 7 code points reserved — 25 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-23 text.

Renamed or retired

  • 0x18 RESERVED — was FETCH_OK in draft-22
Type Message Stream Defined in Test vectors
0x01 RESERVED — SETUP for version 00 — — —
0x40 RESERVED — CLIENT_SETUP for <= 10 — — —
0x41 RESERVED — SERVER_SETUP for <= 10 — — —
0x20 RESERVED — CLIENT_SETUP in <= 16 — — —
0x21 RESERVED — SERVER_SETUP in <= 16 — — —
0x2F00 SETUP Control §9.1 20
0x10 GOAWAY Control, Request §9.2 6
0x3 SUBSCRIBE Request, First §9.6 65
0x4 SUBSCRIBE_OK Request §9.7 11
0x22 PUBLISH_STATE_NOTIFY Request §9.10 11
0x1D PUBLISH Request, First §9.8 21
0x1E RESERVED — PUBLISH_OK in <= 17 Request — —
0xB PUBLISH_DONE Request §9.9 14
0x16 FETCH Request, First §9.11 27
0x18 RESERVED — FETCH_OK in <= 22 Request — —
0xD TRACK_STATUS Request, First §9.12 5
0x6 PUBLISH_NAMESPACE Request, First §9.13 4
0x50 SUBSCRIBE_NAMESPACE Request, First §9.14 5
0x51 SUBSCRIBE_TRACKS Request, First §9.17 23
0x8 NAMESPACE Request §9.15 7
0xE NAMESPACE_DONE Request §9.16 3
0xF PUBLISH_SKIPPED Request §9.18 4
0x2 REQUEST_UPDATE Request §9.5 17
0x7 REQUEST_OK Request §9.3 30
0x5 REQUEST_ERROR Request §9.4 34

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

The Stream column is the draft's own: Control for messages on the session control stream, Request for messages on a per-request bidirectional stream, and First for a message that must open one.

Cross-check against the test-vector corpus

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

moqtap publishes 307 encode/decode vectors for draft-23 across 19 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 18 assigned types have vectors.

Neither source has a message type the other lacks.

The table is parsed from table-5 of draft-ietf-moq-transport-23, in the frozen rendering this site keeps at spec-sources/draft-23.html. That file hashes to 203e55504db185384e9c9bcc06ca551ab4b53437cb8b1061f9d1d52983e879b5, which is the same source_sha256 the moqtap codec's committed registry extraction records for draft-23 — 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-23 error codes · Read draft-23 section by section

moqtap covers drafts 07 through 23.

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