Splitting transport and application error code spaces
Martin Thomson <martin.thomson@gmail.com> Fri, 11 August 2017 05:40 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 3DC2C132487 for <quic@ietfa.amsl.com>; Thu, 10 Aug 2017 22:40:12 -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 2EshufBTTxIA for <quic@ietfa.amsl.com>; Thu, 10 Aug 2017 22:40:10 -0700 (PDT)
Received: from mail-io0-x22b.google.com (mail-io0-x22b.google.com [IPv6:2607:f8b0:4001:c06::22b]) (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 059421324AA for <quic@ietf.org>; Thu, 10 Aug 2017 22:40:10 -0700 (PDT)
Received: by mail-io0-x22b.google.com with SMTP id c74so16671417iod.4 for <quic@ietf.org>; Thu, 10 Aug 2017 22:40:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=eLHuLUsWDHy6Tuk3yHWpwsg0QwhDeq+muSXlPoch3gI=; b=Tpy+P+mH0eySqEsUKJHunQdKlHBEaxRaqZ5/eZFa7GItCh2hje4K6qyhtdsTFdHmcG N67idd0I4M2BCimeh1RD9UMokqnmjZrJquPaN6Z+dj0CAbxFZNrcf5DnCUgFC6I9nHDD A3oOEAlus5+mcivm2mUpOW6itI9k1DlEpFAWpwS+wy3duqDp5a+GpV1+yj1gA2PPebKO 180Kzvig0fkarzytDJdqMEpR6BsQuJ2u3BfWDSTXOG+CXfs0X3j+ZtPggKEvAdwemQe2 Y8WgCARu7JIHNFSsUSIjzyaLL3pQPjJYn/QZaC151p7vulSy5cOBaGeZKAuvettuaNK1 fjvQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=eLHuLUsWDHy6Tuk3yHWpwsg0QwhDeq+muSXlPoch3gI=; b=pSnAFpcCYwJ11vy36T7hfmbhLkKbB1xJNKdHkw/NAnIQGVFHSj4AtwHBTjMPJwj1+B hdusHAkuswkS/CMvJEph0a1QQOQm/fKhtq8mg/FG3P6R71rfD1+dVbc82bVq6fduUy5J 0U/5GkVAzVhXRJfClA882uk1YvEQkbqu23LJj8NP8SFTckN5j9FQuv6DJmZX85U68eD7 v7SoELb/G/VTy8XYAaMFtg3/E505u4ffHmwBi0RmEcAMnnrlb16XX1bBmYDzpUhFUgsC npR8TXCn8nR+uM3hm01Gl/1+tjD5I0MA4yIG3CiIu1tONYsrYrKJgvg/XMoy6hvAMvGC 1IQQ==
X-Gm-Message-State: AHYfb5jxYta5uLW0uOx1uYI4wPsfyE6eArpPCeJKOYrtiMi2Mho7nymW lxjZTBmwJpOhnifRqFTqiBmvemJtP9CnGB8=
X-Received: by 10.107.137.30 with SMTP id l30mr13068649iod.279.1502430009203; Thu, 10 Aug 2017 22:40:09 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.164.42 with HTTP; Thu, 10 Aug 2017 22:40:08 -0700 (PDT)
From: Martin Thomson <martin.thomson@gmail.com>
Date: Fri, 11 Aug 2017 15:40:08 +1000
Message-ID: <CABkgnnXcjaqXeRLq=+W98HnubFSEy_DWB7PbaK8GEDUK+Wvetg@mail.gmail.com>
Subject: Splitting transport and application error code spaces
To: QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/9PiAHSsZC1urXQZZpvxSJmrgap8>
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 05:40:12 -0000
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
- Splitting transport and application error code sp… Martin Thomson
- RE: Splitting transport and application error cod… Mike Bishop
- Re: Splitting transport and application error cod… Mark Nottingham
- Re: Splitting transport and application error cod… Martin Thomson
- Re: Splitting transport and application error cod… Jana Iyengar
- Re: Splitting transport and application error cod… Martin Thomson
- RE: Splitting transport and application error cod… Mike Bishop
- Re: Splitting transport and application error cod… Jana Iyengar
- Re: Splitting transport and application error cod… Mikkel Fahnøe Jørgensen
- Re: Splitting transport and application error cod… Martin Thomson
- RE: Splitting transport and application error cod… Lubashev, Igor
- RE: Splitting transport and application error cod… Mikkel Fahnøe Jørgensen
- Re: Splitting transport and application error cod… Mirja Kühlewind