Repository navigation
feat(network): add option to disable DSCP tagging - #6067
Conversation
Some consumer routers mishandle DSCP-tagged traffic, causing audio loss on Wi-Fi. Allow disabling tagging regardless of client request.
cd1adb6 to
da32f3c
Compare
|
Bundle ReportChanges will increase total bundle size by 456 bytes (0.01%) ⬆️. This is within the configured threshold ✅ Detailed changes
Affected Assets, Files, and Routes:view changes for bundle: sunshine-esmAssets Changed:
Files in
Files in
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #6067 +/- ##
=========================================
Coverage 49.35% 49.36%
=========================================
Files 143 143
Lines 31300 31302 +2
Branches 13347 13354 +7
=========================================
+ Hits 15449 15452 +3
- Misses 12235 13419 +1184
+ Partials 3616 2431 -1185
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 32 files with indirect coverage changes Continue to review full report in Codecov by Harness.
|
Screenshot ComparisonPR #6067 screenshots vs Matrix:
|























































































Description
Adds a
dscp_taggingoption (Network tab, enabled by default) to turn off DSCP tagging for audio and video regardless of what the client requests.With a Linux host, tagged audio can cause episodic loss on some consumer routers (TP-Link so far), heard as crackling on any client. Thanks to @Catkinsv3 for tracking this down in #5508. Until now the only workaround was an iptables mangle rule.
This covers the audio and video sockets. The control stream keeps its own DSCP tag. Local priority (
SO_PRIORITYon Linux) is not affected, but on Windows there's no prioritization without tagging, so qWAVE is skipped entirely when disabled.Kept it as a simple toggle instead of per-type values, since disabling is what actually fixes the issue. Can extend it if needed.
Screenshot
Issues Fixed or Closed
Roadmap Issues
Testing
Built on Linux (gcc 16, Release, CUDA off).
test_sunshine: 905 passed, 8 skipped, including the newConfigPersistenceTest.ParsesDscpTaggingOptionvitest: 213 passed, including a new test toggling the checkbox on the Network tabclang-formatpassessetsockoptcalls:IP_TOSis set on the video and audio sockets when enabled and not set when disabled,SO_PRIORITYis unchangedWindows and macOS were not built locally.
Type of Change
Checklist
AI Usage
See our AI usage policy.