Subject: [quicwg/base-drafts] CONNECTION_CLOSE in Handshake too (#3293)

From: Martin Thomson <[email-masked]>
Date: Mon, 09 Dec 2019 15:44:33 -0800

As mentioned in #3292.
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * CONNECTION_CLOSE in Handshake too

-- File Changes --

    M draft-ietf-quic-transport.md (15)
    A metadata.min.js (1)

-- Patch Links --

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

---

From: Jana Iyengar <[email-masked]>
Date: Mon, 09 Dec 2019 17:27:29 -0800

janaiyengar commented on this pull request.

> @@ -2481,12 +2481,15 @@ have 1-RTT keys, so the endpoint SHOULD send CONNECTION_CLOSE frames in a
 Handshake packet.  If the endpoint does not have Handshake keys, it SHOULD send
 CONNECTION_CLOSE frames in an Initial packet.
 
-A client will always know whether the server has Handshake keys
-(see {{discard-initial}}), but it is possible that a server does not know
-whether the client has Handshake keys.  Under these circumstances, a server
-SHOULD send a CONNECTION_CLOSE frame in both Handshake and Initial packets
-to ensure that at least one of them is processable by the client.  These
-packets can be coalesced into a single UDP datagram (see {{packet-coalesce}}).
+A client will always know whether the server has Handshake keys (see
+{{discard-initial}}), but it is possible that a server does not know whether the
+client has Handshake keys.  Under these circumstances, a server SHOULD send a
+CONNECTION_CLOSE frame in both Handshake and Initial packets to ensure that at
+least one of them is processable by the client.  Similarly, a peer might be
+unable to read 1-RTT packets, so an endpoint SHOULD send CONNECTION_CLOSE in
+Handshake packets prior to confirming the handshake; see Section 4.1.2 of

Should this be Handshake _and_ 1-RTT, because the peer might have dropped its Handshake keys?

-- 
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/3293#pullrequestreview-329539927

---

From: Martin Thomson <[email-masked]>
Date: Mon, 09 Dec 2019 20:06:18 -0800

@martinthomson pushed 1 commit.

dd930535c23477ae0251a4f8b5341267f1d7d44b  ...and 1-RTT too

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

---

From: ianswett <[email-masked]>
Date: Tue, 10 Dec 2019 06:33:48 -0800

ianswett commented on this pull request.

This last ambiguity is only really a problem on the client side, because the client doesn't discard Handshake keys until after the server has already discarded them(so it couldn't send a close in Handshake anyway).

-- 
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/3293#pullrequestreview-329878258

---

From: Martin Thomson <[email-masked]>
Date: Tue, 10 Dec 2019 15:12:17 -0800

Merged #3293 into master.

-- 
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/3293#event-2872402142

---

From: Martin Thomson <[email-masked]>
Date: Tue, 10 Dec 2019 17:17:32 -0800

martinthomson commented on this pull request.

To ensure that there is a record of this.  There are situations where handshake keys are available for sending, but not receiving at both peers.

The client might have sent it's last Handshake packet, but the server can't read 1-RTT until it processes that packet (and maybe verifies a certificate).  A server might have sent its first Handshake flight, but the client hasn't received all of it, so it won't have 1-RTT keys.

-- 
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/3293#discussion_r356361750

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 10 Dec 2019 20:00:08 -0800

> The client might have sent it's last Handshake packet

Its such a shame: https://www.theguardian.com/uk-news/2019/dec/01/laziness-has-won-apostrophe-society-admits-its-defeat

-- 
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/3293#issuecomment-564369739

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 10 Dec 2019 20:00:47 -0800

-- 
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/3293#discussion_r356393854

---

From: Martin Thomson <[email-masked]>
Date: Tue, 10 Dec 2019 20:02:22 -0800

Yikes.  I don't make that mistake often, but you got me.

-- 
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/3293#discussion_r356394097

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 10 Dec 2019 20:05:15 -0800

heh, I'm just sad that the apostrophe society is dead.

-- 
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/3293#discussion_r356394561