Re: draft-30 non-implementable, please

Matt Joras <matt.joras@gmail.com> Tue, 11 August 2020 20:01 UTC

Return-Path: <matt.joras@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 DC1143A0C38 for <quic@ietfa.amsl.com>; Tue, 11 Aug 2020 13:01:53 -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 BdXiIYfgHsnK for <quic@ietfa.amsl.com>; Tue, 11 Aug 2020 13:01:52 -0700 (PDT)
Received: from mail-ua1-x935.google.com (mail-ua1-x935.google.com [IPv6:2607:f8b0:4864:20::935]) (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 D232E3A0C36 for <quic@ietf.org>; Tue, 11 Aug 2020 13:01:51 -0700 (PDT)
Received: by mail-ua1-x935.google.com with SMTP id v20so915726ual.4 for <quic@ietf.org>; Tue, 11 Aug 2020 13:01:51 -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=FBwSNOLTpHDeDRj3getAbrOzHFwskaW20Tdz2hJczJc=; b=nsMmyxBs6dkoQmeoEVBDXOhbmMjkgrCBHFqeD7WQ1/uDx7pk3YkzXOwvu7s+vR4oMb Dx/GY65NcpQTAhjH8Q23LkUMBN5kg96ZancA6w2CyimP3oIc6tNm7ziQbGyrtWYdT0cJ Le0oZFXg8ByxnaVdbwxpU7A5dHGwAqEO4jpGTFxGPNW76LNNXID0nK2msUmLF0yiYfJm TlOcb/37GhudFdMfeh1A+Bv3YZCJD/+LuoplSVMvuq5f67yQp5KmCf4Y97PbUI63I4AO DkbYYwVTL9XKGOQCb5psVvUWCH6Xgma6ChyRBpcX0SUjW2rP2Jnc/U9i6iKRkqsqO+Nv P7eg==
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=FBwSNOLTpHDeDRj3getAbrOzHFwskaW20Tdz2hJczJc=; b=uQtdKragsth8QrpScemLfBLU37ZMfNtCv3+qT42mRzkduJbEoZZn9PiH4IS4V/AbhZ eZfv3vg5fSjPPycOnze5z2LXBetac3/VzU/kgv7uJx5wr6bwgW3BFEweJdG1cvlw2HcF 4HplBB4Du6ycFNFsreUXWJxy0F9ml2tA7/KZn9fX315vJhsmtcM/EbkbMgWyAQvXozyd g1C4C+6298+NhmBkJIqWixwC1PafaNuiEdGQuMAHRt+3Jm2eweUqvXl9A+bn0U54g69y h1DeAY/EIQcUUr59WQJy4A3OTzQ+HJV1aSMzO1EuKQnmwIHUJ0MpDc6YO6bdXBh5SbCX 42sg==
X-Gm-Message-State: AOAM530XUM1u+0IizK48L9eiXbIpBL9gb9wtcq2bvsUfP5CtLjFx936a mo6D2Vk6TFaNzqfVcJSezl1p1URrCqfI/DusKYw=
X-Google-Smtp-Source: ABdhPJwgv/F07x7T7jsQouCgLXLMfd0xwqwp40TLleHyvO4ZjyldzsJxxZPjhRFZgPwOrMkQsVIuzVc5va2CZcx1L/c=
X-Received: by 2002:ab0:1052:: with SMTP id g18mr25620916uab.62.1597176110713; Tue, 11 Aug 2020 13:01:50 -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: Matt Joras <matt.joras@gmail.com>
Date: Tue, 11 Aug 2020 13:01:38 -0700
Message-ID: <CADdTf+hgoQ+8T0UpLJyYqa3ptYQLH1soKLGZmMs6_Nch9yTaLA@mail.gmail.com>
Subject: Re: draft-30 non-implementable, please
To: David Schinazi <dschinazi.ietf@gmail.com>
Cc: Martin Duke <martin.h.duke@gmail.com>, Ryan Hamilton <ryan@optimism.cc>, IETF QUIC WG <quic@ietf.org>, Christian Huitema <huitema@huitema.net>, Ian Swett <ianswett=40google.com@dmarc.ietf.org>, Lucas Pardue <lucaspardue.24.7@gmail.com>
Content-Type: multipart/alternative; boundary="000000000000b90ff605ac9f8a40"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/zBavws1ZhyfHUm8c84QW0homLSE>
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:01:54 -0000

I guess the way I see it is, suppose there is a draft-30 version.
Implementers have 3 choices:
1. Solely implement -30, dropping support for -29.
2. Supporting both -29 and -30.
3. Not implement -30 and staying on -29.

My feeling is that not many implementers will opt for option 1.
Implementations for whom it is easy to add new versions could do 2, and
those for whom it is difficult or there are other considerations preventing
it can do 3. The end result is we have individual implementers choosing or
not choosing to add another version. If e.g. Chrome and Firefox and Safari
opt for option 3, then anyone who wants to maintain interop with them will
not choose option 1.

Adding new special casing language in the draft to add a version "hole" for
30 seems needlessly complicated to me; this feels more like a community
socialization problem than a specification problem.

Matt Joras

On Tue, Aug 11, 2020, 12:46 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
>>>>>>>>
>>>>>>>>
>>>>>>>>