Re: Split error codes in two

Martin Thomson <martin.thomson@gmail.com> Mon, 04 September 2017 23:55 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 86D37132193 for <quic@ietfa.amsl.com>; Mon, 4 Sep 2017 16:55:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 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_LOW=-0.7, 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 Y7nmkeWA_Hce for <quic@ietfa.amsl.com>; Mon, 4 Sep 2017 16:55:52 -0700 (PDT)
Received: from mail-oi0-x235.google.com (mail-oi0-x235.google.com [IPv6:2607:f8b0:4003:c06::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 E1198132192 for <quic@ietf.org>; Mon, 4 Sep 2017 16:55:51 -0700 (PDT)
Received: by mail-oi0-x235.google.com with SMTP id h70so13541229oic.1 for <quic@ietf.org>; Mon, 04 Sep 2017 16:55:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=77YmVEVmpWgYaqTzTmBgTIgswNB5ZMBoA4eoKI0FEeo=; b=CCeEZ3US8hRbzI+zo1twIWZFwfxUeOR2ODa9vgJTCBbsSj/Xx/qH/+g7om1bo8o53P PbUmuuXf8PP6DeqAFAvoiivgyzH+sV9BjUEkZ+q3AxAYYgJGpg5QGVP8018RXr1E1wYg prmSxDD9wfoHANAb4RbWOLl0VeuYcxi4qz2DHFL1AMAkvsgMrH0qAdH4a9MxYWwPJn1x bFH2Lv2XP3fEN/FNWBHLfltRuTSC+UoEQAV7g6xY0b1MyV2fTsjfdCh8VIYbxuhz/QBu 4ewXC0M3r4KcGx93Z0wcPJD0bMjiOCUrp6qZBVegQ6V3C8i80/uQ6mwbFGqY34lC4aFB XqRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=77YmVEVmpWgYaqTzTmBgTIgswNB5ZMBoA4eoKI0FEeo=; b=DQys1nlk5IbHBc5yYfUobUSIu9VfwxiOvUXxRbtLHFWhwUvgYYbIt5DdyP7wVPe+kq 9tUJlaYEo44MnBpo6nT5AyyJjf5N6Nn7obqRNOKG5QETjvla3ODRGn5YSdWIXJlWhVxy 2AmfvNjH/iz/FjBR2v3OyprlhjXcdlX4Aw/a4MZTjadCugXZNg5G2G9eX4MWsWJnSkpQ 1KuJZgrqjrAlqnvX3EzxowbdEB4RwRuQuvkcoo713sOuoFILtnVKINyQElVPAcNFxMAP u71nsSmcfk/u5JkQFdP6ohoHX18/YYr8T48hoyd6fuuikDMQjM8ag5jXIqYxOceHkpZg E+Aw==
X-Gm-Message-State: AHPjjUgz764pRVj6WFawsubB7eTIPNliagADFzGPtCVbMg7x9nSX0qnW KPZa/7TLw31wzQaGWNHMtIjtq3VRSBYF
X-Google-Smtp-Source: ADKCNb5XmnrCOgWKaeHdxwsCH1SMkpa2vQ7FaKwneS4XUljE8oXBIbyEhwaZfxPxyml/IAZuKtAbBPA3MdPl807kPlA=
X-Received: by 10.202.87.213 with SMTP id l204mr2015003oib.38.1504569351171; Mon, 04 Sep 2017 16:55:51 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.157.14.77 with HTTP; Mon, 4 Sep 2017 16:55:50 -0700 (PDT)
In-Reply-To: <76d443bc-3e05-b91c-2d82-4b42a2e39f67@huitema.net>
References: <CABkgnnWwGAyHzkST9o9ueVmBw3_TpJun=dv2X+HL2snXSZJgew@mail.gmail.com> <76d443bc-3e05-b91c-2d82-4b42a2e39f67@huitema.net>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Tue, 05 Sep 2017 09:55:50 +1000
Message-ID: <CABkgnnXX9xDa-TKCoEQUVb6n7DYXrUhPAPDc-SH4h0_OSXV0zg@mail.gmail.com>
Subject: Re: Split error codes in two
To: Christian Huitema <huitema@huitema.net>
Cc: QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/3-hwYXVKwbgUp5Xbu9Wj34m1rEA>
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: Mon, 04 Sep 2017 23:55:54 -0000

On Tue, Sep 5, 2017 at 6:03 AM, Christian Huitema <huitema@huitema.net> wrote:
> On 9/3/2017 9:55 PM, Martin Thomson wrote:
>> In doing this, I realized two further things:
>>
>> 1. STOP_SENDING is a purely application-layer construct, but it's a
>> transport-layer frame.  That makes it much harder to manage with this
>> change.  Moving it to HTTP makes a lot of sense (to me).
>>
>>    https://github.com/quicwg/base-drafts/pull/759
>
> Arguably, MAX STREAM DATA is also an application-layer construct. If an
> application does not want to receive more bytes on a stream, it could
> stop increasing that counter. That would have more or less the same
> effect as STOP SENDING, in a passive aggressive way...

MAX_STREAM_DATA definitely has to be visible to the transport.  But
having STOP_SENDING visible is actually more of a hazard than a help.
If the transport cancels a stream, then it might destroy application
state.

>> 2. We are now nudging 20 error codes (plus the per-frame-type ones).
>> 4 billion might be a little more space than we need, so halving the
>> number of bits with give error cords seems reasonable:
>>
>>    https://github.com/quicwg/base-drafts/pull/723
> Is that really a priority? I mean, we probably do not really need to
> save 2 bytes in error messages.

No, it's not a priority, but it was easy to do.  And I can't see any
way that 4 billion helps us.

> And then, how do we deal with extensions? Suppose that I define an
> experimental version of the protocol that brings both new functionality
> and new error codes. What number range shall I use for these extended
> error codes?

We've a fair bit of experience with that.  Provided that we don't put
an insane policy on the registry, new values are easy to acquire.  I
prefer the "provisional registration" approach, but we also have the
policy TLS uses, and there is the option of a free-for-all chunk.
None of that requires 4 billion codes.