Subject: [quicwg/base-drafts] Simplify SETTINGS payload (#1807)

From: Mike Bishop <[email-masked]>
Date: Thu, 27 Sep 2018 18:20:03 +0000 (UTC)

Fixes #1556 by making all setting values varints and removing length prefixes.  This has two ramifications, which are probably livable:
- An extension which needs a structured configuration message needs to define an extra frame/stream type to carry that message.
- An extension which used the full 32-bit space in HTTP/2 will spill over to a 64-bit varint, because in four bytes we only carry 30 bits of payload.
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * Simplify SETTINGS payload
  * Guidance in HTTP/2 section

-- File Changes --

    M draft-ietf-quic-http.md (29)

-- Patch Links --

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

---

From: ianswett <[email-masked]>
Date: Thu, 27 Sep 2018 13:36:29 -0700

ianswett commented on this pull request.

> @@ -1478,6 +1469,12 @@ SETTINGS_MAX_FRAME_SIZE:
 SETTINGS_MAX_HEADER_LIST_SIZE:
 : See {{settings-parameters}}.
 
+In HTTP/QUIC, setting values are variable-length integers (6, 14, 30, or 62 bits
+long) rather than fixed-length 32-bit fields.  This will often produce a shorter
+encoding, but will produce a longer encoding for settings which use the full
+32-bit space.  Settings ported from HTTP/2 might choose to redefine the format
+of their settings to avoid using the 62-bit encoding.

I'm not sure I understand the purpose of this additional text?  You lose 2 bits on 32 bit fields, but do we really expect that will require changes on anyone's part?

-- 
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/1807#pullrequestreview-159630432

---

From: Mike Bishop <[email-masked]>
Date: Thu, 27 Sep 2018 16:10:23 -0700

MikeBishop commented on this pull request.

Secondary Certs currently stuffs an exporter in the setting value (to confirm both peers are on the same TLS connection with no MitM), and would overflow to an eight-byte field.  It doesn't *require* changes, but it's advisable to either take advantage of the entire eight bytes or trim two bits off to still fit in four bytes.  Hence, "might choose."

-- 
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/1807#discussion_r221103830

---

From: ianswett <[email-masked]>
Date: Thu, 27 Sep 2018 16:34:43 -0700

In that case, how about starting the paragraph with 'Setting values are ...... rather than fixed length 32-bit fields as in HTTP/2."  Currently you mention HTTP/QUIC in the HTTP/QUIC draft, and don't reference the thing you're comparing against(HTTP/2).

-- 
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/1807#discussion_r221107359

---

From: Mike Bishop <[email-masked]>
Date: Thu, 27 Sep 2018 16:54:06 -0700

@MikeBishop pushed 1 commit.

ed5b22f  Comparison game

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/1807/files/22029e559cec2cb713fe522e6c4fcb205cb115e8..ed5b22f9f4b2c3b737fbc90f1751b8724a7448b7

---

From: ianswett <[email-masked]>
Date: Thu, 27 Sep 2018 16:58:01 -0700

ianswett 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/1807#pullrequestreview-159682465