-
Notifications
You must be signed in to change notification settings - Fork 203
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
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 4c96bd2
Use REQUEST_RST in HTTP/QUIC
MikeBishop 7f66526
Martin's feedback on REQUEST_RST
MikeBishop b2dc2c2
Wrong word form
MikeBishop dd17d05
Fix some merge stuff
MikeBishop c9d0d8f
Servers shouldn't freak out either
MikeBishop 7f0a134
Rename to DISINTEREST
MikeBishop 001c274
Suggest error code, loosen ordering
MikeBishop d4f77df
an => a
MikeBishop dccd3f3
Merge remote-tracking branch 'origin/master' into request_rst
MikeBishop 4ce57c5
Without selecting?
MikeBishop 5088ec5
Merge remote-tracking branch 'origin/master' into request_rst
MikeBishop df92cb1
Martin's less-MUSTy feedback on DISINTEREST
MikeBishop 3ac8550
Merging with Martin's stream state text
MikeBishop 5740393
Martin's feedback
MikeBishop 299e72d
Merge remote-tracking branch 'origin/master' into request_rst
MikeBishop 1536501
Merge remote-tracking branch 'origin/master' into request_rst
MikeBishop 52f99c7
Update frame type value and table
MikeBishop 15da4ce
Merge remote-tracking branch 'origin/master' into request_rst
MikeBishop 35dfd02
Bring back the error code
MikeBishop e0be281
REQUEST_RST -> DISINTEREST -> STOP_SENDING
MikeBishop e91b428
DISINTEREST->STOP_SENDING in HTTP doc
MikeBishop 1213176
Clarifying stream state
MikeBishop 23c7dd2
delete 'up to and'
MikeBishop 7a46965
STOP_SENDING in half-closed remote
MikeBishop 5699b82
Remove implied ordering of STOP_SENDING and STREAM frames
MikeBishop 106c165
STOP_SENDING is sorta retransmittable and MUSTy
MikeBishop 0b027f3
Jana's nits
MikeBishop 53d1621
Merge remote-tracking branch 'origin/master' into request_rst
MikeBishop File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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. | ||
|
||
|
||
|
@@ -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. | ||
|
@@ -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}}. | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 | ||
|
@@ -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 | ||
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.