Just retested, my setup is using wifi as wwan and repeater, wwan max speed is +-330mbps
ath10k is the worst, even iperf inside my network is limitted to +-50mbps
ath10k-ct is not limiting in iperf (+-350mbps), but is limiting in speedtest.net or fast.com (+-70mbps).
openwrt19, is not limiting anything, speedtest.net or fast.com(+-200bmps).
any ideas? this happenned in both v21 and v22 versions.
If possible, try your v21 or v22 speed tests with a client wired to the AP. Also, try repeating the wireless speed test but ensure one and only one client is connected to the 5GHz band. My own observations are if more than one client is connected on the same wifi band, I can see significant variation in throughput even if the other clients are not doing much.
I gave up on the non ct ath10k (for qca9980) a long time ago.
The biggest difference I see between 19 and 21 or 22 is the kernel went from 4.14 to 5.4. Kernels 5.4+ are good for me in terms of overall stability (AP uptimes > 100+ days). However, during that transition is also when I noticed a degradation in "wifi quality." Unfortunately, about this time is when I think ATF/AQL was introduced (which is intended to improved "quality"). I can't (yet) pinpoint what the root cause is for the change in wifi behavior - it could just be a combination of how my family uses wifi now and changes in how I assess "quality."
FWIW I'm willing to trade off throughput for "quality" (i.e. low bufferbloat - stable video conferencing).
Short term, I don't think there is much you can do. I'm guessing ditching the wireless bridge and connecting your AP via a wire is not an option you want.
For the purpose of a test, you could rearrange your AP's such that the r7500v2 is connected to your isp via wire, temporarily turn off the bridge, and test just using 5 GHz as an AP only. But this will only confirm that post v19, wifi throughput variation increases (I call it throughput jitter).
You could also try the v19 ath10k-ct firmware on v21 or v22. If there is an improvement with v19 ath10k-ct firmeware, you can ask for assistance from the ct dev but you will likely have to spend a fair amount of time working with them.
EDIT: you can also try disabling AQL on v21 or v22
Speed tests with the router as the server or the client for iperf? Using the router as the iperf server or client will lead to inaccurate numbers when trying to test max 5ghz or max wired speeds. Instead test it with a wired computer as the iperf server and a 5ghz wireless client (iperf client).
Wireless bridges insert latency and is the biggest source of your performance degradation. Any way you can wire to the source?
If there is any way to fish a wire or move the access point so that you could fish a wire - it is well well well well worth it. I hired help and paid for less than 2 hours of electrician labor (tough to fish lines by yourself!) and I’m able to get full performance for all my APs.
Master is always the most cutting edge “trunk”, followed by the 22.03 branch, and 21.02 branch.
I updated the naming scheme for all the links above so the click counts got reset a couple days ago. The click counts have been reset several times as I make sure the build has the latest stuff (click counts don’t matter). Go with the branch or trunk that best aligns with your goals - cutting edge vs more tried and true. There are pros and cons to both. I like cutting edge so I’m always on master.
I am using your tree (openwrt-21.02-nss-qsdk10.0 branch rebased to OpenWrt upstream) to build my custom firmware for my R7800, but I currently encountering some issues with my custom build, and I want to figure out why and try to solve it. Any help is appreciated!
Issues encountered
after flashing it, the kernel log is keep being spammed by the lines shown below[1].
Wifi sometimes stops its transmission - it keeps connected but pinging and performing network operations does not work for a few seconds. Not sure if it is related to NSS, but I will post this anyway.
Compared to non-NSS build, Wired Ethernet throughput is way lower (~800Mbps compared to 940Mbps) using iperf3. I tested it with a Raspberry Pi 4, server runs at the router side Have tested with another device, the router can now handle full gigabit with zero CPU.
What I am doing and have done for this router
I am using -ct driver (I have tested non-ct driver and firmware) and performance CPU governor (CPU maxed at 1725MHz).
I am using 5GHz WiFi for both WWAN and AP, not sure if the second issue is related to NSS. Tried disabling AQL but no effect.
I have tested your build from the git repo, and using both WWAN and AP on 5GHz, there is no issue and no repeating lines. I need the iptables-mod-tproxy package but it conflicts because the kernel does not like it, so I can not use your build for me.
With my build, I have enforced 800MHz NSS core frequency by echoing it and cated it (you can see the kernel logs[2]), but these lines keep spamming. I also disabled AQL but no effect whatsoever.
Notes
[1] the repeating lines:
[ 183.669431] net_ratelimit: 24 callbacks suppressed
[ 183.669435] wlan0-1: NSS TX failed with error[8]: NSS_TX_FAILURE_NOT_ENABLED
[ 183.706858] wlan0: NSS TX failed with error[8]: NSS_TX_FAILURE_NOT_ENABLED
[ 183.790479] wlan0: NSS TX failed with error[8]: NSS_TX_FAILURE_NOT_ENABLED
[ 183.838664] wlan0-1: NSS TX failed with error[8]: NSS_TX_FAILURE_NOT_ENABLED
[ 183.950342] wlan0-1: NSS TX failed with error[8]: NSS_TX_FAILURE_NOT_ENABLED
[ 184.043845] wlan0-1: NSS TX failed with error[8]: NSS_TX_FAILURE_NOT_ENABLED
[ 184.218573] wlan0-1: NSS TX failed with error[8]: NSS_TX_FAILURE_NOT_ENABLED
[ 184.262553] wlan0: NSS TX failed with error[8]: NSS_TX_FAILURE_NOT_ENABLED
[ 184.327766] wlan0-1: NSS TX failed with error[8]: NSS_TX_FAILURE_NOT_ENABLED
[ 184.327799] wlan0-1: NSS TX failed with error[8]: NSS_TX_FAILURE_NOT_ENABLED
I think that's because NSS acceleration isn't enabled. You probably missed something in your custom build.
EDIT: I don't see ECM being loaded in your kernel log.
Hi,
Yes, I did check that ecm is not being loaded - I disabled NSS for wireless by echo 0 > /sys/module/mac80211/parameters/is_nss_enable for now, I will reenable it now and check if loading ecm works. Thanks!
EDIT: Unfortunately loading ECM does not work out. I reenabled by echo 1 and restarted network
I looked at qca-nss-ecm service script, it looks like there are something missing. ecm kmod does exist, but it can not load by insmod, by adding an entry in /etc/modules.d/ it can be modprobe'd after a depmod.