From b7230d062463a04d639c24337803e2df21e23135 Mon Sep 17 00:00:00 2001 From: afrind Date: Fri, 15 Nov 2024 13:30:27 -0800 Subject: [PATCH 1/3] Invalid Track Alias/Subscribe ID are a protocol violation Fixes: #458 --- draft-ietf-moq-transport.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index 7a38ff18..d3bb886c 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -2131,6 +2131,10 @@ OBJECT_DATAGRAM Message { ~~~ {: #object-datagram-format title="MOQT OBJECT_DATAGRAM Message"} +If an endpoint receives an OBJECT_DATAGRAM with a Track Alias that does not +correspond to an active or recently closed subscription, it closes the session +with a protocol violation. + ## Streams When objects are sent on streams, the stream begins with a stream header @@ -2171,6 +2175,11 @@ following fields. The Object Status field is only sent if the Object Payload Length is zero. +If an endpoint receives an STREAM_HEADER_SUBGROUP with a Track Alias that does +not correspond to an active or recently closed subscription, it closes the +session with a protocol violation. + + ~~~ { Object ID (i), @@ -2184,6 +2193,7 @@ The Object Status field is only sent if the Object Payload Length is zero. A publisher MUST NOT send an Object on a stream if its Object ID is less than a previously sent Object ID within a given group in that stream. + ### Closing Subgroup Streams Subscribers will often need to know if they have received all objects in a @@ -2262,6 +2272,9 @@ FETCH_HEADER Message { ~~~ {: #fetch-header-format title="MOQT FETCH_HEADER Message"} +If an endpoint receives a FETCH stream that references a subscription ID that does +not refer to an active or recently closed FETCH, it closes the connection with a +Protocol Violation. Each object sent on a fetch stream after the FETCH_HEADER has the following format: From f2c43eb984fb6f76cff1eba6800dd86524e012b0 Mon Sep 17 00:00:00 2001 From: afrind Date: Fri, 15 Nov 2024 20:24:47 -0800 Subject: [PATCH 2/3] Small tweaks --- 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 d3bb886c..5bad785d 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -2175,7 +2175,7 @@ following fields. The Object Status field is only sent if the Object Payload Length is zero. -If an endpoint receives an STREAM_HEADER_SUBGROUP with a Track Alias that does +If an endpoint receives a STREAM_HEADER_SUBGROUP with a Track Alias that does not correspond to an active or recently closed subscription, it closes the session with a protocol violation. @@ -2272,7 +2272,7 @@ FETCH_HEADER Message { ~~~ {: #fetch-header-format title="MOQT FETCH_HEADER Message"} -If an endpoint receives a FETCH stream that references a subscription ID that does +If an endpoint receives a FETCH_HEADER that references a subscription ID that does not refer to an active or recently closed FETCH, it closes the connection with a Protocol Violation. From a7bda01794ee5f3b6947f88b1bd4fd0f29923c50 Mon Sep 17 00:00:00 2001 From: ianswett Date: Mon, 2 Dec 2024 12:23:05 -0500 Subject: [PATCH 3/3] Update draft-ietf-moq-transport.md --- draft-ietf-moq-transport.md | 1 - 1 file changed, 1 deletion(-) diff --git a/draft-ietf-moq-transport.md b/draft-ietf-moq-transport.md index e077f076..8893a70a 100644 --- a/draft-ietf-moq-transport.md +++ b/draft-ietf-moq-transport.md @@ -2218,7 +2218,6 @@ session with a protocol violation. A publisher MUST NOT send an Object on a stream if its Object ID is less than a previously sent Object ID within a given group in that stream. - ### Closing Subgroup Streams Subscribers will often need to know if they have received all objects in a