Skip to content

implement the Reliable Stream Reset extension #4139

@marten-seemann

Description

@marten-seemann

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions