I've just got a R7800, and I promptly put OpenWrt 19.07.2 on it. From a 15" 2019 MacBook Pro on 5 GHz I can do an iperf3 test sending data to a wired machine on my LAN at ~750 Mb/s, which is great!
However, going the other direction, from that same wired LAN server to my MacBook Pro on 5 GHz using iperf3, I only get about 330 Mb/s.
When I reflash the R7800 with the stock Netgear firmware, I get easily 700 Mb/s going from wired → wireless under the same conditions—same laptop, all equipment in the same position, same network adapters, same cabling, same software, etc. (Wireless → wired remains fast on the stock firmware, still in the ~750 Mb/s range.)
To confirm my iperf3 LAN findings, I also tested with speedtest.net. I was able to confirm much slower wired → wireless ("download") on OpenWrt: ~300 Mb/s download with OpenWrt, versus 500+ Mb/s download with stock firmware.
Does anyone have any suggestions on how I can get OpenWrt 5 GHz wireless → wired speed to match the stock firmware? This Netgear firmware is scary and I'd much rather be running OpenWrt.
Things I have tried to improve the wired → wireless on 5 GHz:
- Using the
performancegovernor as shown (for example) at #2 here (though I think perhaps the switch to 800 MHz then back to 1.7 GHz is unnecessary in 19.07.2)
- ethtool changes to
rx-usecs, also as in prior link (I think these are meant to affect latency, not bandwidth, but I could be wrong)
- Manually setting
smp_affinityfor eth0 and eth1 to second CPU
- Running irqbalance
- Using the latest ath10k CT firmware,
firmware-5.binand rebooted, confirmed expected firmware loaded via dmesg)
- Using the latest ath10k CT HTT firmware
- Changing the
xps_cpusvalues for all devices and queues (tried 2 and 3 for all, separately, and did it via SSH after boot, so after
- Tried hnyman's latest master build
I have run htop while doing my tests, and max CPU usage on any core is typically 50–80% at most. (When testing wireless sending data to wired with iperf3, where I get ~750 Mb/s, I do see one core—just one—getting into the 80%–90% softirq usage range, which I take to mean that the faster wireless → wired transfer is CPU-bound, but wired → wireless is not CPU-bound.)
I did test with another MacBook Pro, a 15" 2013 Retina I had, which was sitting about one foot diagonally left and upwards of the 2019 MBP. This machine was able to get higher speeds, in the range of maybe ~450 Mb/s iperf3 wireless → wired, but of course this is still less than 700 Mb/s. I have no explanation for the difference.
I have configured the R7800 as a "dumb AP":
- The firewall, miniupnpd, udhcpd, and dnsmasq services are all turned off.
- VLAN is turned off in the switch settings.
- Wireless is bridged to wired.
- There should be no NAT going on at all, and IIRC iptables was empty, both the filter and nat tables.
- The WAN Ethernet port is not connected.
- I did turn on software flow offloading, which I don't think matters for bridging.
- I turned off legacy data rates for wireless.
- I have made sure to log out of LuCI while testing, in case its refreshing would interfere with wireless performance somehow.
- Both the 2.4 GHz and 5 GHz wireless radios are turned on, with different ESSIDs, if that matters.
- Encryption was set to WPA2-PSK CCMP.
Other than the settings I've mentioned, I left most others at their defaults, such as 80 MHz channel width on 5 GHz. Region is set for device default, which is (AFAIK, at least) US.
The one thing I can think of that I might have screwed up is the 5 GHz wireless channel. I might have left it to "auto" in some cases, and then 36 and/or 48 in other tests. I guess I can go back and test that, but it would be a PITA. (If someone knows "yeah stock is going to be faster than OpenWrt in this case, nothing you can do about it", then I'm grateful for you saving me another hour of reflashing, reconfiguring, testing, etc.)
In case it matters, if I go wired Ethernet on my MacBook, plugged into the R7800, I get near gigabit speeds (~940 Mb/s) in both directions, which is exactly as expected.