Re: [quicwg/base-drafts] Independent states and DISINTEREST (#171)
Martin Thomson <notifications@github.com> Fri, 10 March 2017 03:37 UTC
Return-Path: <bounces+848413-a050-quic-issues=ietf.org@sgmail.github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DFE4C129406 for <quic-issues@ietfa.amsl.com>; Thu, 9 Mar 2017 19:37:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.002
X-Spam-Level:
X-Spam-Status: No, score=-2.002 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, RCVD_IN_MSPIKE_H2=-0.001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.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 c9yL1KIpHkwW for <quic-issues@ietfa.amsl.com>; Thu, 9 Mar 2017 19:37:35 -0800 (PST)
Received: from o4.sgmail.github.com (o4.sgmail.github.com [192.254.112.99]) (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 4D129120727 for <quic-issues@ietf.org>; Thu, 9 Mar 2017 19:37:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=github.com; h=from:reply-to:to:cc:in-reply-to:references:subject:mime-version:content-type:content-transfer-encoding:list-id:list-archive:list-post:list-unsubscribe; s=s20150108; bh=Q5Kxb91ybDm++cksmHTkH/6Yojk=; b=hbN2+629AZOq3SO2 xrH5SbLbRidfxYncXsrVc+eIGLyTJBjUqqScJHHXs4RLqnSl1wHeSCpe8dU7b0VE C4r+ZqSxrGMh93XlhUIPQY2qw7gKbBhuUOPHd6typ/ymUeda4FWF2F8gCnYPyzhc YPJk0zAflbOkFg6GiZghiMD+aqQ=
Received: by filter1111p1mdw1.sendgrid.net with SMTP id filter1111p1mdw1-24661-58C21F7E-19 2017-03-10 03:37:34.603032687 +0000 UTC
Received: from github-smtp2b-ext-cp1-prd.iad.github.net (github-smtp2b-ext-cp1-prd.iad.github.net [192.30.253.17]) by ismtpd0002p1iad1.sendgrid.net (SG) with ESMTP id 4MtHfrFgTo6uS1fHWwjcpA for <quic-issues@ietf.org>; Fri, 10 Mar 2017 03:37:34.468 +0000 (UTC)
Date: Thu, 09 Mar 2017 19:37:34 -0800
From: Martin Thomson <notifications@github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/171/review/25960065@github.com>
In-Reply-To: <quicwg/base-drafts/pull/171@github.com>
References: <quicwg/base-drafts/pull/171@github.com>
Subject: Re: [quicwg/base-drafts] Independent states and DISINTEREST (#171)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_58c21f7e5770c_39ae3fe68ad6bc34144645"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinthomson
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
X-SG-EID: l64QuQ2uJCcEyUykJbxN122A6QRmEpucztpreh3Pak09nhWVyckGRMEgo0YGU6YgMdICuCe7xSUwg0 Bim0BZ1e4nbwDMpvjvkyGWw3ZuTL3C2lw6ameBg1ajOzMto/XyB0CKnTzSEVJ5CXpXL3S3JdPoT2sO TrqnYrmViyjjU59T4ezHBztRX8BhzT/WcEwoZJXas4o21khn3/jTV4pVA8yz00qBDepAVktVFn3KAY M=
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/SMxXcjuLdudN53ozARNcFRCGPOk>
Cc: Subscribed <subscribed@noreply.github.com>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.17
Reply-To: quic@ietf.org
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 10 Mar 2017 03:37:37 -0000
martinthomson commented on this pull request.
I'm making these comments on the assumption of choosing option 1. There's a lot more to do if option 3 is chosen, particularly around the stream state machine.
> @@ -1599,6 +1601,32 @@ Final offset:
data written on this stream by the RST_STREAM sender.
+
+
+## DISINTEREST Frame {#frame-disinterest}
+
+An endpoint may use a DISINTEREST frame (type=0x08) to communicate that incoming
+data is being discarded on receipt at application request. This signals a peer
+to abruptly terminate transmission on a stream. The frame is as follows:
+
+~~~
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+| Error Code (32) |
I don't think that we need an error code here. If we do, and there are semantics attached to that code, then that's an argument to move this to the application protocol, where the semantics can gain context.
> @@ -2018,7 +2047,26 @@ implementations SHOULD treat the receipt of a frame that is not expressly
permitted in the description of a state as a connection error
({{error-handling}}). Frames of unknown types are ignored.
-(TODO: QUIC_STREAM_NO_ERROR is a special case. Write it up.)
+
+## Solicited State Transitions
+
+If an endpoint is no longer interested in the data being received, it MAY send a
+DISINTEREST frame on a stream in the "open" or "half-closed (local)" state to
+request closure of the stream in the opposite direction. This typically
+indicates that the receiving application is no longer reading from the stream
+and all future data will be discarded upon receipt.
... "However, it doesn't imply a guarantee that the receiver will discard data, the sender still needs to either reset the stream or complete its transmission of data."
> +If an endpoint is no longer interested in the data being received, it MAY send a
+DISINTEREST frame on a stream in the "open" or "half-closed (local)" state to
+request closure of the stream in the opposite direction. This typically
+indicates that the receiving application is no longer reading from the stream
+and all future data will be discarded upon receipt.
+
+STREAM frames received after sending DISINTEREST are still counted toward the
+connection and stream flow-control windows. Even though these frames will be
+discarded, because they are sent before their sender receives the DISINTEREST,
+the sender will consider the frames to count against its flow-control windows.
+
+Upon receipt of a DISINTEREST frame, an endpoint SHOULD send a RST_STREAM with
+an error code of QUIC_RECEIVED_RST. If the DISINTEREST frame is received on a
+stream that is already in the "half-closed (local)" or "closed" states, a
+RST_STREAM frame SHOULD still be sent and retransmission of previously-sent
+STREAM frames SHOULD be cancelled.
We gots to get us some MUST here. This isn't squishy. The only real exemption to needing a RST_STREAM here is if the stream is long done. If the sender is still (re)transmitting anything, then it needs to either finish that or move over to (re)transmitting a RST_STREAM. Otherwise we have a wrinkle on the state machine and I don't want that, even if it could save a RST_STREAM.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/171#pullrequestreview-25960065
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Martin Thomson
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Martin Thomson
- Re: [quicwg/base-drafts] Independent states and D… Martin Thomson
- Re: [quicwg/base-drafts] Independent states and D… Martin Thomson
- [quicwg/base-drafts] First pass at REQUEST_RST (#… Mike Bishop
- Re: [quicwg/base-drafts] First pass at REQUEST_RS… Mike Bishop
- Re: [quicwg/base-drafts] First pass at REQUEST_RS… Martin Thomson
- Re: [quicwg/base-drafts] First pass at REQUEST_RS… Mike Bishop
- Re: [quicwg/base-drafts] First pass at REQUEST_RS… Mike Bishop
- Re: [quicwg/base-drafts] First pass at REQUEST_RS… Mike Bishop
- Re: [quicwg/base-drafts] First pass at REQUEST_RS… Mike Bishop
- Re: [quicwg/base-drafts] First pass at REQUEST_RS… Mike Bishop
- Re: [quicwg/base-drafts] First pass at REQUEST_RS… Mike Bishop
- Re: [quicwg/base-drafts] First pass at REQUEST_RS… Martin Thomson
- Re: [quicwg/base-drafts] First pass at REQUEST_RS… Martin Thomson
- Re: [quicwg/base-drafts] First pass at REQUEST_RS… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and R… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and R… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and R… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Igor Lubashev
- Re: [quicwg/base-drafts] Independent states and D… Martin Thomson
- Re: [quicwg/base-drafts] Independent states and D… Igor Lubashev
- Re: [quicwg/base-drafts] Independent states and D… Martin Thomson
- Re: [quicwg/base-drafts] Independent states and D… ianswett
- Re: [quicwg/base-drafts] Independent states and D… Igor Lubashev
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Igor Lubashev
- Re: [quicwg/base-drafts] Independent states and D… Martin Thomson
- Re: [quicwg/base-drafts] Independent states and D… Martin Thomson
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Christian Huitema
- Re: [quicwg/base-drafts] Independent states and D… Christian Huitema
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Martin Thomson
- Re: [quicwg/base-drafts] Independent states and D… ianswett
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… ianswett
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and D… ianswett
- Re: [quicwg/base-drafts] Independent states and S… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and S… Martin Thomson
- Re: [quicwg/base-drafts] Independent states and S… Subodh Iyengar
- Re: [quicwg/base-drafts] Independent states and S… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and S… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and S… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and S… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and S… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and S… janaiyengar
- Re: [quicwg/base-drafts] Independent states and S… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and S… Mike Bishop
- Re: [quicwg/base-drafts] Independent states and S… Martin Thomson