Support for the WT_DRAIN_SESSION frame to initiate draining#3476
Open
jesup wants to merge 1 commit intousers/jesup/atomicWritefrom
Open
Support for the WT_DRAIN_SESSION frame to initiate draining#3476jesup wants to merge 1 commit intousers/jesup/atomicWritefrom
jesup wants to merge 1 commit intousers/jesup/atomicWritefrom
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds WebTransport support for the WT_DRAIN_SESSION capsule/frame so endpoints can initiate graceful draining of a specific WebTransport session and surface this as an application event.
Changes:
- Introduces a
DrainSessionWebTransport frame (WT_DRAIN_SESSION) with encode/decode + frame reader tests. - Wires a new “draining” signal through the extended-connect session protocol and event pipelines to client/server application events.
- Adds test-only helpers and new integration tests covering client↔server draining behavior.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| neqo-http3/src/server_events.rs | Adds public WebTransportServerEvent::Draining and event insertion helper. |
| neqo-http3/src/server_connection_events.rs | Adds internal per-connection WebTransportEvent::Draining and emits it from ExtendedConnectEvents. |
| neqo-http3/src/server.rs | Maps connection draining events to public server events; adds test helper to send drain capsule. |
| neqo-http3/src/frames/wtframe.rs | Implements WT_DRAIN_SESSION frame type, encode/decode logic, and unit tests. |
| neqo-http3/src/frames/tests/reader.rs | Refactors CloseSession frame assertions to safer pattern matching. |
| neqo-http3/src/features/extended_connect/webtransport_session.rs | Handles received DrainSession frame by marking session draining and emitting draining events. |
| neqo-http3/src/features/extended_connect/tests/webtransport/sessions.rs | Adds end-to-end tests for client/server drain behavior; updates draft links. |
| neqo-http3/src/features/extended_connect/mod.rs | Extends ExtendedConnectEvents trait with session_draining. |
| neqo-http3/src/connection_server.rs | Adds test-only server handler hook to send a drain capsule. |
| neqo-http3/src/connection_client.rs | Adds test-only client helper to send a drain capsule. |
| neqo-http3/src/connection.rs | Adds test-only connection helper to write WT_DRAIN_SESSION on a session send stream. |
| neqo-http3/src/client_events.rs | Emits Http3ClientEvent::WebTransport(WebTransportEvent::Draining) for session draining. |
mxinden
reviewed
Apr 1, 2026
Collaborator
|
@jesup all of these PRs need to be rebased so CI runs. |
ce6b89f to
448e75a
Compare
c7f271e to
68dd8b2
Compare
This was referenced May 1, 2026
Member
Author
|
This PR is part of a stack of 13 bookmarks:
Created with jj-stack |
Contributor
Failed Interop TestsNone ❓ All resultsSucceeded Interop TestsQUIC Interop Runner, client vs. server neqo-pr as clientNone ❓ neqo-pr as serverNone ❓ Unsupported Interop TestsQUIC Interop Runner, client vs. server neqo-pr as clientNone ❓ neqo-pr as serverNone ❓ |
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Support for the WT_DRAIN_SESSION frame to initiate draining for a specific session