Subject: [quicwg/base-drafts] Implicit acknowledgment via header block acknowledgment (#1399)

From: Martin Thomson <[email-masked]>
Date: Tue, 29 May 2018 19:27:51 -0700

I'm sure that this could be better, but here you go.

Closes #1370.
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * Implicit acknowledgment via header block acknowledgment

-- File Changes --

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

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/1399.patch
https://github.com/quicwg/base-drafts/pull/1399.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/1399

---

From: Mike Bishop <[email-masked]>
Date: Wed, 30 May 2018 10:58:37 -0700

MikeBishop requested changes on this pull request.

Before this change, the encoder simply kept an "Acknowledged" index that started at zero and incremented by the specified amount each time it received a TSS.

Now it needs to keep two things:  "Explicitly Acknowledged" and "Acknowledged".  When you receive a TSS, you increment Explicitly Acknowledged as before.  The actual Acknowledged state is the largest-seen value of Explicitly Acknowledged or an acknowledged Largest Reference.

We probably need to explicitly say that these implicit acknowledgements don't affect that the number in TSS is still since the last TSS.  (Unless we want the decoder to track what the encoder will have gathered from its acks, in which case it could.)

> @@ -523,6 +530,12 @@ blocks within a stream have been fully processed.
 ~~~~~~~~~~
 {:#fig-header-ack title="Header Acknowledgement"}
 
+An encoder MUST treat receipt of a Header Acknowledgment as also acknowledging
+any dynamic table entries that the header block referenced.  That is, this
+instruction is also processed as a Table Size Synchronize instruction with a
+value matching the Largest Reference of the corresponding header block.

Not quite, because TSS is a count of the inserts received since the last TSS, instead of an absolute index.

-- 
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/1399#pullrequestreview-124522166

---

From: Martin Thomson <[email-masked]>
Date: Wed, 30 May 2018 18:30:50 -0700

martinthomson commented on this pull request.

 ~~~~~~~~~~

Damn, really?  That's more efficient, I agree, but I completely missed that.  (My fault, not the spec.)  Since these are on the same stream, I think that we can make TSS incremental and avoid having two counters.

Now I have to fix my code...

-- 
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/1399#discussion_r191968112