Subject: [quicwg/base-drafts] Tweaks for the draining period (#870)

From: Martin Thomson <[email-masked]>
Date: Fri, 13 Oct 2017 01:34:24 +0000 (UTC)

This makes the 3RTO timer advisory (SHOULD).

It also adds a note about leaving early.  If you can be sure that the other
side isn't going to send you more packets indefinitely, then you can end early
if you are OK with receiving reordered or delayed packets.

I also removed a residual mention of sending ACK frames in this state.

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

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

-- Commit Summary --

  * Tweaks for the draining period
  * Stateless reset works for early exit too

-- File Changes --

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

-- Patch Links --

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

---

From: Nick Banks <[email-masked]>
Date: Thu, 12 Oct 2017 18:45:04 -0700

nibanks approved this pull request.

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/870#pullrequestreview-69108729

---

From: ekr <[email-masked]>
Date: Thu, 12 Oct 2017 19:15:41 -0700

This just seems like a hack for failing to acknowledge that there are times when draining is required and times when it's not. I'd like to see this whole section revisited rather than continuing to add epicycles.

-- 
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/870#issuecomment-336331229

---

From: Martin Thomson <[email-masked]>
Date: Thu, 12 Oct 2017 19:58:24 -0700

It sounds like you have higher-level concerns than this.  If you could write them up in an issue, that would be appreciated.

-- 
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/870#issuecomment-336336757

---

From: janaiyengar <[email-masked]>
Date: Mon, 16 Oct 2017 23:37:53 +0000 (UTC)

janaiyengar approved this pull request.

a nit, but I'll approve, assuming that you'll address the comment.

 Once the draining period has ended, an endpoint SHOULD discard per-connection
 state.  This results in new packets on the connection being discarded.  An
 endpoint MAY send a stateless reset in response to any further incoming packets.
 
+An endpoint MAY exit the draining period earlier if it can guarantee that its
+peer is also draining.  Receiving a CONNECTION_CLOSE or APPLICATION_CLOSE frame
+is sufficient confirmation, as is receiving a stateless reset.  However,
+disposing of connection state could result in delayed or reordered packets to be
+handled poorly.  For endpoints that have some alternative means to ensure that
+that late arriving packets on the connection are discarded, such as closing the
+UDP port, an abbreviated draining period can allow for faster resource recovery.

(i) Closing the "port" makes no sense, you probably meant to say "socket".
(ii) Closing the port doesn't ensure that they;re discarded -- this can result in an ICMP message being generated in response. Perhaps say something like "to ensure that late-arriving packets on the connection do not create QUIC state, such as by closing the UDP socket"

 Once the draining period has ended, an endpoint SHOULD discard per-connection
 state.  This results in new packets on the connection being discarded.  An
 endpoint MAY send a stateless reset in response to any further incoming packets.
 
+An endpoint MAY exit the draining period earlier if it can guarantee that its
+peer is also draining.  Receiving a CONNECTION_CLOSE or APPLICATION_CLOSE frame
+is sufficient confirmation, as is receiving a stateless reset.  However,
+disposing of connection state could result in delayed or reordered packets to be
+handled poorly.  For endpoints that have some alternative means to ensure that
+that late arriving packets on the connection are discarded, such as closing the
+UDP port, an abbreviated draining period can allow for faster resource recovery.
+Servers that retain an open port for accepting new connections SHOULD NOT exit
+the draining period early.

This sentence is good.

-- 
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/870#pullrequestreview-69731213

---

From: Martin Thomson <[email-masked]>
Date: Wed, 25 Oct 2017 04:51:36 +0000 (UTC)

@martinthomson pushed 1 commit.

cc9d717  Editorial tweak

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/870/files/9ead47479272bdc252ae0ae9363e46a558d61a0f..cc9d717bab0253868572a3a759501f1157c37055

---

From: Martin Thomson <[email-masked]>
Date: Tue, 24 Oct 2017 21:51:56 -0700

Merged #870.

-- 
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/870#event-1309101459