RE: Unidirectional streams PR

"Lubashev, Igor" <ilubashe@akamai.com> Fri, 23 June 2017 21: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 507E5129456 for <quic@ietfa.amsl.com>; Fri, 23 Jun 2017 14:59:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 gvIBE3dCoOxe for <quic@ietfa.amsl.com>; Fri, 23 Jun 2017 14:59:37 -0700 (PDT)
Received: from mx0b-00190b01.pphosted.com (mx0b-00190b01.pphosted.com [IPv6:2620:100:9005:57f::1]) (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 C82AB127866 for <quic@ietf.org>; Fri, 23 Jun 2017 14:59:37 -0700 (PDT)
Received: from pps.filterd (m0050102.ppops.net [127.0.0.1]) by m0050102.ppops.net-00190b01. (8.16.0.21/8.16.0.21) with SMTP id v5NLvoQh014938; Fri, 23 Jun 2017 22:59:32 +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 : mime-version; s=jan2016.eng; bh=30h5qde5GaUzNj1y6qc5M5SUUjFFtBB7hnOcy5g171E=; b=KTGjUKz346QFeqIQIcsO3ZDS77kudZtQaZtysoNJpoyBHvGicF8AyRXCc2soIGg0otzE uFVFG96zKvwdfTY4Nf61ubfwUhfOkEb4ImLWt5IWolTi9oCUBdx47Ko8sMIqGIGvBJ4c 0FVXTEsPdeb6dAx2cytk2vuCTqRcNR3lQ3mTTjcFMGOFFT8WEng6fU4fHyTzfGV9nBHd GRRWK/P6W5BFD05qNp9SmAWAUTX0m2DQ+ToGvzhm8cvMIi+G0jMk+95xu4ubwOtl4qed yEJbHk/SYHRvwsmA0+GxcwuspbB/SKg+N13sSlluwIxbrfkzzZRQ8rX0A8hed2XJY1dn 9g==
Received: from prod-mail-ppoint3 ([96.6.114.86]) by m0050102.ppops.net-00190b01. with ESMTP id 2b934payu5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 23 Jun 2017 22:59:32 +0100
Received: from pps.filterd (prod-mail-ppoint3.akamai.com [127.0.0.1]) by prod-mail-ppoint3.akamai.com (8.16.0.17/8.16.0.17) with SMTP id v5NLtrAf027937; Fri, 23 Jun 2017 17:59:31 -0400
Received: from email.msg.corp.akamai.com ([172.27.25.31]) by prod-mail-ppoint3.akamai.com with ESMTP id 2b4yrvht8w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 23 Jun 2017 17:59:31 -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; Fri, 23 Jun 2017 16:59:30 -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; Fri, 23 Jun 2017 16:59:30 -0500
From: "Lubashev, Igor" <ilubashe@akamai.com>
To: Ian Swett <ianswett@google.com>
CC: Mike Bishop <Michael.Bishop@microsoft.com>, Ted Hardie <ted.ietf@gmail.com>, Patrick McManus <pmcmanus@mozilla.com>, Jana Iyengar <jri@google.com>, QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>
Subject: RE: Unidirectional streams PR
Thread-Topic: Unidirectional streams PR
Thread-Index: AQHS6mHzFJcNmOfPnkGlJjRXQ/9soKIvh8kAgADqdYCAACIYgIABI/8AgAAEzYCAAARGgP//0FFwgABb0AD//76RwIAATcWA//+9o9AABjP0UAAndIaAAAUEE0A=
Date: Fri, 23 Jun 2017 21:59:30 +0000
Message-ID: <a57866b6ed094c12b54eda4ecf57ff3c@ustx2ex-dag1mb5.msg.corp.akamai.com>
References: <CABkgnnW+veDVq27v+wTz0cA=eGPRTLQ1A90A0ynHLPU88Pg77Q@mail.gmail.com> <CAOdDvNpORYBr7+Q8M_nnGOm4MsWqVbm6koOtQ+=An8t7AbccGg@mail.gmail.com> <CAGD1bZb9Na32z=Gg9JS+FzrGGN9Jhw=QDTMTYS=FVcNesoSMig@mail.gmail.com> <CABkgnnV2yPP-qgLKZYPsvawXc7FP4RM7CZDDa7aFaNy0KxLfag@mail.gmail.com> <CA+9kkMCF+wUPA452gYgdG65Y4zNctzGWd4HtZ2Ge70=S9k-_Qw@mail.gmail.com> <CABkgnnU6H+2AeY0n7-d+k0baM7UJ6fuN4PX7ez+KRN17eFg6Yg@mail.gmail.com> <MWHPR21MB0141A7116859D7955C92CC0987DB0@MWHPR21MB0141.namprd21.prod.outlook.com> <349d20e4f7d9458aaf7797d2025b2064@usma1ex-dag1mb5.msg.corp.akamai.com> <CAGD1bZbX1gTOh=LpQqLre8qgfB91=JrTCpYExzWMuBPo=V5_eA@mail.gmail.com> <9bf0712b00e540eeafdd3e6f357c2845@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gMNc6ELTHdfjeoxwUiP-t+gAxduk3ZJ+6gw_=g4s_MLCA@mail.gmail.com> <2260e852b904465a9f8c9488e7e76166@usma1ex-dag1mb5.msg.corp.akamai.com> <33a1a7ffdfe74bd5ae30266b6b4ebe35@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gPB24GNtqmKHEh6DiOdCKYeVCYGjTPhdREsqEirqWz7QA@mail.gmail.com>
In-Reply-To: <CAKcm_gPB24GNtqmKHEh6DiOdCKYeVCYGjTPhdREsqEirqWz7QA@mail.gmail.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.241]
Content-Type: multipart/alternative; boundary="_000_a57866b6ed094c12b54eda4ecf57ff3custx2exdag1mb5msgcorpak_"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-06-23_13:, , 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-1703280000 definitions=main-1706230372
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-06-23_13:, , 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=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1706230373
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/dqJ25GZjRXye3_TzV8wsbv2dYdI>
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, 23 Jun 2017 21:59:40 -0000

Yes, getting rid of implicitly open streams can work.  To get rid of “implicit” state entirely with your design, you would need to keep UNI bit on all packets.  Otherwise, reordering of the initial STREAM and a subsequent STREAM would require the receiver to enter “implicit” state for the stream (stream is no longer idle, but one cannot assume it is bidirectional).




From: Ian Swett [mailto:ianswett@google.com]
Sent: Friday, June 23, 2017 4:00 PM
To: Lubashev, Igor <ilubashe@akamai.com>
Cc: Mike Bishop <Michael.Bishop@microsoft.com>; Ted Hardie <ted.ietf@gmail.com>; Patrick McManus <pmcmanus@mozilla.com>; Jana Iyengar <jri@google.com>; QUIC WG <quic@ietf.org>; Martin Thomson <martin.thomson@gmail.com>
Subject: Re: Unidirectional streams PR

Igor,

In terms of the extra state, I believe EKR's right that this either creates a need to change some text or add another state, which I hadn't anticipated, but also isn't the end of the world.  However, Buck Krasic pointed out we can now get rid of implicitly opened streams, because we've transitioned from stream limits to max stream ID, which fixes this problem in a simple way.  See issue #662<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_quicwg_base-2Ddrafts_issues_662&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=Djn3bQ5uNJDPM_2skfL3rW1tzcIxyjUZdn_m55KPmlo&m=gv2nW8KsHS6Lu2KcNFaw91ojaVQERu816iviQ20Vwkc&s=6kSCQxFc0DF2n1FyODQcprN8J8KATca2FHRLEm02adc&e=>.

I attempted to add text to specify that if a STREAM frame specifies UNI on one packet, it must do so on all of them, but the text wasn't written correctly, so I'll fix that in the PR.  I did consider whether to mark all STREAM frames or only the first.  In the end, I proposed to mark all of them because it's more resilient to reordering and it's easy to document and understand.  I'm certainly open to other framings.





On Fri, Jun 23, 2017 at 1:31 AM, Lubashev, Igor <ilubashe@akamai.com<mailto:ilubashe@akamai.com>> wrote:
Ian, I am not in love with a possibility of having UNI flag clear on some initial STREAM frames and then UNI set on subsequent STREAM frames.  The PR does not prohibit this.  I read the PR (state diagram) to require the stream to go immediately into “half-closed (local)” state on receipt of such STREAM+UNI frame.  This is a problem, since some packets from the receiver to the sender could be in flight, and absent a STREAM+FIN or RST_STREAM from the receiver, the sender cannot do flow control accounting.

It seems best if a stream is UNI or BI from birth, and that’s indicated by the initial STREAM frame only.  If STREAM frames get reordered, until the receiver receives the initial STREAM frame (Offset=0), it should consider the stream to be in “implicit” state (do accounting for max stream count and flow control but cannot send data to it).