Skip to content

Commit 3b4af48

Browse files
committed
First stab at a joining FETCH using new JOIN message
1 parent fc6906c commit 3b4af48

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

draft-ietf-moq-transport.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1462,6 +1462,62 @@ A publisher MUST send fetched groups in group order, either ascending or
14621462
descending. Within each group, objects are sent in Object ID order;
14631463
subgroup ID is not used for ordering.
14641464

1465+
## JOIN
1466+
1467+
A JOIN is a variant of FETCH that joins together with a SUBSCRIBE to provide a contiguous non-overlapping request for objects before and after LatestGroup LatestObject as determined by the receiving publisher.
1468+
1469+
The format of JOIN is as follows:
1470+
1471+
~~~
1472+
JOIN Message {
1473+
Type (i) = 0x16,
1474+
Length (i),
1475+
Subscribe ID (i),
1476+
Subscriber Priority (8),
1477+
Group Order (8),
1478+
PreviousGroups (i),
1479+
Number of Parameters (i),
1480+
Parameters (..) ...
1481+
}
1482+
~~~
1483+
{: #moq-transport-fetch-format title="MOQT JOIN Message"}
1484+
1485+
* Subscribe ID: The Subscribe ID identifies a given fetch request. Subscribe ID
1486+
is a variable length integer that MUST be unique and monotonically increasing
1487+
within a session.
1488+
1489+
* Track Namespace: Identifies the namespace of the track as defined in
1490+
({{track-name}}).
1491+
1492+
* Track Name: Identifies the track name as defined in ({{track-name}}).
1493+
1494+
* Subscriber Priority: Specifies the priority of a fetch request relative to
1495+
other subscriptions or fetches in the same session. Lower numbers get higher
1496+
priority. See {{priorities}}.
1497+
1498+
* Group Order: Allows the subscriber to request Objects be delivered in
1499+
Ascending (0x1) or Descending (0x2) order by group. See {{priorities}}.
1500+
A value of 0x0 indicates the original publisher's Group Order SHOULD be
1501+
used. Values larger than 0x2 are a protocol error.
1502+
1503+
* PreviousGroups: The number of groups prior to LatestGroup as determined for the SUBSCRIBE to FETCH
1504+
1505+
* Parameters: The parameters are defined in {{version-specific-params}}.
1506+
1507+
A publisher which receives a JOIN message should treat it as a FETCH with the following fields dynamically determined from the corresponding SUBSCRIBE:
1508+
1509+
* Track Namespace: Same as in the corresponding SUBSCRIBE
1510+
1511+
* Track Name: Same as in the corresponding SUBSCRIBE
1512+
1513+
* StartGroup: LatestGroup as determined for the SUBSCRIBE minus PreviousGroups from the JOIN
1514+
1515+
* StartObject:
1516+
1517+
* EndGroup: LatestGroup as determined for the SUBSCRIBE minus 1
1518+
1519+
* EndObject: LatestObject as determined for the SUBSCRIBE minus 1
1520+
14651521
## FETCH_CANCEL {#message-fetch-cancel}
14661522

14671523
A subscriber issues a `FETCH_CANCEL` message to a publisher indicating it is no

0 commit comments

Comments
 (0)