Qualcommax NSS Build

Build from your repo for ax3600:

Channel 44, 160 Mhz. Router as Server. Client: Windows 11 + AX1675.

Edit: I noticed Channel 44 produces the best speeds for 5Ghz. Whats the best channel for 2.4 Ghz?

iperf3 -c 192.168.1.1 -R
Connecting to host 192.168.1.1, port 5201
Reverse mode, remote host 192.168.1.1 is sending
[  4] local 192.168.1.65 port 4588 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec  57.2 MBytes   480 Mbits/sec
[  4]   1.00-2.00   sec  55.9 MBytes   468 Mbits/sec
[  4]   2.00-3.00   sec  59.2 MBytes   497 Mbits/sec
[  4]   3.00-4.00   sec  59.4 MBytes   499 Mbits/sec
[  4]   4.00-5.00   sec  58.5 MBytes   491 Mbits/sec
[  4]   5.00-6.00   sec  60.4 MBytes   507 Mbits/sec
[  4]   6.00-7.00   sec  59.6 MBytes   500 Mbits/sec
[  4]   7.00-8.00   sec  59.5 MBytes   499 Mbits/sec
[  4]   8.00-9.00   sec  59.5 MBytes   500 Mbits/sec
[  4]   9.00-10.00  sec  59.2 MBytes   496 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   590 MBytes   495 Mbits/sec    0             sender
[  4]   0.00-10.00  sec   589 MBytes   494 Mbits/sec                  receiver

iperf Done.
iperf3 -c 192.168.1.1
Connecting to host 192.168.1.1, port 5201
[  4] local 192.168.1.65 port 3951 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec  84.8 MBytes   710 Mbits/sec
[  4]   1.00-2.00   sec  87.6 MBytes   736 Mbits/sec
[  4]   2.00-3.00   sec  86.6 MBytes   727 Mbits/sec
[  4]   3.00-4.00   sec  88.1 MBytes   739 Mbits/sec
[  4]   4.00-5.00   sec  87.6 MBytes   734 Mbits/sec
[  4]   5.00-6.00   sec  86.2 MBytes   724 Mbits/sec
[  4]   6.00-7.00   sec  83.9 MBytes   702 Mbits/sec
[  4]   7.00-8.00   sec  86.6 MBytes   727 Mbits/sec
[  4]   8.00-9.00   sec  87.2 MBytes   733 Mbits/sec
[  4]   9.00-10.00  sec  87.5 MBytes   733 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.00  sec   866 MBytes   726 Mbits/sec                  sender
[  4]   0.00-10.00  sec   866 MBytes   726 Mbits/sec                  receiver

iperf Done.
1 Like

I tried your build. some devices have problems connecting unless it's encryption mode is set to 'none'. wifi offload working, zero to minimal cpu load on busy wifi traffic.

Edit: tried factory resetting the router (before, I dirty flashed it to your builds), and used your workarounds for dhcp problems.
now my all devices can connect on a wifi with mixed wpa2/wpa3 encryption. thanks

Do you mean wifi wireless encryption? If so, try disabling 802.11W Management Frame Protection. I had some issues with it even set to optional.

Hi @qosmio

Reviewing the "qca-nss-pbuf" script there is a part that is not being applied, since the package is not installed by default in openwrt

Link: https://github.com/qosmio/openwrt-ipq/blob/qualcommax-6.1-nss-wifi/package/kernel/mac80211/files/qca-nss-pbuf.init#L135

Fix: Adding tc-tiny as a dependency would be enough to fix it

I consider this commit can now be reverted since by passing all the traffic through NSS these SSL failures no longer occur

Link: https://github.com/qosmio/nss-packages/commit/e4447f31973d52ec21d65c109a09ef659424af17

Regards, Agustin

1 Like

Hi @qosmio

In my scenario that I use NAT Loopabck I need to enable the "disable_bridge_filtering" option to be able to recover connectivity otherwise I have timeout when I try to reach the services over the WAN.

Do you know what exactly could be happening? That was a solution that @bitthief and I came up with, but I'm pretty sure it shouldn't work like that, since we're disabling part of ECM.

Link: https://github.com/qosmio/nss-packages/blob/NSS-12.4-K6.1/qca-nss-ecm/files/qca-nss-ecm.uci#L5 this in my build is set to 1.

Regards, Agustin

Can we get support added for Yuncore AX1750 its ipq6018, I have the dts file for it from QSDK from Yuncore

was that directed at me ??? probably need some help with the dts file for it...

image

Is this result correct?

Hi boys,

This version include NSS offload for WiFi

I am redo the repos over the latest commit from OpenWRT.

Changelog (include upstream of OpenWRT):

  • Updated the kernel to 6.1.79
  • Added the package tc-full for fix the "boost performance" of the script qca-nss-pbuf
  • Disabled WiFi Mesh via NSS, because it still doesn't work.

Notes:

Sources:

BUILDED: https://github.com/AgustinLorenzo/openwrt/releases/tag/ipq807x-nsswifi-2024-02-25-1611

NOTE: Now I am only compiling for the AX3600, AX6 and AX9000 and Dynalink DL-WRX36 and Buffalo WXR-5950AX12 and QNAP QHora-301W devices and Netgear RAX120v2, if anyone has used my versions with other devices, tell me and I will add them again.

Regards, Agustin

6 Likes

I still see high CPU usage when performing a speedtest over Wi-Fi. Results are inconsistent (my plan is 1000/300 PPPoE, actual 940/312), DL oscillates between 700 and 900 Mbps, while UL tops at 300 but struggles to keep it and often drops to 200 or so.

I've disabled sw/hw offload and packet steering and added options mac80211 nss_redirect=1 to /etc/modules.conf. Other experiments:

root@ax3600:~# cat /sys/kernel/debug/qca-nss-drv/stats/cpu_load_ubi
CPU Utilization:
Note: Averaged over 1 second

Core 0:
Min     Avg     Max
 3%      3%      52%

root@ax3600:~# for a in /sys/m*/ath11k/p*/*; do echo "${a##*/}=$(cat $a)"; done
cold_boot_cal=Y
crypto_mode=0
debug_mask=0
frame_mode=2
ftm_mode=N

I should mention I'm using 160 MHz channels, fixed on ch36 since I still have some very weird bug with ch100 being unreliable, and my devices can't make use of the entire ch163 and sync at 80 MHz.

I'm on @dimfish's latest build, I guess I'm missing something, I just don't know what :sweat_smile:

Thank you everybody for your efforts, this is a heck of a challenge and you're winning it! :trophy:

btop


EDIT: I think this may be a bug with dimfish build as I've flashed latest @AgustinLorenzo's build (just a few minutes before my post) and everything is working (except I encountered the usual DHCP bug :stuck_out_tongue_winking_eye:)

root@ax3600:~# cat /sys/kernel/debug/qca-nss-drv/stats/cpu_load_ubi
CPU Utilization:
Note: Averaged over 1 second

Core 0:
Min     Avg     Max
 6%      6%      6%

root@ax3600:~# for a in /sys/m*/ath11k/p*/*; do echo "${a##*/}=$(cat $a)"; done
cold_boot_cal=Y
color_collision_detect=0
crypto_mode=0
debug_mask=0
frame_mode=2
ftm_mode=N
nss_offload=1

Is the tc-tiny enough to run that script? Thanks

trying to bring up a Yuncore AX1750 ... stops with the following and then reboots/resets

mtdids not defined, no default present
Using machid 0x8030000 from environment


Starting kernel ...

Jumping to AARCH64 kernel via monitor

Hi @hingbong

Yeah, with tc-tiny is enough, since space is not a problem right now, I put the full package

Regards, Agustin

Elaborating a little bit on my previous post just in case it's useful.

  • @dimfish's build has mac80211 nss_redirect=1 in /etc/modules.d/mac80211
  • @AgustinLorenzo's build has ath11k nss_offload=1 frame_mode=2 in /etc/modules.d/ath11k

Besides, Agustin's build also has:

  • ath10k_pci in /etc/modules.d/ath10k-ct-smallbuffers
  • ath11k_ahb in /etc/modules.d/ath11k-ahb

I guess this subtle configuration difference may hinder NSS from working properly. Also, as previously stated, disabling NSS on ath10k (ie. IoT antenna) will help save memory in scenarios with many IoT clients connected, I look forward to see this configuration endorsed across different builds :slight_smile:

Test mine as well please. Since I built directly from Qosmios repo.

on @qosmio latest commit with tc-tiny, still got oom with pbuf auto, I have 4 to 5 2.4Ghz devices and 3 to 4 5Ghz devices.
On 2.4Ghz, it's set to be psk-mixed, and on 5Ghz it's set to be sae without connecting issues.

This build seems to be working well for me. I get my full speed of just over 2Gb symmetrical. I am using the QNAP 301W and it works great. Keep up the good work.

On another note...
Could you please add kmod-usb-printer to your builds in the future as the kernel is modified I cannot install it via opkg. Also you might want to include luci-app-p910nd to go with it. They enable usb printing over the network via plugging in a printer to the routers usb port.

Thanks

I tested your version, thank you.
As far as the cable connection is concerned, I manage to get 1 gigabit connection, but in wifi I have trouble exceeding 300 mb/s. Is there a specific configuration to apply? There are 3 radios in the wifi configuration:

Qualcomm Atheros QCA9887 802.11ac/b/g/n
Qualcomm Atheros IPQ8074 802.11ac/ax/n
Qualcomm Atheros IPQ8074 802.11ax/b/g/n

but no IPQ807X

You should use 5Ghz AX with 160Mhz bandwidth and set channel to 44. With this configuration I get about 750mb/s.

1 Like