Skip to content

Commit 4b0a7ab

Browse files
authored
Merge branch 'main' into fail-length
2 parents 3cd0061 + 4d42a78 commit 4b0a7ab

File tree

1 file changed

+34
-19
lines changed

1 file changed

+34
-19
lines changed

draft-ietf-moq-transport.md

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ author:
1919
-
2020
ins: L. Curley
2121
name: Luke Curley
22-
organization: Twitch
22+
organization: Discord
2323
2424

2525
-
@@ -40,6 +40,12 @@ author:
4040
organization: Google
4141
4242

43+
-
44+
ins: I. Swett
45+
name: Ian Swett
46+
organization: Google
47+
48+
role: editor
4349

4450
normative:
4551
QUIC: RFC9000
@@ -405,7 +411,9 @@ code, as defined below:
405411
|------|---------------------------|
406412
| 0x3 | Protocol Violation |
407413
|------|---------------------------|
408-
| 0x4 | Parameter Length Mismatch |
414+
| 0x4 | Duplicate Track Alias |
415+
|------|---------------------------|
416+
| 0x5 | Parameter Length Mismatch |
409417
|------|---------------------------|
410418
| 0x10 | GOAWAY Timeout |
411419
|------|---------------------------|
@@ -420,6 +428,9 @@ code, as defined below:
420428
* Protocol Violation: The remote endpoint performed an action that was
421429
disallowed by the specification.
422430

431+
* Duplicate Track Alias: The endpoint attempted to use a Track Alias
432+
that was already in use.
433+
423434
* GOAWAY Timeout: The session was closed because the client took too long to
424435
close the session in response to a GOAWAY ({{message-goaway}}) message.
425436
See session migration ({{session-migration}}).
@@ -858,8 +869,8 @@ OBJECT Message {
858869
~~~
859870
{: #moq-transport-object-format title="MOQT OBJECT Message"}
860871

861-
* Track Alias : The compressed full track name obtained as part of
862-
subscription and/or publish control message exchanges.
872+
* Track Alias :The track identifier as specified in the
873+
SUBSCRIBE message {{message-subscribe-req}}.
863874

864875
* Group ID : The object is a member of the indicated group ID
865876
{{model-group}} within the track.
@@ -927,6 +938,7 @@ The format of SUBSCRIBE is as follows:
927938
~~~
928939
SUBSCRIBE Message {
929940
Subscribe ID (i),
941+
Track Alias (i),
930942
Track Namespace (b),
931943
Track Name (b),
932944
StartGroup (Location),
@@ -938,18 +950,24 @@ SUBSCRIBE Message {
938950
~~~
939951
{: #moq-transport-subscribe-format title="MOQT SUBSCRIBE Message"}
940952

941-
* Track Namespace: Identifies the namespace of the track as defined in
942-
({{track-name}}).
943-
944-
* Track Name: Identifies the track name as defined in ({{track-name}}).
945-
946953
* Subscribe ID: The subscription identifier that is unique within the session.
947954
`Subscribe ID` is a monotonically increasing variable length integer which
948955
MUST not be reused within a session. `Subscribe ID` is used by subscribers and
949956
the publishers to identify a given subscription. Subscribers specify the
950957
`Subscribe ID` and it is included in the corresponding SUBSCRIBE_OK or
951958
SUBSCRIBE_ERROR messages.
952959

960+
* Track Alias: A session specific identifier for the track.
961+
Messages that reference a track, such as OBJECT ({{message-object}}),
962+
reference this Track Alias instead of the Track Name and Track Namespace to
963+
reduce overhead. If the Track Alias is already in use, the publisher MUST
964+
close the session with a Duplicate Track Alias error ({{session-termination}}).
965+
966+
* Track Namespace: Identifies the namespace of the track as defined in
967+
({{track-name}}).
968+
969+
* Track Name: Identifies the track name as defined in ({{track-name}}).
970+
953971
* StartGroup: The Location of the requested group. StartGroup's Mode MUST NOT be
954972
None.
955973

@@ -1038,9 +1056,6 @@ A SUBSCRIBE_OK control message is sent for successful subscriptions.
10381056
SUBSCRIBE_OK
10391057
{
10401058
Subscribe ID (i),
1041-
Track Namespace (b),
1042-
Track Name (b),
1043-
Track Alias (i),
10441059
Expires (i)
10451060
}
10461061
~~~
@@ -1053,11 +1068,6 @@ SUBSCRIBE_OK
10531068

10541069
* Track Name: Identifies the track name as defined in ({{track-name}}).
10551070

1056-
* Track Alias: Session specific identifier that is used as an alias for the
1057-
Full Track Name in the Track Alias field of the OBJECT ({{message-object}})
1058-
message headers of the requested track. Track Aliases are shorter
1059-
than Full Track Names and thus reduce the overhead in OBJECT messages.
1060-
10611071
* Expires: Time in milliseconds after which the subscription is no
10621072
longer valid. A value of 0 indicates that the subscription stays active
10631073
until it is explicitly unsubscribed.
@@ -1074,6 +1084,7 @@ SUBSCRIBE_ERROR
10741084
Subscribe ID (i),
10751085
Error Code (i),
10761086
Reason Phrase (b),
1087+
Track Alias (i),
10771088
}
10781089
~~~
10791090
{: #moq-transport-subscribe-error format title="MOQT SUBSCRIBE_ERROR Message"}
@@ -1082,10 +1093,14 @@ SUBSCRIBE_ERROR
10821093

10831094
* Error Code: Identifies an integer error code for subscription failure.
10841095

1085-
* Reason Phrase Length: The length in bytes of the reason phrase.
1086-
10871096
* Reason Phrase: Provides the reason for subscription error.
10881097

1098+
* Track Alias: When Error Code is TBD, the subscriber SHOULD re-issue the
1099+
SUBSCRIBE with this Track Alias instead. If this Track Alias is already in use,
1100+
the receiver MUST close the connection with a Duplicate Track Alias error
1101+
({{session-termination}}).
1102+
TODO: Add a registry for subscribe error codes and make this field conditional.
1103+
10891104

10901105
## UNSUBSCRIBE {#message-unsubscribe}
10911106

0 commit comments

Comments
 (0)