Ahh! TIL. Thank you!
I am able to achieve similar speed as when WED was enabled.
Yes, packet steering is enabled with RPS set to standard.
Ahh! TIL. Thank you!
I am able to achieve similar speed as when WED was enabled.
Yes, packet steering is enabled with RPS set to standard.
I previously posted about this issue and wanted to share my recent troubleshooting (summarized by chatgpt, apologies) to see if anyone has any ideas for further diagnosing.
Iām seeing a consistent Wi-Fi downlink throughput cap (~450ā520 Mbps) on a Belkin RT3200 (MT7622 + mt7915) running OpenWrt 24.10.4, while uplink reaches ~700ā800 Mbps. I do not recall this issue on OpenWrt 23.05, where down/up were roughly symmetric.
OpenWrt 24.10.4, r28959-29397011cc, Linux 6.6.110 aarch64
Wireless: 5 GHz, channel 149 (non-DFS), 80 MHz
Security: WPA2-PSK (CCMP)
Client: Windows, Intel Wi-Fi 6E AX211
Client ā AP (uplink): ~700ā800 Mbps (iperf3)
AP ā client (downlink): ~450ā520 Mbps
Same behavior with:
internet speedtests
local iperf3
CPU not pegged, RSSI and PHY rates look good
Windows runs iperf3 server, AP runs client:
Windows (Wi-Fi):
iperf3.exe -s -B <wifi_ip>
AP:
iperf3 -c <wifi_ip> -P 4 -t 30
This is AP ā Wi-Fi client only (no Ethernet/DSA/bridge involved) and still caps ~500 Mbps down while uplink is higher.
During downlink testing:
High PHY rates, e.g. HE-MCS 10/11, 80 MHz, 2SS
Low retries/failures (not interference-limited)
Repeatedly see:
rx bitrate: 24.0 MBit/s
which appears to indicate low-rate ACK/control traffic and aligns with TCP downlink being limited despite high PHY.
VLAN / bridge: APāclient iperf reproduces issue; VLAN filtering on/off and WAN/LAN swaps made no difference
CPU / IRQ / offload: IRQ pinning, RPS/XPS tried; no impact
RF basics: clean non-DFS channel, WPA2-only, good signal
Client fallback: iperf bound to Wi-Fi IP; Ethernet disabled during tests
Given the directional nature (downlink only), Wi-Fi-only reproduction, good PHY + low retries, and my experience that 23.05 did not behave this way, this looks like a mt76/mt7915 regression or behavior change in newer kernels (5.15 ā 6.6), possibly around HE/ACK handling or power-save interactions with Intel AX2xx clients.
Has anyone else seen ~500 Mbps APāclient caps on mt7915 with 24.10 / kernel 6.6?
Are there known mt76 regressions affecting downlink TCP / ACK pacing, especially with Intel AX211?
Any recommended snapshot, patch, or known workaroundāor is 23.05 just a more stable choice for mt7915?
Happy to provide iw dev station dump, wireless config, or test specific snapshots if helpful.
Thanks.
Thereās something odd on your config.
I have had the same speeds since I got this router and started using OpenWRT since v22.x, then upgraded to all 23.05.x releases, all the 24.10.x releases and now Iām on 25.12.0-rc2.
But, in my case, I do reach speedtests of about 650-700 Mbps, sometimes 750, and upload speeds of 890, 900 Mbps, consistent on what you mention.
However, running iperf3 between my laptop and another device behind the router (to avoid any CPU overhead), I do get consistent 900ish Mbps on both download and upload. Only on internet speed tests is that I get around 700 Mbps.
I have tested with WED enabled and disabled and decided to keep it disabled and itās stable. Of course HW Flow Offloading and Packet steering enabled with standard flows (none).
I do use 160MHz, tho. Donāt know if that makes a difference. In my laptop, the link speed is 2401Mbps, whereas on 80MHz, the link speed is 1200Mbps.
Thanks for the reply. In the /etc/config/wireless is:
...
config wifi-device 'radio1'
option type 'mac80211'
option path '1a143000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
option band '5g'
option country 'US'
option cell_density '1'
option htmode 'HE80'
option channel '149'
option log_level '2'
config wifi-iface 'default_radio1'
option device 'radio1'
option network 'lan'
option mode 'ap'
option encryption 'psk2'
option ieee80211r '1'
option ft_over_ds '0'
option ft_psk_generate_local '1'
option time_advertisement '2'
option time_zone 'GMT0'
option ieee80211k '1'
option bss_transition '1'
...
Looks similar to mine (FT options and such), but I use 160MHz, on channel 36 for my router, and 104 for my dumb AP.
How far are you when doing the tests? The best speeds are achieved only by being very close to the router. WiFi is tricky.
In any case, you should get at least 600-650Mbps download. Less than that is odd.
Not recommended to test with the AP itself. Should test as below instead:
iperf3 server < - > RT3200 < - > iperf3 client
This!
In my case I get around 900 Mbps in iperf3, but thereās no way to achieve this in internet speed tests on WiFi. Only up to 700ish. I can achieve it wired.
Do you have any tips to get more WiFi download speed?
My Linksys E8450 runs OpenWRT 25.12.0-rc2 with Hardware Flow Offloading on, 80Mhz.
Iperf3 test:
# iperf3.exe -c 192.168.200.3 -P 10
[SUM] 0.00-10.01 sec 714 MBytes 598 Mbits/sec sender
[SUM] 0.00-10.03 sec 693 MBytes 580 Mbits/sec receiver
It's basically around 600Mbps, sometimes 700Mbps.
This is my iperf3 using my laptop with a Qualcomm FastConnect 6900 connected to my RT3200 router and my other RT3200 dumb AP as a client (to test the WiFi throughput of the router):
root@CharlieExt:~# iperf3 -c 192.168.1.226
Connecting to host 192.168.1.226, port 5201
[ 5] local 192.168.1.2 port 55284 connected to 192.168.1.226 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 103 MBytes 860 Mbits/sec 0 2.11 MBytes
[ 5] 1.00-2.00 sec 110 MBytes 918 Mbits/sec 0 2.11 MBytes
[ 5] 2.00-3.00 sec 108 MBytes 907 Mbits/sec 0 2.11 MBytes
[ 5] 3.00-4.00 sec 106 MBytes 894 Mbits/sec 0 2.11 MBytes
[ 5] 4.00-5.00 sec 107 MBytes 895 Mbits/sec 0 2.11 MBytes
[ 5] 5.00-6.00 sec 107 MBytes 901 Mbits/sec 0 2.11 MBytes
[ 5] 6.00-7.00 sec 108 MBytes 903 Mbits/sec 0 2.11 MBytes
[ 5] 7.00-8.00 sec 108 MBytes 909 Mbits/sec 0 2.11 MBytes
[ 5] 8.00-9.00 sec 106 MBytes 890 Mbits/sec 0 2.11 MBytes
[ 5] 9.00-10.00 sec 108 MBytes 903 Mbits/sec 0 2.11 MBytes
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.05 GBytes 899 Mbits/sec 0 sender
[ 5] 0.00-10.01 sec 1.04 GBytes 896 Mbits/sec receiver
iperf Done.
And the reverse test (upload from the AP to the laptop):
root@CharlieExt:~# iperf3 -c 192.168.1.226 -R
Connecting to host 192.168.1.226, port 5201
Reverse mode, remote host 192.168.1.226 is sending
[ 5] local 192.168.1.2 port 58818 connected to 192.168.1.226 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 104 MBytes 869 Mbits/sec
[ 5] 1.00-2.00 sec 106 MBytes 892 Mbits/sec
[ 5] 2.00-3.00 sec 107 MBytes 900 Mbits/sec
[ 5] 3.00-4.00 sec 111 MBytes 927 Mbits/sec
[ 5] 4.00-5.00 sec 111 MBytes 930 Mbits/sec
[ 5] 5.00-6.00 sec 107 MBytes 895 Mbits/sec
[ 5] 6.00-7.00 sec 111 MBytes 929 Mbits/sec
[ 5] 7.00-8.00 sec 111 MBytes 931 Mbits/sec
[ 5] 8.00-9.00 sec 108 MBytes 909 Mbits/sec
[ 5] 9.00-10.00 sec 109 MBytes 917 Mbits/sec
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 1.06 GBytes 912 Mbits/sec sender
[ 5] 0.00-10.00 sec 1.06 GBytes 910 Mbits/sec receiver
iperf Done.
Pretty much symmetrical.
But running any speed test, I get up to 690-700ish Mbps in downloads, and around 900Mbps in uploads. Running internet speed tests wired, does give me aroung 900 Mbps symmetrical.
I get line rate (low 900ās) over WiFi in the same room as my RT3200 on channel 52 with 80Mz width.
I have never had the need to experiment with 160 MHz width, but I recall reading on the internet (Hah! Now thereās a reliable source reference!) that there is a trade-off between speed at range and channel width. Sorry I canāt give you personal experience, but it might be worth an experiment to see if 80 MHz is as good as (perhaps better?) 160 MHz at longer distances from the AP. 80 MHz makes it easier to avoid channel frequency overlap interference with multiple APās too.
Nvrmnd - I see you are already getting near line rate over WiFi with iperf3 now.
Yeah, wireless is fine through iperf3. Internet speed tests are the problem where I get around 650-700 Mbps wireless but around 900 wired. Those are downloads. Uploads are fine on both wireless and wired.
Did you enable WED?
The same with WED enabled or disabled.
So, it sounds like I am not alone in this now. Something is happening in the AP->wifi_client download and does not appear to be overloaded cpu.
Could it be that what we are seeing is the same as is reported in the mt7915 driver:
EDIT: Others having similar problems here and not present on 23.05.5
Iām currently using a GL-iNet MT6000, but it is essentially a MT7915E, so it should be similar to the RT3200/E8450.
Iām able to get line speed for download (800Mbps) when tested with my iPhone with Speediest.Net apps, when Iām really close to the AP. It looks about right to me since my iPhone max PHY speed is 1200Mbps. With AX router, since max PHY speed is only 866Mbps, my iPhone can only get around 600Mbps on a good day.
My MT6000 is running on a master tree build from around early October 2025.
Are you using snapshot/master or the stable releases?
I prefer snapshot since the mt76 drivers are most current.
Edit: To add on, sometimes turning down the APās TX power might help in signal stability as it might result is a less noisy environment.
Itās been a few months, but I thought Iād follow up on the issue I had since october/november with wifi not working on snapshot. A closed issue on github encouraged me to retry with todayās snapshot. Initially wifi didnāt work, just like before. However, after re-creating my wifi networks on radio2 and radio3 (which look like clones of radio0 and radio1), things now work. Even after a reboot my network comes up. So, hooray I can make it work and I can now be on an up to date software stack. But also: why are there two sets of radios, and why am I obliged to use radio2 and radio3 since some change in october?
Just remove `/etc/config/wireless` file and reboot the device. It will re-create a default configuration for Wi-Fi interfaces.
I have been facing this problem for a long time now (before with 23.05 and now with 24.10). Not even sure if one/both of my E8450's is faulty.
I have a 802.11s wireless trunk running between them. When I test the speed:
root@Main:~# iperf3 -c 192.168.9.2 -i 0 -R
Connecting to host 192.168.9.2, port 5201
Reverse mode, remote host 192.168.9.2 is sending
[ 5] local 192.168.9.1 port 38434 connected to 192.168.9.2 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-10.00 sec 350 MBytes 293 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.01 sec 353 MBytes 296 Mbits/sec 197 sender
[ 5] 0.00-10.00 sec 350 MBytes 293 Mbits/sec receiver
root@Main:~# iperf3 -c 192.168.9.2 -i 0
Connecting to host 192.168.9.2, port 5201
[ 5] local 192.168.9.1 port 39956 connected to 192.168.9.2 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-10.01 sec 187 MBytes 157 Mbits/sec 1170 86.3 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.01 sec 187 MBytes 157 Mbits/sec 1170 sender
[ 5] 0.00-10.01 sec 186 MBytes 156 Mbits/sec receiver
Note the '1170' on Retr....
When I change from TCP to UDP, I get this:
root@Main:~# iperf3 -c 192.168.9.2 -i 0 -u -b 500M
Connecting to host 192.168.9.2, port 5201
[ 5] local 192.168.9.1 port 38068 connected to 192.168.9.2 port 5201
[ ID] Interval Transfer Bitrate Total Datagrams
[ 5] 0.00-10.00 sec 373 MBytes 313 Mbits/sec 270141
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-10.00 sec 373 MBytes 313 Mbits/sec 0.000 ms 0/270141 (0%) sender
[ 5] 0.00-10.01 sec 307 MBytes 257 Mbits/sec 0.085 ms 47930/270139 (18%) receiver
iperf Done.
root@Main:~# iperf3 -c 192.168.9.2 -i 0 -u -b 500M -R
Connecting to host 192.168.9.2, port 5201
Reverse mode, remote host 192.168.9.2 is sending
[ 5] local 192.168.9.1 port 35573 connected to 192.168.9.2 port 5201
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-10.01 sec 397 MBytes 333 Mbits/sec 0.032 ms 702/288249 (0.24%)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-10.01 sec 398 MBytes 334 Mbits/sec 0.000 ms 0/288348 (0%) sender
[ 5] 0.00-10.01 sec 397 MBytes 333 Mbits/sec 0.032 ms 702/288249 (0.24%) receiver
iperf Done.
So it looks as if the pipe allows for 300+ mbps. But somehow there is a lot of data loss especially in one of the two directions.
The problem is, when I do an iperf3 on my mesh node with an outside (internet) server, I get abysmal results:
root@Upper:~# iperf3 -c sgp.proof.ovh.net -p 5201-5210 -R -i 0
Connecting to host sgp.proof.ovh.net, port 5201
Reverse mode, remote host sgp.proof.ovh.net is sending
[ 5] local 192.168.9.2 port 47858 connected to 15.235.182.181 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-10.01 sec 4.38 MBytes 3.67 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.19 sec 5.69 MBytes 4.68 Mbits/sec 26 sender
[ 5] 0.00-10.01 sec 4.38 MBytes 3.67 Mbits/sec receiver
iperf Done.
Compare this with the same iperf3 test done on my mesh gateway:
root@Main:~# iperf3 -c sgp.proof.ovh.net -p 5201-5210 -R -i 0
Connecting to host sgp.proof.ovh.net, port 5201
Reverse mode, remote host sgp.proof.ovh.net is sending
[ 5] local 219.79.31.187 port 48568 connected to 15.235.182.181 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-10.01 sec 102 MBytes 85.5 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.19 sec 105 MBytes 86.3 Mbits/sec 0 sender
[ 5] 0.00-10.01 sec 102 MBytes 85.5 Mbits/sec receiver
iperf Done.
Tried a lot of things (changing channel, changing bandwidth, changing MTU size, etc) none has helped so far.
Any suggestion on how to solve this problem would be very much appreciated.
Did you try using AP-WDS and STA-WDS link instead of 802.11s? The (internal, proprietary) firmware of the MT7915 might not work well with 802.11s, for sure isn't optimized for it and none of the offloading paths are used unless "classic" AP/STA (including 4-addr-mode aka. AP-WDS/STA-WDS) is being used.