From ef4e97b0d5894d5e57ecf64c6ba66a45df16573c Mon Sep 17 00:00:00 2001 From: Cullen Jennings Date: Thu, 12 Sep 2024 08:37:42 -0600 Subject: [PATCH 01/35] start changes for announce --- draft-ietf-moq-transport.md | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index cb0d1b0a..b50d08eb 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -710,7 +710,16 @@ subscribers for each track. Each new OBJECT belonging to the track within the subscription range is forwarded to each active subscriber, dependent on the congestion response. A subscription remains active until the publisher of the track terminates the -track with a SUBSCRIBE_DONE (see {{message-subscribe-done}}). +track with a SUBSCRIBE_DONE (see {{message-subscribe-done}}). A +caching relay saves objects to its cache identified by the object's +fulltrackname, group ID and object ID. Relays MUST be +ready to process objects for the same fulltrackname from +multiple publishers and the objects received are forwarded +to active matching subscribers. If multiple objects are received +with the same fulltrackname, group ID and object ID - a caching +Relays MUST drop the received objects as duplicate if there exists +already an object with the matching fulltrackame, group ID and +object ID, in its cache. Objects MUST NOT be sent for unsuccessful subscriptions, and if a subscriber receives a SUBSCRIBE_ERROR after receiving objects, it MUST close the session @@ -768,19 +777,30 @@ Relays MUST ensure that publishers are authorized by: - Verifying that the publisher is authorized to publish the content associated with the set of tracks whose Track Namespace matches the - announced namespace. Specifics of where the authorization happens, - either at the relays or forwarded for further processing, depends on - the way the relay is managed and is application specific (typically - based on prior business agreement). + announced namespace. Specifics of where the authorization and + identification of the publisher happens either at the relays or + forwarded for further processing, depends on the way the relay is + managed and is application specific (typically based on prior business + agreement). Relays respond with an ANNOUNCE_OK or ANNOUNCE_ERROR control message providing the result of announcement. The entity receiving the ANNOUNCE MUST send only a single response to a given ANNOUNCE of -either ANNOUNCE_OK or ANNOUNCE_ERROR. When a publisher wants to stop +either ANNOUNCE_OK or ANNOUNCE_ERROR. + +A Relay can receive announcements from multiple publishers for the same +tracknamespace and it MUST respond with appropriate response to each of the +publishers, in the same way as it would responds when processing ANNOUNCE +from a single publisher for a given tracknamespace. + + +When a publisher wants to stop new subscriptions for an announced namespace it sends an UNANNOUNCE. A subscriber indicates it will no longer route subscriptions for a namespace it previously responded ANNOUNCE_OK to by sending an -ANNOUNCE_CANCEL. +ANNOUNCE_CANCEL. Relays MUST be ready to handle ANNOUNCE messages from +multiple publishers for the same tracknamespace and it does so by + A relay manages sessions from multiple publishers and subscribers, connecting them based on the track namespace. This MUST use an exact @@ -1543,7 +1563,7 @@ ANNOUNCE Message { } ~~~ {: #moq-transport-announce-format title="MOQT ANNOUNCE Message"} - + * Track Namespace: Identifies a track's namespace as defined in ({{track-name}}) From b9eb19557a120e9c0f0874345e7871b74bc2741a Mon Sep 17 00:00:00 2001 From: Cullen Jennings Date: Thu, 12 Sep 2024 08:38:57 -0600 Subject: [PATCH 02/35] cleanup --- draft-ietf-moq-transport.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index b50d08eb..81e05240 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -777,10 +777,10 @@ Relays MUST ensure that publishers are authorized by: - Verifying that the publisher is authorized to publish the content associated with the set of tracks whose Track Namespace matches the - announced namespace. Specifics of where the authorization and - identification of the publisher happens either at the relays or - forwarded for further processing, depends on the way the relay is - managed and is application specific (typically based on prior business + announced namespace. Specifics of where the authorization and + identification of the publisher happens either at the relays or + forwarded for further processing, depends on the way the relay is + managed and is application specific (typically based on prior business agreement). Relays respond with an ANNOUNCE_OK or ANNOUNCE_ERROR control message @@ -788,10 +788,10 @@ providing the result of announcement. The entity receiving the ANNOUNCE MUST send only a single response to a given ANNOUNCE of either ANNOUNCE_OK or ANNOUNCE_ERROR. -A Relay can receive announcements from multiple publishers for the same -tracknamespace and it MUST respond with appropriate response to each of the -publishers, in the same way as it would responds when processing ANNOUNCE -from a single publisher for a given tracknamespace. +A Relay can receive announcements from multiple publishers for the same +tracknamespace and it MUST respond with appropriate response to each of the +publishers, in the same way as it would responds when processing ANNOUNCE +from a single publisher for a given tracknamespace. When a publisher wants to stop @@ -1563,7 +1563,7 @@ ANNOUNCE Message { } ~~~ {: #moq-transport-announce-format title="MOQT ANNOUNCE Message"} - + * Track Namespace: Identifies a track's namespace as defined in ({{track-name}}) From 983221b94458cd8d0340072c4c66db5b1b533e83 Mon Sep 17 00:00:00 2001 From: Cullen Jennings Date: Thu, 12 Sep 2024 18:52:40 -0600 Subject: [PATCH 03/35] add gracefull behavior --- draft-ietf-moq-transport.md | 56 +++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 81e05240..682bd7a2 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -768,10 +768,25 @@ SUBSCRIBE_DONE, as defined below: | 0x6 | Expired | |------|---------------------------| +### Graceful Publisher Relay Switchover + +This section describes non normative behavior that a subscriber MAY +choose to implement to allow for a better users experience when a relay +sends them a GOAWAY. + +When a subscriber receives the GOAWAY message, it starts of the process +of connecting to the new relay and sending the SUBSCRIBE requests for +all it's active subscriptions to the new relay. The new relay will send a +response to the subscribes and once this has happened, the subscription +to the old relay can be stopped with and UNSUBSCRIBE. + + ## Publisher Interactions Publishing through the relay starts with publisher sending ANNOUNCE control message with a `Track Namespace` ({{model-track}}). +The annouce allows the relays to know which publisher to forward a +SUBSCRIBE to. Relays MUST ensure that publishers are authorized by: @@ -793,7 +808,6 @@ tracknamespace and it MUST respond with appropriate response to each of the publishers, in the same way as it would responds when processing ANNOUNCE from a single publisher for a given tracknamespace. - When a publisher wants to stop new subscriptions for an announced namespace it sends an UNANNOUNCE. A subscriber indicates it will no longer route subscriptions for a @@ -801,13 +815,21 @@ namespace it previously responded ANNOUNCE_OK to by sending an ANNOUNCE_CANCEL. Relays MUST be ready to handle ANNOUNCE messages from multiple publishers for the same tracknamespace and it does so by - A relay manages sessions from multiple publishers and subscribers, connecting them based on the track namespace. This MUST use an exact match on track namespace unless otherwise negotiated by the application. For example, a SUBSCRIBE namespace=foobar message will be forwarded to the session that sent ANNOUNCE namespace=foobar. +When a relay receives an incoming subscribe for a given namespace, for +each publisher that has announced that namespace, the relay MUST send a +subscribe to that publisher unless it already has an active subscription +to that publisher for the full track name in the incoming subscribe. + +When a relay receives an incoming annouce for a given namespace, for +each active subscription that matches that namespace, it MUST send a +subscribe to that publisher that send the annouce. + OBJECT message headers carry a short hop-by-hop `Track Alias` that maps to the Full Track Name (see {{message-subscribe-ok}}). Relays use the `Track Alias` of an incoming OBJECT message to identify its track and find @@ -815,6 +837,36 @@ the active subscribers for that track. Relays MUST forward OBJECT messages to matching subscribers in accordance to each subscription's priority, group order, and delivery timeout. +### Graceful Publisher Network Switchover + +This section describes non normative behavior that a publisher MAY +choose to implement to allow for a better users experience when switching +from WiFi to Cellular networks or visa versa. + +As the publisher detects the WiFi signal is starting to get weaker, it +sends a new an new ANNOUCE on the cellular network to the relay +network. The relay will forward the matching subscribes and the client +can start publishing on both the WiFi and cellular. The relay will drop +any duplicate objects received on both. The subscribes downstream from +the relay do no see anything as changed and keep receiving the objects +on the same subscription. + +### Graceful Publisher Relay Switchover + +This section describes non normative behavior that a publisher MAY +choose to implement to allow for a better users experience when a relay +sends them a GOAWAY. + +When a publisher receives the GOAWAY, it starts of the process of +connecting to the new relay and sending the announces but does not stop +publishing data to the old relay. The new relay will send the subscribes +and the publisher and at this point the publisher can start sending any +new data to new relay instead of the old relay. Once data is going to +the new relay, the announcement and connection to the old relay can be +stopped. + + + ## Relay Object Handling MOQT encodes the delivery information for a stream via OBJECT headers From bae358dd28123cc9d1d09db12d462c152aed14e6 Mon Sep 17 00:00:00 2001 From: Cullen Jennings Date: Thu, 12 Sep 2024 19:03:04 -0600 Subject: [PATCH 04/35] clean up --- draft-ietf-moq-transport.md | 51 ++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 682bd7a2..63e323a6 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -778,7 +778,7 @@ When a subscriber receives the GOAWAY message, it starts of the process of connecting to the new relay and sending the SUBSCRIBE requests for all it's active subscriptions to the new relay. The new relay will send a response to the subscribes and once this has happened, the subscription -to the old relay can be stopped with and UNSUBSCRIBE. +to the old relay can be stopped with an UNSUBSCRIBE. ## Publisher Interactions @@ -812,8 +812,7 @@ When a publisher wants to stop new subscriptions for an announced namespace it sends an UNANNOUNCE. A subscriber indicates it will no longer route subscriptions for a namespace it previously responded ANNOUNCE_OK to by sending an -ANNOUNCE_CANCEL. Relays MUST be ready to handle ANNOUNCE messages from -multiple publishers for the same tracknamespace and it does so by +ANNOUNCE_CANCEL. A relay manages sessions from multiple publishers and subscribers, connecting them based on the track namespace. This MUST use an exact @@ -821,14 +820,14 @@ match on track namespace unless otherwise negotiated by the application. For example, a SUBSCRIBE namespace=foobar message will be forwarded to the session that sent ANNOUNCE namespace=foobar. -When a relay receives an incoming subscribe for a given namespace, for +When a relay receives an incoming SUBSCRIBE for a given namespace, for each publisher that has announced that namespace, the relay MUST send a -subscribe to that publisher unless it already has an active subscription -to that publisher for the full track name in the incoming subscribe. +SUBSCRIBE to that publisher unless it already has an active subscription +to that publisher for the full track name in the incoming SUBSCRIBE. -When a relay receives an incoming annouce for a given namespace, for +When a relay receives an incoming ANNOUCE for a given namespace, for each active subscription that matches that namespace, it MUST send a -subscribe to that publisher that send the annouce. +SUBSCRIBE to that publisher that send the ANNOUCE. OBJECT message headers carry a short hop-by-hop `Track Alias` that maps to the Full Track Name (see {{message-subscribe-ok}}). Relays use the @@ -840,16 +839,18 @@ and delivery timeout. ### Graceful Publisher Network Switchover This section describes non normative behavior that a publisher MAY -choose to implement to allow for a better users experience when switching -from WiFi to Cellular networks or visa versa. - -As the publisher detects the WiFi signal is starting to get weaker, it -sends a new an new ANNOUCE on the cellular network to the relay -network. The relay will forward the matching subscribes and the client -can start publishing on both the WiFi and cellular. The relay will drop -any duplicate objects received on both. The subscribes downstream from -the relay do no see anything as changed and keep receiving the objects -on the same subscription. +choose to implement to allow for a better users experience when +switching from WiFi to Cellular networks or visa versa. + +If the publisher detects it is likely to need to switch over, for +example by seeing the WiFi signal is starting to get weaker, it sends a +new an new ANNOUCE over the cellular network to the relay network. The +relay will forward the matching subscribes and the client can start +publishing on both the WiFi and cellular. Once the subscriptions have +over to the new network, the publisher can stop publishing object on the +old network. The relay will drop any duplicate objects received on +both. the subscribes downstream from the relay do no see anything as +changed, and keep receiving the objects on the same subscription. ### Graceful Publisher Relay Switchover @@ -858,14 +859,12 @@ choose to implement to allow for a better users experience when a relay sends them a GOAWAY. When a publisher receives the GOAWAY, it starts of the process of -connecting to the new relay and sending the announces but does not stop -publishing data to the old relay. The new relay will send the subscribes -and the publisher and at this point the publisher can start sending any -new data to new relay instead of the old relay. Once data is going to -the new relay, the announcement and connection to the old relay can be -stopped. - - +connecting to the new relay and sending the announces, but it does not +stop publishing data to the old relay. The new relay will send the +subscribes and the publisher and at this point the publisher can start +sending any new data to new relay instead of the old relay. Once data is +going to the new relay, the announcement and connection to the old relay +can be stopped. ## Relay Object Handling From bc2bbd5bc03d5a5c1ee1e9187256d342f4217064 Mon Sep 17 00:00:00 2001 From: ianswett Date: Mon, 16 Sep 2024 17:38:37 -0400 Subject: [PATCH 05/35] Editorial update to "Graceful Publisher Network Switchover" --- draft-ietf-moq-transport.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index a34376d7..d03fecdd 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -842,15 +842,16 @@ This section describes non normative behavior that a publisher MAY choose to implement to allow for a better users experience when switching from WiFi to Cellular networks or visa versa. -If the publisher detects it is likely to need to switch over, for -example by seeing the WiFi signal is starting to get weaker, it sends a -new an new ANNOUCE over the cellular network to the relay network. The -relay will forward the matching subscribes and the client can start -publishing on both the WiFi and cellular. Once the subscriptions have -over to the new network, the publisher can stop publishing object on the -old network. The relay will drop any duplicate objects received on -both. the subscribes downstream from the relay do no see anything as -changed, and keep receiving the objects on the same subscription. +If the original publisher detects it is likely to need to switch networks, +for example because the WiFi signal is getting weaker, and it does not +have QUIC connection migration available, it establishes a new session +over the new interface and sends an ANNOUCE. The relay will forward +matching subscribes and the publisher can publishing on both sessions. +Once the subscriptions have migrated over to session on the new network, +the publisher can stop publishing objects on the old network. The relay +will drop duplicate objects received on both subscriptions. +Ideally, the subscriptions downstream from the relay do no observe this +change, and keep receiving the objects on the same subscription. ### Graceful Publisher Relay Switchover From d566967b0ec57c451000f99d16549745d19e922b Mon Sep 17 00:00:00 2001 From: ianswett Date: Mon, 16 Sep 2024 17:41:04 -0400 Subject: [PATCH 06/35] Update draft-ietf-moq-transport.md --- draft-ietf-moq-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index d03fecdd..a9a24a27 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -846,7 +846,7 @@ If the original publisher detects it is likely to need to switch networks, for example because the WiFi signal is getting weaker, and it does not have QUIC connection migration available, it establishes a new session over the new interface and sends an ANNOUCE. The relay will forward -matching subscribes and the publisher can publishing on both sessions. +matching subscribes and the publisher publishes objects on both sessions. Once the subscriptions have migrated over to session on the new network, the publisher can stop publishing objects on the old network. The relay will drop duplicate objects received on both subscriptions. From f48aaddbf785c8446e719048fe7f128eecaffb2c Mon Sep 17 00:00:00 2001 From: ianswett Date: Mon, 16 Sep 2024 17:55:24 -0400 Subject: [PATCH 07/35] Update draft-ietf-moq-transport.md --- draft-ietf-moq-transport.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index a9a24a27..cd692718 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -859,13 +859,12 @@ This section describes non normative behavior that a publisher MAY choose to implement to allow for a better users experience when a relay sends them a GOAWAY. -When a publisher receives the GOAWAY, it starts of the process of -connecting to the new relay and sending the announces, but it does not -stop publishing data to the old relay. The new relay will send the -subscribes and the publisher and at this point the publisher can start -sending any new data to new relay instead of the old relay. Once data is -going to the new relay, the announcement and connection to the old relay -can be stopped. +When a publisher receives a GOAWAY, it starts the process of +connecting to a new relay and sends announces, but it does not immediately +stop publishing objects to the old relay. The new relay will send +subscribes and the publisher can start sending new objects to the new relay +instead of the old relay. Once objects are going to the new relay, +the announcement and subscription to the old relay can be stopped. ## Relay Object Handling From 206a0237e1b878d26c3bd4ecb9c62ef2f2af3de5 Mon Sep 17 00:00:00 2001 From: ianswett Date: Mon, 16 Sep 2024 17:57:38 -0400 Subject: [PATCH 08/35] Update draft-ietf-moq-transport.md --- draft-ietf-moq-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index cd692718..d744aaf4 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -775,7 +775,7 @@ choose to implement to allow for a better users experience when a relay sends them a GOAWAY. When a subscriber receives the GOAWAY message, it starts of the process -of connecting to the new relay and sending the SUBSCRIBE requests for +of connecting to a new relay and sending the SUBSCRIBE requests for all it's active subscriptions to the new relay. The new relay will send a response to the subscribes and once this has happened, the subscription to the old relay can be stopped with an UNSUBSCRIBE. From 155cc70ba572f74cc5e5e5ad9c7d4f2c589e410c Mon Sep 17 00:00:00 2001 From: ianswett Date: Mon, 16 Sep 2024 18:00:22 -0400 Subject: [PATCH 09/35] Update draft-ietf-moq-transport.md --- draft-ietf-moq-transport.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index d744aaf4..756dfc6f 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -770,9 +770,8 @@ SUBSCRIBE_DONE, as defined below: ### Graceful Publisher Relay Switchover -This section describes non normative behavior that a subscriber MAY -choose to implement to allow for a better users experience when a relay -sends them a GOAWAY. +This section describes behavior a subscriber MAY implement +to allow for a better user experience when a relay sends a GOAWAY. When a subscriber receives the GOAWAY message, it starts of the process of connecting to a new relay and sending the SUBSCRIBE requests for From edde941904b41feb30aa7c41cd2a531a47172513 Mon Sep 17 00:00:00 2001 From: ianswett Date: Mon, 16 Sep 2024 18:31:54 -0400 Subject: [PATCH 10/35] Update draft-ietf-moq-transport.md --- draft-ietf-moq-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 756dfc6f..c0948d69 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -710,7 +710,7 @@ subscribers for each track. Each new OBJECT belonging to the track within the subscription range is forwarded to each active subscriber, dependent on the congestion response. A subscription remains active until the publisher of the track terminates the -track with a SUBSCRIBE_DONE (see {{message-subscribe-done}}). A +subscription with a SUBSCRIBE_DONE (see {{message-subscribe-done}}). A caching relay saves objects to its cache identified by the object's fulltrackname, group ID and object ID. Relays MUST be ready to process objects for the same fulltrackname from From 5964caa0a1a7a09de066d52b48371c44cb664b62 Mon Sep 17 00:00:00 2001 From: ianswett Date: Mon, 16 Sep 2024 18:32:40 -0400 Subject: [PATCH 11/35] Update draft-ietf-moq-transport.md --- draft-ietf-moq-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index c0948d69..8527c7ee 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -775,7 +775,7 @@ to allow for a better user experience when a relay sends a GOAWAY. When a subscriber receives the GOAWAY message, it starts of the process of connecting to a new relay and sending the SUBSCRIBE requests for -all it's active subscriptions to the new relay. The new relay will send a +all active subscriptions to the new relay. The new relay will send a response to the subscribes and once this has happened, the subscription to the old relay can be stopped with an UNSUBSCRIBE. From 252c203023744a34e9a19f81cd9c7d8c33024f76 Mon Sep 17 00:00:00 2001 From: ianswett Date: Mon, 16 Sep 2024 18:32:56 -0400 Subject: [PATCH 12/35] Update draft-ietf-moq-transport.md --- draft-ietf-moq-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 8527c7ee..87b8a339 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -837,7 +837,7 @@ and delivery timeout. ### Graceful Publisher Network Switchover -This section describes non normative behavior that a publisher MAY +This section describes behavior that a publisher MAY choose to implement to allow for a better users experience when switching from WiFi to Cellular networks or visa versa. From e7b3cc50a31c1e7be0a82301e8bfa3a3f8e6769d Mon Sep 17 00:00:00 2001 From: ianswett Date: Mon, 16 Sep 2024 18:33:13 -0400 Subject: [PATCH 13/35] Update draft-ietf-moq-transport.md --- draft-ietf-moq-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 87b8a339..70808429 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -839,7 +839,7 @@ and delivery timeout. This section describes behavior that a publisher MAY choose to implement to allow for a better users experience when -switching from WiFi to Cellular networks or visa versa. +switching between networks, such as WiFi to Cellular or vice versa. If the original publisher detects it is likely to need to switch networks, for example because the WiFi signal is getting weaker, and it does not From 2dbe7806718fc9188c9100218ae53179da544b86 Mon Sep 17 00:00:00 2001 From: ianswett Date: Mon, 16 Sep 2024 18:33:25 -0400 Subject: [PATCH 14/35] Update draft-ietf-moq-transport.md --- draft-ietf-moq-transport.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 70808429..8222c788 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -854,9 +854,8 @@ change, and keep receiving the objects on the same subscription. ### Graceful Publisher Relay Switchover -This section describes non normative behavior that a publisher MAY -choose to implement to allow for a better users experience when a relay -sends them a GOAWAY. +This section describes behavior that a publisher MAY choose to implement +to allow for a better user experience when a relay sends them a GOAWAY. When a publisher receives a GOAWAY, it starts the process of connecting to a new relay and sends announces, but it does not immediately From bd7003ced44c53c3b61fd577226e0f9a60c16530 Mon Sep 17 00:00:00 2001 From: Cullen Jennings Date: Wed, 18 Sep 2024 10:15:16 -0600 Subject: [PATCH 15/35] Update draft-ietf-moq-transport.md Co-authored-by: ianswett --- draft-ietf-moq-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index fb7117c0..4f21489d 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -825,7 +825,7 @@ SUBSCRIBE to that publisher unless it already has an active subscription to that publisher for the full track name in the incoming SUBSCRIBE. When a relay receives an incoming ANNOUCE for a given namespace, for -each active subscription that matches that namespace, it MUST send a +each active subscription that matches that namespace, it SHOULD send a SUBSCRIBE to that publisher that send the ANNOUCE. OBJECT message headers carry a short hop-by-hop `Track Alias` that maps to From 4e3a0d4d164e9aa817d23b5cb2226528e12ede43 Mon Sep 17 00:00:00 2001 From: Cullen Jennings Date: Wed, 18 Sep 2024 10:16:13 -0600 Subject: [PATCH 16/35] Update draft-ietf-moq-transport.md Co-authored-by: ianswett --- draft-ietf-moq-transport.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 4f21489d..c386c975 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -716,10 +716,8 @@ fulltrackname, group ID and object ID. Relays MUST be ready to process objects for the same fulltrackname from multiple publishers and the objects received are forwarded to active matching subscribers. If multiple objects are received -with the same fulltrackname, group ID and object ID - a caching -Relays MUST drop the received objects as duplicate if there exists -already an object with the matching fulltrackame, group ID and -object ID, in its cache. +with the same Full Track Name, group ID and object ID, +Relays MUST ignore subsequently received Objects. Objects MUST NOT be sent for unsuccessful subscriptions, and if a subscriber receives a SUBSCRIBE_ERROR after receiving objects, it MUST close the session From 837408dc5d72ee6345f8fb8f6f7c2dd9e84fb7a7 Mon Sep 17 00:00:00 2001 From: Cullen Jennings Date: Wed, 18 Sep 2024 10:16:25 -0600 Subject: [PATCH 17/35] Update draft-ietf-moq-transport.md Co-authored-by: ianswett --- draft-ietf-moq-transport.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index c386c975..d993d6ad 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -713,9 +713,9 @@ remains active until the publisher of the track terminates the subscription with a SUBSCRIBE_DONE (see {{message-subscribe-done}}). A caching relay saves objects to its cache identified by the object's fulltrackname, group ID and object ID. Relays MUST be -ready to process objects for the same fulltrackname from -multiple publishers and the objects received are forwarded -to active matching subscribers. If multiple objects are received +able to process objects for the same Full Track Name from +multiple publishers and forward objects +to active matching subscriptions. If multiple objects are received with the same Full Track Name, group ID and object ID, Relays MUST ignore subsequently received Objects. From 365fb5aeaec109ffe034f7bb224cc9d13d21f8f0 Mon Sep 17 00:00:00 2001 From: Cullen Jennings Date: Wed, 18 Sep 2024 10:16:36 -0600 Subject: [PATCH 18/35] Update draft-ietf-moq-transport.md Co-authored-by: ianswett --- draft-ietf-moq-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index d993d6ad..6dea3bd7 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -712,7 +712,7 @@ subscriber, dependent on the congestion response. A subscription remains active until the publisher of the track terminates the subscription with a SUBSCRIBE_DONE (see {{message-subscribe-done}}). A caching relay saves objects to its cache identified by the object's -fulltrackname, group ID and object ID. Relays MUST be +Full Track Name, group ID and object ID. Relays MUST be able to process objects for the same Full Track Name from multiple publishers and forward objects to active matching subscriptions. If multiple objects are received From 92da76a7ea119642d00f26b2284acf6bbf877c0e Mon Sep 17 00:00:00 2001 From: Cullen Jennings Date: Wed, 18 Sep 2024 10:48:54 -0600 Subject: [PATCH 19/35] Update draft-ietf-moq-transport.md Co-authored-by: Martin Duke --- draft-ietf-moq-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 6dea3bd7..5e8bc9f2 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -782,7 +782,7 @@ to the old relay can be stopped with an UNSUBSCRIBE. Publishing through the relay starts with publisher sending ANNOUNCE control message with a `Track Namespace` ({{model-track}}). -The annouce allows the relays to know which publisher to forward a +The announce allows the relays to know which publisher to forward a SUBSCRIBE to. Relays MUST ensure that publishers are authorized by: From 9a33793909aeab624868a9c54fb6a1c456e11ea8 Mon Sep 17 00:00:00 2001 From: Cullen Jennings Date: Wed, 18 Sep 2024 10:49:09 -0600 Subject: [PATCH 20/35] Update draft-ietf-moq-transport.md Co-authored-by: Martin Duke --- draft-ietf-moq-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 5e8bc9f2..979beafd 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -824,7 +824,7 @@ to that publisher for the full track name in the incoming SUBSCRIBE. When a relay receives an incoming ANNOUCE for a given namespace, for each active subscription that matches that namespace, it SHOULD send a -SUBSCRIBE to that publisher that send the ANNOUCE. +SUBSCRIBE to that publisher that send the ANNOUNCE. OBJECT message headers carry a short hop-by-hop `Track Alias` that maps to the Full Track Name (see {{message-subscribe-ok}}). Relays use the From e7612b9a921dcd6314d7d81bbf75aacab07098a7 Mon Sep 17 00:00:00 2001 From: Cullen Jennings Date: Wed, 18 Sep 2024 11:00:44 -0600 Subject: [PATCH 21/35] update handing of duplicats --- draft-ietf-moq-transport.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 6dea3bd7..69244aac 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -717,7 +717,10 @@ able to process objects for the same Full Track Name from multiple publishers and forward objects to active matching subscriptions. If multiple objects are received with the same Full Track Name, group ID and object ID, -Relays MUST ignore subsequently received Objects. +Relays MAY ignore subsequently received Objects +or MAY use them to update the cache. +Implementations that update the cache need to be protect against cache +poisoning. Objects MUST NOT be sent for unsuccessful subscriptions, and if a subscriber receives a SUBSCRIBE_ERROR after receiving objects, it MUST close the session From a8ca0c1fe9ee45f10211f2c9ed7a0dcd46192f59 Mon Sep 17 00:00:00 2001 From: Cullen Jennings Date: Wed, 18 Sep 2024 12:27:22 -0600 Subject: [PATCH 22/35] update to deal with all data cached case --- draft-ietf-moq-transport.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 9447460f..a642e8fb 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -820,10 +820,11 @@ match on track namespace unless otherwise negotiated by the application. For example, a SUBSCRIBE namespace=foobar message will be forwarded to the session that sent ANNOUNCE namespace=foobar. -When a relay receives an incoming SUBSCRIBE for a given namespace, for +When a relay receives an incoming SUBSCRIBE for a given namespace +that would cause it to send an upstream subscription, for each publisher that has announced that namespace, the relay MUST send a SUBSCRIBE to that publisher unless it already has an active subscription -to that publisher for the full track name in the incoming SUBSCRIBE. +to that publisher for the Full Track Name in the incoming SUBSCRIBE. When a relay receives an incoming ANNOUCE for a given namespace, for each active subscription that matches that namespace, it SHOULD send a From 4484de4b175f598da8ab3b92a3ac27cb48ef8df8 Mon Sep 17 00:00:00 2001 From: Cullen Jennings Date: Wed, 18 Sep 2024 12:37:40 -0600 Subject: [PATCH 23/35] clean up ending of subscribes in relay --- draft-ietf-moq-transport.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index a642e8fb..5376a5ac 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -710,7 +710,8 @@ subscribers for each track. Each new OBJECT belonging to the track within the subscription range is forwarded to each active subscriber, dependent on the congestion response. A subscription remains active until the publisher of the track terminates the -subscription with a SUBSCRIBE_DONE (see {{message-subscribe-done}}). A +subscription with a SUBSCRIBE_DONE (see {{message-subscribe-done}}) +or all the downstream subscriptions are ended. A caching relay saves objects to its cache identified by the object's Full Track Name, group ID and object ID. Relays MUST be able to process objects for the same Full Track Name from From a4303a2c522c4a804a5a2e4e75a676dc6c1aed3c Mon Sep 17 00:00:00 2001 From: Cullen Jennings Date: Wed, 18 Sep 2024 12:39:24 -0600 Subject: [PATCH 24/35] Update draft-ietf-moq-transport.md Co-authored-by: ianswett --- draft-ietf-moq-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 5376a5ac..d27dd9bd 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -823,7 +823,7 @@ the session that sent ANNOUNCE namespace=foobar. When a relay receives an incoming SUBSCRIBE for a given namespace that would cause it to send an upstream subscription, for -each publisher that has announced that namespace, the relay MUST send a +each publisher that has announced that namespace, the relay SHOULD send a SUBSCRIBE to that publisher unless it already has an active subscription to that publisher for the Full Track Name in the incoming SUBSCRIBE. From d28baa535782281c93cdea21dd383b3f4b7afe16 Mon Sep 17 00:00:00 2001 From: Cullen Jennings Date: Wed, 18 Sep 2024 12:40:19 -0600 Subject: [PATCH 25/35] Update draft-ietf-moq-transport.md Co-authored-by: ianswett --- draft-ietf-moq-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index d27dd9bd..02755806 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -778,7 +778,7 @@ to allow for a better user experience when a relay sends a GOAWAY. When a subscriber receives the GOAWAY message, it starts of the process of connecting to a new relay and sending the SUBSCRIBE requests for all active subscriptions to the new relay. The new relay will send a -response to the subscribes and once this has happened, the subscription +response to the subscribes and if they are successful, the subscriptions to the old relay can be stopped with an UNSUBSCRIBE. From 790c7009c72e2fc54a9f9f202e6141949ec13d1d Mon Sep 17 00:00:00 2001 From: ianswett Date: Wed, 18 Sep 2024 18:18:58 -0400 Subject: [PATCH 26/35] Update draft-ietf-moq-transport.md Co-authored-by: Martin Duke --- draft-ietf-moq-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 02755806..b3b51c3b 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -775,7 +775,7 @@ SUBSCRIBE_DONE, as defined below: This section describes behavior a subscriber MAY implement to allow for a better user experience when a relay sends a GOAWAY. -When a subscriber receives the GOAWAY message, it starts of the process +When a subscriber receives the GOAWAY message, it starts the process of connecting to a new relay and sending the SUBSCRIBE requests for all active subscriptions to the new relay. The new relay will send a response to the subscribes and if they are successful, the subscriptions From 263c6d17a05a56b639873eb13e2267c5b1435841 Mon Sep 17 00:00:00 2001 From: ianswett Date: Wed, 18 Sep 2024 18:19:20 -0400 Subject: [PATCH 27/35] Update draft-ietf-moq-transport.md Co-authored-by: afrind --- draft-ietf-moq-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index b3b51c3b..40fe4a55 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -786,7 +786,7 @@ to the old relay can be stopped with an UNSUBSCRIBE. Publishing through the relay starts with publisher sending ANNOUNCE control message with a `Track Namespace` ({{model-track}}). -The announce allows the relays to know which publisher to forward a +The announce enables the relay to know which publisher to forward a SUBSCRIBE to. Relays MUST ensure that publishers are authorized by: From 5de4ee8fb61af86d1a024d697a83ae4ad08148b2 Mon Sep 17 00:00:00 2001 From: ianswett Date: Wed, 18 Sep 2024 18:19:36 -0400 Subject: [PATCH 28/35] Update draft-ietf-moq-transport.md Co-authored-by: afrind --- draft-ietf-moq-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 40fe4a55..be68679d 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -805,7 +805,7 @@ ANNOUNCE MUST send only a single response to a given ANNOUNCE of either ANNOUNCE_OK or ANNOUNCE_ERROR. A Relay can receive announcements from multiple publishers for the same -tracknamespace and it MUST respond with appropriate response to each of the +Track Namespace and it MUST respond with the appropriate response to each of the publishers, in the same way as it would responds when processing ANNOUNCE from a single publisher for a given tracknamespace. From 2c5397e933511b2ca681e25c2cf79da0cb73b14b Mon Sep 17 00:00:00 2001 From: ianswett Date: Wed, 18 Sep 2024 18:21:23 -0400 Subject: [PATCH 29/35] Update draft-ietf-moq-transport.md Co-authored-by: Martin Duke --- draft-ietf-moq-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index be68679d..1c46d4b1 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -806,7 +806,7 @@ either ANNOUNCE_OK or ANNOUNCE_ERROR. A Relay can receive announcements from multiple publishers for the same Track Namespace and it MUST respond with the appropriate response to each of the -publishers, in the same way as it would responds when processing ANNOUNCE +publishers, in the same way as it would respond when processing ANNOUNCE from a single publisher for a given tracknamespace. When a publisher wants to stop From 08b9e0ee0f7dd1cf08fd6a3c65be1953961214a3 Mon Sep 17 00:00:00 2001 From: ianswett Date: Wed, 18 Sep 2024 18:23:08 -0400 Subject: [PATCH 30/35] Update draft-ietf-moq-transport.md --- draft-ietf-moq-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 1c46d4b1..a447e798 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -828,7 +828,7 @@ SUBSCRIBE to that publisher unless it already has an active subscription to that publisher for the Full Track Name in the incoming SUBSCRIBE. When a relay receives an incoming ANNOUCE for a given namespace, for -each active subscription that matches that namespace, it SHOULD send a +each active upstream subscription that matches that namespace, it SHOULD send a SUBSCRIBE to that publisher that send the ANNOUNCE. OBJECT message headers carry a short hop-by-hop `Track Alias` that maps to From 8c8875a9ce170163069e9c2eddec6f10409a3547 Mon Sep 17 00:00:00 2001 From: ianswett Date: Wed, 18 Sep 2024 18:26:17 -0400 Subject: [PATCH 31/35] Minor update --- draft-ietf-moq-transport.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index a447e798..4267f234 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -805,8 +805,8 @@ ANNOUNCE MUST send only a single response to a given ANNOUNCE of either ANNOUNCE_OK or ANNOUNCE_ERROR. A Relay can receive announcements from multiple publishers for the same -Track Namespace and it MUST respond with the appropriate response to each of the -publishers, in the same way as it would respond when processing ANNOUNCE +Track Namespace and it SHOULD respond with the same response to each of the +publishers, as though it was responding to an ANNOUNCE from a single publisher for a given tracknamespace. When a publisher wants to stop From 2cc1034c2b2ae22c0ff6c1dd0d2ab9d367fa5cf9 Mon Sep 17 00:00:00 2001 From: ianswett Date: Thu, 19 Sep 2024 21:25:42 -0400 Subject: [PATCH 32/35] Update draft-ietf-moq-transport.md --- draft-ietf-moq-transport.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 5ae46252..a464c4cc 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -692,13 +692,13 @@ interest. Relays MUST ensure subscribers are authorized to access the content associated with the track. The authorization information can be part of subscription request itself or part of the encompassing session. The specifics of how a relay authorizes a user are -outside the scope of this specification. +outside the scope of this specification. The subscriber is notified +of the result of the subscription via a +SUBSCRIBE_OK ({{message-subscribe-ok}}) or SUBSCRIBE_ERROR +{{message-subscribe-error}} control message. The entity receiving the +SUBSCRIBE MUST send only a single response to a given SUBSCRIBE of +either SUBSCRIBE_OK or SUBSCRIBE_ERROR. -The subscriber making the subscribe request is notified of the result of -the subscription, via SUBSCRIBE_OK ({{message-subscribe-ok}}) or the -SUBSCRIBE_ERROR {{message-subscribe-error}} control message. -The entity receiving the SUBSCRIBE MUST send only a single response to -a given SUBSCRIBE of either SUBSCRIBE_OK or SUBSCRIBE_ERROR. If a relay does not already have a subscription for the track, or if the subscription does not cover all the requested Objects, it will need to make an upstream subscription. The relay SHOULD NOT @@ -710,10 +710,10 @@ subscribers for each track. Each new OBJECT belonging to the track within the subscription range is forwarded to each active subscriber, dependent on the congestion response. A subscription remains active until the publisher of the track terminates the -subscription with a SUBSCRIBE_DONE (see {{message-subscribe-done}}) -or all the downstream subscriptions are ended. A -caching relay saves objects to its cache identified by the object's -Full Track Name, group ID and object ID. Relays MUST be +subscription with a SUBSCRIBE_DONE (see {{message-subscribe-done}}). + +A caching relay saves Objects to its cache identified by the Object's +Full Track Name, Group ID and Object ID. Relays MUST be able to process objects for the same Full Track Name from multiple publishers and forward objects to active matching subscriptions. If multiple objects are received From 5be3af3987456612fca9a8397ab961474397a912 Mon Sep 17 00:00:00 2001 From: ianswett Date: Thu, 19 Sep 2024 21:31:15 -0400 Subject: [PATCH 33/35] Update draft-ietf-moq-transport.md --- draft-ietf-moq-transport.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index a464c4cc..dfd6f7a9 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -713,15 +713,13 @@ remains active until the publisher of the track terminates the subscription with a SUBSCRIBE_DONE (see {{message-subscribe-done}}). A caching relay saves Objects to its cache identified by the Object's -Full Track Name, Group ID and Object ID. Relays MUST be -able to process objects for the same Full Track Name from -multiple publishers and forward objects -to active matching subscriptions. If multiple objects are received -with the same Full Track Name, group ID and object ID, -Relays MAY ignore subsequently received Objects -or MAY use them to update the cache. -Implementations that update the cache need to be protect against cache -poisoning. +Full Track Name, Group ID and Object ID. Relays MUST be able to +process objects for the same Full Track Name from multiple +publishers and forward objects to active matching subscriptions. +If multiple objects are received with the same Full Track Name, +Group ID and Object ID, Relays MAY ignore subsequently received Objects +or MAY use them to update the cache. Implementations that update the +cache need to be protect against cache poisoning. Objects MUST NOT be sent for unsuccessful subscriptions, and if a subscriber receives a SUBSCRIBE_ERROR after receiving objects, it MUST close the session From 9708a361cabe439d8ce509f77e6e5738627df536 Mon Sep 17 00:00:00 2001 From: ianswett Date: Thu, 19 Sep 2024 21:44:49 -0400 Subject: [PATCH 34/35] Rewrite based on Alan's comment --- draft-ietf-moq-transport.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index dfd6f7a9..c054bea3 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -825,11 +825,11 @@ match on track namespace unless otherwise negotiated by the application. For example, a SUBSCRIBE namespace=foobar message will be forwarded to the session that sent ANNOUNCE namespace=foobar. -When a relay receives an incoming SUBSCRIBE for a given namespace -that would cause it to send an upstream subscription, for -each publisher that has announced that namespace, the relay SHOULD send a -SUBSCRIBE to that publisher unless it already has an active subscription -to that publisher for the Full Track Name in the incoming SUBSCRIBE. +When a relay receives an incoming SUBSCRIBE request that triggers an +upstream subscription, it SHOULD send a SUBSCRIBE request to each +publisher that has announced the subscription's namespace, unless it +already has an active subscription for the Objects requested by the +incoming SUBSCRIBE request from all available publishers. When a relay receives an incoming ANNOUCE for a given namespace, for each active upstream subscription that matches that namespace, it SHOULD send a From f15edfaa1df1dceda2b84a271b50b195de67eb33 Mon Sep 17 00:00:00 2001 From: ianswett Date: Thu, 19 Sep 2024 21:52:22 -0400 Subject: [PATCH 35/35] Update draft-ietf-moq-transport.md --- draft-ietf-moq-transport.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index c054bea3..73990cb2 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -797,11 +797,9 @@ Relays MUST ensure that publishers are authorized by: - Verifying that the publisher is authorized to publish the content associated with the set of tracks whose Track Namespace matches the - announced namespace. Specifics of where the authorization and - identification of the publisher happens either at the relays or - forwarded for further processing, depends on the way the relay is - managed and is application specific (typically based on prior business - agreement). + announced namespace. Where the authorization and identification of + the publisher occurs depends on the way the relay is managed and + is application specific. Relays respond with an ANNOUNCE_OK or ANNOUNCE_ERROR control message providing the result of announcement. The entity receiving the