OpenWrt Wi-Fi slow after idle: a 10-minute diagnostic

2026-10-11 · 2 min read

Symptom: after an idle period, one device's download drops to about 10 Mbps (sometimes worse) while other devices are fine. Here is the 10-minute diagnostic we used to find two root causes on an MT7986 router (grade E evidence; the fixes ship as scripts [2] and the measurements are published [1]).

# on the AP
iw dev <ap> station dump | grep -E "Station|tx bitrate|rx bitrate|signal:"

2. Sample the rate, do not trust one reading

for i in $(seq 1 20); do
  iw dev <ap> station dump | grep -m1 "tx bitrate"
  sleep 2
done

Oscillating between MCS0 and MCS9+ points to rate-control/state problems. Pinned at a mid rate points to channel conditions.

3. Byte accounting: retransmissions or idle airtime?

Compare bytes the AP transmitted with bytes the client received during a LAN transfer:

4. Check the two known mt76 traps

# trap 1: firmware VoW ATF (default 1) prevents the rate from recovering
cat /sys/kernel/debug/ieee80211/phy*/mt76/vow_atf
echo 0 > /sys/kernel/debug/ieee80211/phy*/mt76/vow_atf     # test it now

# trap 2: a 40 MHz-only client inside an 80 MHz BSS
iw dev <ap> info | grep -E "channel|width"                 # radio width
iw dev <ap> station dump | grep -m1 "tx bitrate"           # client width appears in the rate string

Expected result after fixing trap 1 (measured on MT7986): the first bursts are still slow, then throughput climbs back to about 400 Mbps within 15 s. If your client is a 40 MHz device, also switch the radio to 40 MHz (stable 330-420 Mbps).

5. Make the fix survive reboots

vow_atf lives in debugfs and is lost on driver reload, so persist it with an init script at boot (/etc/init.d/mt76-wifi-tune) and a watchdog that re-applies it every minute. Both scripts ship in the project toolkit.

6. Quick reference

Observation Most likely cause Fix
one client, downlink only, pinned MCS0 firmware ATF blocking recovery disable vow_atf, persist it
collapses every few minutes, 40 MHz client narrow client in wide BSS run the radio at the client's width
all clients slow at the same time channel/interference channel analysis, width reduction, DFS
slow only far from the AP signal/rate check RSSI, antenna placement

Related: mt76 rate control deep dive · 80 vs 40 MHz · reproduction guide

References and data sources

Every external claim carries a source and an evidence grade (grading scheme). Grade E marks first-party, reproducible measurements from this project.

  1. Grade E · first-party measurement This project's 10-minute raw capture (57,293 records / 600.0 s, SHA-256 00373f83…95e2)
    Router CSI Lab · 2026
    csi.okwujun.pw/zh/datasets/ · verified: Reassembled chunks verified byte-identical (2026-10-11)
  2. Grade E · first-party measurement Router CSI Toolkit — capture/analysis/watchdog scripts (MIT)
    Router CSI Lab · 2026
    csi.okwujun.pw/zh/tools/ · verified: Repository bundle has a SHA-256; scripts run on real hardware