IPQ806x NSS Drivers

stock R7800 firmware use same version of NSS drivers ?
with old 3.4 kernel ?

I’m using a newer version of the drivers targeted at Linux 4.4. Not using the drivers from stock firmware. The NSS firmware is also different and I presume newer. I extracted the NSS firmware from the Synology RT2600ac firmware, which is using Linux 4.4.

I understand. I just got excited about it and thought I had to give it a go :wink:

Stock firmware has full routing acceleration (i.e. for both wired and wireless), so getting 100MB/s is expected. Stock firmware crashing the router is not normal tho.

I presume your test with LEDE r4018 is using my firmware build? If so, that version has the QCA shortcut-fe driver installed, which is the fast-path driver to help accelerate routing performance on top of stock linux driver. Using that the R7800 can achieve close to wireline speed, which is why you can get 90MB/s.

For my NSS build, it currently only accelerate wire routing. Wireless routing still not accelerated by the NSS drivers, as the atk10k driver have to be patched to hook into the NSS drivers. This will be tough, as currently there's no available sources that I can use. Likely have to figure it out by reading the NSS drivers sources.

I presume your test with LEDE r4018 is using my firmware build?

Yes, they are amazing. I went a head and tested all of them and all the other versions I could get my hands on from LEDE through to OpenWrt.

Your r4017 version is so far the best in terms of WiFi. It reaches stock performance with around 102 MB/s with my 3x3 adapter and without tweaks.

Stock Lede 17.01.2 and 17.01.5, reach 90 MB/s with performance governor. I'm happy to share all my results if someone is interested. OpenrWrt 18.0.1 won't go above 50 MB/s, no matter how much I tweak.

Stock various 100 MB/s (crashes)

To be exact, connections fail with a decryption error. This is very visible with large file transfers, which makes the AP useless. I've reproduced the behavior on two different R7800s. I've also tested various stock versions and with Voxel's modified stock.

Another nice bug in Linux/OpenWrt kernel :
kernel in few conditions correctly set CPU frequency, but incorrectly set L2 cache / RAM frequency.
Bug in code fir IPQ806x CPU.

For clear math. diff. is very low , but for some memory-hungry tasks - very big, up to 30-45% .
See

Did you tweak also rps / xps?

Can we use SQM / traffic shaping with NSS? Afaik not, so CPU speed / tuning / fixing is still important for avoiding buffer bloat. Also CPU commands NSS? So slowly responding CPU adds latency.

Offtopic:
In my opinion whole QUIC was invented to overcome poorly done/tuned TCP implementations and all latency in network path. They should had just fix the issue, which will partly still affect even QUIC and not try bypass it.

From what I've read, yes. It support traffic shaping. It also comes with a traffic shaping driver as part of the NSS suite of drivers.

In any case, my priority now is to find out what's causing the random spontaneous reboots when the qca-nss-drv driver is loaded. Until this problem is solved, we cannot proceed further. Unfortunately, I haven't the slightest clue where to begin to look. Have been trying many changes ... nothing seems to solve the reboot problem.

I have not yet heard of rps/xps. Do you know of a good reference on how to tweak them? Unfortunately I didn't find any obvious results.

I wonder what changed between lede and the merge back into openwrt. I tested a host of LEDE versions which all performed better than OpenWrt, at least based on how I performed my tests. (A) Wifi - R780- (B) Cable : only forwarding, no NAT, no routing,

It will be intersting to see how NSS behaves and if its even reasonably doable.

I suspect the worst routing performance is due to the Linux kernel, likely due to the Spectre fix.

@quarky
You may try the NSS firmware from PandoraBox https://downloads.pangubox.com/pandorabox/19.01/targets/qualcomm/ipq806x/

Tried. WiFi doesn't work.

https://sourceforge.net/projects/dsgpl/files/Synology%20Router%20GPL%20Source/7742branch/synogpl-7742-ipq806x.tbz/download

cat linux-4.4.x/synoconfigs/Kconfig.network

Does NSS firmware affect ath10k wireless in this case?

The link will only get u the img released on 05 Jan 2019, but it seems to have some problem. I tried another img from them and it runs pretty good in my unit, I can hit my ISP full speed 840mbps/220mbps easily, and my iPhone XS Max can hits 530mbps via 5G

https://downloads.pangubox.com/刷机说明/R7800/PandoraBox-qualcomm-ipq806x-netgear_r7800-2019-01-01-git-3e8866933-squashfs-factory.img

Which version did you try? The specific link you posted? If yes, it’s looks like stock firmware with a custom skin. I conclude that from the bootlog posted.

I just tried the firmware @heidarren posted. It definitely is openwrt but it's using kernel 3.14.79 and compiled against uclibc.

I can confirm I'm able to hit line speeds with my FTTH connection and able to hit 500/500 over WiFi. I checked the load during the speed tests and it barely made a blip in CPU usage.

However there's a bunch of errors/warnings popping up in the system/kernel logs that I'm not sure are serious or not.

18057.463819] [wifi0] FWLOG: [10463365] WAL_DBGID_SECURITY_ENCR_EN (  )
[18057.469280] [wifi0] FWLOG: [10463375] WAL_DBGID_SECURITY_ENCR_EN (  )
[18057.475640] [wifi0] FWLOG: [10463386] WAL_DBGID_SECURITY_ENCR_EN (  )
[18057.482065] [wifi0] FWLOG: [10463396] WAL_DBGID_SECURITY_ENCR_EN (  )
[18057.488488] [wifi0] FWLOG: [10463407] WAL_DBGID_SECURITY_ENCR_EN (  )
[18057.494911] [wifi0] FWLOG: [10463417] WAL_DBGID_SECURITY_ENCR_EN (  )
[18057.501394] [wifi0] FWLOG: [10463429] WAL_DBGID_SECURITY_ENCR_EN (  )
[18057.507760] [wifi0] FWLOG: [10463429] WAL_DBGID_SECURITY_MCAST_KEY_SET ( 0x2 )
[18057.563607] [wifi1] FWLOG: [10462597] WAL_DBGID_SECURITY_ENCR_EN (  )
[18057.569013] [wifi1] FWLOG: [10462608] WAL_DBGID_SECURITY_ENCR_EN (  )
[18057.575427] [wifi1] FWLOG: [10462618] WAL_DBGID_SECURITY_ENCR_EN (  )
[18057.581851] [wifi1] FWLOG: [10462629] WAL_DBGID_SECURITY_ENCR_EN (  )
[18057.588305] [wifi1] FWLOG: [10462639] WAL_DBGID_SECURITY_ENCR_EN (  )
[18057.594698] [wifi1] FWLOG: [10462650] WAL_DBGID_SECURITY_ENCR_EN (  )
[18057.601131] [wifi1] FWLOG: [10462661] WAL_DBGID_SECURITY_ENCR_EN (  )
[18057.607618] [wifi1] FWLOG: [10462671] WAL_DBGID_SECURITY_ENCR_EN (  )
[18057.613968] [wifi1] FWLOG: [10462974] WAL_DBGID_SECURITY_ENCR_EN (  )
[18057.620393] [wifi1] FWLOG: [10462974] WAL_DBGID_SECURITY_MCAST_KEY_SET ( 0x2 )
[18062.450700] not find the FDB entry
[18065.169819] not find the FDB entry
[18066.136717] not find the FDB entry
[18068.148923] not find the FDB entry
[18073.128602] not find the FDB entry
[18082.538603] not find the FDB entry
[18086.167541] not find the FDB entry
[18092.814941

My logs are flooded with that message.image image image

Happy that I'm able to get stock speeds but will probably revert back to your build because of the ancient kernel and unable to build any of my packages.

Can you test usb speed?

[root@R7800:/mnt/sdb3]#/usr/bin/dd if=/dev/zero of=./largefile bs=64k count=1000
1000+0 records in
1000+0 records out
65536000 bytes (66 MB) copied, 0.605103 s, 108 MB/s
[root@R7800:/mnt/sdb3]#/usr/bin/dd if=/dev/zero of=./largefile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 8.59317 s, 125 MB/s
[root@R7800:/mnt/sdb3]#sync && echo 3 > /proc/sys/vm/drop_caches
[root@R7800:/mnt/sdb3]#/usr/bin/dd if=./largefile of=/dev/null bs=8k
131072+0 records in
131072+0 records out
1073741824 bytes (1.1 GB) copied, 4.52066 s, 238 MB/s

Using a SanDisk Extreme USB 3.0 Flash Drive. I'm not sure what type of test you wanted me to run.