Subject: [quicwg/base-drafts] Maximal change for HTTP integer encoding (#888)

From: Martin Thomson <[email-masked]>
Date: Tue, 17 Oct 2017 23:34:25 -0700

This didn't turn out to be that disruptive.  I'm somewhat worried that I missed
something actually.  Given that the changes are small, I think that I would
prefer this over #887 for #877.

The most interesting change here is that extension frame types that mention
Stream IDs will have to change.  I am not aware of any proposed thus far, so
maybe it's not too much of a cost to bear.  It further confirms my view that we
shouldn't be using Stream IDs at this layer anyway.

Based on this, I don't see any need for a middle-ground change.  The biggest
cost here is in taking the larger Stream ID space, not in taking the integer
encoding.  Worse, I just noticed that PRIORITY would need a lot more work to
split if we only took the change for Stream ID, so the difference would be tiny.
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * Maximal change for HTTP integer encoding

-- File Changes --

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

-- Patch Links --

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

---

From: ianswett <[email-masked]>
Date: Wed, 18 Oct 2017 13:09:25 +0000 (UTC)

ianswett commented on this pull request.

Some small nits, but looks reasonable to me.

> @@ -569,8 +578,9 @@ that is being cancelled (see {{frame-push-promise}}).
 If the client receives a CANCEL_PUSH frame, that frame might identify a Push ID

There's a reference to a 32 bit Push ID three lines above this one.  I think that needs to be updated as well?

> @@ -966,6 +976,13 @@ applicable to both protocols at once.
 
 These departures are noted in this section.
 
+## Streams {#h2-streams}
+
+HTTP/QUIC permits use of a larger number of streams (2^62-1) then HTTP/2.  The
+considerations about exhaustion of stream identifier space apply, though the
+space is significantly larger such that it is likely that other limits in QUIC
+are reached first, such asthe limit on the connection flow control window.

asthe -> as the

> @@ -701,9 +708,9 @@ server to client, as in HTTP/2.  The PUSH_PROMISE frame defines no flags.
 The payload consists of:
 
 Push ID:
-: A 32-bit identifier for the server push request.  A push ID is used in push
-  stream header ({{server-push}}), CANCEL_PUSH frames ({{frame-cancel-push}}),
-  and PRIORITY frames ({{frame-priority}}).
+: A variable-length integer that identifies the server push request.  A push ID

It'd be nice if we didn't have to call it a variable length integer everywhere.  The encoding is variable length, but I think of the integer being encoded as having a fixed length of 62 bits.  I'm not sure it's better to say a 62 bit integer or not.

-- 
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/888#pullrequestreview-70199963

---

From: Martin Thomson <[email-masked]>
Date: Wed, 18 Oct 2017 22:49:29 +0000 (UTC)

martinthomson commented on this pull request.

Actually, there were two, thanks.

-- 
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/888#discussion_r145563616

---

From: Martin Thomson <[email-masked]>
Date: Wed, 18 Oct 2017 15:50:39 -0700

The payload consists of:
 
 Push ID:

I think that this is OK.  XXX-bit and variable-length occupy the same mental space and the later is more correct.  Substitute 62-bit if that works for you, but I don't want to have to explain that 62-bit means the variable-length encoding.

-- 
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/888#discussion_r145563763

---

From: Martin Thomson <[email-masked]>
Date: Wed, 18 Oct 2017 22:52:21 +0000 (UTC)

@martinthomson pushed 1 commit.

d241018  Missed a few fixed-size integers

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/888/files/b1d50145ab9f0fbc2f4cc00908e4081814a9178f..d241018a4d2dff60509b573ed79a1b8a6bdf1f36

---

From: Martin Thomson <[email-masked]>
Date: Thu, 19 Oct 2017 00:28:05 +0000 (UTC)

200926b  More fixed-size integer residue

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/888/files/d241018a4d2dff60509b573ed79a1b8a6bdf1f36..200926b69bf819db951b677f6042f9b6b4492b94

---

From: Martin Thomson <[email-masked]>
Date: Thu, 19 Oct 2017 00:28:25 +0000 (UTC)

Or three; I missed your example, but fixed two others...

-- 
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/888#discussion_r145576582

---

From: Mike Bishop <[email-masked]>
Date: Mon, 30 Oct 2017 23:21:56 +0000 (UTC)

Merged #888.

-- 
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/888#event-1317770863