Skip to content

Commit

Permalink
Convert delivery timeout to a track request parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
vasilvv committed May 28, 2024
1 parent 0d41dcd commit 6b2afb1
Showing 1 changed file with 27 additions and 23 deletions.
50 changes: 27 additions & 23 deletions draft-ietf-moq-transport.md
Original file line number Diff line number Diff line change
Expand Up @@ -862,6 +862,32 @@ information in a SUBSCRIBE or ANNOUNCE message. This parameter is populated for
cases where the authorization is required at the track level. The value is an
ASCII string.

#### DELIVERY TIMEOUT Parameter {#delivery-timeout}

DELIVERY TIMEOUT parameter (key 0x03) MAY appear in a SUBSCRIBE or a
SUBSCRIBE_UDPATE message. It is a number of milliseconds indicating the
duration for which the relay should attempt forwarding objects. The specific
semantics of this field depend on the forwarding preference
({{object-message-formats}}) used by the objects on the track in question:

- If the Object Forwarding Preference is `Datagram`, once the specified number
of milliseconds has passed since the datagram was received via this
subscription, the relay SHOULD NOT forward that datagram.
- If the Object Forwarding Preference is `Object`, once the specified number of
milliseconds has passed since the object was fully received, the relay SHOULD
NOT open new streams for the object in question, and SHOULD reset all
existing streams if those have been already opened.
- If the Object Forwarding Preference is `Group`, once the specified number of
milliseconds has passed since the final object of the group was fully
received, the relay SHOULD NOT open new streams for the group in question,
and SHOULD reset all existing streams if those have been already opened.
- If the Object Forwarding Preference is `Track`, this parameter MUST NOT be
present.

If the parameter is absent, no timeout is requested by the subscriber. If
there are other timeouts that apply to a specific object or group, the earliest
one is used.

## CLIENT_SETUP and SERVER_SETUP {#message-setup}

The `CLIENT_SETUP` and `SERVER_SETUP` messages are the first messages exchanged
Expand Down Expand Up @@ -1521,8 +1547,7 @@ SUBSCRIBE_OK
Expires (i),
ContentExists (f),
[Largest Group ID (i)],
[Largest Object ID (i)],
Delivery Timeout (i)
[Largest Object ID (i)]
}
~~~
{: #moq-transport-subscribe-ok format title="MOQT SUBSCRIBE_OK Message"}
Expand All @@ -1544,27 +1569,6 @@ is only present if ContentExists has a value of 1.
* Largest Object ID: the largest Object ID available within the largest Group ID
for this track. This field is only present if ContentExists has a value of 1.

* Delivery Timeout: a number of milliseconds indicating the duration for which
a relay should attempt forwarding objects, or zero to indicate that no such
time limit is provided. The specific semantics of this field depend on the
forwarding preference ({{object-message-formats}}) used by the objects on the
track in question:

- If the Object Forwarding Preference is `Datagram`, once the specified
number of milliseconds has passed since the datagram was received via
this subscription, the relay SHOULD NOT forward that datagram.
- If the Object Forwarding Preference is `Object`, once the specified
number of milliseconds has passed since the object was fully received via
this subscription, the relay SHOULD NOT open new streams for the object
in question, and SHOULD reset all existing streams if those have been
already opened.
- If the Object Forwarding Preference is `Group`, once the specified number
of milliseconds has passed since the final object of the group was fully
received via this subscription, the relay SHOULD NOT open new streams for
the group in question, and SHOULD reset all existing streams if those
have been already opened.
- If the Object Forwarding Preference is `Track`, the timeout MUST be zero.


## SUBSCRIBE_ERROR {#message-subscribe-error}

Expand Down

0 comments on commit 6b2afb1

Please sign in to comment.