slipstream-server: QUIC-LB support for stateless load balancer routing#80
slipstream-server: QUIC-LB support for stateless load balancer routing#80aleskxyz wants to merge 3 commits intoMygod:mainfrom
Conversation
…s LB routing Signed-off-by: aleskxyz <[email protected]>
Signed-off-by: aleskxyz <[email protected]>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a66895ecee
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
Signed-off-by: aleskxyz <[email protected]>
|
@codex review |
|
Codex Review: Didn't find any major issues. Another round soon, please! ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
Add QUIC-LB support to slipstream-server
When running behind a QUIC-LB–aware load balancer, the server can emit connection IDs that encode a
server_idso the LB can route packets without per-connection state.Changes:
--quic-lb-server-id(0–255): optional CLI flag. When set, the server registers a picoquic connection-ID callback and issues 8-byte QUIC-LB plaintext CIDs (config_rotation=0, 1-byte server_id, 6-byte nonce). CID length is 8 so it matches picoquic's defaultlocal_cnxid_lengthand connection lookup works.quic_lb_server_id=N.ServerConfiggainsquic_lb_server_id: Option<u8>; the callback is only registered whenSome(id).getrandomadded for nonce generation in the callback (with an atomic fallback if getrandom fails).config.mddescribes the flag and SIP003 option;picoquic-changes.mddocuments use of the picoquic connection-ID callback.Each backend in a pool should use a distinct
server_id(e.g. 0, 1, 2) so the LB can route by decodedserver_idto the correct backend.