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

implement the Reliable Stream Reset extension #4139

Open
marten-seemann opened this issue Oct 28, 2023 · 0 comments
Open

implement the Reliable Stream Reset extension #4139

marten-seemann opened this issue Oct 28, 2023 · 0 comments

Comments

@marten-seemann
Copy link
Member

marten-seemann commented Oct 28, 2023

Draft/ RFC here: https://datatracker.ietf.org/doc/draft-ietf-quic-reliable-stream-reset/
This extension will be a made a dependency of WebTransport over HTTP/3 in the near future, so we'll have to implement it if we want to continue supporting webtransport-go.

This will require some non-trivial changes to the stream state machine. We need to be extra careful here due to the concurrent nature of the stream.

API proposal:

  • No API changes required on the receive side.
  • On the send side, we'll need a new method to commit to a reliable size. Commit() would commit to sending all the bytes that have been passed to Write on this stream so far to be delivered. Commit wouldn't send any frames, but just make sure that if CancelWrite is called at a later point on the stream, it sends a RESET_STREAM_AT frame with the corresponding Reliable Size instead of a RESET_STREAM frame.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant