Subject: Re: [quicwg/base-drafts] QPACK could use some examples (#1454)

From: afrind <[email-masked]>
Date: Fri, 14 Sep 2018 16:27:24 -0700

For reference, there is now this repo: https://github.com/qpackers/qifs, which contains example encodings.  We could brush this up and have some semi-canonical encodings there.  That said, I kind of liked having a few concrete examples in the HPACK specification that you can refer back to.

Just reviewing HPACK's examples, it has:

3 Integer encoding examples
An example encoding of each instruction
A sequence of three requests and one with three responses, each encoded both with and without Huffman 

For each of the request/response examples it has a block that shows the decoding process - which octets produce which decoder actions (insert, evict, emit, etc). 

I'm not sure how much of this ground we need to retread in QPACK.  Since we use the same integer and Huffman encoding, we could probably skip those.  

So maybe we should have

1. One String literal example
2. One Example of each instruction (4 encoder, 3 decoder, 5 request)
3. An encoding that does not use the dynamic table/control stream at all
4. An encoding that uses the control stream
5. An encoding that uses the control stream and post-base instructions
6. An encoding that makes a duplicate on the control stream and references it

I think 1 and 2 are more to be consistent with what HPACK did and shouldn't really be required.  Even so, this might be a long section.

I'd like to avoid anything that involves decoder->encoder feedback since it can get hairy pretty quickly.  I'm less inclined to include the decoding process diagrams since decoding is pretty simple - it only emits.

-- 
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/1454#issuecomment-421509364

---

From: Mike Bishop <[email-masked]>
Date: Wed, 26 Sep 2018 10:04:57 -0700

Perhaps the real decoder examples that are useful would be to show the state of the dynamic table before and after the control stream instructions?  I agree that we probably don't want examples that show an encoder responding to feedback, but it might be worth noting in the examples when the decoder sends it.

-- 
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/1454#issuecomment-424794680