That seems like a reasonable proposal to me! 

In terms of clarity on the other points that have come up in this thread, I 
double checked and it looks like we’ve got good text stating that: 
1. The preferred_address CID is interchangeable with any other CID acquired via 
NCID frames
2. The active_connection_id_limit (and the set of “active” CIDs) includes the 
preferred_address and initial CID

So that covers everything I think we’ve seen so far.

Thanks,
Eric

=========

5.1.1 Issuing Connection IDs
…
Connection IDs that are issued and not retired are considered active; any 
active connection ID is valid for use with the current connection at any time, 
in any packet type. This includes the connection ID issued by the server via 
the preferred_address transport parameter.

https://quicwg.org/base-drafts/rfc9000.html#section-5.1.1-3 



9.6.1. Communicating a Preferred Address
...
Once the handshake is confirmed, the client SHOULD select one of the two 
addresses provided by the server and initiate path validation (see Section 
8.2). A client constructs packets using any previously unused active connection 
ID, taken from either the preferred_address transport parameter or a 
NEW_CONNECTION_ID frame.

https://quicwg.org/base-drafts/rfc9000.html#section-9.6.1-3



9.6.3. Interaction of Client Migration and Preferred Address
...
The connection ID provided in the preferred_address transport parameter is not 
specific to the addresses that are provided. This connection ID is provided to 
ensure that the client has a connection ID available for migration, but the 
client MAY use this connection ID on any path.

https://quicwg.org/base-drafts/rfc9000.html#section-9.6.3-6



18.2. Transport Parameter Definitions
…
active_connection_id_limit (0x0e):
...
This value includes the connection ID received during the handshake, that 
received in the preferred_address transport parameter, and those received in 
NEW_CONNECTION_ID frames.

https://quicwg.org/base-drafts/rfc9000.html#section-18.2-6.2.1


> On Jan 5, 2022, at 4:19 PM, Martin Thomson <[email protected]> wrote:
> 
> 
> On Thu, Jan 6, 2022, at 08:02, Christian Huitema wrote:
>> When implementing Picoquic, I interpreted the specification as: if 
>> sending a CID as part of preferred address extension, use #1, otherwise 
>> use #1 for the next CID to be sent in "NEW CONNECTION ID" frame. I did 
>> not find the specification ambiguous. But maybe that's just me.
> 
> It's good that I'm the only one who implemented it incorrectly.  I'll get on 
> to fixing it promptly.
> 
> In terms of clarifications, what do people think about this:
> 
> The sequence number of the initial connection ID is 0. If the 
> preferred_address transport parameter is sent, the sequence number of the 
> supplied connection ID is 1.
> +The sequence number for NEW_CONNECTION_ID frames starts at 2 when the 
> preferred_address transport parameter is sent and 1 otherwise.
> 
> I can open an erratum with that as Mirja suggests.
> 
> 

Reply via email to