DSCP marks the peers the local network owns #404

Merged
enricobuehler merged 2 commits from worktree-abr-dscp-default into main 2026-08-26 18:44:43 +00:00
Owner

ABR overhaul Phase 1, §2.5 (planning PR #20 — signed off): DSCP/SO_PRIORITY marking goes from fully opt-in to AUTO — on toward private-network peers (RFC1918 / ULA / link-local / loopback, v4-mapped included), off toward anything routable.

The opt-in existed because some consumer ISPs/routers bleach or reject marked packets — but that risk lives on WAN paths, and the win lives on local ones: access points map DSCP to WMM access categories, a real airtime-priority gain for exactly the Wi-Fi downlink field case this program started from. Private scope excludes the risk by construction.

  • PUNKTFUNK_DSCP=1 still forces marking everywhere; =0 stays the kill switch.
  • set_dscp_default(true) (the Android low-latency tie-in) still forces on regardless of peer — for VPN-class paths the address math can't recognize as local; false now means AUTO rather than off.
  • The decision (dscp_decision) and the classifier (is_private_peer) are pure and unit-tested; a connected-loopback test covers the AUTO path end to end. Windows qWAVE mechanics unchanged; the GameStream plane inherits the same default, which matches what Apollo/Sunshine tag by default.
  • Docs: the PUNKTFUNK_DSCP row describes the new default.

Verified: punktfunk-core --features quic — all 491 lib tests green natively (macOS); cargo fmt --check clean.

ABR overhaul **Phase 1, §2.5** (planning PR #20 — signed off): DSCP/`SO_PRIORITY` marking goes from fully opt-in to **AUTO — on toward private-network peers** (RFC1918 / ULA / link-local / loopback, v4-mapped included), off toward anything routable. The opt-in existed because some consumer ISPs/routers bleach or *reject* marked packets — but that risk lives on WAN paths, and the win lives on local ones: access points map DSCP to WMM access categories, a real airtime-priority gain for exactly the Wi-Fi downlink field case this program started from. Private scope excludes the risk by construction. - `PUNKTFUNK_DSCP=1` still forces marking everywhere; `=0` stays the kill switch. - `set_dscp_default(true)` (the Android low-latency tie-in) still forces on regardless of peer — for VPN-class paths the address math can't recognize as local; `false` now means AUTO rather than off. - The decision (`dscp_decision`) and the classifier (`is_private_peer`) are pure and unit-tested; a connected-loopback test covers the AUTO path end to end. Windows qWAVE mechanics unchanged; the GameStream plane inherits the same default, which matches what Apollo/Sunshine tag by default. - Docs: the `PUNKTFUNK_DSCP` row describes the new default. **Verified:** `punktfunk-core --features quic` — all 491 lib tests green natively (macOS); `cargo fmt --check` clean.
enricobuehler added 1 commit 2026-08-26 17:17:01 +00:00
DSCP marks the peers the local network owns (ABR overhaul Phase 1, §2.5)
apple / swift (pull_request) Successful in 2m7s
apple / distribute (pull_request) Skipped
apple / screenshots (pull_request) Skipped
ci / rust-arm64 (pull_request) Successful in 2m19s
ci / web (pull_request) Successful in 2m1s
ci / docs-site (pull_request) Successful in 2m4s
ci / docs-drift (pull_request) Successful in 38s
ci / bun-nix (pull_request) Successful in 1m13s
android / android (pull_request) Successful in 6m37s
ci / rust (pull_request) Successful in 7m40s
windows-client / client (arm64, --no-default-features, aarch64-pc-windows-msvc, C:\t-a64) (pull_request) Successful in 2m53s
windows-client / client (x64, , x86_64-pc-windows-msvc, C:\t) (pull_request) Successful in 6m13s
2a951a6bb5
The marking was opt-in because some consumer ISPs/routers bleach or
reject DSCP-tagged packets — but that risk lives on WAN paths, and the
win (APs map DSCP to WMM airtime priority — real for exactly the Wi-Fi
downlink field case) lives on local ones. The default becomes AUTO:
mark toward RFC1918 / ULA / link-local / loopback peers, stay off
toward anything routable.

PUNKTFUNK_DSCP=1 still forces it on everywhere, =0 stays the kill
switch, and the embedder hook (the Android low-latency tie-in) still
forces on regardless of the peer — for paths like VPNs the address
math can't recognize as local. Decision + classifier are pure and
unit-tested; the connected-loopback test covers the AUTO path end to
end. Windows qWAVE mechanics unchanged.
enricobuehler added 1 commit 2026-08-26 18:16:45 +00:00
Merge remote-tracking branch 'origin/main' into worktree-abr-dscp-default
ci / web (pull_request) Successful in 2m0s
ci / docs-site (pull_request) Successful in 1m18s
ci / rust-arm64 (pull_request) Successful in 3m24s
ci / bun-nix (pull_request) Successful in 21s
ci / docs-drift (pull_request) Successful in 30s
windows-client / client (x64, , x86_64-pc-windows-msvc, C:\t) (pull_request) Successful in 6m18s
ci / rust (pull_request) Successful in 7m2s
android / android (pull_request) Successful in 6m30s
windows-client / client (arm64, --no-default-features, aarch64-pc-windows-msvc, C:\t-a64) (pull_request) Successful in 2m57s
apple / swift (pull_request) Successful in 2m9s
apple / distribute (pull_request) Skipped
apple / screenshots (pull_request) Skipped
1a604cbf3e
# Conflicts:
#	docs-site/content/docs/configuration.md
enricobuehler merged commit d34d431618 into main 2026-08-26 18:44:43 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: unom/punktfunk#404