Subject: [quicwg/base-drafts] Updated flow control limits apply to 0-RTT streams (#4835)

From: Martin Thomson <[email-masked]>
Date: Fri, 12 Mar 2021 02:19:10 -0800

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

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

-- Commit Summary --

  * Updated flow control limits apply to 0-RTT streams

-- File Changes --

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

-- Patch Links --

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

---

From: Kazuho Oku <[email-masked]>
Date: Fri, 12 Mar 2021 02:26:57 -0800

@kazuho commented on this pull request.

> +than the remembered values that a client applies when sending 0-RTT.  After
+receiving updated transport parameters, the client updates the flow control

```suggestion
than the remembered values that a client applies when sending 0-RTT.  Once
the handshake completes, the client updates the flow control
```

I think this is the moment when the client is expected to apply the new transport parameters.

-- 
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/4835#pullrequestreview-610643691

---

From: Martin Thomson <[email-masked]>
Date: Fri, 12 Mar 2021 02:39:01 -0800

@martinthomson commented on this pull request.

My implementation updates when transport parameters are received. Is that wrong?

Could we allow either?

-- 
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/4835#discussion_r593074735

---

From: Kazuho Oku <[email-masked]>
Date: Fri, 12 Mar 2021 04:09:07 -0800

In https://quicwg.org/base-drafts/draft-ietf-quic-transport.html#section-7.4.1-2, we state that the transport parameters are updated when the handshake is complete. The requirement for the flow control limits cannot contradict from that.

Also, I tend to believe that applying them at handshake completion is correct, because generally speaking, transport parameters affect application behavior, and application behavior should only depend on messages that have been authenticated.

It might be possible to argue that the new transport parameters are authenticated at the moment they are received because they are AEAD-encrypted using handshake traffic keys that depend on the PSK. But I am not sure if TLS is considered safe when used as such.

-- 
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/4835#discussion_r593125719

---

From: Martin Thomson <[email-masked]>
Date: Fri, 12 Mar 2021 04:25:27 -0800

Good point.  We make them available sooner because if you don't, you can't use 0.5-RTT.  I'll take the suggestion, but maybe we need to take some time to discuss this more at some later point.

-- 
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/4835#discussion_r593134573

---

From: Martin Thomson <[email-masked]>
Date: Fri, 12 Mar 2021 04:25:36 -0800

@martinthomson pushed 1 commit.

3ebf76e5d0e1d459ac7cd266342798ae227a37b1  At handshake completion

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/4835/files/1250d2954109e21ebfaabb44efd51ccba8490d41..3ebf76e5d0e1d459ac7cd266342798ae227a37b1

---

From: Kazuho Oku <[email-masked]>
Date: Fri, 12 Mar 2021 04:30:00 -0800

@kazuho 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/4835#pullrequestreview-610735822

---

From: Marten Seemann <[email-masked]>
Date: Fri, 12 Mar 2021 19:39:36 -0800

@marten-seemann approved this pull request.

Thank you @martinthomson, this text resolves the ambiguity.

-- 
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/4835#pullrequestreview-611520214

---

From: Marten Seemann <[email-masked]>
Date: Fri, 12 Mar 2021 19:43:21 -0800

@marten-seemann commented on this pull request.

I was confused by this as well, and had to fix this in quic-go. On the server I now make the transport parameters available immediately in order to support 0.5 RTT, on the client side, I hold them back until handshake completion.

Not really happy with this distinction, but at least it doesn't seem to break anything.

-- 
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/4835#discussion_r593553570

---

From: ianswett <[email-masked]>
Date: Sun, 14 Mar 2021 09:08:40 -0700

@ianswett 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/4835#pullrequestreview-611711880

---

From: Martin Thomson <[email-masked]>
Date: Tue, 23 Mar 2021 15:38:39 -0700

Merged #4835 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/4835#event-4498867358

---

From: Mike Bishop <[email-masked]>
Date: Tue, 23 Mar 2021 15:38:41 -0700

@MikeBishop 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/4835#pullrequestreview-619144135