Re: draft-30 non-implementable, please

Jana Iyengar <jri.ietf@gmail.com> Tue, 11 August 2020 20:10 UTC

Return-Path: <jri.ietf@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 EF7883A0C48 for <quic@ietfa.amsl.com>; Tue, 11 Aug 2020 13:10:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.097
X-Spam-Level:
X-Spam-Status: No, score=-1.097 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, FREEMAIL_REPLY=1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no 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 yvEK_pwkNrA9 for <quic@ietfa.amsl.com>; Tue, 11 Aug 2020 13:09:58 -0700 (PDT)
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com [IPv6:2a00:1450:4864:20::22c]) (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 84E253A0C45 for <quic@ietf.org>; Tue, 11 Aug 2020 13:09:58 -0700 (PDT)
Received: by mail-lj1-x22c.google.com with SMTP id w25so14928694ljo.12 for <quic@ietf.org>; Tue, 11 Aug 2020 13:09: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=6c0hhhuFu0gncfJQ5dAH8nZJ+OlyWdpTw9TwhMr6m/Y=; b=JYAMuHz3IjorglDY/mo8s7NXfIc8IxIYeTd3CtBwHE0I5gKJ8Y4sF+KbKPdYAI85kF WVH/wLwVUIRNTh6bAtrmZDExY+iSH167aBjnFyTrSGta1Ne1cvBZ6mpghdG6YQpVDbf6 w2JuIL8PnzPmydG7+mwe1xmZy5T/1+/NR8P84BK2fL5KpJdQO9FAZyigUW2upylHHkyM 3xh4Td81wVInqDmAZcfHXkJTfWYsEpfdychPgd5Emk+R0wdUaSiekAlkuKv4jLpQtItz b4JcVoWSQLHQ/ZrqFIUIT7PHdJ4g+2Mkifrv/d6z7sx9n8w9JvI4+c3TbHJCHzoZHG9K RIJA==
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=6c0hhhuFu0gncfJQ5dAH8nZJ+OlyWdpTw9TwhMr6m/Y=; b=kFW1yBmkvCtQ03OZe6S+lNWwECl+x10uYlOjS7TdK8mQGZwfDOEXVgsKxrkbDmGmEz 9P2XG01MykICf+DVSqbN893Q08PX0XwAHvOS3NitX47QcfhhkeWEQrwFceRzTMwJLSex 8VkbGFMM+HXL3XlCaC0QLkGr9U2n9ZRKO9CpJ+PeBMBilFZAJ2BYIG96PrcCTEsMxXc8 rtCEH8+AfJmpdn7E48stCYBhYvXTSW3MC+xTEPwq3GGFGjS3qt/4hn0XZFd6zMSHmokZ jn31xJ5Lc+9PBtbD1wl2qunibl/Y7gfNZEL2k5sq+H/5nePJwR7bkF0dM33ON9uzmclf t/kQ==
X-Gm-Message-State: AOAM531w6W3uhE4hfuvjiJ52MPbS5bEWUbv2wWW17wEvFYiRG17plX6h n/iIyPD/nkDs+8gkxPUSLXwoDKyhD52eFSKP3Ys=
X-Google-Smtp-Source: ABdhPJzRBR83w1eBNI4ru1G/oMyxku01k/zdAZzLUhC2zXJrTtlsh8et13kNMgmjqRKH8l1LO8Qx2SqHMh8yC3vmcZc=
X-Received: by 2002:a2e:a556:: with SMTP id e22mr3386502ljn.317.1597176596585; Tue, 11 Aug 2020 13:09:56 -0700 (PDT)
MIME-Version: 1.0
References: <CAM4esxQ3zqBxLgPpFnCvnJM7WACGoOaMHHZU2NfS1uqH1rv2+A@mail.gmail.com> <CAKDhxQq7Y9qb9-JaOEoStYSy8VdxcUj5jg6V7ZHhNpo3rv3Rmg@mail.gmail.com> <CALGR9oZUOuW2BJgQ5_oF_Y1=MCH=+se6CZRxsq0N2nCFCRz3tg@mail.gmail.com> <CALGR9obGp7JXHYPEMgJ+i81ehwZmvkC9fLBTfboLYt1ANwXfLQ@mail.gmail.com> <CAM4esxRj9Mh=X+qQgE6OOGXe+hMkYx=Bf3VAMKqUB2E9kTOaLA@mail.gmail.com> <CAKcm_gN6daWVMb91F+mrrCD5NwM7in55Ny9oF3dPwiVQgUSuVg@mail.gmail.com> <f83c6eae-6f6b-becb-7991-9a3ca0de3879@huitema.net> <CAM4esxSWvR4D4NyE-bYEoRtX=8Ls-=gXiEVwPZGUQEE5zur27w@mail.gmail.com> <CAPDSy+77Qv6F4tFHY12XX9p0Ayb5ozEYcmGJYSw+nRM+nHNoMw@mail.gmail.com> <CADdTf+jk6+TMx+p6yEgLDvrHDPaW_XrrtcAO-p1RkVYg67v-eQ@mail.gmail.com> <CAPDSy+7q2Ptv5-_UNpG-VYLP09+Ojj5qxvXFRO==mBLqoUyr7A@mail.gmail.com>
In-Reply-To: <CAPDSy+7q2Ptv5-_UNpG-VYLP09+Ojj5qxvXFRO==mBLqoUyr7A@mail.gmail.com>
From: Jana Iyengar <jri.ietf@gmail.com>
Date: Tue, 11 Aug 2020 13:09:43 -0700
Message-ID: <CACpbDccUFyvkAdDJ6QST1dZrXnCo7-g5msJtaJO80Q06B+YDJQ@mail.gmail.com>
Subject: Re: draft-30 non-implementable, please
To: David Schinazi <dschinazi.ietf@gmail.com>
Cc: Matt Joras <matt.joras@gmail.com>, Ryan Hamilton <ryan@optimism.cc>, Ian Swett <ianswett=40google.com@dmarc.ietf.org>, Christian Huitema <huitema@huitema.net>, Lucas Pardue <lucaspardue.24.7@gmail.com>, IETF QUIC WG <quic@ietf.org>, Martin Duke <martin.h.duke@gmail.com>
Content-Type: multipart/alternative; boundary="000000000000aee21005ac9fa7b2"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/zTnvGJLE7MG1iC7kB3CosP5e1Bo>
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: Tue, 11 Aug 2020 20:10:01 -0000

Thanks for kicking this off, Martin. I was hoping to have this conversation
after we shipped -30, but now is fine too.

This is a problem that's happening now, but it's going to keep repeating
for subsequent versions. Hopefully there are very few of those before v1,
but there will be ones after v1 as well. I expect that most deployments are
likely to support at least two versions going forward - the "most
supported" version, and any cutting-edge or experimental versions.

There's going to be a deployed base that uses -29 for a while. Speaking for
Fastly, we intend to support -29 at our servers for the foreseeable future
simply because we expect an increasing number of clients to be speaking
that for a while. I propose that we call -29 the most-supported version.

Given that, implementations that want to can choose to support -30 in
addition. This can be the cutting-edge version.

Keeping the versions separate allows us to exercise this particular split
that I suspect most of us will want to support.

- jana

On Tue, Aug 11, 2020 at 12:47 PM David Schinazi <dschinazi.ietf@gmail.com>
wrote:

> The problem is that if the drafts don't say anything, then some folks will
> deploy h3-30 and then all others will be forced to choose between doing
> expensive useless work and losing interop.
> Speaking for the Google implementation, adding a version to the codebase
> isn't a lot of engineering work, it's the deployment and testing
> infrastructure costs that are really high for us.
>
> On Tue, Aug 11, 2020 at 12:39 PM Matt Joras <matt.joras@gmail.com> wrote:
>
>> David and others, why does it matter if the draft specifies a version -30
>> or not? If you don't feel there's a need to deploy a version -30 in Chrome
>> and the Google servers, then why bother? Other endpoints will then be
>> incentivized to keep wire format support for -29, and some may not bother
>> implementing -30 at all.
>>
>> That being said I don't particularly care very much. We already support 4
>> versions and two logical wire formats, and the pain of supporting further
>> ones is negligible at this point, so we will do whatever keeps us
>> interoping with the most implementations.
>>
>> I guess I don't see that this requires any changes to language in the
>> draft around transport versions.
>>
>> Matt Joras
>>
>> On Tue, Aug 11, 2020, 11:57 AM David Schinazi <dschinazi.ietf@gmail.com>
>> wrote:
>>
>>> If there are no interop-breaking changes, then I would much prefer
>>> draft-30 to have text stating that 0xff00001e and h3-20 MUST NOT be sent on
>>> the wire.
>>> Deploying a new version would take on the order of two months for us,
>>> and also has a non-negligible impact on the environment due to the large
>>> amount of tests we run on all supported versions.
>>>
>>> On Tue, Aug 11, 2020 at 11:54 AM Martin Duke <martin.h.duke@gmail.com>
>>> wrote:
>>>
>>>> Christian,
>>>>
>>>> I think the issue is that for many of us a one-line change can take
>>>> weeks or months to propagate to the field, so there will be more version
>>>> mismatches in the meantime.
>>>>
>>>> I suppose if all h3-30s also support h3-29, there's no issue, but
>>>> that's a weird thing to mandate.
>>>>
>>>> On Tue, Aug 11, 2020 at 11:25 AM Christian Huitema <huitema@huitema.net>
>>>> wrote:
>>>>
>>>>> If that's true, then supporting draft-30 in picoquic in addition to
>>>>> draft 29 is just a one-line change. Good way to test version aliasing.
>>>>> On 8/11/2020 11:13 AM, Ian Swett wrote:
>>>>>
>>>>> I'm not aware of anything that I expect to cause interop problems, but
>>>>> the other editors may have something in mind.  In particular, there are no
>>>>> wire format changes or new mechanisms that if you don't implement, the
>>>>> connection fails.
>>>>>
>>>>> I was thinking we would roll the changes into the existing -29, rather
>>>>> than shipping -30 as an ALPN and Alt-Svc.
>>>>>
>>>>> On Tue, Aug 11, 2020 at 2:04 PM Martin Duke <martin.h.duke@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> I am happy to defer to the editors as to whether their change
>>>>>> requires interoperability changes or not. My quick scan of the diff doesn't
>>>>>> immediately reveal anything that would actually cause an issue, but I might
>>>>>> be wrong.
>>>>>>
>>>>>> On Tue, Aug 11, 2020 at 10:55 AM Lucas Pardue <
>>>>>> lucaspardue.24.7@gmail.com> wrote:
>>>>>>
>>>>>>> whoops [1]
>>>>>>>
>>>>>>> [1] -
>>>>>>> https://tools.ietf.org/rfcdiff?url1=https://tools.ietf.org/id/draft-ietf-quic-transport&url2=https://quicwg.github.io/base-drafts/draft-ietf-quic-transport.txt
>>>>>>>
>>>>>>> On Tue, Aug 11, 2020 at 6:54 PM Lucas Pardue <
>>>>>>> lucaspardue.24.7@gmail.com <lucaspardue....24.7@gmail.com>> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, Aug 11, 2020 at 6:46 PM Ryan Hamilton <ryan@optimism.cc>
>>>>>>>> <ryan@optimism.cc> wrote:
>>>>>>>>
>>>>>>>>> Completely agree. If -30 is compatible with -29 let's keep the
>>>>>>>>> same "on the wire" versioning so that we can maximize the probability of
>>>>>>>>> successful communication!
>>>>>>>>>
>>>>>>>>
>>>>>>>> Speaking as an individual, the struggle I have is that 29 to 30 is
>>>>>>>> not a no-op. You can look at the current diff for transport [1] and see
>>>>>>>> that we're sarig down the barrel of 10 design issues with proposals. So as
>>>>>>>> an endpoint that implements 30-not-30, if I speak to an endpoint that is
>>>>>>>> barely-29 and I have issues, what is my recourse? I really don't want to
>>>>>>>> get into UA sniffing to build in branching code...
>>>>>>>>
>>>>>>>> Lucas
>>>>>>>>
>>>>>>>>
>>>>>>>>