Subject: [quicwg/base-drafts] Minor inconsistency of error when MAX_STREAMS exceeds 2^60 (#3781)

From: Lucas Pardue <[email-masked]>
Date: Sun, 21 Jun 2020 00:43:13 -0700

Over on https://github.com/cloudflare/quiche/issues/565 we had a discussion about whether a MAX_STREAMS frame with value exceeding 2^60 generates a FRAME_ENCODING or a STREAM_LIMIT error.

Draft 29 Section 19.11 says:

> Maximum Streams: A count of the cumulative number of streams of the
corresponding type that can be opened over the lifetime of the
connection. This value cannot exceed 2^60, as it is not possible
to encode stream IDs larger than 2^62-1. Receipt of a frame that
permits opening of a stream larger than this limit MUST be treated
as a FRAME_ENCODING_ERROR.

but as @goelvidhi points out, Section 4.5 says 

> If a max_streams transport parameter or MAX_STREAMS frame is received
with a value greater than 2^60, this would allow a maximum stream ID
that cannot be expressed as a variable-length integer; see
Section 16. If either is received, the connection MUST be closed
immediately with a connection error of type STREAM_LIMIT_ERROR

Meanwhile, for the STREAMS_BLOCKED frame in Section 19.15 we have:

> Receipt of a frame that encodes a larger stream ID MUST be treated as a STREAM_LIMIT_ERROR or a FRAME_ENCODING_ERROR.

I suspect both Vidhi and I are correct, bogus MAX_STREAMS can be treated as either STREAM_LIMIT or FRAME_ENCODING. If so, its probably a minor editorial fix to state either/or in both the sections.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/3781