TP greasing and negotiating the use of extensions under development

Kazuho Oku <kazuhooku@gmail.com> Thu, 23 April 2020 00:48 UTC

Return-Path: <kazuhooku@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 BE6BD3A0F4B for <quic@ietfa.amsl.com>; Wed, 22 Apr 2020 17:48:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, 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 1nqslbqisCGn for <quic@ietfa.amsl.com>; Wed, 22 Apr 2020 17:48:14 -0700 (PDT)
Received: from mail-ua1-x92f.google.com (mail-ua1-x92f.google.com [IPv6:2607:f8b0:4864:20::92f]) (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 3A42F3A0F48 for <quic@ietf.org>; Wed, 22 Apr 2020 17:48:14 -0700 (PDT)
Received: by mail-ua1-x92f.google.com with SMTP id i5so4031773uaq.1 for <quic@ietf.org>; Wed, 22 Apr 2020 17:48:14 -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:cc; bh=8ZxuwqMRRuqCwNGRIc1/V5DuYTDyq3XcMzirtyWMHF4=; b=X4Q14zQ+9/RrenudpKMA2tXJ3/8Du8cS7eymfDaoXjlk0Vwg5pr/hWmteAgjJbt9iY yQyFy9fyyualfaX0Lq/CgWUCUS1k321dbq5IqOyPFIvwX4sLBaBmeKMVL9sEridwPnGj +n5TU20dgUlSk9UccNZ2MveWzliNBtxWhW8CHr8/lLD0DG6gKZAxezODUPOzjDIHBnEe tcZOxSZkgbay1IAEcGWpb2jwjDDMYLf/yY1oHfb7BhqNUgHi5HkSV/KPnAbKphryqK0T JlY8wNtp539Xf+ezvdjvXRwKo+IyJntJCdfEvO5SGYUNZ4XRs2wrmoNQeYS7grOLlX7D pHhA==
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:cc; bh=8ZxuwqMRRuqCwNGRIc1/V5DuYTDyq3XcMzirtyWMHF4=; b=mcMq721ov4Q0zHebigd5JgQ/r0jgXLjgcivMAofz1m/gEfaxRhxfE3BSUWt+PNAezD w1HTKpFR1xHz9UQCVuplFOnX9hrDwg34FHh/E9vqVx1B+rs2/8BYgAyodtiunw2+YcVF nH1YVoATgG0DugkpsOQUYuVlAZvXPW74iuLgAUOau6U7TYWP3PzYR4IkZDERlTtk95ZF 2HjxG4n832EF1PfWR/oJSD0D4NaB6GFcSO9UjuIx3p0kDyupBf5kOYbjmZwoVNBJ2RR1 5Zung+h3nJaTMA2odYAbpKXbpNqsNUqHZ9+iOY3kTKf6nKOUR8C9EmxVu2GKM0rvCB2x YShQ==
X-Gm-Message-State: AGi0PubISAiWxx3JZdPZ8svmKZSgbo6S0LUblKpl6pxDYDcixZ1kUeXz 2cJO3+9gfpBVvVju9yO1njzNPSzrxcOZOE1pxked8Brh
X-Google-Smtp-Source: APiQypKwQZs5u4ZolUaApx9tq+GsCjCzQWhf6VKtiF1jsqWLWNMkBbFv3FJ7AhOlKlCSJwV2Jsr1zC/ogQuanzbunEI=
X-Received: by 2002:a67:7fd1:: with SMTP id a200mr1283696vsd.114.1587602892885; Wed, 22 Apr 2020 17:48:12 -0700 (PDT)
MIME-Version: 1.0
From: Kazuho Oku <kazuhooku@gmail.com>
Date: Thu, 23 Apr 2020 09:48:02 +0900
Message-ID: <CANatvzySsxFX=H387tuCAys1xO=ARB8EwTcY1LE9CuUMaHEfzQ@mail.gmail.com>
Subject: TP greasing and negotiating the use of extensions under development
To: IETF QUIC WG <quic@ietf.org>
Cc: Christian Huitema <huitema@huitema.net>, Lucas Pardue <lucaspardue.24.7@gmail.com>
Content-Type: multipart/alternative; boundary="0000000000007992cb05a3ea9a92"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/1tl9YLtc4p7QxrLX8fqUXsG4uvA>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
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: Thu, 23 Apr 2020 00:48:16 -0000

Hi,

TL;DR: I would like to confirm that our stance is to make it hard for QUIC
extensions to reserve a contiguous range of Transport Parameter IDs, as we
have intentionally created a gap for every 31 TP by defining greasing as 31
* N + 27 where N is an integer. Extension authors should be aware of that,
when trying to use different TP IDs to identify the draft versions of their
extensions.

Long story:

Recently, there has been a discussion among people implementing the delayed
ack extension, regarding how to check if peer has implemented the same
draft version of that extension.

At the moment, the delayed ack extension is at version -00, uses TP:
0xDE1A. A wire-incompatible change is expected in -01. Endpoints need a way
of identifying which version of the delayed ack extension the peer speaks.

The most trivial way of having a versioning scheme for a QUIC extension is
to use different TP IDs for each revision of the drafted extension.

However, it is a bit difficult to specify a range of code points (i.e.
0xde1a00nn), and say that nn would be the revision number of the draft,
because there are greasing TPs for every 31 TP number.

In case of 0xde1a00nn, the first nn that would hit the greasing number
would be nn=19. That's not too bad. But depending on how each extension
chooses the base number, nn could be something like 5, 1, or 0.

This is not a terrible problem at all. Extension authors can skip greasing
TPs. But we need to make sure that they will do that.

--
Kazuho Oku