Subject: Re: [quicwg/base-drafts] Version field <-> Version is not invariant (#3785)

From: ekr <[email-masked]>
Date: Wed, 01 Jul 2020 07:25:10 -0700

I was actually suggesting removing it from invariants entirely.

-- 
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/3785#issuecomment-652450161

---

From: martinduke <[email-masked]>
Date: Wed, 01 Jul 2020 10:34:28 -0700

I would quibble a bit about whether or not version aliasing really violates the existing text, but I still think this change is a good one. For example, if we fail to prevent ossification then we're going to end up with this being the "fake" version while the real version is buried in the TPs.

-- 
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/3785#issuecomment-652553984

---

From: Nick Harper <[email-masked]>
Date: Wed, 01 Jul 2020 11:18:58 -0700

@nharper commented on this pull request.

I think this is a good change to be making.

> @@ -252,8 +252,9 @@ Packets for the same QUIC connection might use different connection ID values.
 
 ## Version
 
-QUIC versions are identified with a 32-bit integer, encoded in network byte
-order.  Version 0 is reserved for version negotiation (see
+The Version field contains a 32-bit integer, encoded in network byte order.

(If this is off-topic for this PR, please ignore.)

Is there a reason why we specify that the Version field is an integer, as opposed to a 32-bit value?

> @@ -252,8 +252,9 @@ Packets for the same QUIC connection might use different connection ID values.
 
 ## Version
 
-QUIC versions are identified with a 32-bit integer, encoded in network byte
-order.  Version 0 is reserved for version negotiation (see
+The Version field contains a 32-bit integer, encoded in network byte order.
+This value can be used by endpoints to identify a QUIC Version.  A Version field

If we end up with version ossification and the real version ends up in transport params, is it still the case that an endpoint can use the Version field to identify a QUIC Version? Perhaps "This value can be used by endpoints in identifying a QUIC Version" instead. That way there's room that an endpoint might consider other factors in identifying the QUIC Version used.

-- 
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/3785#pullrequestreview-441088246

---

From: Martin Thomson <[email-masked]>
Date: Wed, 01 Jul 2020 18:05:28 -0700

@martinthomson commented on this pull request.

 ## Version

Only so that we can use numbers to talk about values.  TLS picked up this crazy {3, 3} notation that annoys the hell out of me.  People read that to mean that there are two discrete things with different semantics, when there is just one value and one semantic.  You could always write out the hex (as people now do for connection IDs), but then that's just a number.

-- 
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/3785#discussion_r448692625

---

From: Martin Thomson <[email-masked]>
Date: Wed, 01 Jul 2020 18:09:44 -0700

## Version

Ahh, this gets into whether it is necessary or sufficient information to identify a QUIC version and whether we need to say anything more.  "can" might be read to imply that it is sufficient, though "can" doesn't imply necessity.  But "can" also means that it is possible for endpoints to use the field.  That is the meaning I intended and I think that's OK.

-- 
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/3785#discussion_r448693653

---

From: Nick Harper <[email-masked]>
Date: Mon, 06 Jul 2020 10:50:36 -0700

## Version

I definitely agree we don't want something like the TLS notation.

The only operation we need to do on QUIC versions (as encoded on the wire) is to check for equality. We don't need ordering of them (to check if one is less than another), and we certainly don't need to be able to do arithmetic on them, hence we don't need to consider them as numbers. By saying it's a 32-bit value (instead of an integer), we avoid needing to specify that it's network byte order. When specifying a version, you can write it out in hex (e.g. 0xff00001d), but that can be treated as a sequence of bytes instead of an integer.

-- 
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/3785#discussion_r450385198

---

From: Nick Harper <[email-masked]>
Date: Mon, 06 Jul 2020 10:51:03 -0700

## Version

That wiggle room around "can" sounds good to 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/3785#discussion_r450385435

---

From: Martin Thomson <[email-masked]>
Date: Mon, 06 Jul 2020 22:43:57 -0700

## Version

Would s/integer, .../identifier/ work for others?

-- 
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/3785#discussion_r450623169

---

From: David Schinazi <[email-masked]>
Date: Tue, 07 Jul 2020 17:45:01 -0700

@DavidSchinazi commented on this pull request.

 ## Version

I personally like `32-bit identifier`. `32-bit opaque identifier` might be even better, or could be overkill.

-- 
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/3785#discussion_r451219888

---

From: ianswett <[email-masked]>
Date: Mon, 13 Jul 2020 08:11:44 -0700

@ianswett approved this pull request.

-- 
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/3785#pullrequestreview-447343595

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 14 Jul 2020 16:23:02 -0700

@janaiyengar approved this pull request.

 ## Version

I'm fine with identifier.

-- 
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/3785#pullrequestreview-448530434

---

From: Martin Thomson <[email-masked]>
Date: Tue, 14 Jul 2020 23:54:02 -0700

@martinthomson pushed 1 commit.

b10404aba157fc11c01b3cbd62b359988bb3d614  4-byte identifier rather than integer

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3785/files/6b19c710bd1ea0df6553a314a2fc473f776b55f0..b10404aba157fc11c01b3cbd62b359988bb3d614

---

From: Martin Thomson <[email-masked]>
Date: Tue, 14 Jul 2020 23:56:32 -0700

4479b16ed2d268284f7777d5ceb0935fcbdfd950  Merge branch 'master' into version-not

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3785/files/b10404aba157fc11c01b3cbd62b359988bb3d614..4479b16ed2d268284f7777d5ceb0935fcbdfd950

---

From: Martin Thomson <[email-masked]>
Date: Wed, 15 Jul 2020 00:15:31 -0700

642cc0f0de4dd9160feea5b6727aeab5fdd4c306  Fixup xref and s/numbers/values

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3785/files/4479b16ed2d268284f7777d5ceb0935fcbdfd950..642cc0f0de4dd9160feea5b6727aeab5fdd4c306

---

From: Nick Harper <[email-masked]>
Date: Wed, 22 Jul 2020 13:33:31 -0700

@nharper approved this pull request.

-- 
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/3785#pullrequestreview-453663148

---

From: Martin Thomson <[email-masked]>
Date: Wed, 29 Jul 2020 06:15:07 -0700

Merged #3785 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/3785#event-3598989036