From f05864fdd24b603a37afcfbd5aaed95ff67fffac Mon Sep 17 00:00:00 2001 From: Mike Bishop Date: Mon, 17 Aug 2020 15:23:09 -0400 Subject: [PATCH 1/3] No encoder memory for blocked --- draft-ietf-quic-qpack.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/draft-ietf-quic-qpack.md b/draft-ietf-quic-qpack.md index 37d85150d6..e3abf40dd9 100644 --- a/draft-ietf-quic-qpack.md +++ b/draft-ietf-quic-qpack.md @@ -1362,9 +1362,13 @@ allows (see {{eviction}}). A decoder can limit the amount of state memory used for blocked streams by setting an appropriate value for the maximum number of blocked streams. In HTTP/3, this is realized by setting an appropriate value for the -QPACK_BLOCKED_STREAMS parameter. An encoder can limit the amount of state -memory by only using as many blocked streams as it wishes to support; no -signaling to the decoder is required. +QPACK_BLOCKED_STREAMS parameter. Streams which risk becoming blocked consume no +additional state memory on the encoder. + +An encoder allocates memory to track all dynamic table references in +unacknowledged representations. Implementations can directly limit the amount +of state memory by only using as many references to the dynamic table as it +wishes to track; no signaling to the decoder is required. The amount of temporary memory consumed by an encoder or decoder can be limited by processing header fields sequentially. A decoder implementation does not need From 4bdcea58d8163be48647c178da7d14e4042a4218 Mon Sep 17 00:00:00 2001 From: Mike Bishop Date: Tue, 18 Aug 2020 09:35:10 -0400 Subject: [PATCH 2/3] Caution --- draft-ietf-quic-qpack.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/draft-ietf-quic-qpack.md b/draft-ietf-quic-qpack.md index e3abf40dd9..718bfcf805 100644 --- a/draft-ietf-quic-qpack.md +++ b/draft-ietf-quic-qpack.md @@ -1368,7 +1368,8 @@ additional state memory on the encoder. An encoder allocates memory to track all dynamic table references in unacknowledged representations. Implementations can directly limit the amount of state memory by only using as many references to the dynamic table as it -wishes to track; no signaling to the decoder is required. +wishes to track; no signaling to the decoder is required. However, limiting +references to the dynamic table will reduce compression effectiveness. The amount of temporary memory consumed by an encoder or decoder can be limited by processing header fields sequentially. A decoder implementation does not need From 064a3d690a9ea6febb6359a060f19d671da6a9a1 Mon Sep 17 00:00:00 2001 From: Mike Bishop Date: Tue, 18 Aug 2020 16:38:45 -0400 Subject: [PATCH 3/3] @afrind's feedback --- draft-ietf-quic-qpack.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-quic-qpack.md b/draft-ietf-quic-qpack.md index 718bfcf805..7e9f76b8fc 100644 --- a/draft-ietf-quic-qpack.md +++ b/draft-ietf-quic-qpack.md @@ -1366,7 +1366,7 @@ QPACK_BLOCKED_STREAMS parameter. Streams which risk becoming blocked consume no additional state memory on the encoder. An encoder allocates memory to track all dynamic table references in -unacknowledged representations. Implementations can directly limit the amount +unacknowledged field sections. An implementation can directly limit the amount of state memory by only using as many references to the dynamic table as it wishes to track; no signaling to the decoder is required. However, limiting references to the dynamic table will reduce compression effectiveness.