Subject: [quicwg/base-drafts] Relax requirement of detecting duplicate TPs on receiver (#2691)

From: Jana Iyengar <[email-masked]>
Date: Fri, 10 May 2019 18:42:43 -0700

Changes a receiver requirement to, in [Mike's words](https://github.com/quicwg/base-drafts/issues/2663#issuecomment-488742475), "senders: don't do that; receivers: you're not required to police but we'd really like it if you did."

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

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

-- Commit Summary --

  * MUST NOT appear, receiver MAY error

-- File Changes --

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

-- Patch Links --

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

---

From: Dmitri Tikhonov <[email-masked]>
Date: Sat, 11 May 2019 06:44:39 -0700

dtikhonov 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/2691#pullrequestreview-236377899

---

From: Nick Banks <[email-masked]>
Date: Sat, 11 May 2019 07:36:29 -0700

nibanks 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/2691#pullrequestreview-236379751

---

From: ianswett <[email-masked]>
Date: Sat, 11 May 2019 08:47:13 -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/2691#pullrequestreview-236382214

---

From: Martin Thomson <[email-masked]>
Date: Sat, 11 May 2019 22:00:49 -0700

martinthomson 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/2691#pullrequestreview-236401332

---

From: Mike Bishop <[email-masked]>
Date: Mon, 13 May 2019 10:55:53 -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/2691#pullrequestreview-236828353

---

From: martinduke <[email-masked]>
Date: Mon, 13 May 2019 14:15:04 -0700

I would prefer a middle ground, where I only MUST check for TPs I support. I can manage that, but tracking 65K items for duplicates is a bit much

-- 
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/2691#issuecomment-491989573

---

From: martinduke <[email-masked]>
Date: Mon, 13 May 2019 14:15:50 -0700

Actually processing duplicates read to unpredictable behavior

-- 
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/2691#issuecomment-491989822

---

From: David Schinazi <[email-masked]>
Date: Tue, 14 May 2019 00:21:13 +0000 (UTC)

I like this proposal. Checking should be encouraged but not mandated.

-- 
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/2691#issuecomment-492032413

---

From: Martin Thomson <[email-masked]>
Date: Mon, 13 May 2019 18:47:38 -0700

The spin here is interesting.  An endpoint should be able to track supported transport parameters.  Also remember that once we start to approach 300 transport parameters, there is no more room in the client's Initial packet for other stuff (like keys).  The server parameters don't have the same constraint, but you might reasonably assume that the same limit is coming.

-- 
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/2691#issuecomment-492047327

---

From: Kazuho Oku <[email-masked]>
Date: Mon, 13 May 2019 18:58:19 -0700

I think I'm fine with what the PR says now.

Though I'm also fine to see something like "the receiver SHOULD treat duplicates of TP that the endpoint supports as a connection error" being added.

The issue with "MAY validate" in general is that it is sometimes hard for smaller players to enforce, because they'd be risking interoperability unless other players also enforce the behavior to the extent that the endpoints violating the requirement would never be shipped.

-- 
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/2691#issuecomment-492049190

---

From: David Schinazi <[email-masked]>
Date: Mon, 13 May 2019 20:55:05 -0700

Perhaps a middleground could be: endpoints SHOULD validate (instead of the current MAY)? I like either as long as it's not a MUST validate.

-- 
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/2691#issuecomment-492069072

---

From: martinduke <[email-masked]>
Date: Mon, 13 May 2019 20:58:09 -0700

the only thing I don't like about SHOULD validate for supported parameters is that if there are two copies the actual behavior is somewhat ambiguous. If I get two values for the same TP, which should I observe?

Much cleaner to demand enforcement for supported TPs, IMO.

-- 
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/2691#issuecomment-492069548

---

From: Lucas Pardue <[email-masked]>
Date: Tue, 14 May 2019 03:44:31 -0700

I could live in a world that requires MUST validation of the small set of IANA registered non-GREASE transport parameters (and tangentially HTTP/3 SETTINGS parameters). 

I don't want to "MUST validate" a humungous set of 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/2691#issuecomment-492186081

---

From: ianswett <[email-masked]>
Date: Tue, 14 May 2019 03:54:51 -0700

If it's MUST not send and SHOULD validate, then I believe there's no need to define what happens if multiple are sent, because it's explicitly forbidden.

-- 
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/2691#issuecomment-492188911

---

From: ianswett <[email-masked]>
Date: Tue, 14 May 2019 03:59:32 -0700

> @@ -1379,12 +1379,14 @@ Once the handshake completes, the transport parameters declared by the peer are
 available.  Each endpoint validates the value provided by its peer.
 
 Definitions for each of the defined transport parameters are included in
-{{transport-parameter-definitions}}.  An endpoint MUST treat receipt of a
-transport parameter with an invalid value as a connection error of type
-TRANSPORT_PARAMETER_ERROR.  Any given parameter MUST appear at most once in a
-given transport parameters extension.  An endpoint MUST treat receipt of
-duplicate transport parameters as a connection error of type
-TRANSPORT_PARAMETER_ERROR.
+{{transport-parameter-definitions}}.
+
+An endpoint MUST treat receipt of a transport parameter with an invalid value as
+a connection error of type TRANSPORT_PARAMETER_ERROR.
+
+A parameter MUST NOT appear more than once in a given transport parameters

This says "appear", but the conversation has been along the lines of "MUST NOT send"  they mean the same, but "MUST NOT send" seems clearer to me, so I'd prefer 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/2691#pullrequestreview-237169946

---

From: Jana Iyengar <[email-masked]>
Date: Wed, 15 May 2019 18:09:04 -0700

@janaiyengar pushed 1 commit.

0304bbed89cba8c24a0c0e3a21eed33ff47211fd  MUST NOT send, SHOULD error

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2691/files/15f7c418fc52075c9fa665105fabb6844b00f880..0304bbed89cba8c24a0c0e3a21eed33ff47211fd

---

From: Jana Iyengar <[email-masked]>
Date: Wed, 15 May 2019 18:09:55 -0700

Ok, I've changed it to SHOULD error if dups are received, and I've explicitly called out MUST NOT _send_.

-- 
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/2691#issuecomment-492878282

---

From: Kazuho Oku <[email-masked]>
Date: Wed, 15 May 2019 19:14:00 -0700

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/2691#pullrequestreview-238150709

---

From: martinduke <[email-masked]>
Date: Thu, 16 May 2019 11:39:37 -0700

Although I'd prefer a MUST for the non-proprietary TPs, I can live with the current PR.

-- 
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/2691#issuecomment-493184880