Subject: Position of HPACK Dynamic Table Size Update

From: Tatsuhiro Tsujikawa <[email-masked]>
Date: Wed, 29 Mar 2017 22:32:56 +0900

Hi,

I'd like to clarify the requirement of the position of HPACK Dynamic Table
Size Update.
Should it appear always at the beginning of the header block?  Or is it
only required to do so only if it is the ack of SETTINGS?

Background: https://github.com/summerwind/h2spec/issues/78

Best regards,
Tatsuhiro Tsujikawa

---

From: Mike Bishop <[email-masked]>
Date: Wed, 29 Mar 2017 14:30:41 +0000

I can’t speak to everyone’s implementation, but I don’t believe there’s a restriction on where in the packet an encoder can choose to change the table size.  We discussed, for example, the ability to clear the table by issuing back-to-back changes to zero and back to non-zero.

I would restate the highlighted text in the table as “if the SETTINGS_MAX_TABLE_SIZE changes such that the current size is no longer valid, the encoder MUST emit a table size change instruction prior to emitting any new compressed header blocks.”

From: Tatsuhiro Tsujikawa [mailto:[email-masked]]
Sent: Wednesday, March 29, 2017 8:33 AM
To: [email-masked]
Subject: Position of HPACK Dynamic Table Size Update

Hi,

I'd like to clarify the requirement of the position of HPACK Dynamic Table Size Update.
Should it appear always at the beginning of the header block?  Or is it only required to do so only if it is the ack of SETTINGS?
Background: https://github.com/summerwind/h2spec/issues/78
Best regards,
Tatsuhiro Tsujikawa

---

From: Cory Benfield <[email-masked]>
Date: Thu, 30 Mar 2017 09:40:05 +0100

> On 29 Mar 2017, at 14:32, Tatsuhiro Tsujikawa <[email-masked]> wrote:
> 
> Hi,
> 
> Background: https://github.com/summerwind/h2spec/issues/78 <https://github.com/summerwind/h2spec/issues/78>
> 
> Best regards,
> Tatsuhiro Tsujikawa

Interesting. I’ve definitely read that section of the RFC as saying that dynamic table size updates must occur at the front of a block, but that you may have more than one in sequence. Put another way, a given header table size block may have 0 or more dynamic table size updates, followed by headers.

But of course, there is nothing in the text that actually requires this. It does seems somewhat simpler to say that header table size updates must come at the start of a header block.

Cory