Extension frame design question

Martin Thomson <martin.thomson@gmail.com> Fri, 13 April 2018 02:42 UTC

Return-Path: <martin.thomson@gmail.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 782461243F6 for <quic@ietfa.amsl.com>; Thu, 12 Apr 2018 19:42:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dVUYJHBTrrXy for <quic@ietfa.amsl.com>; Thu, 12 Apr 2018 19:42:10 -0700 (PDT)
Received: from mail-ot0-x235.google.com (mail-ot0-x235.google.com [IPv6:2607:f8b0:4003:c0f::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B37F012D7F6 for <quic@ietf.org>; Thu, 12 Apr 2018 19:42:10 -0700 (PDT)
Received: by mail-ot0-x235.google.com with SMTP id f47-v6so8333888oth.2 for <quic@ietf.org>; Thu, 12 Apr 2018 19:42:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=dqKj7/a3/p8WLstfzcAxbRt+7GA91L5oNYbQncQYi74=; b=GaEOIAdnxm6xRd4YU7X7JpGJGKdwdYt8pw46+BaNo0Jj2MoHSQDwkAxlOBU/H1a89o /wkM02BbALOGvN9M2VfUMAqlckbxkALLzWGVHh6vowdt15hsoiMViYmTjIKfrJ4DWMlx uGd5MlJa0RpBLIJOKOgLrxn1hrVMqzXf6B0nsgLeg0U6t37+jMhUxkagojb7gM1MJUon iqtHz+HjS9kvhGZutZ9rbJnnX38arHG4uG1EyxgkXJFkIvf/8T8LgF+zoO62JKJVT3UY ppvyDcIwkFgYAbbiWC7nIysHT7DlaADpYBFqVpb//15e+p2WvCVl9uakrFHpyZo4Tu8u dZlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=dqKj7/a3/p8WLstfzcAxbRt+7GA91L5oNYbQncQYi74=; b=OytawTrCOTopUWHtqfCcziqCVw0P3z1HhKLOz6S3XgDgUsu3sqJYS3+S/4+8FY7IiV mo3iMQlU5PcQBxhxbfrEfjVZuutzSVm7rarPhf1mP7tjgtImlrRoZ876oO9cdhubNdvZ 7qHdJk7Oydcmg3vBVMKy/pV1WlpJXkzPVPiVJ8aJP2B2hFoBSCNpAwwGf2orlxqCyeof X/nkA9nHE46HNgke3f6ADWYrAJcGaPrp60HFfYJP+EIMc/HOrk65NqMgoXhHFYdDY3NI iq6NNZ/1B/DkmfWAz5yR1oUmRYvs4dYoOUm1mL7KBQ7swgQkYM6kbYwpUR0l0ki5nrk3 YyWg==
X-Gm-Message-State: ALQs6tD4+jifJASeGVW9xEKIO3fcCbJrE9qLVEPZ2/Uwn08oMCU7zbRe m9NQUiZ2MslYBeyJgKoZ/7ts8rzmBmyYNioIQZfJGA==
X-Google-Smtp-Source: AIpwx48c6Xk7I8ijtgjjaX/5Q6LhiS+a+UofJ2P1dloG5SQNnNZxiYuJQPbpOdCSfHLqaWBfWcXQH5MYlveoV7BZWtw=
X-Received: by 2002:a9d:1071:: with SMTP id o46-v6mr2201016oto.396.1523587329867; Thu, 12 Apr 2018 19:42:09 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a9d:ac7:0:0:0:0:0 with HTTP; Thu, 12 Apr 2018 19:42:09 -0700 (PDT)
From: Martin Thomson <martin.thomson@gmail.com>
Date: Fri, 13 Apr 2018 12:42:09 +1000
Message-ID: <CABkgnnUMFeA2ALJ2yz9CUi9bdE31JJVqqZAUO6p1D=ALDVZS1A@mail.gmail.com>
Subject: Extension frame design question
To: QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/pNRqGLzucuIUqwp8S7yRWQ9VDZI>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 13 Apr 2018 02:42:12 -0000

We agreed to add the ability to extend QUIC in Melbourne (I know, it's
so long ago, but it seems like just yesterday).  But we never never
sealed the deal.

While we agree in principle, and have agreed that the use of
extensions will be signaled during the handshake using transport
parameters (as opposed to the h2 model where they can just appear),
we're locked in disagreement about the precise colour to use.  Right
now there are three options:

1. As Victor originally proposed, provide a map from a large
identifier space to the smaller space of extension frame types.  PR
#1068 does that, mapping a 16-bit identifier into the 128-255 range of
frame types.  Cost: indirection, complexity.  Advantage: It has a PR
(i.e., nothing significant).

2. Use a varint for frame types. Cost: non-trivial change to the wire
format for frames; large(r) overhead for sending a frame unless you
get one of the privileged frame types that encode to a single octet
(and we have used 3/8 of those already, so we'd probably want to be
strict about registration policies in that space).  Advantage: simple.

3. A modification to PR #1068 proposed by Kazuho which would have
every transport parameter carry a list of frame types with it.  Cost:
similar indirection to PR #1068, and every transport parameter would
carry this list.  The advantage being that an extension that defines a
transport parameter would only touch a single transport parameter and
not have to register an extension frame type as well.

Now I prefer the first, but could live with either alternative if only
we could decide.  So I'm asking for help.