Re: Splitting transport and application error code spaces

Mark Nottingham <mnot@mnot.net> Fri, 11 August 2017 19:39 UTC

Return-Path: <mnot@mnot.net>
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 0674A132350 for <quic@ietfa.amsl.com>; Fri, 11 Aug 2017 12:39:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level:
X-Spam-Status: No, score=-2.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, 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=mnot.net header.b=q/uXJJdw; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=EesZgZt4
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 apEadsXdHHVe for <quic@ietfa.amsl.com>; Fri, 11 Aug 2017 12:39:24 -0700 (PDT)
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C49181320B5 for <quic@ietf.org>; Fri, 11 Aug 2017 12:39:23 -0700 (PDT)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 7D47D20B7F; Fri, 11 Aug 2017 15:39:22 -0400 (EDT)
Received: from frontend1 ([10.202.2.160]) by compute3.internal (MEProxy); Fri, 11 Aug 2017 15:39:22 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mnot.net; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=sgd7hpKqOiEsyLwevT INzli8Df/LYqlWCdKQjOwRFBU=; b=q/uXJJdwwgXhDixFOowsveX5DIafkCdI4j uj6P/iMCrCGPa2skMd97VDhIIqumCZdHG0M4CYdrWXfBTHCsAgmbCAKBQCInzzae i9sSqOWHi4Gi7OJLZmhW+hkSQZY92EiC7TVmGwM5jk/m6SRLQxpLZDdzj3UZfPWq pcCsk4L2bIh9K/iQAUvOlZN+6NnTDlZsFR2Q3mB5+BiBKxeNzDf/TcIV1MCGQt99 zRyAOJM8BJM1HSWCtxCgoVrX3Xg51CKUdxQkVfFKP/QIhOFIMH6zJ36H2rA+jNvR F4S0VJLDegt8Mf3WwHs0fdo0O10j6/ddclWAL+0NB6JvQj4w7zVA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s= fm1; bh=sgd7hpKqOiEsyLwevTINzli8Df/LYqlWCdKQjOwRFBU=; b=EesZgZt4 HTyD0PlQPUaBHyZDzxeUo0oezH7RW8ysefK5YP8G6vCzozgGr4biD+iPTc6FTQ8c ifq2gNQdDuPFrvdT89KdUuCb4BYRMkSIu+jxAfCzNW9JTsEWfD9vkt847WYO4Cql bIlon69COXPnTl09UJYg0NwJmoncrJv20TmsmIzjRQWKN5XBf3q7kc1bVlM3A8VC JxLcoPH+OV+qxwRaRSfikdyB5Ilzi0EnxayR+XRqMxKIp8JfJuXTZ7ut/6dTc7++ bUQ2RU0fMDApTMvF1k8hcshWCBkS4S7WXr/Xbyok/9Fe55AIXXRpwgo/yZNFTslo SLLCUKz50VbCyA==
X-ME-Sender: <xms:6geOWYaAjzk2Dz0XWRwCzu6cTWi4YYqqcF3dAQJwHgz_n4Sde6TtFA>
X-Sasl-enc: fdB6zV5DGSk4RhDI50gMteBOtzvjw/WiaQYx17c6d1Ah 1502480362
Received: from [10.100.20.227] (unknown [8.18.217.202]) by mail.messagingengine.com (Postfix) with ESMTPA id 045727F9A9; Fri, 11 Aug 2017 15:39:21 -0400 (EDT)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: Splitting transport and application error code spaces
From: Mark Nottingham <mnot@mnot.net>
In-Reply-To: <CABkgnnXcjaqXeRLq=+W98HnubFSEy_DWB7PbaK8GEDUK+Wvetg@mail.gmail.com>
Date: Fri, 11 Aug 2017 12:39:21 -0700
Cc: QUIC WG <quic@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <B687A8B3-D82A-42D7-9F3F-2C853822D558@mnot.net>
References: <CABkgnnXcjaqXeRLq=+W98HnubFSEy_DWB7PbaK8GEDUK+Wvetg@mail.gmail.com>
To: Martin Thomson <martin.thomson@gmail.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/UHxBXII-_KY0IjyJ1QFh0qx8vCg>
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: Fri, 11 Aug 2017 19:39:27 -0000

Personally -- I'm +1 on this. Having a clear distinction is best.


> On 10 Aug 2017, at 10:40 pm, Martin Thomson <martin.thomson@gmail.com> wrote:
> 
> A while back we decided to use a single error code space.  But in
> https://github.com/quicwg/base-drafts/issues/485, I noticed that we
> have an implicit requirement in the protocol not to have the transport
> close streams.  If the transport resets streams, it could destroy
> critical application state.
> 
> The neatest way to enforce the separation of application and transport
> is to create an application error space:
> 
>  https://github.com/quicwg/base-drafts/pull/722
> 
> This splits the error codes for application protocols from the
> transport codes.  To do this, it splits CONNECTION_CLOSE into
> TRANSPORT_CLOSE and APPLICATION_CLOSE.  These two frames have
> identical format and semantics, but use different error code spaces.
> RST_STREAM and STOP_SENDING now only carry application error codes,
> making it clear that resetting streams is the domain of the
> application protocol.
> 
> In doing this, I noticed that the error code space is ludicrously
> large.  So I have a companion PR that shrinks it to a much more
> manageable 16 bits:
> 
>  https://github.com/quicwg/base-drafts/pull/723
> 

--
Mark Nottingham   https://www.mnot.net/