Subject: [quicwg/base-drafts] Should we transition to Open state when recv even MAX_STREAM_DATA (#572)

From: Subodh Iyengar <[email-masked]>
Date: Sun, 04 Jun 2017 00:14:35 -0700

While thinking about implementation of the handling of idle state, it seems like we'd practically allocate the stream state object anyway if we get a MAX_STREAM_DATA or STREAM_BLOCKED (to keep track of flow control).

It seems better then to treat these streams as equivalent to Open streams because it'd simplify the logic of deciding the Stream limit count to advertise. If the reason we want to allow this transition is to deal with lost packets, we'd practically allocate the stream data eventually when the packets are recovered. 

Proposing a change where:

Idle -> Open

transition occurs not only on STREAM, but also BLOCKED, MAX_STREAM_DATA 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/issues/572

---

From: Subodh Iyengar <[email-masked]>
Date: Sun, 04 Jun 2017 15:28:22 -0700

This also has the nice side effect of causing the lower order streams to be opened as well.

Thinking about it a bit more, we should do this for RST on idle streams as well.

Currently 
         RST
idle -----> half closed

however this means that if stream 10 is rst, we didnt really open stream 1 - 10. Then if stream 20 is opened, we would have no idea if stream 10 was opened before or rst, so we'd have to keep track of all RST streams.

seems nicer to make this more symmetric with the stream open case:

I propose that when getting a RST on an idle stream we first move it into open state and then process the RST so that we get the lower streams opened as well.

             RST             immediate
idle ------> (open) -------> half closed

-- 
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/issues/572#issuecomment-306071563

---

From: Marten Seemann <[email-masked]>
Date: Mon, 05 Jun 2017 01:10:21 -0700

Opening streams as soon as you hear from them (no matter in which frame type) definitely makes sense (and is what quic-go is already doing). It avoids a whole bunch of edge cases that are only needed to deal with reordered packets.

-- 
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/issues/572#issuecomment-306129300

---

From: janaiyengar <[email-masked]>
Date: Tue, 13 Jun 2017 05:20:28 -0700

This is a side-effect of the change to opening all lower number streams automagically. Since we're doing auto-opening, it makes sense to do this.

-- 
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/issues/572#issuecomment-308098133

---

From: Martin Thomson <[email-masked]>
Date: Tue, 13 Jun 2017 06:26:51 -0700

Closed #572 via #623.

-- 
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/issues/572#event-1121362129