diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index c832b234..610b33ae 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -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 @@ -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"} @@ -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}