From 133225eb23de50081c8ff6b4e36da1cc6d9881be Mon Sep 17 00:00:00 2001 From: ianswett Date: Thu, 21 Feb 2019 16:47:37 -0500 Subject: [PATCH 1/6] Don't close the connection if MAX_STREAMS is too large --- draft-ietf-quic-transport.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index e0807b51e5..2768c45f31 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -849,7 +849,9 @@ initial_stream_id_for_type) can be opened (see {{long-packet-types}}). Initial limits are set in the transport parameters (see {{transport-parameter-definitions}}) and subsequently limits are advertised using MAX_STREAMS frames ({{frame-max-streams}}). Separate limits apply to -unidirectional and bidirectional streams. +unidirectional and bidirectional streams. If the maximum stream ID that can +be opened is greater than 2^62 - 1, then the receiver MUST interpret it no +stream limit and the receiver MUST NOT close the connection. Endpoints MUST NOT exceed the limit set by their peer. An endpoint that receives a STREAM frame with a stream ID exceeding the limit it has sent MUST From ce7c8f8b02674c9514972141376c224acf4742af Mon Sep 17 00:00:00 2001 From: Mike Bishop Date: Wed, 27 Feb 2019 14:46:10 -0500 Subject: [PATCH 2/6] Update draft-ietf-quic-transport.md Co-Authored-By: ianswett --- draft-ietf-quic-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index 2768c45f31..718e25e98b 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -850,7 +850,7 @@ limits are set in the transport parameters (see {{transport-parameter-definitions}}) and subsequently limits are advertised using MAX_STREAMS frames ({{frame-max-streams}}). Separate limits apply to unidirectional and bidirectional streams. If the maximum stream ID that can -be opened is greater than 2^62 - 1, then the receiver MUST interpret it no +be opened is greater than 2^62 - 1, then the receiver MUST interpret it as no stream limit and the receiver MUST NOT close the connection. Endpoints MUST NOT exceed the limit set by their peer. An endpoint that From 3d521539e063d7f48b4f268e741e318d28ffe46e Mon Sep 17 00:00:00 2001 From: Mike Bishop Date: Wed, 27 Feb 2019 14:46:31 -0500 Subject: [PATCH 3/6] Update draft-ietf-quic-transport.md Co-Authored-By: ianswett --- draft-ietf-quic-transport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index 718e25e98b..690d84183d 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -851,7 +851,7 @@ limits are set in the transport parameters (see using MAX_STREAMS frames ({{frame-max-streams}}). Separate limits apply to unidirectional and bidirectional streams. If the maximum stream ID that can be opened is greater than 2^62 - 1, then the receiver MUST interpret it as no -stream limit and the receiver MUST NOT close the connection. +stream limit; this MUST NOT be treated as an error. Endpoints MUST NOT exceed the limit set by their peer. An endpoint that receives a STREAM frame with a stream ID exceeding the limit it has sent MUST From af35c05cad96fc14386628e2642b8d62e2b02af0 Mon Sep 17 00:00:00 2001 From: ianswett Date: Wed, 27 Feb 2019 14:50:36 -0500 Subject: [PATCH 4/6] Mike's suggestion --- draft-ietf-quic-transport.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index 690d84183d..11bec1f35c 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -849,9 +849,9 @@ initial_stream_id_for_type) can be opened (see {{long-packet-types}}). Initial limits are set in the transport parameters (see {{transport-parameter-definitions}}) and subsequently limits are advertised using MAX_STREAMS frames ({{frame-max-streams}}). Separate limits apply to -unidirectional and bidirectional streams. If the maximum stream ID that can -be opened is greater than 2^62 - 1, then the receiver MUST interpret it as no -stream limit; this MUST NOT be treated as an error. +unidirectional and bidirectional streams. When a MAX_STREAMS frame permits +more streams than can be expressed by the stream ID (i.e. greater than 2^60 - 1), +all valid Stream IDs of that type can be used. Endpoints MUST NOT exceed the limit set by their peer. An endpoint that receives a STREAM frame with a stream ID exceeding the limit it has sent MUST From cda354797056de6323731738c5a0a1836d7cef71 Mon Sep 17 00:00:00 2001 From: ianswett Date: Wed, 27 Feb 2019 14:54:57 -0500 Subject: [PATCH 5/6] Update draft-ietf-quic-transport.md --- draft-ietf-quic-transport.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index 11bec1f35c..b54867f22c 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -850,8 +850,8 @@ limits are set in the transport parameters (see {{transport-parameter-definitions}}) and subsequently limits are advertised using MAX_STREAMS frames ({{frame-max-streams}}). Separate limits apply to unidirectional and bidirectional streams. When a MAX_STREAMS frame permits -more streams than can be expressed by the stream ID (i.e. greater than 2^60 - 1), -all valid Stream IDs of that type can be used. +more streams than can be expressed by the stream ID +(i.e. greater than 2^60 - 1), all valid Stream IDs of that type can be used. Endpoints MUST NOT exceed the limit set by their peer. An endpoint that receives a STREAM frame with a stream ID exceeding the limit it has sent MUST From 37f2f825fe9171239030be7417de177779b617e6 Mon Sep 17 00:00:00 2001 From: Mike Bishop Date: Wed, 27 Feb 2019 12:00:26 -0800 Subject: [PATCH 6/6] Rewrap --- draft-ietf-quic-transport.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index b54867f22c..28224c1184 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -849,9 +849,9 @@ initial_stream_id_for_type) can be opened (see {{long-packet-types}}). Initial limits are set in the transport parameters (see {{transport-parameter-definitions}}) and subsequently limits are advertised using MAX_STREAMS frames ({{frame-max-streams}}). Separate limits apply to -unidirectional and bidirectional streams. When a MAX_STREAMS frame permits -more streams than can be expressed by the stream ID -(i.e. greater than 2^60 - 1), all valid Stream IDs of that type can be used. +unidirectional and bidirectional streams. When a MAX_STREAMS frame permits more +streams than can be expressed by the stream ID (i.e. greater than 2^60 - 1), all +valid Stream IDs of that type can be used. Endpoints MUST NOT exceed the limit set by their peer. An endpoint that receives a STREAM frame with a stream ID exceeding the limit it has sent MUST