Subject: [quicwg/base-drafts] NEW_CONNECTION_ID: use sequence number for one CID only (#2096)

From: Dmitri Tikhonov <[email-masked]>
Date: Tue, 04 Dec 2018 07:57:45 -0800

You can view, comment on, or merge this pull request online at:

  https://github.com/quicwg/base-drafts/pull/2096

-- Commit Summary --

  * NEW_CONNECTION_ID: use sequence number for one CID only

-- File Changes --

    M draft-ietf-quic-transport.md (5)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/2096.patch
https://github.com/quicwg/base-drafts/pull/2096.diff

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

---

From: MikkelFJ <[email-masked]>
Date: Tue, 04 Dec 2018 08:03:58 -0800

How would know that the sequence number is from a different CID? If you have this concern, wouldn't it be better to advice not to send a sequence number for different CID, and keep a range check receiver side on the assumption that the sequence number is specific to the given CID domain?

-- 
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/2096#issuecomment-444154036

---

From: Dmitri Tikhonov <[email-masked]>
Date: Tue, 04 Dec 2018 08:12:20 -0800

As long as we are checking for for consistency, it makes sense to check that sequence number has not been reused.  Sequence number reuse means that there is no longer a one-to-one correspondence between CIDs and sequence numbers.

The check is opportunistic (thus it's a **MAY** treat it as an error): if the peer has a record from previous _NEW_CONNECTION_ID_ `(seqno: A, cid: ABC)` but it receives `(seqno: A, cid: XYZ)`, it is an error.

-- 
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/2096#issuecomment-444157254

---

From: MikkelFJ <[email-masked]>
Date: Tue, 04 Dec 2018 08:16:33 -0800

I'm not opposed to checking - I did write range check - only that I don't see how you can conclude a sequence number is wrong based on its assumed incorrect origin.

-- 
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/2096#issuecomment-444158906

---

From: Dmitri Tikhonov <[email-masked]>
Date: Tue, 04 Dec 2018 08:19:16 -0800

I don't understand what you mean by "domain" and "origin" -- there is only one origin of new CIDs and that's the peer.

-- 
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/2096#issuecomment-444159949

---

From: MikkelFJ <[email-masked]>
Date: Tue, 04 Dec 2018 08:23:50 -0800

Never mind, I way into multi-path ...

-- 
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/2096#issuecomment-444161684

---

From: Mike Bishop <[email-masked]>
Date: Tue, 04 Dec 2018 10:10:25 -0800

MikeBishop approved this pull request.

Seems fine.  I might flip around the statements to put the two that are logically similar together, though.  You can error out if you receive:
- The same sequence number with different values (CID or SRT)
- A repeated CID (new sequence number)

For the latter, though, it seems like a more conservative approach would be to retire it immediately without using it.  Unless you're keeping a full history of CIDs for the life of the connection, you're probably not 100% certain it's a repeat, just that there was a hash collision and a repeat *might* have occurred.

-- 
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/2096#pullrequestreview-181402830

---

From: Dmitri Tikhonov <[email-masked]>
Date: Tue, 04 Dec 2018 10:45:05 -0800

> Unless you're keeping a full history of CIDs for the life of the connection

One can check against the current set (I do).  It's probably too costly to keep a full history.

-- 
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/2096#issuecomment-444211604

---

From: Dmitri Tikhonov <[email-masked]>
Date: Tue, 04 Dec 2018 18:56:57 +0000 (UTC)

>  I might flip around the statements to put the two that are logically similar together

The proposed wording is similar to your list, @MikeBishop, but with CID and seqno swapped:

- The same CID with different values (seqno or RT)
- A repeated seqno (new CID)

I don't think one is better than the other.

-- 
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/2096#issuecomment-444215151

---

From: Martin Thomson <[email-masked]>
Date: Tue, 04 Dec 2018 13:19:47 -0800

Merged #2096 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/2096#event-2005502383