Subject: [quicwg/base-drafts] QUIC versions can no longer be greased (#3013)

From: Kazuho Oku <[email-masked]>
Date: Tue, 10 Sep 2019 01:05:58 -0700

Section 6.3 states:
> For a server to use a new version in the future, clients need to correctly handle unsupported versions. To help ensure this, a server SHOULD include a version that is reserved for forcing version negotiation (0x?a?a?a?a as defined in Section 15) when generating a Version Negotiation packet.

I think that the text might be stale, as we no longer specify how a client should handle the payload of the Version Negotiation packet. All what we specify now is that _when a client receives a Version Negotiation packet, it MUST abandon the current connection attempt_.

-- 
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/3013

---

From: Martin Thomson <[email-masked]>
Date: Tue, 10 Sep 2019 02:38:25 -0700

This is still possible, it just doesn't have any effect on a version 1 client.  I think that we can leave this as-is without ill effect.

-- 
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/3013#issuecomment-529856838

---

From: Kazuho Oku <[email-masked]>
Date: Tue, 10 Sep 2019 07:07:04 -0700

> This is still possible, it just doesn't have any effect on a version 1 client.

I'm not sure, as the client is required to "abandon the current connection attempt" ([section 6.2](https://quicwg.org/base-drafts/draft-ietf-quic-transport.html#rfc.section.6.2)) when receiving a Version Negotiation packet, even without consulting the payload of that packet.

Doesn't that prohibit the servers from sending VN packets against V1 packets, assuming that servers would prefer serving all the connections that it can accept?

-- 
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/3013#issuecomment-529951922

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 10 Sep 2019 10:11:42 -0700

We may want to change the text to say that these versions are reserved for future greasing, but yeah, I think the text needs some rework.

-- 
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/3013#issuecomment-530033346

---

From: Mark Nottingham <[email-masked]>
Date: Tue, 24 Sep 2019 23:13:47 -0700

This feels a bit editorial -- anyone have an issue with that?

-- 
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/3013#issuecomment-534870366

---

From: Kazuho Oku <[email-masked]>
Date: Tue, 24 Sep 2019 23:26:53 -0700

I think we have two ways forward:
* Drop the idea of version number greasing using 0x?a?a?a?a.
* Allow the servers to send Version Negotiation packets. We would need to require clients to handle it, rather than requiring them to "abandon the current connection attempt."

I think it would be a design issue if we decide to pick up the latter.

-- 
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/3013#issuecomment-534873959

---

From: Martin Thomson <[email-masked]>
Date: Wed, 25 Sep 2019 00:07:28 -0700

Presumably clients could still use greasing version numbers, so I don't think that we necessarily need to do anything other than an editorial tweak.

-- 
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/3013#issuecomment-534885370

---

From: Kazuho Oku <[email-masked]>
Date: Wed, 25 Sep 2019 00:32:26 -0700

Apologies, I was confused when I wrote my last comment.

Yes, this can be an editorial tweak, that allows the client to respect the Version Negotiation packet, when it sends an Initial packet with a greasing version number.

Or, we can leave the text as-is, claiming that the act of sending a long header packet using a greasing version number is solely governed by the invariants I-D rather than the V1 I-D.

-- 
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/3013#issuecomment-534892996