The complaint was always the same. Someone's on a call, someone else starts a download or a 4K stream kicks in, and the call turns to slideshow. It isn't a bandwidth problem, not really. We have plenty of bandwidth. It's a latency problem dressed up as one, and the cause is bufferbloat: when a fat download fills the upload queue, every other packet, including the small, urgent ones your video call depends on, sits behind it waiting its turn.
The fix isn't to cap anyone's speed. It's to manage the queue so that interactive traffic doesn't get stuck behind bulk traffic. On a Linux-based router that means CAKE, which is the modern, sensible answer to all of this and has been in mainline since 4.19.
the one number that matters
CAKE needs to know your real upload speed so it can hold the queue on your side of the bottleneck, where you control it, rather than letting the packets pile up in your ISP's buffer where you can't. Set it slightly below your measured upload, around 90 to 95%, so your router stays the bottleneck:
tc qdisc replace dev eth0 root cake bandwidth 18mbit
That single line, on the WAN interface, did more for our calls than any amount of fiddling with per-device rules. The trick is that by deliberately giving up a sliver of raw throughput, you take ownership of the queue. CAKE then does fair queuing across flows automatically, so one greedy download can't starve everything else.
measuring, not guessing
Don't trust the feel of it, measure. The number to watch is latency under load. Start a steady upload, then ping something:
ping -i 0.2 1.1.1.1
Before CAKE, a saturated upload pushed my ping from 12ms to well over 200ms, which is precisely why calls fell apart. After, it sat around 20ms even with the link full. That's the whole game. Throughput barely moved, maybe a megabit lost off the top, and in exchange the link stays responsive no matter what the household throws at it.
A few notes from getting it working:
- Apply CAKE on the WAN upload direction first. That's where home links are asymmetric and where the queue actually forms.
- If your connection runs over PPPoE or has VLAN tagging, tell CAKE with the
overheadkeyword or your shaping will be slightly off. - You don't need per-application rules or DSCP marking to start. Plain CAKE at the right bandwidth solves the common case on its own.
It's one of those changes nobody notices, which is the highest praise networking gear can get. The calls just stopped breaking, and nobody has asked me to "do something about the internet" since.