Subject: [quicwg/base-drafts] QPACK table lookup noob clarifications (#2438)

From: Alessandro Ghedini <[email-masked]>
Date: Fri, 08 Feb 2019 05:38:15 -0800

A couple of clarifications that can be useful to people who are looking at *PACK for the first time like myself. Not sure about the normative language though. I can reword it if necessary.
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * Return empty string if table does not have a value
  * Ignore header value from table for literals with name reference

-- File Changes --

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

-- Patch Links --

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

---

From: Lucas Pardue <[email-masked]>
Date: Fri, 08 Feb 2019 05:53:36 -0800

LPardue 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/2438#pullrequestreview-201587653

---

From: Dmitri Tikhonov <[email-masked]>
Date: Fri, 08 Feb 2019 06:07:33 -0800

Let's see how [HPACK](https://tools.ietf.org/html/rfc7541#section-6.1) handles it:

```
   Either form of header field name representation is followed by the
   header field value represented as a string literal (see Section 5.2).
```

We could simply add similar verbiage to Sections [4.5.4](https://tools.ietf.org/html/draft-ietf-quic-qpack-06#section-4.5.4) and 4.5.5. of the QPACK draft instead.

-- 
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/2438#issuecomment-461813590

---

From: Mike Bishop <[email-masked]>
Date: Fri, 08 Feb 2019 13:16:37 -0800

MikeBishop commented on this pull request.

> @@ -963,6 +963,9 @@ followed by the `S` bit indicating whether the reference is into the static
 field is represented as an integer with a 6-bit prefix (see Section 5.1 of
 [RFC7541]).
 
+If the entry in the static or dynamic table does not provide any header field
+value (as opposed to a name), a zero-length string MUST be used.
+

Setting aside the legacy HPACK table that had nothing at index 0 (and my implementation did indeed return `(String.Empty,String.Empty)`), is this even possible?  If there's a reference to an index which isn't valid, that's an error.  If it is valid, then something has been inserted there -- which might have been a pair of empty strings, but that's still the contents.

-- 
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/2438#pullrequestreview-201788480

---

From: Lucas Pardue <[email-masked]>
Date: Fri, 08 Feb 2019 13:20:28 -0800

LPardue commented on this pull request.

I think the "problem case" is referencing a static table item with empty value. We discussed how to build the header list and felt that it it the job of the H3 endpoint to validate the header list, not QPACKs. This change makes it clear what to do, and what H3 could check in validation.

-- 
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/2438#discussion_r255239003

---

From: Martin Thomson <[email-masked]>
Date: Sun, 10 Feb 2019 17:04:34 -0800

martinthomson commented on this pull request.

I think that it's easiest to say that entries in the static table all have a value, but that some values are empty.  This text seems to confer some sort of special status on "absent" values.

-- 
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/2438#discussion_r255366882

---

From: Alessandro Ghedini <[email-masked]>
Date: Mon, 11 Feb 2019 03:36:48 -0800

@ghedo pushed 1 commit.

2220df8a22572155fef1bef18cc093b70808eeb2  Reword according to Martin's suggestion

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2438/files/81eb4505fff44d4e8420deab468eb70b32accc0b..2220df8a22572155fef1bef18cc093b70808eeb2

---

From: Alessandro Ghedini <[email-masked]>
Date: Mon, 11 Feb 2019 03:37:38 -0800

ghedo commented on this pull request.

@martinthomson I reworded that part and moved it to the "Static Table" section.

-- 
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/2438#discussion_r255470591

---

From: Alessandro Ghedini <[email-masked]>
Date: Mon, 11 Feb 2019 03:43:03 -0800

@dtikhonov I can add something like that, but TBH I don't think that the HPACK wording would have helped me, so I'd rather keep my clarification (that says "ignore value") as well.

-- 
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/2438#issuecomment-462299233

---

From: Mike Bishop <[email-masked]>
Date: Mon, 11 Feb 2019 16:35:44 -0800

This wording seems fine.

> @@ -362,6 +362,9 @@ addressed.
 The static table consists of a predefined static list of header fields, each of
 which has a fixed index over time.  Its entries are defined in {{static-table}}.
 
+All entries in the static table have a name and a value.  However values can be

```suggestion
All entries in the static table have a name and a value.  However, values can be
```

> @@ -362,6 +362,9 @@ addressed.
 The static table consists of a predefined static list of header fields, each of
 which has a fixed index over time.  Its entries are defined in {{static-table}}.
 
+All entries in the static table have a name and a value.  However values can be
+empty, that is, have a length of 0.

```suggestion
empty (that is, have a length of 0).
```

-- 
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/2438#pullrequestreview-202419263

---

From: Alessandro Ghedini <[email-masked]>
Date: Tue, 12 Feb 2019 02:52:52 -0800

@ghedo pushed 1 commit.

bf864746476a95ce98b016da3900069e5516d1cf  Apply suggestions from Mike

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2438/files/2220df8a22572155fef1bef18cc093b70808eeb2..bf864746476a95ce98b016da3900069e5516d1cf