Re: ALPN and QUIC versions

Lucas Pardue <lucaspardue.24.7@gmail.com> Thu, 20 May 2021 00:09 UTC

Return-Path: <lucaspardue.24.7@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 3CD223A24CE for <quic@ietfa.amsl.com>; Wed, 19 May 2021 17:09:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.837
X-Spam-Level:
X-Spam-Status: No, score=-1.837 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_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, T_SPF_TEMPERROR=0.01] 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 etFJ1XBEc5-x for <quic@ietfa.amsl.com>; Wed, 19 May 2021 17:08:59 -0700 (PDT)
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com [IPv6:2a00:1450:4864:20::62a]) (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 2819C3A24D0 for <quic@ietf.org>; Wed, 19 May 2021 17:08:59 -0700 (PDT)
Received: by mail-ej1-x62a.google.com with SMTP id i7so4664402ejc.5 for <quic@ietf.org>; Wed, 19 May 2021 17:08:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=67qn1HSc09GN5oxj5ny1MjOjrgjltarcXBqMZJ9DfVw=; b=fjWaj9NEg2tQd22lEQnz33wkMfM+Tc+ssSi315j7pupzEy4oqFC899ATNWDE+6ylWw 6DhJjCVyUrJyx/hAljG04uu16tmMoY/1fhsOoPTyugeb8MY+HFRuLzrz0spKzCo3PVeu jA5zT1ejgx4qhl/TFnNMzOSc+AVKskN3B55u2KmQLUrQdllMr9PHngqNCNelbVQQBRMH iRSDvQGIBay7FBNUwjmh+MXKmq2YQNRXrI1/3UrbOvcems16UhU0kQoLMHS2K4NtD5Rw dAC6ezIbTdj9X4dxbNq48m/REXTqs9wKe0mnWk71cpQQUkN31SqyuaDU5Jsn87WyhfPR 0j7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=67qn1HSc09GN5oxj5ny1MjOjrgjltarcXBqMZJ9DfVw=; b=MVhtqmtcHStZg45tTvZgxmILic6kTDWLT+/vayEtkStpE/DBc/UY1TO0pj91J1e7HT 1fi+9ZgRongdWs24Y0WxqhpMKCKKo0GIhI9PWx8gL9WG5wr9niL85q4fmRMAYZLVGW33 zjyh2yIsqaNYrJpKvdZ7WUpzo70YB3FH1xsuIBEdPB3P55N0nnGCagW5rZt8nmZQMZU4 W+2yMTN9Bl8kNrgTh3PIOe94kqrfHOuXppgEcyhXvCVfENMZPxoJW24bc3pUJobo4AMW d4LWrqLvMJDX97xNAC+Kww9ZNOuwt1TknSuWDwYWtdsIzDi0yzXtZXuHrwW9wxWNNlU/ QMWA==
X-Gm-Message-State: AOAM5330dUy4lObVo79fbNHUnOdRAM6X2qHUpdA0+1zxBB1K+8+gPihz zgC5P9kM7tKBLCTVs83ijdVgbDQqFT7rDQHgF84=
X-Google-Smtp-Source: ABdhPJxE0qnmu8MExVFTlc4VYgjSxl2sVgcMh34IL2sn4IINwqFGel4WBP+DSagWrmgpIbK/JCQg+BL+vS9fYujWhN4=
X-Received: by 2002:a17:906:1fcb:: with SMTP id e11mr1802414ejt.46.1621469335777; Wed, 19 May 2021 17:08:55 -0700 (PDT)
MIME-Version: 1.0
References: <CAM4esxSLAMNZQ73sEk-8LnVRiv00b-PDVPmUqY3iMxCSYui0fw@mail.gmail.com>
In-Reply-To: <CAM4esxSLAMNZQ73sEk-8LnVRiv00b-PDVPmUqY3iMxCSYui0fw@mail.gmail.com>
From: Lucas Pardue <lucaspardue.24.7@gmail.com>
Date: Thu, 20 May 2021 01:08:44 +0100
Message-ID: <CALGR9oYhPLC0cUAxt-9a7OqCL5-VLJ-2K+UihFmJ=-8w=QR=Fg@mail.gmail.com>
Subject: Re: ALPN and QUIC versions
To: Martin Duke <martin.h.duke@gmail.com>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000c5f62c05c2b7bf00"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/X6IN0nd33T42Ih543-CwQ2cDhdY>
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, 20 May 2021 00:09:04 -0000

Hi Martin

Speaking as an individual. There's a lot to consider here, I don't have a
complete response.

For a start, I think there are ways to rephrase the applicability draft
text to get over some thorniness - seems I'm on the hook to do that,
reviews will will welcome.

To respond to one of your suggestions


On Wed, 19 May 2021, 16:27 Martin Duke, <martin.h.duke@gmail.com> wrote:

>
> 4) There is no formal trail of linkages. New version RFCs should say what
> apps they support (possibly as generic as "all v1 applications work with
> the new version") and applications should say if (a) the list of usable
> versions is other than the full known set and (b) what properties it needs
> from a QUIC version to operate. This is the path I took in a v2 PR
> <https://github.com/martinduke/draft-duke-quic-v2/pull/6> [3], which has
> no official standing whatsoever. This makes the forensics to obtain the
> full list of usable versions quite a bit harder, but won't explode the ALPN
> registry or the front page of HTTP/3.
>

I might grade incompatible breaking versions on at least two criteria.
First, is the wire image the same? Second, are the protocol feature changes
that break the contract with upper layers, which would cover removing
features, changing features in ways that break dependent behaviour, adding
features that break dependent behaviour.

Such a grading exercise would appear to be a useful function of the QUIC WG
in the long run. What I mean by this is that (hypothetically) we should
encourage versions to state if their compatibility with other versions is
breaking or non-breaking. The QUIC version IANA table could, for example,
codify some of this.
The group has the expertise to assess such claims and the desire to avoid
version relationship explosion in breadth or depth (I.e. we would heavily
normalize).

QUIC extensions could state the known (at the time of writing) version(s)
that they extend. To keep it simple, they'd just need to state the earliest
registered version on each breaking version. We assume that non-breaking
versions published by the IETF all work. A single QUIC extension document
can define how it extends several breaking QUIC versions. We have a similar
situation right now when defining logically equivalent behavioral
extensions that need to work over H1, H2 and H3.

Application protocols could also state known (at the time of writing)
version(s) that they run over. Same as above.

When future breaking QUIC versions are published, extension and application
protocols can respond. Update documents could be effectively no-op, require
major/minor surgery, or state explicitly that a version is not supported if
they help the strong need to.
To make this activity easier, both extensions and application protocols
(and their extensions!) would benefit from stating the QUIC protocol
features that they depend on. Reviewing those statements is likely a
service the QUIC WG should provide to other groups.

I think this possibly leads to a hybrid option 4, where the ALPN registry
has a column that lists only breaking QUIC versions. And we don't mandate
any rules on the number of versions that a token can relate to.

Cheers
Lucas