§14.

Grease

To ensure that implementations correctly handle unknown values and do not fail when encountering protocol extensions they do not understand, this document reserves a range of values for the purpose of greasing; see Section 3.3 of [RFC9170].

Grease values follow the pattern 0x7f * N + 0x9D for non-negative integer values of N (that is, 0x9D, 0x11C, ..., 0x3fffffffffffffde).

The following registries include GREASE reservations:

Because new values in these registries can be defined without negotiation, implementations MUST handle unknown values gracefully. Endpoints MUST NOT close the session solely because they received an unknown value. The following rules apply:

Setup Options with reserved identifiers have no semantics and can carry arbitrary values. Endpoints MUST ignore unknown Setup Options as specified in Section 10.3.

Unknown Properties MUST be handled as specified in Section 2.5.

Receipt of an unknown error code in any error context (Session Termination, REQUEST_ERROR, PUBLISH_DONE, or Data Stream Reset) MUST be treated as equivalent to INTERNAL_ERROR for that context. An endpoint MUST NOT close the session because it received an unknown error code in a REQUEST_ERROR or PUBLISH_DONE.

This is one section of the MoQT specification, rendered per-section for quick reference and citation. The authoritative text is draft-ietf-moq-transport-18 at the IETF.