Subject: [quicwg/base-drafts] Martin Duke's QPACK comments (#4750)

From: Mike Bishop <[email-masked]>
Date: Tue, 19 Jan 2021 07:53:29 -0800

Fixes #4748.
Fixes #4749.

I opted to reframe the language from HTTP/3 endpoint to decoder, since encoder and decoder instances are what this spec primarily talks about.  We already say that HTTP/3 endpoints contain both an encoder and a decoder.

I also added a comment that encoders track the contents of the table at the decoder. I specifically did not say that they keep a full copy of the table, however; they might not.

You can view, comment on, or merge this pull request online at:

  https://github.com/quicwg/base-drafts/pull/4750

-- Commit Summary --

  * Martin Duke&#39;s QPACK comments

-- File Changes --

    M draft-ietf-quic-qpack.md (9)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/4750.patch
https://github.com/quicwg/base-drafts/pull/4750.diff

-- 
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/pull/4750

---

From: martinduke <[email-masked]>
Date: Tue, 19 Jan 2021 08:48:40 -0800

@martinduke approved this pull request.

-- 
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/pull/4750#pullrequestreview-571442209

---

From: Martin Thomson <[email-masked]>
Date: Tue, 19 Jan 2021 12:48:21 -0800

@martinthomson approved this pull request.

> @@ -486,8 +487,8 @@ Dynamic table entries can have empty values.
 The size of the dynamic table is the sum of the size of its entries.
 
 The size of an entry is the sum of its name's length in bytes, its value's
-length in bytes, and 32.  The size of an entry is calculated using the length of
-its name and value without Huffman encoding applied.
+length in bytes, and 32 bytes.  The size of an entry is calculated using the

You could say 32 additional bytes even.

-- 
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/pull/4750#pullrequestreview-571646255

---

From: Mike Bishop <[email-masked]>
Date: Tue, 19 Jan 2021 13:28:58 -0800

@MikeBishop pushed 1 commit.

2fc74fb3585d5f72fe16515e4786d3d5fc9419ad  Additional word

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/4750/files/ec953903ebf164840228a120123f2a4988d94dc9..2fc74fb3585d5f72fe16515e4786d3d5fc9419ad

---

From: afrind <[email-masked]>
Date: Tue, 19 Jan 2021 15:12:52 -0800

@afrind commented on this pull request.

> +first-out order.  Each QPACK decoder holds a dynamic table that is initially
 empty.  Entries are added by encoder instructions received on the encoder
-stream; see {{encoder-instructions}}.
+stream; see {{encoder-instructions}}.  The encoder tracks the contents of the
+dynamic table maintained by the decoder.

I think it's slightly odd to say that the encoder tracks the decoder, when in practice the encoder is doing the inserts and uses it for compression.  Let me think a bit.

-- 
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/pull/4750#pullrequestreview-571743341

---

From: afrind <[email-masked]>
Date: Tue, 19 Jan 2021 15:35:17 -0800

How about:

> The dynamic table consists of a list of field lines maintained in first-in, first-out order.  A QPACK encoder and decoder share a dynamic table that is initially empty. The encoder adds entries to the dynamic table and sends them to the decoder via instructions on the encoder stream; see {{encoder-instructions}}.   

I'm on the fence about adding another sentence about how the encoder tracks the decoder's current state via the decoder stream.

-- 
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/pull/4750#discussion_r560572500

---

From: Mike Bishop <[email-masked]>
Date: Fri, 22 Jan 2021 08:47:17 -0800

46c6c42554a496a98a25a8451835540fd38b246b  @afrind's text

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/4750/files/2fc74fb3585d5f72fe16515e4786d3d5fc9419ad..46c6c42554a496a98a25a8451835540fd38b246b

---

From: Mike Bishop <[email-masked]>
Date: Fri, 22 Jan 2021 08:49:56 -0800

@MikeBishop commented on this pull request.

I was trying to leave room for the nuance that the encoder can forget the contents of the table entries at any point, while the decoder is obliged to keep the whole thing around.  That's why it feels more accurate to say that the table "lives" at the decoder, and the encoder is tracking and manipulating it remotely.  But I can live with saying that they share it, which is also true.

-- 
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/pull/4750#discussion_r562764066

---

From: afrind <[email-masked]>
Date: Mon, 25 Jan 2021 15:51:20 -0800

Merged #4750 into master.

-- 
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/pull/4750#event-4248233421