OpenWrt SQM / CAKE — kill bufferbloat in one toggle

SQM with the cake queue discipline is the standard fix for bufferbloat on OpenWrt, but it takes several packages and careful settings to configure by hand. NetSteer does it in one toggle. Here is what SQM actually does, the settings that matter, and the measured numbers. As of 2026-11.

What SQM does

When a line is saturated, the router fills its queue and every packet pays for it — that is bufferbloat. SQM applies CAKE (a queue-disc that is aware of real-world conditions) and paces the link to your measured bandwidth, keeping the queue near-empty. The result: a background download no longer stalls a game or a call.

The settings that matter

Measured: before vs after

Test: NanoPi R5C (4× Cortex-A55) · 1000M↓/50M↑ DSL. 16-thread saturated download 30 s × 2, concurrent ping, 2-run mean.

MetricOFF (baseline)NetSteer ONChange
Avg full-load latency58.6 ms7.8 ms ↓ 87%
Full-load spread (p99−p50)56.4 ms6.9 ms ↓ 88%
Idle latency5.79 ms5.91 ms ≈ flat
Full-load throughput823 Mbps581 Mbps −29%*

* trade-off: enabling cake costs ~29% peak throughput (4-core soft-forward shaping overhead) in exchange for deterministic full-load latency; both still far above typical daily use.

How NetSteer automates it

NetSteer's one-key health check detects the missing packages (sqm-scripts + cake) and whether the firewall allows the P2P path, then configures cake for your detected upstream. You get a real A/B read — it first measures a "switch-off" baseline, then shows the actual gain on your box. No fixed promises: if your line is already well-provisioned it will show "flat", and that is honest.

Read the RPS / IRQ all-core receive section too — on x86 soft routers the second half of the win is spreading packet processing across cores.

FAQ

What is SQM on OpenWrt?

SQM (Smart Queue Management) is the OpenWrt tool that applies a queue-disc (the cake plugin is the standard choice) to your WAN link. It paces traffic to your real bandwidth so the router queue stays small, which removes bufferbloat. It requires the sqm-scripts package plus the cake kernel module.

Which upstream speed should I put in the SQM settings?

Your measured upstream, not the advertised number. If a download test shows 48 Mbps up on a 50 Mbps plan, use 48. Over-provisioning the speed is the most common reason SQM does not work. NetSteer auto-detects this during its health check.

Is there a downside to enabling SQM?

Yes — CAKE trades a little peak throughput for much better latency. On a small 4-core soft router we measured about a 29% drop in saturated throughput while full-load latency fell 87%. For gaming and calls the trade is almost always worth it, and it is reversible with the total switch.