Summary

  • The IETF MOQ working group's 1 October revision of Media over QUIC Transport changes LOCATION_FILTER, parameter type 0x21: the field after the parameter type is now a Location Filter Type, not the byte Length used in revision 21. Six defined type values select the permitted shape; any other value is a protocol violation.
  • The change log singles this out as a session and control-plane change. Other revisions in the same update, including the clearer language about pausing subscriptions, are listed as editorial work. Revision 22 is still an active Internet-Draft, not an RFC or a report that any live service has failed.

Consider a subscriber asking for the next objects of a live track. The request may reach a relay over a healthy QUIC connection, yet delivery depends on a smaller question: did both sides decode the requested location in the same way? That is the boundary made visible by revision 22. It does not alter the ambition of MOQT as a publish/subscribe transport; it changes how a receiver knows which version of a filter it has been sent.

In revision 21, LOCATION_FILTER began with parameter type 0x21, then a variable-length integer called Length. The length, measured in bytes, determined whether zero, one, two, three or four optional variable-length integers followed. A zero-length field meant no filter. A two-field form in which both values were zero meant “Next Object”. Relative start and absolute ranges were differentiated through the number and values of the following fields.

Revision 22 retains 0x21 but replaces that second field with Location Filter Type. Values 0x00 through 0x05 now say, before the optional fields are read, whether the request contains no filter, a relative start, an absolute start, a group-ending range, a full absolute range or Next Object. The last of these needs no two-zero special case: type 0x05 carries no following fields. An unrecognized type requires PROTOCOL_VIOLATION. The meaning of a location still depends on the rest of the draft, but its wire shape is no longer inferred from a byte count.

This is not a licence to say that every deployed MOQT relay is suddenly broken. The Datatracker lists a working-group Internet-Draft in I-D Exists state, and the text describes draft-numbered ALPN identifiers for protocol negotiation over QUIC, with the corresponding WebTransport protocol mechanism. A correct implementation can keep different draft versions separate. The operational inference is narrower: code and interop tests that assume the old Length field while claiming support for version 22 need review, especially at a relay that receives a request on one leg and creates a request on another.

The filter can appear in FETCH, SUBSCRIBE, PUBLISH, REQUEST_UPDATE for a subscription and PUBLISH_STATE_NOTIFY. That breadth makes the change more than a corner case in a player UI. A subscriber may ask for a range, a publisher may advertise one, or a relay may report the effective filter. In each path, an accepted session is not proof that the intended selection of objects survived the control plane. The draft does not publish a measured failure rate or claim an exploit; it states the proposed encoding and the mandatory response to an unknown type.

The appendix helps avoid overstating novelty. It lists the explicit filter type under “Session and Control Plane” since revision 21. It separately calls the new pause-subscription description, fetch discussion and naming changes editorial. Those clarifications can matter to implementers, but they should not be reported as if the pause capability itself first appeared on 1 October. The distinct news fact is the location-filter discriminant.

Sources