Subject: [quicwg/base-drafts] Move STOP_SENDING to HTTP/QUIC (#759)

From: Martin Thomson <[email-masked]>
Date: Sun, 03 Sep 2017 21:50:05 -0700

This is really an application-layer concept because it deals with the
cancellation of streams and the transport should never be doing that.

Closes #758.
You can view, comment on, or merge this pull request online at:

  https://github.com/quicwg/base-drafts/pull/759

-- Commit Summary --

  * Move STOP_SENDING to HTTP/QUIC

-- File Changes --

    M draft-ietf-quic-http.md (51)
    M draft-ietf-quic-transport.md (77)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/759.patch
https://github.com/quicwg/base-drafts/pull/759.diff

-- 
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/759

---

From: Mike Bishop <[email-masked]>
Date: Wed, 06 Sep 2017 18:18:37 +0000 (UTC)

MikeBishop approved this pull request.

I remain dubious of this direction, but the PR itself is fine.

> @@ -389,6 +389,23 @@ HTTP_PUSH_ALREADY_IN_CACHE; see {{errors}}).  This asks the server not to
 transfer the data and indicates that it will be discarded upon receipt.

+## Solicited Stream Cancellation
+
+If an endpoint is no longer interested in the data being received, it MAY send a
+STOP_SENDING frame to request prompt closure of the stream in the opposite
+direction.  This typically indicates that the receiving application is no longer
+reading from the stream, but does not guarantee that incoming data will be
+ignored.
+
+Upon receipt of a STOP_SENDING frame on a stream in the "open" or "half-closed

I wouldn't say "on a stream," since the frame is delivered on the control channel.

> @@ -389,6 +389,23 @@ HTTP_PUSH_ALREADY_IN_CACHE; see {{errors}}).  This asks the server not to
 transfer the data and indicates that it will be discarded upon receipt.

+## Solicited Stream Cancellation
+
+If an endpoint is no longer interested in the data being received, it MAY send a
+STOP_SENDING frame to request prompt closure of the stream in the opposite
+direction.  This typically indicates that the receiving application is no longer
+reading from the stream, but does not guarantee that incoming data will be
+ignored.
+
+Upon receipt of a STOP_SENDING frame on a stream in the "open" or "half-closed
+(remote)" states, an endpoint MUST send a QUIC RST_STREAM frame.  If the
+STOP_SENDING frame is received on a stream that is already in the "half-closed
+(local)" or "closed" states, a RST_STREAM frame MAY still be sent in order to
+cancel retransmission of previously-sent STREAM frames.  Sending a STOP_SENDING

Moving this piece to the HTTP layer adds an implicit new feature to QUIC API surfaces -- the ability to RST a closed 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/759#pullrequestreview-61003633

---

From: Mike Bishop <[email-masked]>
Date: Mon, 11 Sep 2017 19:45:38 +0000 (UTC)

MikeBishop commented on this pull request.

> @@ -841,6 +858,38 @@ A server MUST treat a MAX_PUSH_ID frame payload that is other than 4 octets in
 length as a connection error of type HTTP_MALFORMED_MAX_PUSH_ID.

+## STOP_SENDING Frame {#frame-stop-sending}
+
+An endpoint may use a STOP_SENDING frame (type=0x0E) to communicate that

non-normative "may".  Let's make this either "MAY use" or "uses".

-- 
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/759#pullrequestreview-61933120

---

From: Martin Thomson <[email-masked]>
Date: Tue, 12 Sep 2017 00:30:34 +0000 (UTC)

@martinthomson pushed 1 commit.

d104aa0  Some small amount of rewording

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/759/files/1145e3ea62470c488f68291ea741c0283b92d281..d104aa005a826d7d4f879a79d892e3588ffccac9