IPQ806x NSS Drivers

Are you sure the drv is doing the same?
From what I can see, the normal function reschedule the packet to be handled...
The callback function overwrite that and just send the packet in the normal way... That I really think it's better since if it was rejected, it's invalid, if the nss queue is full then it's not that bad that also the cpu are used to handle packet.

Am I wrong?


Anyway for everyone else... the new changes should improve wifi traffic, most of the improvement in upload. (in theory the workqueue implementation should use both core to send packet to nss and use a queue to handle the packet to send) (it's very VERY similar to quarky implementation and also mimics the current implementation of the driver that try to send packets in bulk)

(tl;dr very similar to quaky and try to address the slow of the nss forward by queue the packet without locking the mac80211 driver)

Loaded the experimental wifi and latest NSS simplification commits. Rebased off master (was current up until just before the latest 5.4.72 kernel update).

R7800 doesn’t fully boot (flashing white light, nobody is home). Saved via tftp with my previous 20201019 build.

Don’t have any logs... not tremendously useful for you. For some reason the kernel is not liking one of the recent commits.

2 Likes

Don’t think any approach is right or wrong. It’ll work. Just need to test and get some empirical measurements to decide which is more efficient.

Are you sure it's not related to recent changes to openwrt?
yep... seems caused by this https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=2812ea3acb88c7e3649c912d6ad761bf8818fc51

Must be because of something in master... i got the same flashing light today, had to do the tftp method to go back to an earlier master build.
Someone should alert the devs, I have no serial access to the router so I can't tell what's wrong.

Indeed

@Ansuel Hi, Ansel. I'm sorry to disturb you.
Can you fix the options that cannot be built in qca-nss-clients?(kmod-qca-nss-drv-capwapmgr,kmod-qca-nss-drv-map-t,mod-qca-nss-drv-pptp,kmod-qca-nss-drv-pvxlanmgr)

That makes sense. They just removed that commit from master. I’ll rebase. :sunglasses:

OpenWrt SNAPSHOT r14738+69
the router booted and, by now, i can see no difference in wifi performance or cpu usage (i still haven't tried 160MHz channel width).
My problem is that i'm getting a "Error No related RPC reply" trying to access luci under nginx.
for sure not related with nss, but a problem for me

lol that was not my fault, why the hell the ubus socket was moved from /var/run/ubus.sock to /var/run/**ubus/**ubus.sock ?? :d

pls lets not pollute this topic with too much offtopic... a pr to fix the problems is already open so just wait or fix it yourself

1 Like

sorry you are right. just fixed in nginx conf.
Btw, the new version seems as good as previous one in normal usage, sadly with just top and my line (100Mbps upload) i can't check anything special.
Do you need some specific test?
thanks, amazing work

just need stability testing (aka use as you should and check if something wrong happen)

Compiled the code this morning (with the 5.4.72 kernel) loaded it up and I can tell you this is so far the fastest I've seen with my laptop over the wifi (sirq was 49 for download and 43 for upload):

The laptop was about 4ft (~1.2m) from the router.

A more usual result was like this (sirq 46% down / 46% up)

Still the fastest I've ever seen from this equipment.

For reference, this is the wired test result (sirq <5%):

All the test performed with speedtest_net tools to the same area/provider. This might add some inaccuracy, but I did multiple tests and they were pretty close.

The build seems to be stable - in the past multiple tests over wifi would crash the router.
The tests were occasionally showing fluctuation in the performance, but that might be just normal congestion, etc.

All in all, FANTASTIC job! Thank you!

1 Like

it seems high to me.
I could not see anything over 25% with this wifi download speedtest

sirq at 49% is just one core fully used, i think

1 Like

these data are from ath10k-ct or normal?

in my case, i had to switch to CT version to get this performance
with normal drivers i could not get anything from 160MHz channel width and i have not clients fast enough with 80MHz channel
but i saw now also ct seems good with iot devices, i could stay with them..

How do I know if it is CT or normal driver ?

if you didn't change... it's ct for sure

These are the CT modules I see in the .config file:

CONFIG_DEFAULT_ath10k-firmware-qca9984-ct=y
CONFIG_DEFAULT_kmod-ath10k-ct=y
CONFIG_PACKAGE_ath10k-firmware-qca9984-ct=y
CONFIG_PACKAGE_kmod-nf-reject=y
CONFIG_PACKAGE_kmod-ath10k-ct=y

do you have also this module?

CONFIG_PACKAGE_MAC80211_NSS_SUPPORT=y