Skip to content

Conversation

@afrind
Copy link
Collaborator

@afrind afrind commented Oct 22, 2025

This is a proposal to address several open FETCH issues.

Replace UNKNOWN_STATUS_IN_RANGE with a data-stream encoding of an UNKNOWN range. This requires leaving DOES_NOT_EXIST serializations in fetch, so a omitted range can be split between DNE and UNKNOWN. But that seems OK to me.

I'm unsure if it addresses #945 completely, but it gives a bandwidth constrained publisher another option that doesn't completely fail the fetch. (Ian believes it does resolve #945, unless others object)

Fixes: #1265
Fixes: #1057
Fixes: #945

This is a proposal to address several open FETCH issues.

Replace UNKNOWN_STATUS_IN_RANGE with a data-stream encoding of an UNKNOWN range.  This requires leaving DOES_NOT_EXIST serializations in fetch, so a omitted range can be split between DNE and UNKNOWN.  But that seems OK to me.

I'm unsure if it addresses #945 completely, but it gives a bandwidth constrained publisher another option that doesn't completely fail the fetch.

Fixes: #1265 
Fixes: #1057 
Maybe addresses: #945
@afrind afrind added Design Issues or PRs that change how MoQ works including the wire format. Wire Format Related to how messages are serialized and parsed Fetch Issues related to Fetch. labels Oct 22, 2025
Copy link
Collaborator

@ianswett ianswett left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, LGTM

@ianswett ianswett added the Merge Ready Has the requisite number of approvals; all comments addressed. label Nov 8, 2025
@afrind afrind removed the Merge Ready Has the requisite number of approvals; all comments addressed. label Nov 8, 2025
@afrind afrind changed the title RFC: Allow unknown ranges in a FETCH response Allow unknown ranges in a FETCH response Nov 8, 2025
@afrind
Copy link
Collaborator Author

afrind commented Nov 13, 2025

@vasilvv would you like to propose alternate spelling?

@afrind
Copy link
Collaborator Author

afrind commented Nov 18, 2025

Discussed in 11/17 Interim:

The wg liked this general functionality but would like a richer set of "UNKNOWN" reasons like "publisher unavailable", etc. and agree #1342 should go first.

@afrind afrind added the Parked Issue we may discuss later or close as OBE label Nov 18, 2025
@afrind afrind removed the Parked Issue we may discuss later or close as OBE label Dec 1, 2025
@vasilvv
Copy link
Collaborator

vasilvv commented Dec 2, 2025

I've complained about the proposed syntax in this PR, so I am proposing the alternative:

If the highest bit in serialization flags is set, the following message is not an object, but some fetch-related metadata. The remaining 7 bits denote the type of the metadata in question. The first byte immediately after that indicates metadata length.

We define Flags = 0x80 to mean "range of objects with unknown status". It has the following syntax:

Serialization Flags (8) = 0x80,
Metadata Length (i),
Start Group (i),
Start Object (i),
End Group (i),
End Object (i)

Not sure if the range end should be inclusive or not, probably not.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Design Issues or PRs that change how MoQ works including the wire format. Fetch Issues related to Fetch. Wire Format Related to how messages are serialized and parsed

Projects

None yet

4 participants