Skip to content

Conversation

@Mygod
Copy link
Owner

@Mygod Mygod commented Jan 17, 2026

No description provided.

@Mygod Mygod added the enhancement New feature or request label Jan 17, 2026
@Mygod Mygod force-pushed the mixed-resolver branch 2 times, most recently from fb780ec to a8fc85d Compare January 17, 2026 07:10
@Mygod Mygod marked this pull request as ready for review January 17, 2026 19:56
@Mygod Mygod requested a review from Copilot January 17, 2026 19:56
Copy link

Copilot AI left a 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_MODE environment variable for benchmarks with support for resolver, authoritative, and mixed modes
  • Replaces connection-wide --authoritative flag 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.

@Mygod Mygod merged commit 3828b78 into main Jan 17, 2026
19 of 20 checks passed
@Mygod Mygod deleted the mixed-resolver branch January 17, 2026 20:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants