From e611172831339c2c4db920ed844fe72379ccdac4 Mon Sep 17 00:00:00 2001 From: Michal Hosna Date: Thu, 6 Nov 2025 23:58:06 +0100 Subject: [PATCH] Key-Value-Pairs Delta encoding: Editorial reshuffle --- draft-ietf-moq-transport.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 9a022073..837ee08a 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -275,8 +275,14 @@ Location A < Location B if: Key-Value-Pair is a flexible structure designed to carry key/value pairs in which the key is a variable length integer and the value is either a variable length integer or a byte field of arbitrary -length. Key-Value-Pairs encode a Type value as a delta from the -previous Type value, or from 0 if there is no previous Type value. +length. + +Key-Value-Pairs encode a Type value as a delta from the previous Type value, +or from 0 if there is no previous Type value. This is efficient on the wire +and makes it easy to ensure there is only one instance of a type when needed. +The previous Type value plus the Delta Type MUST NOT be greater than 2^64 - 1. +If a Delta Type is received that would be too large, the Session MUST be closed +with a `PROTOCOL_VIOLATION`. Key-Value-Pair is used in both the data plane and control plane, but is optimized for use in the data plane. @@ -1628,12 +1634,7 @@ Receivers ignore unrecognized parameters. The number of parameters in a message is not specifically limited, but the total length of a control message is limited to 2^16-1 bytes. -Parameters are serialized as Key-Value-Pairs {{moq-key-value-pair}} in -increasing Parameter ID order with a delta encoding. This is efficient on the -wire and makes it easy to ensure there is only one instance of parameters -that cannot be repeated. The previous Type value plus the Delta Type MUST NOT be -greater than 2^64 - 1. If a Delta Type is received that would be too large, the Session -MUST be closed with a `PROTOCOL_VIOLATION`. +Parameters are serialized as Key-Value-Pairs {{moq-key-value-pair}}. Setup message parameters use a namespace that is constant across all MOQT versions. All other messages use a version-specific namespace. @@ -3167,8 +3168,8 @@ definition of the extension, Extension Headers MAY be modified, added, removed, and/or cached by relays. Object Extension Headers are serialized as Key-Value-Pairs (see -{{moq-key-value-pair}}) in increasing extension type order with a delta encoding, -prefixed by the length of the serialized Key-Value-Pairs, in bytes. +{{moq-key-value-pair}}), prefixed by the length of the serialized +Key-Value-Pairs, in bytes. ~~~ Extensions {