pub struct SchedulerConfig {Show 18 fields
pub strategy: SchedulingStrategy,
pub rtt_threshold_ms: u32,
pub loss_threshold_percent: f32,
pub rtt_weight: f32,
pub loss_weight: f32,
pub bandwidth_weight: f32,
pub nat_penalty_weight: f32,
pub sticky_paths: bool,
pub sticky_timeout: Duration,
pub probe_backup_paths: bool,
pub probe_interval: Duration,
pub throughput: ThroughputConfig,
pub max_acceptable_latency_ms: u32,
pub size_threshold_bytes: u64,
pub throughput_aware: bool,
pub effective_throughput_weight: f32,
pub prevent_latency_blocking: bool,
pub latency_blocking_ratio: f32,
}Expand description
Scheduler configuration.
Fields§
§strategy: SchedulingStrategyScheduling strategy.
rtt_threshold_ms: u32Minimum RTT difference to prefer one uplink (ms).
loss_threshold_percent: f32Minimum loss difference to prefer one uplink (%).
rtt_weight: f32Weight for RTT in adaptive scoring (0-1).
loss_weight: f32Weight for loss in adaptive scoring (0-1).
bandwidth_weight: f32Weight for bandwidth in adaptive scoring (0-1).
nat_penalty_weight: f32Weight for NAT penalty in adaptive scoring (0-1). Higher values penalize NATted uplinks more heavily.
sticky_paths: boolEnable path stickiness (prefer same path for related packets).
sticky_timeout: DurationStickiness timeout.
probe_backup_paths: boolEnable proactive probing of backup paths.
probe_interval: DurationProbe interval for backup paths.
throughput: ThroughputConfigThroughput optimization configuration.
max_acceptable_latency_ms: u32Maximum acceptable latency before heavy penalty (ms). Used by LatencyAware and EffectiveThroughput strategies.
size_threshold_bytes: u64Threshold size for size-based strategy (bytes). Transfers smaller than this prefer latency; larger prefer bandwidth.
throughput_aware: boolEnable effective throughput scoring for all strategies. When true, even Adaptive strategy uses throughput-aware scoring.
effective_throughput_weight: f32Weight for effective throughput in scoring (0-1). Higher values prioritize throughput over raw metrics.
prevent_latency_blocking: boolEnable latency-blocking prevention. Prevents high-latency paths from being selected when faster paths exist.
latency_blocking_ratio: f32Latency blocking threshold ratio. If an uplink’s latency exceeds best_latency * ratio, it’s blocked.
Trait Implementations§
Source§impl Clone for SchedulerConfig
impl Clone for SchedulerConfig
Source§fn clone(&self) -> SchedulerConfig
fn clone(&self) -> SchedulerConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more