Conventions
Typographic Conventions
monospace-
Protocol field names, message names, and literal constants.
- italic
-
Defined terms on first use; see the Glossary.
- bold
-
Important normative constraints or emphasis.
Byte Diagrams
Byte diagrams depict individual bytes in transmission order (leftmost byte = first byte on the wire). Bit positions are numbered from the least-significant bit (bit 0) on the right to the most-significant bit (bit 7) on the left:
7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+ |FL3|FL2|FL1| ID | +---+---+---+---+---+---+---+---+
ID(bits 4:0)-
5-bit message-kind identifier.
FL1,FL2-
Message-specific single-bit flags.
FL3(bit 7)-
Always the
Z(Extensions) flag.
Multi-byte sequences are shown across successive rows; the first row is the byte transmitted first.
Field Notation
| Symbol | Meaning |
|---|---|
|
Fixed 1-byte unsigned integer |
|
Fixed 2-byte unsigned integer, little-endian |
|
VLE-encoded unsigned integer, underlying type |
|
VLE-encoded unsigned integer, underlying type |
|
VLE-encoded unsigned integer, underlying type |
|
VLE-encoded unsigned integer, underlying type |
|
Byte array: |
|
Byte array: |
|
UTF-8 string: |
|
VLE-encoded integer field in a byte diagram |
|
Variable-length byte sequence in a byte diagram |
|
Fixed-width byte boundary in a byte diagram |
Wire Diagram Conventions
In wire diagrams:
[header : u8] fixed 1-byte field % length : z32 % VLE-encoded field ~ [u8 × len] ~ variable-length byte sequence +---------------+ byte boundary (row separator) if F==1: ... field present only when flag F is set
Byte and Bit Order
All multi-byte fixed-width integers use little-endian byte order unless otherwise stated.
Bit positions within a byte run from 0 (least-significant) to 7 (most-significant).
RFC 2119 Conformance Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this specification are to be interpreted as described in RFC 2119.