@@ -2255,10 +2255,6 @@ INVALID_JOINING_REQUEST_ID(0x32):
22552255: In response to a Joining FETCH, the referenced Request ID is not an
22562256` Established` Subscription.
22572257
2258- UNKNOWN_STATUS_IN_RANGE(0x33) :
2259- : In response to a FETCH, the requested range contains an object with unknown
2260- status.
2261-
22622258# # SUBSCRIBE {#message-subscribe-req}
22632259
22642260A subscription causes the publisher to send newly published objects for a track.
@@ -2761,9 +2757,11 @@ A publisher MUST send fetched groups in the requested group order, either
27612757ascending or descending. Within each group, objects are sent in Object ID order;
27622758subgroup ID is not used for ordering.
27632759
2764- If an Original Publisher receives a FETCH with a range that includes an object with
2765- unknown status, it MUST return REQUEST_ERROR with code UNKNOWN_STATUS_IN_RANGE.
2766-
2760+ If a Publisher receives a FETCH with a range that includes an object with
2761+ unknown status (e.g. a Relay has temporarily lost contact with the Original
2762+ Publisher and does not have the Object in cache), it can choose to reset the
2763+ FETCH data stream with UNKNOWN_OBJECT_STATUS, or indicate the range of unknown
2764+ Objects and continue serving other known Objects.
27672765
27682766# # FETCH_OK {#message-fetch-ok}
27692767
@@ -3524,6 +3522,10 @@ DELIVERY_TIMEOUT (0x2):
35243522SESSION_CLOSED (0x3) :
35253523: The publisher session is being closed.
35263524
3525+ UNKOWN_OBJECT_STATUS (0x4) :
3526+ : In response to a FETCH, the publisher is unable to determine the Status
3527+ of the next Object in the requested range.
3528+
35273529# ## Fetch Header {#fetch-header}
35283530
35293531When a stream begins with `FETCH_HEADER`, all objects on the stream belong to the
@@ -3551,7 +3553,7 @@ format:
35513553 [Extensions (..),]
35523554 Object Payload Length (i),
35533555 [Object Status (i),]
3554- [Object Payload (..), ]
3556+ [Object Payload (..)]
35553557}
35563558~~~
35573559{: # object-fetch-format title="MOQT Fetch Object Fields"}
@@ -3588,6 +3590,9 @@ the prior Object, the Subscriber MUST close the session with a
35883590The Extensions structure is defined in {{object-extensions}}.
35893591
35903592The Object Status field is only present if the Object Payload Length is zero.
3593+ FETCH responses have a special Object Status `UNKNOWN` (0x5). When Object
3594+ Status is `UNKNOWN`, all Objects between the last serialized Object, if any, and
3595+ this one, inclusive, have `UNKNOWN` status, rather than `Object Does Not Exist`.
35913596
35923597When encoding an Object with a Forwarding Preference of "Datagram" (see
35933598{{object-properties}}), the Publisher treats it as having a Subgroup ID equal to
@@ -3901,7 +3906,6 @@ TODO: register the URI scheme and the ALPN and grease the Extension types
39013906| UNINTERESTED | 0x20 | {{message-request-error}} |
39023907| PREFIX_OVERLAP | 0x30 | {{message-request-error}} |
39033908| INVALID_JOINING_REQUEST_ID | 0x32 | {{message-request-error}} |
3904- | UNKNOWN_STATUS_IN_RANGE | 0x33 | {{message-request-error}} |
39053909
39063910# ## PUBLISH_DONE Codes {#iana-publish-done}
39073911
0 commit comments