RE: Split error codes in two

"Lubashev, Igor" <ilubashe@akamai.com> Wed, 06 September 2017 18:59 UTC

Return-Path: <ilubashe@akamai.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 546751200F3 for <quic@ietfa.amsl.com>; Wed, 6 Sep 2017 11:59:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.021
X-Spam-Level:
X-Spam-Status: No, score=-2.021 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_NONE=-0.0001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=akamai.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 0PYSB3_DKXai for <quic@ietfa.amsl.com>; Wed, 6 Sep 2017 11:59:26 -0700 (PDT)
Received: from mx0b-00190b01.pphosted.com (mx0b-00190b01.pphosted.com [67.231.157.127]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9141912008A for <quic@ietf.org>; Wed, 6 Sep 2017 11:59:26 -0700 (PDT)
Received: from pps.filterd (m0122331.ppops.net [127.0.0.1]) by m0122331.ppops.net-00190b01. (8.16.0.21/8.16.0.21) with SMTP id v86Iv1mr022909; Wed, 6 Sep 2017 19:59:20 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akamai.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=jan2016.eng; bh=dzrX3b6e5zeHrpzgns/Wen3ySFpqQHeh2CBvKIEHTIQ=; b=Egf6Yyu/kEsWuJSNWDcxoGfjyl0xbhRy+8LMH3rRRpUV7nOIRHzNEiYkcIEN8xL4ZgCi aGLEj/nH+n+okPeCDL8jT5MNFYYs7lY6XcH1e19jSV1AwFil9US3NZy+rbBriFeJn+Pm WsGfKox7UKXx0p+GKfd7SKYZXR5wtxOyhGrSzUFc0tc8mwHbxbA1sEsS6n39/2P1TpIv vl7HkvNsImbQOSZXeP3YMdck/L74H5WAsovHg2/5f+dqJwej/tX+0+dm22BeutwHUXHG eNdc+fV6LgS7iN36gRWJtIRaq9qWsy4QtgikLIIfRCQ0HGa3T66GnxZQTNbmQmt0XS6Z 4w==
Received: from prod-mail-ppoint2 (prod-mail-ppoint2.akamai.com [184.51.33.19]) by mx0b-00190b01.pphosted.com with ESMTP id 2cqhgrpaa8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 06 Sep 2017 19:59:20 +0100
Received: from pps.filterd (prod-mail-ppoint2.akamai.com [127.0.0.1]) by prod-mail-ppoint2.akamai.com (8.16.0.17/8.16.0.17) with SMTP id v86ItWuM018494; Wed, 6 Sep 2017 14:59:19 -0400
Received: from email.msg.corp.akamai.com ([172.27.25.34]) by prod-mail-ppoint2.akamai.com with ESMTP id 2cqqyv2jcs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 06 Sep 2017 14:59:19 -0400
Received: from USTX2EX-DAG1MB5.msg.corp.akamai.com (172.27.27.105) by ustx2ex-dag1mb3.msg.corp.akamai.com (172.27.27.103) with Microsoft SMTP Server (TLS) id 15.0.1263.5; Wed, 6 Sep 2017 13:59:18 -0500
Received: from USTX2EX-DAG1MB5.msg.corp.akamai.com ([172.27.27.105]) by ustx2ex-dag1mb5.msg.corp.akamai.com ([172.27.27.105]) with mapi id 15.00.1263.000; Wed, 6 Sep 2017 13:59:18 -0500
From: "Lubashev, Igor" <ilubashe@akamai.com>
To: Mike Bishop <Michael.Bishop@microsoft.com>, "Philipp S. Tiesel" <phils@in-panik.de>, Jana Iyengar <jri@google.com>
CC: Victor Vasiliev <vasilvv@google.com>, QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>, Nick Harper <nharper@google.com>
Subject: RE: Split error codes in two
Thread-Topic: Split error codes in two
Thread-Index: AQHTJTn9U7CZmvfU3U+AKlwSnR9wwKKmV3WAgAASqICAAAONAIAA0yCAgAAOnACAAAMMAIAAAK4AgACXxwCAAJELAP//rYYQ
Date: Wed, 06 Sep 2017 18:59:17 +0000
Message-ID: <08d7699108f94b4680579ce8bfcdea14@ustx2ex-dag1mb5.msg.corp.akamai.com>
References: <CABkgnnWwGAyHzkST9o9ueVmBw3_TpJun=dv2X+HL2snXSZJgew@mail.gmail.com> <CAAZdMafBWFWtC7A60P1CMm_6nUnbW+_Tx_7re1bAo7Vx2kLdcA@mail.gmail.com> <CABkgnnWphw3k=f3==2y3AhexQCj9Py50SLSEH06nN3MN0SCerQ@mail.gmail.com> <CAAZdMacHC1HKhXMR4G9CKUOmYyQMsQBab+tampP-PG6n_jJZoA@mail.gmail.com> <CACdeXiLS7W8cJbnT=orHkcd9reH=8QqhOzxWnUEpWZmfcdvd2g@mail.gmail.com> <CAGD1bZa-h0ZVh7kUYQtG3r93eH6TqRXnQ6YXAcscCrCQHk8LeA@mail.gmail.com> <CABkgnnXMFUP_c+2r6YeJouJXanHd8tFcqDKgU=C9UF0stPcXOw@mail.gmail.com> <CAGD1bZZZG9L0_d7Tmo8vfdAx+=LU+yi97N42vKFGo82K16Zycw@mail.gmail.com> <05505C10-8737-4C58-BC91-E401D2659AF0@in-panik.de> <MWHPR21MB0141F305CCE2B686F09549F887970@MWHPR21MB0141.namprd21.prod.outlook.com>
In-Reply-To: <MWHPR21MB0141F305CCE2B686F09549F887970@MWHPR21MB0141.namprd21.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [172.19.33.69]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-09-06_06:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1709060269
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-09-06_06:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1709060270
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/-mEyzf_netw7nT-HL2tw9AO3Tys>
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: Wed, 06 Sep 2017 18:59:28 -0000

Whether STOP_SENDING is in transport is a matter of picking the guiding principle for what one would consider putting in transport vs application.  Some of the alternatives for the "guiding principle" are:
* "Is likely to be used by many apps?"
* "Will it likely perform better in transport?"
 * "Is it a 'cleaner' design due to all sorts of symmetries?"

I think that STOP_SENDING "may perform better in transport" due to the rule of thumb that "stop" signals should take priority over "ordinary" data.  I.e. having it as a part of an application protocol has a risk that STOP_SENDING would be blocked by flow control, HOL blocking, transport/app interface, etc.  The "symmetry" argument, however, does put STOP_SENDING in the application, since RST_STREAM is never initiated by transport otherwise.  And I have little intuition as far as "use by many apps" is concerned.
 

-----Original Message-----
From: Mike Bishop [mailto:Michael.Bishop@microsoft.com] 
Sent: Wednesday, September 06, 2017 1:55 PM
To: Philipp S. Tiesel <phils@in-panik.de>; Jana Iyengar <jri@google.com>
Cc: Victor Vasiliev <vasilvv@google.com>; QUIC WG <quic@ietf.org>; Martin Thomson <martin.thomson@gmail.com>; Nick Harper <nharper@google.com>
Subject: RE: Split error codes in two

What transport-level single-stream errors are there which shouldn't kill the connection?  The only ones I can think of are flow control violations and max-stream-ID violations.  Perhaps "frame for stream in wrong state," though you have to be somewhat gracious about that one given reordering.  I think I'm okay with making those fatal.

I'm less convinced that STOP_SENDING is HTTP-specific.  To my mind, it's the wire expression of a read_close(), just as RST_STREAM is the wire expression of a write_close().  If we'd gone the advisory route, it would be an HTTP-ism.  (Or at least, the mandated behavior would be at the HTTP layer.)  However, if we think other applications aren't ever going to want to close a read stream....

-----Original Message-----
From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Philipp S. Tiesel
Sent: Wednesday, September 6, 2017 2:16 AM
To: Jana Iyengar <jri@google.com>
Cc: Victor Vasiliev <vasilvv@google.com>; QUIC WG <quic@ietf.org>; Martin Thomson <martin.thomson@gmail.com>; Nick Harper <nharper@google.com>
Subject: Re: Split error codes in two


> On 6. Sep 2017, at 03:12, Jana Iyengar <jri@google.com> wrote:
> On Tue, Sep 5, 2017 at 6:10 PM, Martin Thomson <martin.thomson@gmail.com> wrote:
> On Wed, Sep 6, 2017 at 10:59 AM, Jana Iyengar <jri@google.com> wrote:
>>> In the current draft, we've already changed that requirement: the 
>>> application is expected to generate a RST_STREAM in response to a 
>>> received RST_STREAM.
>>> 
>> That text was removed with the addition of STOP_SENDING.  (Or at 
>> least I couldn't find it).  I think that's the right answer, because 
>> this will be entirely discretionary on the part of applications.
>> 
> Yup, I was just pointing out the reasons that we don't need RST_STREAM to be a transport directive.

RST_STREAM is also referenced in the "Stream Errors” section and still makes sense for transport errors only effecting a single stream

Removing RST_STREAM also means making all errors effecting just a single stream connection errors leading to teardown of the whole connection.

AVE!
  Philipp S. Tiesel / phils…