[quicwg/base-drafts] Transport parameter registry is too constraining for innovation (#3020)

David Schinazi <notifications@github.com> Wed, 11 September 2019 20:55 UTC

Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 39873120812 for <quic-issues@ietfa.amsl.com>; Wed, 11 Sep 2019 13:55:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.898
X-Spam-Status: No, score=-7.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id DAUU3N4X3uMX for <quic-issues@ietfa.amsl.com>; Wed, 11 Sep 2019 13:55:21 -0700 (PDT)
Received: from out-22.smtp.github.com (out-22.smtp.github.com []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C6ACA1207FF for <quic-issues@ietf.org>; Wed, 11 Sep 2019 13:55:21 -0700 (PDT)
Received: from github-lowworker-56fcc46.va3-iad.github.net (github-lowworker-56fcc46.va3-iad.github.net []) by smtp.github.com (Postfix) with ESMTP id E39FEA0855 for <quic-issues@ietf.org>; Wed, 11 Sep 2019 13:55:20 -0700 (PDT)
Date: Wed, 11 Sep 2019 13:55:20 -0700
From: David Schinazi <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK6WRYD747EQOIR77ZV3Q2P4REVBNHHB2WTA7U@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/3020@github.com>
Subject: [quicwg/base-drafts] Transport parameter registry is too constraining for innovation (#3020)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5d795f38d42ac_4ed3fca47ecd96029254e"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: DavidSchinazi
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/Cw7aUSYDrSA5w4miQ_m2mDbxMQs>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Sep 2019 20:55:24 -0000

As of [draft-22](https://tools.ietf.org/html/draft-ietf-quic-transport-22#section-22.1), transport parameter identifiers are 16bit integers, with a registry where
- `[0x0000 - 0xfeff]` uses the [RFC8128 Specification Required policy](https://tools.ietf.org/html/rfc8126#section-4.6)
- `[0xff00 - 0xffff]` is reserved for experimentation

While keeping Specification Required makes sense for a good chunk of the registry space, I think there will be many experiments that are conducted before a full specification is written (some already exist today and I expect there to be many many more once the protocol is standardized).

However, those experiments only have 256 values to play with, and that is bound to cause collisions and headaches down the road.

I think the simplest solution to this problem is to use variable length integers for transport parameter identifiers. The TLS presentation language doesn't support them but since we already use VLIs for the values of several transport parameters we're no longer bound by the TLS presentation language. I think there was also support for doing this when it was discussed on #1608, but that issue was closed when the *values* were changed to VLI with #1947, without changing the identifiers.

I'm happy to write the PR if this issue gathers support.

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: