HPACK, Dynamic Table Size Update

Hi,

1. Can a "Dynamic Table Size Update" be unsolicited or its only purpose is to
acknowledge the fact that encoder has understood the request sent by decoder and
agreed to use a new maximum upper bound for the dynamic table size?

2. From "4.2.  Maximum Table Size":

   ...Multiple updates to the maximum table size can occur between the
   transmission of two header blocks.  In the case that this size is
   changed more than once in this interval, the smallest maximum table
   size that occurs in that interval MUST be signaled in a dynamic table
   size update.  The final maximum size is always signaled, resulting in
   at most two dynamic table size updates.  This ensures that the
   decoder is able to perform eviction based on reductions in dynamic
   table size (see Section 4.3)...

Am I right saying that _semantically_ it would be equivalent to this schematic
behaviour (depicted by pseudo-code):

    Encoder.setMaxSize( size ) {

      if size < minSizeSoFar
        minSizeSoFar = size

      lastSize = size;

    }

    Encoder.encodeAndSendAsHeaderBlock( headers ) {

      sendMaximumSizeUpdate( minSizeSoFar );

      if minSizeSoFar != lastSize
        sendMaximumSizeUpdate( lastSize );

      for each (Header h in headers) {
          ...
      }
      ...
    }

Or this paragraph means something completely different?

Thanks.

-Pavel

Received on Tuesday, 9 June 2015 13:15:43 UTC