Skip to content

MoQT draft-14 Control Message Types

MoQT draft-14 defines 30 control message types and marks 3 code points reserved — 33 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-14 text.

Renamed or retired

  • 0xB PUBLISH_DONE — was SUBSCRIBE_DONE in draft-13
  • 0x6 PUBLISH_NAMESPACE — was ANNOUNCE in draft-13
  • 0x7 PUBLISH_NAMESPACE_OK — was ANNOUNCE_OK in draft-13
  • 0x8 PUBLISH_NAMESPACE_ERROR — was ANNOUNCE_ERROR in draft-13
  • 0x9 PUBLISH_NAMESPACE_DONE — was UNANNOUNCE in draft-13
  • 0xC PUBLISH_NAMESPACE_CANCEL — was ANNOUNCE_CANCEL in draft-13
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 10
0x21 SERVER_SETUP §9.3 4
0x10 GOAWAY §9.4 5
0x15 MAX_REQUEST_ID §9.5 3
0x1A REQUESTS_BLOCKED §9.6 2
0x3 SUBSCRIBE §9.7 10
0x4 SUBSCRIBE_OK §9.8 5
0x5 SUBSCRIBE_ERROR §9.9 10
0x2 SUBSCRIBE_UPDATE §9.10 4
0xA UNSUBSCRIBE §9.11 4
0xB PUBLISH_DONE §9.12 10
0x1D PUBLISH §9.13 6
0x1E PUBLISH_OK §9.14 5
0x1F PUBLISH_ERROR §9.15 7
0x16 FETCH §9.16 6
0x18 FETCH_OK §9.17 4
0x19 FETCH_ERROR §9.18 13
0x17 FETCH_CANCEL §9.19 2
0xD TRACK_STATUS §9.20 4
0xE TRACK_STATUS_OK §9.21 4
0xF TRACK_STATUS_ERROR §9.22 10
0x6 PUBLISH_NAMESPACE §9.23 4
0x7 PUBLISH_NAMESPACE_OK §9.24 2
0x8 PUBLISH_NAMESPACE_ERROR §9.25 9
0x9 PUBLISH_NAMESPACE_DONE §9.26 3
0xC PUBLISH_NAMESPACE_CANCEL §9.27 3
0x11 SUBSCRIBE_NAMESPACE §9.28 4
0x12 SUBSCRIBE_NAMESPACE_OK §9.29 2
0x13 SUBSCRIBE_NAMESPACE_ERROR §9.30 10
0x14 UNSUBSCRIBE_NAMESPACE §9.31 3

33 rows from the Control Messages table of draft-14. 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 168 encode/decode vectors for draft-14 across 30 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 30 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-14, in the frozen rendering this site keeps at spec-sources/draft-14.html. That file hashes to 1bd3bcf31ffd57226c022637cf09be9dddce670d33af2f8d1d4d2055e4131911, which is the same source_sha256 the moqtap codec's committed registry extraction records for draft-14 — 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-14 error codes · Read draft-14 section by section

moqtap covers drafts 07 through 20.

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