Subject: [quicwg/base-drafts] Remember active_connection_id_limit for 0-RTT (#3425)

From: Martin Thomson <[email-masked]>
Date: Wed, 05 Feb 2020 07:02:07 -0800

Simple.  It appears as though I missed this when @marten-seeman added
this transport parameter.  We shouldn&#39;t make more exceptions for 0-RTT.

Closes #3423.
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * Remember active_connection_id_limit for 0-RTT

-- File Changes --

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

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/3425.patch
https://github.com/quicwg/base-drafts/pull/3425.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/3425

---

From: Marten Seemann <[email-masked]>
Date: Wed, 05 Feb 2020 07:07:30 -0800

This is a bigger design change than it might look like from the diff.

Our design principle was to only remember things for 0-RTT that are actually needed to make 0-RTT work. This means that we need the flow control limits as well as the stream number limits, because obviously the client needs to be able to send application data in 0-RTT. 
This saves state on the client side (because the client only needs to remember those 6 parameters) as well as in the session ticket (because that’s how the server stores that state). A reasonable implementation strategy on the server is to reject 0-RTT if those parameters changed / were reduced, so keeping the number of things to remember small increases the probability that 0-RTT is not rejected. 

-- 
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/3425#issuecomment-582451625

---

From: Mike Bishop <[email-masked]>
Date: Wed, 19 Feb 2020 08:47:56 -0800

"needed to make 0-RTT work" has slightly fuzzy boundaries, though.  A more concrete rendering of the principle is that the client needs to remember any limit which it might exceed prior to receiving the actual limit in the ServerHello.  The possible solutions for any given TP, then, are to structurally ensure that the client can't exceed it in 0-RTT or to remember it.

-- 
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/3425#issuecomment-588320665

---

From: David Schinazi <[email-masked]>
Date: Thu, 20 Feb 2020 13:05:30 -0800

DavidSchinazi 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/3425#pullrequestreview-362233380

---

From: MikkelFJ <[email-masked]>
Date: Sat, 22 Feb 2020 19:27:09 -0800

>From comment https://github.com/quicwg/base-drafts/pull/3426#discussion_r382903890
How is the TP to be remembered when it is to be ignored when 0 length CID is received?

-- 
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/3425#issuecomment-590022217

---

From: ianswett <[email-masked]>
Date: Mon, 24 Feb 2020 19:01:06 -0800

ianswett commented on this pull request.

Besides the motivation of minimizing exceptions in 0-RTT, I'm not sure why we're making this change?  Remembering more TPs makes server upgrades and config changes potentially more disruptive, as has been discussed, and there's no critical use case for the client to send NEW_CONNECTION_ID in 0-RTT.

-- 
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/3425#pullrequestreview-363842544

---

From: Marten Seemann <[email-masked]>
Date: Mon, 24 Feb 2020 19:11:42 -0800

marten-seemann commented on this pull request.

I agree with @ianswett. Although a client could decide to not remember the active_connection_id_limit (and would then not not be able to send more than one CID in 0-RTT packets), the server needs to store this value in order to decide whether to accept or to reject 0-RTT. This seems like a bit of a hassle for something that doesn't provide any real-world benefits.

-- 
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/3425#pullrequestreview-363845337

---

From: ianswett <[email-masked]>
Date: Tue, 25 Feb 2020 10:27:35 -0800

After looking back at the notes(linked on the issue), I see we had fairly strong agreement on this at the time, so I'm willing to let that stand, even if it's not what I think is the optimal choice.

-- 
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/3425#issuecomment-590997947