Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions draft-ietf-moq-transport.md
Original file line number Diff line number Diff line change
Expand Up @@ -401,15 +401,16 @@ using at least as many streams as there are Subgroups,
typically with a one-to-one mapping between Subgroups and streams.

When an Object's forwarding preference (see {{object-properties}}) is
"Datagram", it is not sent in Subgroups and the
description in the remainder of this section does not apply.
"Datagram", it is not sent in Subgroups, does not belong to a Subgroup in any
way, and the description in the remainder of this section does not apply.

Streams offer in-order reliable delivery and the ability to cancel sending and
retransmission of data. Furthermore, many QUIC and WebTransport implementations
offer the ability to control the relative scheduling priority of pending stream
data.

Every object within a Group belongs to exactly one Subgroup.
Every object within a Group belongs to exactly one Subgroup (but zero if its
forwarding preference is Datagram).
Comment on lines +412 to +413
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
Every object within a Group belongs to exactly one Subgroup (but zero if its
forwarding preference is Datagram).
Every Object within a Group belongs to exactly one Subgroup or Datagram.


When Objects are sent in a subscription (see {{subscriptions}}), Objects
from two subgroups MUST NOT be sent on the same stream, and Objects from the
Expand Down Expand Up @@ -3077,7 +3078,9 @@ An endpoint that receives an unknown stream or datagram type MUST close the
session.

Every Object has a 'Object Forwarding Preference' and the Original Publisher
MAY mix different forwarding preference within a single track.
MAY mix different forwarding preference within a single track. As a Subgroup
is by definition a set of objects delivered with Subgroup forwarding preference,
objects with a Subgroup ID have the same forwarding preference.
Comment on lines +3081 to +3083
Copy link
Collaborator

Choose a reason for hiding this comment

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

I don't think the second sentence is necessary, but I tried to make it clearer in case you want to keep it.

Suggested change
MAY mix different forwarding preference within a single track. As a Subgroup
is by definition a set of objects delivered with Subgroup forwarding preference,
objects with a Subgroup ID have the same forwarding preference.
MAY use both Subgroups and Datagrams within a Group or Track. A Subgroup
is a set of Objects with the Subgroup forwarding preference, so Objects
within a Subgroup ID have the same forwarding preference.

Copy link
Contributor

Choose a reason for hiding this comment

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

"within a Subgroup ID" should be "within the same Subgroup ID" or "within a Subgroup"?


## Track Alias

Expand Down Expand Up @@ -3616,7 +3619,7 @@ Bitmask | Condition if set | Condition if not set (0)
0x08 | Group ID field is present | Group ID is the prior Object's Group ID
0x10 | Priority field is present | Priority is the prior Object's Priority
0x20 | Extensions field is present | Extensions field is not present
0x40 | `PROTOCOL_VIOLATION` | N/A
0x40 | Datagram: ignore the two least significant bits | Use the subgroup ID in the two least significant bits
0x80 | `PROTOCOL_VIOLATION` | N/A

If the first Object in the FETCH response uses a flag that references fields in
Expand All @@ -3626,8 +3629,9 @@ the prior Object, the Subscriber MUST close the session with a
The Extensions structure is defined in {{object-extensions}}.

When encoding an Object with a Forwarding Preference of "Datagram" (see
{{object-properties}}), the Publisher treats it as having a Subgroup ID equal to
the Object ID.
{{object-properties}}), the object has no Subgroup ID. The publisher MUST SET bit 0x40 to '1'.
When 0x40 is set, it SHOULD set the two least significant bits to zero and the subscriber
MUST ignore the bits.

## Examples

Expand Down