-
-
Notifications
You must be signed in to change notification settings - Fork 31
Mixed resolver mode support #8
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
Conversation
fb780ec to
a8fc85d
Compare
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.
Pull request overview
This PR adds support for mixed resolver mode, allowing the client to simultaneously use both authoritative and recursive DNS resolvers with per-path congestion control and ACK delay settings.
Changes:
- Introduces
RESOLVER_MODEenvironment variable for benchmarks with support forresolver,authoritative, andmixedmodes - Replaces connection-wide
--authoritativeflag with per-resolver--authoritative <IP:PORT>option - Implements per-path congestion control selection (BBR for authoritative, DCUBIC for recursive)
Reviewed changes
Copilot reviewed 17 out of 18 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| vendor/picoquic | Updates picoquic submodule to support per-path mode and ACK delay |
| scripts/bench/run_rust_rust_10mb.sh | Adds mixed mode benchmark support with proxy infrastructure |
| scripts/README.md | Documents RESOLVER_MODE environment variable |
| docs/usage.md | Updates CLI documentation for per-resolver flags |
| docs/picoquic-changes.md | Documents per-path slipstream mode changes |
| docs/benchmarks.md | Adds mixed mode benchmark example |
| crates/slipstream-ffi/src/picoquic.rs | Adds FFI bindings for path callbacks and mode management |
| crates/slipstream-ffi/src/lib.rs | Defines ResolverMode enum and ResolverSpec struct |
| crates/slipstream-ffi/cc/slipstream_poll.c | Implements path lookup by address and unique ID |
| crates/slipstream-ffi/cc/slipstream_mixed_cc.c | Implements mixed-mode congestion control algorithm |
| crates/slipstream-ffi/build.rs | Builds new mixed CC source file |
| crates/slipstream-client/src/streams.rs | Tracks path events for dynamic path management |
| crates/slipstream-client/src/pacing.rs | Refactors pacing to use path quality instead of connection |
| crates/slipstream-client/src/main.rs | Implements resolver ordering and deduplication |
| crates/slipstream-client/src/dns.rs | Manages per-resolver state including modes and path IDs |
| crates/slipstream-client/src/client.rs | Orchestrates mixed-mode operation with per-path logic |
| README.md | Updates documentation for per-resolver authoritative flag |
| .github/workflows/ci.yml | Adds mixed mode benchmark to CI |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
No description provided.