A question: does NAT offload support IPv6? If so, how to enable? I need this since my school has a weird network structure.🥲
It should already work as there is IPv6 frontend enabled
Unfortunately my lan attached devices are horribly slow with the current builds and I need to get back to stock. What is the actual procedure from within OpenWrt to get back to stock?
You are probably missing NSS offloading packages as this thing can route 1G NAT without any issues.
If you want to get back to stock, then simply flash the stock FW with ubiformat to both rootfs partitions, I would suggest using xqrepacked FW to preserve SSH, and have the call back home things disabled.
Make sure to enable:
Network device
kmod-qca-nss-drv
kmod-qca-nss-dp
kmod-qca-nss-drv-pppoe (optional?)
kmod-qca-ssdk-nohnat
Network support
kmod-qca-nss-ecm
Firmware
nss-firmware-ipq8074
The NATing performance is pretty decent, I am able to max my 500Mbit/s connection. Before selecting those modules, I was limited to about 400Mbit/s.
I've only been running this for a few hours, so it's far too early to give proper feedback.
I can confirm that the European wireless regulatory data is messed up (e.g., cannot use channels above 11 in the 2.4Ghz). I also cannot use the 160Mhz channels in 5Ghz; I am assuming the issue is related, probably affecting the DFS.
I have two AX3600, one woks as the main router, while the other is just an AP. The system load is always near 1.00 in the main router, while the one that works just as an AP is near 0.00.
EDIT: I also did sysupgrade to flash the build with NSS enabled and it all went fine. Amazing work so far!
PPoE is optional
Thanks for reminding me about the 1.0 load, that is due to NSS DRV polling statistics using non interruptable delays.
That can be easily solved, but I forgot about it completely.
Yeah, regulatory DB inside of the ath11k firmware is out of date, I have not found a solution for that.
Thanks a lot, unfortunately speed is still slow. I will test it with the stock firmware, maybe the cause is not OpenWrt but some stupid issue with my network storage...
thanks! I flashed it but it still boots up OpenWrt, probably I have to tell the system to boot from the other partition? How can I do this from within OpenWrt?
Like I said, flash it to both rootfs partitions.
Ideally from OpenWrt initramfs, then after reboot it will boot from one, format the overlay etc.
Check the current boot partition:
root@AX3600:~# fw_printenv flag_boot_rootfs
flag_boot_rootfs=1
then switch to the other:
fw_setenv flag_last_success 0
fw_setenv flag_boot_rootfs 0
worked - thx!
transfer speed to my network storage is unfortunately much better with stock (nearly 100 MB/sec reading), while it was 70 MB/ with the the current build. I was wondering whether I have to enable the qss stuff somewhere in the config??
I also got this with dmesg:
[ 7.860606] ffffffc00892f680: set sdma ffffff80030adb00
[ 7.862379] ffffffc00892f680: meminfo init succeed
[ 7.887562] qca-nss 39400000.nss: Direct firmware load for qca-nss1.bin failed with error -2
[ 7.887602] qca-nss 39400000.nss: Falling back to sysfs fallback for: qca-nss1.bin
[ 7.905362] node size 2 # items 4
[ 7.905397] memory: 40000000 536870912 (avl 394989568) items 4 active_cores 2
[ 7.907693] addr/size storage words 2 2 # words 4 in DTS, ddr size 1000000
[ 7.914791] ffffffc00892f680: nss core 0 booted successfully
[ 7.970180] nss_driver - fw of size 291560 bytes copied to load addr: 40800000, nss_id : 1
[ 7.971206] Supported Frequencies -
[ 7.971214] 187.2 MHz
[ 7.977361] 748.8 MHz
[ 7.981176] 1.4976 GHz
my router is an AX6 ...
Very sorry, just realized that enabling ecm is bad for performance (try doing a "rmmod ecm" when running OpenWRT to check that).
This is probably the culprit:
Network support
kmod-qca-nss-ecm (should be disabled?)
(many thanks to @dchard, who did all that testing in May)
That makes no sense as ECM is what enables offloading
okidoki, will give it another try later
I am on a build from 3 days ago, and LAN speeds are OK. Must be a local issue at him.
C:\Users\Administrator\Desktop\Iperf_3.9>iperf3.exe -c 192.168.2.200
Connecting to host 192.168.2.200, port 5201
[ 5] local 192.168.2.2 port 51018 connected to 192.168.2.200 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 112 MBytes 937 Mbits/sec
[ 5] 1.00-2.00 sec 111 MBytes 931 Mbits/sec
[ 5] 2.00-3.00 sec 111 MBytes 931 Mbits/sec
[ 5] 3.00-4.00 sec 110 MBytes 922 Mbits/sec
[ 5] 4.00-5.00 sec 111 MBytes 930 Mbits/sec
[ 5] 5.00-6.00 sec 110 MBytes 921 Mbits/sec
[ 5] 6.00-7.00 sec 111 MBytes 932 Mbits/sec
[ 5] 7.00-8.00 sec 110 MBytes 921 Mbits/sec
[ 5] 8.00-9.00 sec 110 MBytes 921 Mbits/sec
[ 5] 9.00-10.00 sec 111 MBytes 931 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 1.08 GBytes 928 Mbits/sec sender
[ 5] 0.00-10.05 sec 1.08 GBytes 922 Mbits/sec receiver
iperf Done.
C:\Users\Administrator\Desktop\Iperf_3.9>iperf3.exe -c 192.168.2.200 -R
Connecting to host 192.168.2.200, port 5201
Reverse mode, remote host 192.168.2.200 is sending
[ 5] local 192.168.2.2 port 51027 connected to 192.168.2.200 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 113 MBytes 951 Mbits/sec
[ 5] 1.00-2.00 sec 113 MBytes 949 Mbits/sec
[ 5] 2.00-3.00 sec 112 MBytes 940 Mbits/sec
[ 5] 3.00-4.00 sec 113 MBytes 949 Mbits/sec
[ 5] 4.00-5.00 sec 113 MBytes 949 Mbits/sec
[ 5] 5.00-6.00 sec 112 MBytes 940 Mbits/sec
[ 5] 6.00-7.00 sec 112 MBytes 940 Mbits/sec
[ 5] 7.00-8.00 sec 113 MBytes 949 Mbits/sec
[ 5] 8.00-9.00 sec 113 MBytes 949 Mbits/sec
[ 5] 9.00-10.00 sec 113 MBytes 949 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.06 sec 1.10 GBytes 943 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 1.10 GBytes 947 Mbits/sec receiver
The only issue is really the leak with ath11k
I don't know why disabling ECM is performing better here, but even with ECM I am not seeing acceleration in the TX path of the nss-drv in one of my AX3600s. The most significant difference in the "problematic unit" is that I have configured two bridges, and one of the interfaces (eth3) is in br-new instead br-lan (along with wlan0). The other AX3600 is showing TX as expected.
I do admit that (in my case) I am not doing a proper LAN-LAN measurement (e.g., using iperf with two wired computers), but rather LAN-WLAN1; that introduces the extra variable that maybe the issue is with the radio and not the LAN performance (I'll have to test that later).
Nevertheless, enabling the ECM reproducibly lowers my transfers speeds to about 50MB/s (in the "problematic unit"), while disabling ECM (through rmmod) immediatly doubles my transfer speed to over 100MB/s (as is usually achievable in my location with my AX210 card). Units are MB/s because I'm measuring the goodput of a large file transfer from my NAS.
root@AX3600:~# cat /sys/kernel/debug/qca-nss-drv/stats/ipv4
________________________________________________________________________________
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< IPV4 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
________________________________________________________________________________
ipv4_rx_pkts = 14062060 common
ipv4_rx_byts = 20298325314 common
ipv4_tx_pkts = 0 common
ipv4_tx_byts = 0 common
ipv4_rx_queue[0]_drops = 0 drop
ipv4_rx_queue[1]_drops = 0 drop
ipv4_rx_queue[2]_drops = 0 drop
ipv4_rx_queue[3]_drops = 0 drop
Hm... It seems you are correct:
________________________________________________________________________________
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< IPV4 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
________________________________________________________________________________
ipv4_rx_pkts = 27727893 common
ipv4_rx_byts = 24408000066 common
ipv4_tx_pkts = 0 common
ipv4_tx_byts = 0 common
ipv4_rx_queue[0]_drops = 0 drop
ipv4_rx_queue[1]_drops = 0 drop
ipv4_rx_queue[2]_drops = 0 drop
ipv4_rx_queue[3]_drops = 0 drop
And I also see much higher CPU loads during LAN-LAN (wired) iperf3 tests then before...
MOD: as well as during PPPoE speedtests... Something is definitely not right. @robimarko do you have any idea what could this be? All of this worked fine before with minimal CPU load.
PPPoE stats:
root@XAX6:~# cat /sys/kernel/debug/qca-nss-drv/stats/pppoe
#pppoe base node stats start
pppoe_rx_packets = 11053678 common
pppoe_rx_bytes = 6543668207 common
pppoe_tx_packets = 0 common
pppoe_tx_bytes = 0 common
pppoe_rx_dropped[0] = 0 drop
pppoe_rx_dropped[1] = 0 drop
pppoe_rx_dropped[2] = 0 drop
pppoe_rx_dropped[3] = 0 drop
Both tx and rx worked before thats for sure.
btw ECM doesn't work for me.
It crashes the router as soon as the pppoe connection is up.