Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Independent states and STOP_SENDING #171

Merged
merged 29 commits into from
Aug 3, 2017
Merged
Changes from 2 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
b1c79fb
First pass at REQUEST_RST
MikeBishop Jan 18, 2017
4c96bd2
Use REQUEST_RST in HTTP/QUIC
MikeBishop Jan 18, 2017
7f66526
Martin's feedback on REQUEST_RST
MikeBishop Jan 30, 2017
b2dc2c2
Wrong word form
MikeBishop Jan 30, 2017
dd17d05
Fix some merge stuff
MikeBishop Feb 23, 2017
c9d0d8f
Servers shouldn't freak out either
MikeBishop Mar 7, 2017
7f0a134
Rename to DISINTEREST
MikeBishop Mar 7, 2017
001c274
Suggest error code, loosen ordering
MikeBishop Mar 7, 2017
d4f77df
an => a
MikeBishop Mar 7, 2017
dccd3f3
Merge remote-tracking branch 'origin/master' into request_rst
MikeBishop Mar 9, 2017
4ce57c5
Without selecting?
MikeBishop Mar 9, 2017
5088ec5
Merge remote-tracking branch 'origin/master' into request_rst
MikeBishop Apr 13, 2017
df92cb1
Martin's less-MUSTy feedback on DISINTEREST
MikeBishop Apr 13, 2017
3ac8550
Merging with Martin's stream state text
MikeBishop May 2, 2017
5740393
Martin's feedback
MikeBishop Jun 7, 2017
299e72d
Merge remote-tracking branch 'origin/master' into request_rst
MikeBishop Jun 7, 2017
1536501
Merge remote-tracking branch 'origin/master' into request_rst
MikeBishop Jun 28, 2017
52f99c7
Update frame type value and table
MikeBishop Jun 28, 2017
15da4ce
Merge remote-tracking branch 'origin/master' into request_rst
MikeBishop Jul 24, 2017
35dfd02
Bring back the error code
MikeBishop Jul 27, 2017
e0be281
REQUEST_RST -> DISINTEREST -> STOP_SENDING
MikeBishop Jul 27, 2017
e91b428
DISINTEREST->STOP_SENDING in HTTP doc
MikeBishop Jul 27, 2017
1213176
Clarifying stream state
MikeBishop Jul 27, 2017
23c7dd2
delete 'up to and'
MikeBishop Jul 27, 2017
7a46965
STOP_SENDING in half-closed remote
MikeBishop Jul 31, 2017
5699b82
Remove implied ordering of STOP_SENDING and STREAM frames
MikeBishop Jul 31, 2017
106c165
STOP_SENDING is sorta retransmittable and MUSTy
MikeBishop Aug 1, 2017
0b027f3
Jana's nits
MikeBishop Aug 2, 2017
53d1621
Merge remote-tracking branch 'origin/master' into request_rst
MikeBishop Aug 2, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions draft-ietf-quic-transport.md
Original file line number Diff line number Diff line change
Expand Up @@ -2033,9 +2033,6 @@ to abruptly terminate transmission on a stream. The frame is as follows:

The fields are:

* Error code: A 32-bit error code which indicates why the data is being
discarded.

* Stream ID: The 32-bit Stream ID of the stream being ignored.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be simpler to have exactly the same setup as RST: Error code, stream ID, and amount consumed. At least the error code, with the reason for sending the DISINTEREST.

Copy link
Contributor Author

@MikeBishop MikeBishop Jun 28, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There originally was an error code, and @martinthomson suggested removing it (see his review in April). The point of this frame is that the sender's side isn't inherently closed, so any reasons can still be communicated at the application layer. That's certainly the case with HTTP, where the most common reason is that the server has already generated a response. I have a mild preference for leaving it out, since this isn't targeted at error cases, but I'm largely ambivalent. I'd suggest taking that design discussion to the issue or list.

Including the offset doesn't really matter -- the sender of DISINTEREST has received all the data they needed, which implies the receiver has already successfully sent at least that much. Why do they care what the offset of not-caring was? RST_STREAM includes the offset because that's necessary to synchronize flow control. Not so here.


Expand Down Expand Up @@ -2475,7 +2472,7 @@ Any frame type that mentions a stream ID can be sent in this state.
A stream that is in the "half-closed (local)" state MUST NOT be used for sending
on new STREAM frames. Retransmission of data that has already been sent on
STREAM frames is permitted. An endpoint MAY also send MAX_STREAM_DATA and
RST_STREAM in this state.
DISINTEREST in this state.

An endpoint that closes a stream MUST NOT send data beyond the final offset that
it has chosen, see {{state-closed}} for details.
Expand Down Expand Up @@ -2535,6 +2532,7 @@ Once a stream reaches this state, no frames can be sent that mention the stream.
Reordering might cause frames to be received after closing, see
{{state-hc-remote}}.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like to keep a couple of blank lines before section headings.


## Solicited State Transitions

If an endpoint is no longer interested in the data being received, it MAY send a
Expand All @@ -2555,7 +2553,6 @@ DISINTEREST frame is received on a stream that is already in the "half-closed
cancel retransmission of previously-sent STREAM frames.



## Stream Concurrency {#stream-concurrency}

An endpoint limits the number of concurrently active incoming streams by
Expand Down