-
Notifications
You must be signed in to change notification settings - Fork 530
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
Phase 2 of enabling new Stream Frame: Reliable Reset #3817
Conversation
Codecov Report
@@ Coverage Diff @@
## main #3817 +/- ##
==========================================
- Coverage 86.84% 86.38% -0.46%
==========================================
Files 56 56
Lines 16712 16854 +142
==========================================
+ Hits 14513 14560 +47
- Misses 2199 2294 +95
|
Co-authored-by: Nick Banks <nibanks@microsoft.com>
Co-authored-by: Nick Banks <nibanks@microsoft.com>
Co-authored-by: Nick Banks <nibanks@microsoft.com>
Co-authored-by: Nick Banks <nibanks@microsoft.com>
Co-authored-by: Nick Banks <nibanks@microsoft.com>
Co-authored-by: Nick Banks <nibanks@microsoft.com>
Co-authored-by: Nick Banks <nibanks@microsoft.com>
…ft/msquic into jackhe/phase2-issue-3775
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.
Just a few nits, but otherwise good to go!
Co-authored-by: Nick Banks <nibanks@microsoft.com>
Co-authored-by: Nick Banks <nibanks@microsoft.com>
Co-authored-by: Nick Banks <nibanks@microsoft.com>
Co-authored-by: Nick Banks <nibanks@microsoft.com>
Going to merge this, but I did notice one test failure:
This test is (rarely) flaky, so hopefully it's just that, but we need to keep an eye out on this going forward. @ProjectsByJackHe can you please open a bug and attach the logs for this failure to track? https://github.com/microsoft/msquic/actions/runs/6356433339/job/17266401639?pr=3817 |
Description
Reliable Reset is a new QUIC extension in the works with a draft RFC: https://datatracker.ietf.org/doc/draft-ietf-quic-reliable-stream-reset/.
This PR implements the current spec as outlined by the IETF. This includes implementing the new CLOSE_STREAM frame, along with the necessary metadata changes, and updates to the SEND and RECV paths to ensure sender / receiver complies with the protocol extension.
The API changes involves adding a new SetParam the user can configure, called ReliableOffsetSend, which determines the minimum amount of bytes that must be delivered before a stream can be aborted.
Testing
A new Data Test was added to check the behavior of the API.
A new Events Test was added to validate the receipt of events upon a reliable reset.
A new API test was added to check the behavior of the Get/Set Parameters.
Documentation
Documentation in Settings.md and StreamShutdown.md was added to outline usage of the preview feature.