Subject: Clarification on HPACK dynamic table size increases?

From: Daurnimator <[email-masked]>
Date: Thu, 12 Mar 2015 18:53:13 -0400

I'm working on implementing HPACK, wanted clarification on whether the
dynamic table can grow:

>From 4.2
> This mechanism can be used to completely clear entries from the dynamic table by setting a maximum size of 0, which can subsequently be restored.

However, 6.3 has a MUST that the table may only be reduced in size:
> The new maximum size MUST be lower than or equal to the last value of the maximum size of the dynamic table.

Regards,
Daurn.

---

From: Mike Bishop <[email-masked]>
Date: Thu, 12 Mar 2015 23:49:26 +0000

6.3 isn't saying that the value can only be reduced.  There is a maximum that the decompressor has said it's willing to allow the compressor, and the compressor is allowed to choose any value <= what the decompressor allows it.  The wording there could be cleaner, since there's a maximum table size, and a maximum value *for* the maximum table size.  :-(

-----Original Message-----
From: Daurnimator [mailto:[email-masked]] 
Sent: Thursday, March 12, 2015 3:53 PM
To: [email-masked]
Subject: Clarification on HPACK dynamic table size increases?

Regards,
Daurn.

---

From: Hervé Ruellan <[email-masked]>
Date: Tue, 17 Mar 2015 15:31:02 +0100

>> The new maximum size MUST be lower than or equal to the last value of the maximum size of the dynamic table.

I agree that 4.2 isn't very clear, and that 6.3 is misleading. I just 
created a pull request for correcting 6.3:
https://github.com/http2/http2-spec/pull/729

Hervé.

---

From: Martin Thomson <[email-masked]>
Date: Tue, 17 Mar 2015 09:43:46 -0700

On 17 March 2015 at 07:31, Hervé Ruellan <[email-masked]> wrote:
>> 6.3 isn't saying that the value can only be reduced.  There is a maximum
>> that the decompressor has said it's willing to allow the compressor, and the
>> compressor is allowed to choose any value <= what the decompressor allows
>> it.  The wording there could be cleaner, since there's a maximum table size,
>> and a maximum value *for* the maximum table size.  :-(
>>
>>> This mechanism can be used to completely clear entries from the dynamic
>>> table by setting a maximum size of 0, which can subsequently be restored.
>>
>>

Note that pull requests won't reach the spec.  We'll have to let the
RFC editor know what changes to make.  (And we need to be extra
careful to avoid breaking changes).