Subject: Re: [quicwg/base-drafts] Clarify section on negotiating connection IDs (#3349)

From: Martin Thomson <[email-masked]>
Date: Tue, 04 Feb 2020 05:46:39 -0800

martinthomson commented on this pull request.

> -Initial); a server MUST set its value based on the Initial packet.  Any
-additional changes are not permitted; if subsequent packets of those types
-include a different Source Connection ID, they MUST be discarded.  This avoids
-problems that might arise from stateless processing of multiple Initial packets
-producing different connection IDs.
-
-The connection ID can change over the lifetime of a connection, especially in
-response to connection migration ({{migration}}); see {{issue-cid}} for details.
+the SCID supplied by the server as the DCID for subsequent packets, including
+all subsequent 0-RTT packets. This means that a client might change the DCID
+twice during connection establishment, once in response to a Retry and once in
+response to an Initial packet from the server. Once a client has received an
+Initial packet from the server, it MUST discard any subsequent packet it
+receives with a different Source Connection ID.
+
+A client MUST change the DCID value it sends in response to only the first

```suggestion
A client MUST change the Destination Connection ID value it uses for sending packets in response to only the first
```

> -additional changes are not permitted; if subsequent packets of those types
-include a different Source Connection ID, they MUST be discarded.  This avoids
-problems that might arise from stateless processing of multiple Initial packets
-producing different connection IDs.
-
-The connection ID can change over the lifetime of a connection, especially in
-response to connection migration ({{migration}}); see {{issue-cid}} for details.
+the SCID supplied by the server as the DCID for subsequent packets, including
+all subsequent 0-RTT packets. This means that a client might change the DCID
+twice during connection establishment, once in response to a Retry and once in
+response to an Initial packet from the server. Once a client has received an
+Initial packet from the server, it MUST discard any subsequent packet it
+receives with a different Source Connection ID.
+
+A client MUST change the DCID value it sends in response to only the first
+received Initial or Retry packet.  A server MUST set its DCID value based on the

```suggestion
received Initial or Retry packet.  A server MUST set the Destination Connection ID it uses for sending packets based on the
```

> -problems that might arise from stateless processing of multiple Initial packets
-producing different connection IDs.
-
-The connection ID can change over the lifetime of a connection, especially in
-response to connection migration ({{migration}}); see {{issue-cid}} for details.
+the SCID supplied by the server as the DCID for subsequent packets, including
+all subsequent 0-RTT packets. This means that a client might change the DCID
+twice during connection establishment, once in response to a Retry and once in
+response to an Initial packet from the server. Once a client has received an
+Initial packet from the server, it MUST discard any subsequent packet it
+receives with a different Source Connection ID.
+
+A client MUST change the DCID value it sends in response to only the first
+received Initial or Retry packet.  A server MUST set its DCID value based on the
+first received Initial packet. Any further changes to the DCID are not
+permitted; if subsequent Initial packets include a different SCID, they MUST be

are only permitted if the values are taken from NEW_CONNECTION_ID frames; if subsequent

-- 
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/3349#pullrequestreview-352982771

---

From: Eric Kinnear <[email-masked]>
Date: Thu, 06 Feb 2020 03:30:25 -0800

erickinnear commented on this pull request.

> -from the server, it MUST discard any packet it receives with a different Source
-Connection ID.
-
-A client MUST only change the value it sends in the Destination Connection ID in
-response to the first packet of each type it receives from the server (Retry or

Given the resolution of #3348, we should likely update this to not set an expectation that you change twice maximum, technically they can change as many times as you give them CIDs / as many times as they want to switch between all active CIDs.

The reference to {{issue-cid}} later will point people at some clarification about this too, so that looks great.

-- 
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/3349#pullrequestreview-354381116

---

From: Martin Thomson <[email-masked]>
Date: Tue, 25 Feb 2020 10:13:03 -0800

-Connection ID.
-

Perhaps: "This means that a client might have to change the connection ID it puts in the Destination Connection ID field twice during connection establishment, [..]"

These changes are mandatory, so it is appropriate to point to those as being special.

-- 
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/3349#discussion_r384035721