From 065a6bd49dc0ddc7a1fb6b7b8a2142834b0158af Mon Sep 17 00:00:00 2001 From: Martin Thomson Date: Wed, 24 Jun 2020 14:36:23 +1000 Subject: [PATCH 1/4] Version field <-> Version is not invariant ...it's just a Version field. This is a subtle one, but it follows from the work that others have been doing on greasing versions or providing additions to echconfig for QUIC connection establishment. It basically says that Version is for endpoints, not middleboxes. --- draft-ietf-quic-invariants.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/draft-ietf-quic-invariants.md b/draft-ietf-quic-invariants.md index 794a1b70d9..bf5b9c7ee9 100644 --- a/draft-ietf-quic-invariants.md +++ b/draft-ietf-quic-invariants.md @@ -386,7 +386,10 @@ The following statements are NOT guaranteed to be true for every QUIC version: * QUIC endpoints change the version they speak if they are sent a Version Negotiation packet -* The version field in a QUIC long header is the same in both directions +* The Version field in a QUIC long header is the same in both directions + +* A QUIC packet with a particular value in the Version field means that the + corresponding version of QUIC is in use * Only one connection at a time is established between any pair of QUIC endpoints From 6b19c710bd1ea0df6553a314a2fc473f776b55f0 Mon Sep 17 00:00:00 2001 From: Martin Thomson Date: Wed, 1 Jul 2020 08:41:58 +1000 Subject: [PATCH 2/4] Version is for endpoints --- draft-ietf-quic-invariants.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/draft-ietf-quic-invariants.md b/draft-ietf-quic-invariants.md index bf5b9c7ee9..22faef22f0 100644 --- a/draft-ietf-quic-invariants.md +++ b/draft-ietf-quic-invariants.md @@ -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 +with a value of 0 is reserved for version negotiation (see {{version-negotiation}}). All other version numbers are potentially valid. The properties described in this document apply to all versions of QUIC. A From b10404aba157fc11c01b3cbd62b359988bb3d614 Mon Sep 17 00:00:00 2001 From: Martin Thomson Date: Wed, 15 Jul 2020 16:53:29 +1000 Subject: [PATCH 3/4] 4-byte identifier rather than integer --- draft-ietf-quic-invariants.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/draft-ietf-quic-invariants.md b/draft-ietf-quic-invariants.md index 22faef22f0..34792cc5ef 100644 --- a/draft-ietf-quic-invariants.md +++ b/draft-ietf-quic-invariants.md @@ -252,10 +252,10 @@ Packets for the same QUIC connection might use different connection ID values. ## Version -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 -with a value of 0 is reserved for version negotiation (see -{{version-negotiation}}). All other version numbers are potentially valid. +The Version field contains a 4-byte identifier. This value can be used by +endpoints to identify a QUIC Version. A Version field with a value of 0 is +reserved for version negotiation (see {{version-negotiation}}). All other +version numbers are potentially valid. The properties described in this document apply to all versions of QUIC. A protocol that does not conform to the properties described in this document is From 642cc0f0de4dd9160feea5b6727aeab5fdd4c306 Mon Sep 17 00:00:00 2001 From: Martin Thomson Date: Wed, 15 Jul 2020 17:15:00 +1000 Subject: [PATCH 4/4] Fixup xref and s/numbers/values --- draft-ietf-quic-invariants.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/draft-ietf-quic-invariants.md b/draft-ietf-quic-invariants.md index ea0fdaffae..4535bab686 100644 --- a/draft-ietf-quic-invariants.md +++ b/draft-ietf-quic-invariants.md @@ -257,8 +257,8 @@ Packets for the same QUIC connection might use different connection ID values. The Version field contains a 4-byte identifier. This value can be used by endpoints to identify a QUIC Version. A Version field with a value of -0x00000000 is reserved for version negotiation; see {{version-negotiation}}. -All other version numbers are potentially valid. +0x00000000 is reserved for version negotiation; see {{vn}}. All other values +are potentially valid. The properties described in this document apply to all versions of QUIC. A protocol that does not conform to the properties described in this document is