Skip to content

feat(dataplane): windowed per-class loss denominator, detector robustness, and bench polish (#11) - #160

Merged
vxfemboy merged 11 commits into
mainfrom
feat/dataplane-windowed-loss-and-bench-polish
Oct 22, 2026
Merged

vxfemboy merged 11 commits into
mainfrom
feat/dataplane-windowed-loss-and-bench-polish

Conversation

@vxfemboy

Copy link
Copy Markdown
Member

Summary of Changes

  1. Windowed Per-Class Loss Denominator (bin/yipd/src/dataplane.rs, Data-plane follow-ups & investigations (umbrella) #11):

    • Replaced historical sent_log total buffer residency denominator with exact windowed sequence ranges $(H_{\text{prev}}..H_{\text{curr}}]$ via SentLog::count_classes_in_range.
    • In DataPlane::on_udp_datagram, tracked last_loss_report_high: u64 to evaluate class loss fractions only over packets newly covered by the feedback report ({\text{class}} = M_{\text{class}} / S_{\text{class}}$), eliminating dilution/over-repair caused by long-resident inactive packets in the 4,096-packet buffer history.
    • Preserved safe handling for zero-sample classes without triggering false ratio decay or blackhole fallbacks.
  2. Loss-Detector Partial-Receive Hardening & Window Alignment (crates/yip-transport/src/lossdetect.rs, bin/yipd/src/dataplane.rs, Data-plane follow-ups & investigations (umbrella) #11):

    • Aligned LossDetector window bound to 4,096 entries (matching SENT_LOG_CAPACITY), preventing premature watermark and resolved_set eviction while packets remain live in the sender's retx buffer.
    • Formally documented the multi-symbol partial-receive lifecycle: unrecovered multi-symbol objects promote to missing after grace_ms, mark resolved, trigger repair from retx, and decode on on_delivered.
    • Verified the extreme-reordering invariant in dataplane.rs: late spurious NACKs arising from counters evicted far above the watermark are dropped silently by the bounded RetxBuffer with zero side-effects.
  3. 1000-Ping Variance Tightening & Benchmark Suite Polish (crates/yip-bench/, Data-plane follow-ups & investigations (umbrella) #11):

    • Parameterized run-compare.sh, run-iperf-compare.sh, and run-wan-bench.sh for configurable PING_COUNT and PING_INTERVAL, auto-defaulting to -i 0.005 (5ms) when PING_COUNT >= 1000.
    • Updated loss percentage regex parsers across all scripts to capture fractional percentages (([0-9.]+)%), tightening netem loss resolution to $\pm 0.1%$.
    • Documented the comparative VPN & mesh contender matrix (WireGuard, OpenVPN, n2n, ZeroTier, AmneziaWG) in crates/yip-bench/README.md.
  4. Roadmap & Changelog:

    • Updated ROADMAP.md and CHANGELOG.md.

Closes #11.

@vxfemboy
vxfemboy temporarily deployed to benchmark-approval October 21, 2026 21:32 — with GitHub Actions Inactive
@vxfemboy
vxfemboy temporarily deployed to benchmark-approval October 21, 2026 21:32 — with GitHub Actions Inactive
@vxfemboy
vxfemboy temporarily deployed to benchmark-approval October 21, 2026 21:50 — with GitHub Actions Inactive
@vxfemboy
vxfemboy temporarily deployed to benchmark-approval October 21, 2026 21:50 — with GitHub Actions Inactive
@vxfemboy
vxfemboy temporarily deployed to benchmark-approval October 21, 2026 23:02 — with GitHub Actions Inactive
@vxfemboy
vxfemboy temporarily deployed to benchmark-approval October 21, 2026 23:18 — with GitHub Actions Inactive
@vxfemboy
vxfemboy temporarily deployed to benchmark-approval October 21, 2026 23:18 — with GitHub Actions Inactive
@vxfemboy
vxfemboy temporarily deployed to benchmark-approval October 21, 2026 23:18 — with GitHub Actions Inactive
@vxfemboy
vxfemboy temporarily deployed to benchmark-approval October 21, 2026 23:49 — with GitHub Actions Inactive
@vxfemboy
vxfemboy temporarily deployed to benchmark-approval October 21, 2026 23:49 — with GitHub Actions Inactive
@vxfemboy
vxfemboy temporarily deployed to benchmark-approval October 21, 2026 23:49 — with GitHub Actions Inactive
@vxfemboy
vxfemboy merged commit efc91e4 into main Oct 22, 2026
@vxfemboy
vxfemboy deleted the feat/dataplane-windowed-loss-and-bench-polish branch October 22, 2026 00:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Data-plane follow-ups & investigations (umbrella)

1 participant