Subject: [quicwg/base-drafts] Fixup implicit stream opening (#1549)

From: Martin Thomson <[email-masked]>
Date: Tue, 10 Jul 2018 22:32:02 -0700

This was already in pretty good shape.  I added something to the state
machine and tweaked the critical text slightly.

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

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

-- Commit Summary --

  * Fixup implicit stream opening

-- File Changes --

    M draft-ietf-quic-transport.md (11)

-- Patch Links --

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

---

From: Mike Bishop <[email-masked]>
Date: Tue, 10 Jul 2018 23:13:42 -0700

MikeBishop 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/1549#pullrequestreview-136101143

---

From: MikkelFJ <[email-masked]>
Date: Tue, 10 Jul 2018 23:52:34 -0700

mikkelfj commented on this pull request.

> @@ -3791,9 +3791,9 @@ The two type bits from a Stream ID therefore identify streams as summarized in
 
 The first bi-directional stream opened by the client is stream 0.
 
-A QUIC endpoint MUST NOT reuse a Stream ID.  Streams can be used in any order.
-Streams that are used out of order result in opening all lower-numbered streams
-of the same type in the same direction.
+A QUIC endpoint MUST NOT reuse a Stream ID.  Streams of each type are created in
+numeric order.  Streams that are used out of order result in opening all
+lower-numbered streams of the same type in the same direction.

It is a bit unclear what the difference is between "use", "create", "send", and "receive". I read such that "create" has to do with allocating a stream ID at or below the MAX ID but not necessarily sending. So a stream can be created silently and later some lower number stream can have its first frame sent - doing so accounts for a "use". For the receiver "use" either means "receive" or it means keep received frames buffered and pretend it is not there, but eventually "use" one.

I realize there is nothing enforceable about these distinctions, but it might affect buffering strategies.

-- 
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/1549#pullrequestreview-136108853

---

From: ianswett <[email-masked]>
Date: Wed, 11 Jul 2018 06:39:19 -0700

ianswett commented on this pull request.

> @@ -3969,6 +3970,10 @@ Receiving a MAX_STREAM_DATA frame implies that the remote peer has opened the
 stream and is providing flow control credit.  A MAX_STREAM_DATA frame might
 arrive before a STREAM or STREAM_BLOCKED frame if packets are lost or reordered.
 
+In addition to the exchange of frames related to the stream, a stream is created

I find this paragraph a bit confusing.  Are you trying to say that if a frame for a new stream arrives, all lower numbered unopened streams of the same type must be opened?

-- 
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/1549#pullrequestreview-136242432

---

From: Mike Bishop <[email-masked]>
Date: Wed, 11 Jul 2018 13:24:53 -0700

MikeBishop commented on this pull request.

That's the point of this PR, yes.

-- 
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/1549#discussion_r201827751

---

From: Martin Thomson <[email-masked]>
Date: Wed, 11 Jul 2018 17:00:18 -0700

@martinthomson pushed 1 commit.

4fd3dc2  For Ian

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/1549/files/8b51ff571d851e09e40b013eb1f62e83b5fbeb0d..4fd3dc2427252a1b3f75f62ef4f7118ffae11219

---

From: ianswett <[email-masked]>
Date: Wed, 11 Jul 2018 18:47:48 -0700

How about "Before creating a higher numbered stream, all lower numbered streams of the same type MUST be created." ?

-- 
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/1549#discussion_r201888062

---

From: Martin Thomson <[email-masked]>
Date: Wed, 11 Jul 2018 19:17:38 -0700

595c9dd  More tweaking

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/1549/files/4fd3dc2427252a1b3f75f62ef4f7118ffae11219..595c9dd73e5e9d17f1c39cac5fc36f82dcf26761

---

From: ianswett <[email-masked]>
Date: Wed, 11 Jul 2018 19:19:46 -0700

> @@ -3970,11 +3970,10 @@ Receiving a MAX_STREAM_DATA frame implies that the remote peer has opened the
 
-In addition to the exchange of frames related to the stream, a stream is created
-before any higher-numbered stream of the same type can be created.  That is,
-receipt of a frame that would open a stream causes all lower-numbered streams of
-the same type to be opened first.  This ensures that the creation order for
-streams is consistent on both endpoints.
+Before creating a stream, all lower-numbered stream of the same type MUST be

streams

-- 
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/1549#pullrequestreview-136482393

---

From: ianswett <[email-masked]>
Date: Wed, 11 Jul 2018 19:20:01 -0700

ianswett approved this pull request.

Besides the s, LGTM

-- 
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/1549#pullrequestreview-136482424

---

From: Martin Thomson <[email-masked]>
Date: Wed, 11 Jul 2018 19:25:52 -0700

da2ea39  Plural

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/1549/files/595c9dd73e5e9d17f1c39cac5fc36f82dcf26761..da2ea39bbd7b6359ad7a711475a94dae3a68bcd4

---

From: ianswett <[email-masked]>
Date: Wed, 11 Jul 2018 19:31:25 -0700

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/1549#pullrequestreview-136483927

---

From: Martin Thomson <[email-masked]>
Date: Wed, 11 Jul 2018 21:40:28 -0700

Merged #1549.

-- 
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/1549#event-1729416005