Subject: [quicwg/base-drafts] allow PING frames in Initial and Handshake packets (#2307)

From: Marten Seemann <[email-masked]>
Date: Sun, 06 Jan 2019 20:09:56 -0800

Furthermore, specify the error code to send when encountering invalid frames at the Handshake encryption level.
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * allow PINGs in Initial packets
  * allow PINGs in Handshake packets
  * specify the error code used when receiving invalid frames

-- File Changes --

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

-- Patch Links --

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

---

From: ianswett <[email-masked]>
Date: Mon, 07 Jan 2019 07:09:04 -0800

ianswett commented on this pull request.

Q: I'm not sure we need PING packets in the handshake, even for deadlock prevention, but I expect people will use them for that, so this seems like a good change.

> @@ -3700,7 +3700,7 @@ server may send multiple Initial packets.  The cryptographic key exchange could
 require multiple round trips or retransmissions of this data.
 
 The payload of an Initial packet includes a CRYPTO frame (or frames) containing
-a cryptographic handshake message, ACK frames, or both.  PADDING and
+a cryptographic handshake message, ACK frames, or both.  PADDING, PING and

Not your text, but the first sentence implies an Initial packet has to contain either an ACK frame and/or a CRYPO frame, but I don't think that's true.  I'd suggest merging these sentences and say:
"The payload of an Initial packet includes a combination of one or more CRYPTO, ACK, PADDING, PING or CONNECTION_CLOSE frames."

And I'd update the paragraph below to use the same structure so they're parallel, because right now they're subtly different in not very interesting ways.

-- 
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/2307#pullrequestreview-189846069

---

From: MikkelFJ <[email-masked]>
Date: Mon, 07 Jan 2019 08:49:44 -0800

The less there is in the handshake the more robust the handshake is across QUIC versions, which may be beneficial since it is likely a separate code path from general packet handling.

-- 
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/2307#issuecomment-452000574

---

From: Martin Thomson <[email-masked]>
Date: Mon, 07 Jan 2019 15:32:19 -0800

Is there an issue that this addresses?

-- 
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/2307#issuecomment-452120282

---

From: Marten Seemann <[email-masked]>
Date: Tue, 08 Jan 2019 01:40:08 +0000 (UTC)

I didn't open an issue, because I thought this was straightforward. In my implementation I use PINGs quite often for loss recovery purposes. Just sending a single PING frame is for example a valid way to generate a probe packet. There's no security implication of allowing PING frames.

-- 
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/2307#issuecomment-452144331

---

From: Martin Thomson <[email-masked]>
Date: Tue, 15 Jan 2019 15:48:15 -0800

If we're going to resolve this, it needs an issue.  Because we're discussing issues there.  This one seems contentious.

-- 
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/2307#issuecomment-454595837

---

From: MikkelFJ <[email-masked]>
Date: Wed, 16 Jan 2019 01:29:47 -0800

In another context it was mentioned to perhaps coalesce a packet with a ping frame to prevent deadlock in handshake AFAIR. While I prefer to have the minimum framing in the handshake, a requirement to coalesce does not appear simpler.

-- 
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/2307#issuecomment-454711327