@@ -19,7 +19,7 @@ author:
1919 -
2020 ins : L. Curley
2121 name : Luke Curley
22- organization : Twitch
22+ organization : Discord
23232424
2525 -
@@ -40,6 +40,12 @@ author:
4040 organization : Google
41414242
43+ -
44+ ins : I. Swett
45+ name : Ian Swett
46+ organization : Google
47+ 48+ role : editor
4349
4450normative :
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~~~
928939SUBSCRIBE 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
948955MUST not be reused within a session. `Subscribe ID` is used by subscribers and
949956the publishers to identify a given subscription. Subscribers specify the
950957` Subscribe ID` and it is included in the corresponding SUBSCRIBE_OK or
951958SUBSCRIBE_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
954972None.
955973
@@ -1038,9 +1056,6 @@ A SUBSCRIBE_OK control message is sent for successful subscriptions.
10381056SUBSCRIBE_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
10621072longer valid. A value of 0 indicates that the subscription stays active
10631073until 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