Ipq806x NSS build (Netgear R7800 / TP-Link C2600 / Linksys EA8500)

Yep 21.02 is on 5.4

there is really some kind of problem with the DNS, at least in my case, it is as if the service takes time to be available, and chrome shows the error of dns probe, or bad configuration. The same my configuration is corrupt after using it from previous versions, to see if I have time and I do it by hand again, from scratch.

and reboots, passing a lot of data from a wired PC to a wired NAS, reboots the router.

Hey, just tried the latest 21.02 NSS build. It finally helped me break the ~600mbit barrier I seemed to have on Hnyman build (I'm on gigabit line). Interestingly, this is only the case for downloads though. Upload is way lower now (only 200mbit). Any ideas what might be causing this, how to fix?

EDIT: Never mind. Turns out the server I was testing it was the limiting factor. Changed servers and got line speed down/up. Thanks for this great build!

1 Like

i think we are all waiting for some genius like you to make the magic and take ipq806x NSS on 5.10 :slight_smile: weren't you trying to "unify" 806 and 807 nss stuffs? i assume this is not that easy, sadly :frowning:

I got a little bit busy with exams and other project :frowning:
Currently i'm checking if I can add support for qca8k offload driver (should be supported by ath79 and ipq40xx) (the hnat feature)
Honestly i'm using 5.10 with the qsdk11 nss firmware from a long time. I just had to revert an ipv6 patch to make it work. Never had time to polish and clean all the piece and hoped others helped me with that.

So it all a bit stuck, the nss repo from robi also have a pr to add support for ipq806x.
Sadly this is not currently my priority as I want good support for qca8k first so we can drop the legacy swconfig driver.

4 Likes

oh for sure i did not mean to push you :slight_smile:
but on the other side it seems (but i can be wrong) that also IPQ807 support is still not good enough (well, i'd not sell my 806 for a 807 at the moment..) so what we have is still the 806.. or maybe i misinterpreted the big roby's topic on 807 (memory leakage and so on..)
i'm totally UNABLE to touch a piece of driver, but if you have been using a 806 with 5.10 it seems we have an hope :slight_smile:
are you on 5.10 AND DSA? well this is amazing!

No, no nss+dsa but that is possible... someone needs to do some work on the gmac driver to permit dsa use.
But i'm using an image with 5.10 and nss...

I think the current problem with this project and the other one(unified nss) is that they are a bit incompatible and this has to sync with the unified one with the new patch and stuff. So some rework is needed with the new implementation (and with implementation i mean repo and split patch)

1 Like

Hi! I've now installed this firmware on my R7800. Works super on gigabit fiber! My dorm got quite a special setup, where I can only ask for one /128 ipv6 address, any more and the port resets. I've tried to get NAT66 running using the wiki with a clean install. It works fine on hnyman's build, but not on this. I get some connection and I'm able to ping google and other sites from my pc, but trying to connect using http(s) doesn't work. The browser tries and tries, until I get some "connection reset" error. I've tried with both master and stable. Love what you guys do here. - Carl

Hello friends, to prove that the problem I have (I start the PCs by cables and I do not have internet, if I can enter the local IPs, but not Internet or router IP, DNS problem), I have changed to tplink 1043nd, and the problem is solved, so it's not my windows pc's problems. the case that the configuration that I use in both routers is the same, since the environment is the same. It seems that something is blocked in the router of the wired part and the resolution of domains. Can I upload the configuration data and someone help me figure out the problem? It seems that it only happens to me, which is not something general, so it will surely be some wrong configuration. Thanks!

[image]

EDIT I think my r7800 has died, it also happens to me with original firmware, my pc stops having internet .... I put 1043nd and it works perfectly .... I have read about problems with the nand, but these are not these symptoms.

I've got a compiling nss core patch for kernel 5.10 (qsdk10.0 drivers). I eliminated some of the additional patches and I'm just focused on trying to get kernel 5.10 to work with basic nss offloading. The commits aren't pretty....gmac needs a patch to work but otherwise I'm kinda ~close (linux compiles, gmac package doesn't compile in its current form). If you have any spare time and have any pointers I'd love your input on the patches (think I've got the basic ones in there) / gmac patch needed for kernel 5.10? / .dts changes :grin:

repo:

patches:

.dts changes:

1 Like

@ACwifidude what problem are you having with the gmac patch? Yes it's needed for the offload part.

Reading through the build log this seems to be the most significant parts of the build log (don't know if it is that helpful, I've reviewed the files involved and don't understand the errors fully):

/home/HTPC/OpenWRT/NSSMaster2/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-gmac-9b74deef/ipq806x/nss_gmac_dev.c: In function 'nss_gmac_attach':
/home/HTPC/OpenWRT/NSSMaster2/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-gmac-9b74deef/ipq806x/nss_gmac_dev.c:1588:29: error: implicit declaration of function 'ioremap_nocache'; did you mean 'ioremap_cache'? [-Werror=implicit-function-declaration]
 1588 |         gmacdev->mac_base = ioremap_nocache(reg_base,
      |                             ^~~~~~~~~~~~~~~
      |                             ioremap_cache
/home/HTPC/OpenWRT/NSSMaster2/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-gmac-9b74deef/ipq806x/nss_gmac_dev.c:1588:27: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
 1588 |         gmacdev->mac_base = ioremap_nocache(reg_base,
      |                           ^
make[6]: *** [scripts/Makefile.build:280: /home/HTPC/OpenWRT/NSSMaster2/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-gmac-9b74deef/ipq806x/nss_gmac_dev.o] Error 1
make[5]: *** [scripts/Makefile.build:497: /home/HTPC/OpenWRT/NSSMaster2/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-gmac-9b74deef/ipq806x] Error 2
make[4]: *** [Makefile:1822: /home/HTPC/OpenWRT/NSSMaster2/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-gmac-9b74deef] Error 2
make[4]: Leaving directory '/home/HTPC/OpenWRT/NSSMaster2/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/linux-5.10.80'
make[3]: *** [Makefile:49: /home/HTPC/OpenWRT/NSSMaster2/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/qca-nss-gmac-9b74deef/.built] Error 2
make[3]: Leaving directory '/home/HTPC/OpenWRT/NSSMaster2/openwrt/package/qca/qca-nss-gmac'
time: package/qca/qca-nss-gmac/compile#6.28#1.92#12.77
SHELL= flock /home/HTPC/OpenWRT/NSSMaster2/openwrt/tmp/.linux-firmware-20210511.tar.xz.flock -c '  	/home/HTPC/OpenWRT/NSSMaster2/openwrt/scripts/download.pl "/home/HTPC/OpenWRT/NSSMaster2/openwrt/dl" "linux-firmware-20210511.tar.xz" "2aa6ae8b9808408f9811ac38f00c188e53e984a2b3990254f6c9c02c1ab13417" "" "@KERNEL/linux/kernel/firmware"    '
    ERROR: package/qca/qca-nss-gmac failed to build.
make[2]: *** [package/Makefile:116: package/qca/qca-nss-gmac/compile] Error 1

I've ran into a very similar issue while compiling a Broadcom STA kernel driver for 5.10.4 (totally unrelated to this thread but that solution should work here too).

Both the errors can be fixed by removing _nocache from ioremap_nocache at line 1588 in
nss_gmac_dev.c.

I.e. the line should read
gmacdev->mac_base = ioremap(
instead of
gmacdev->mac_base = ioremap_nocache(

Leave the parameters intact.

PS: kudos for doing these NSS patches work and for this build !

1 Like

Appreciate the tip! I’ll fix that and try to build this weekend.

3 Likes

Hi,
First of all I would like to thank you for the fantastic job you did with this firmware. My overall bandwith speed and router performance is amazing comparing to all other builds.
I would like you to ask dumb question, cause I'm still learning this. I have 940/40 speeds from my ISP. If I would like to turn on SQM for QOS with your custom NSS fq_codel startup - should I paste it in Startup Config? And change eth0 port for my WAN/LAN port or leave like it is? Afterwards what should I change in GUI settings in tab SQM ? Or just not do anything because script will do all it's work? And how about Irqbalance - should it be turned on with performance settings as well?
Many thanks in advance for your help.

Yes in the startup script is perfect. A quick reset and you have everything loaded. For testing you can load each line individually via SSH and tweak parameters to find what works best.

Leave the luci sqm page untouched.

I personally run with irqbalance and global packet steering both enabled. I’ve found I get the best performance this way.

what exactly is global packet address? Thank you.

Thanks a lot for explanation :slight_smile: Below you can see my startup script - can you help me to provide there also irqbalance and global packet steering = enabled ? Which specific lines I can tweak to check the performanse from this NSS SQM Part?

# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

# Ondemand Governor Tweaks
#echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
#echo 800000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
#echo 20 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
#echo 60 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
#echo 1000000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate

# Performance Governor
echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
echo performance > /sys/devices/system/cpu/cpufreq/policy1/scaling_governor

#NSS SQM Config
modprobe nss-ifb

ip link set up nssifb

# Shape ingress traffic to 890 Mbit with chained NSSFQ_CODEL
tc qdisc add dev nssifb root handle 1: nsstbl rate 890Mbit burst 1Mb
tc qdisc add dev nssifb parent 1: handle 10: nssfq_codel limit 10240 flows 1024 quantum 1514 target 5ms interval 100ms set_default

# Shape egress traffic to 38 Mbit with chained NSSFQ_CODEL
tc qdisc add dev eth0 root handle 1: nsstbl rate 38Mbit burst 1Mb
tc qdisc add dev eth0 parent 1: handle 10: nssfq_codel limit 10240 flows 1024 quantum 1514 target 5ms interval 100ms set_default


exit 0

Beside of that I'm still struggling with bufferbloat - is that could be my ISP or I'm missing something? How about Software flow offloading settings ? Below you can find my DSL Report:

Thanks in advance for your help!

Uses all the CPUs to process packets. Several threads mention small performance gains in multiprocessor routers with this feature.

@mefju51 i’d turn down your speed to 600 and then move upwards as testing allows (probably 7XX-8XXmbps range will be realistic based off what your ISP provides you and after you compensate for qos overhead).

Try this site for bufferbloat measurement - I find it is performing better than dsl reports these days: https://www.waveform.com/tools/bufferbloat

Nss fq codel is not as good as cake and other more modern bufferbloat mechanisms. What is nice is that with NSS fq codel you get more throughput (all the measurements won’t be “A+” but the speeds are faster). What sucks is if you are hardcore gaming or doing something very latency sensitive - vanilla openwrt + cake will get you better latency results (if you are chasing every last millisecond). I actually found with a gig line that qos and/or SQM was not required for regular internet use (no gaming). With the hardware offloading I got reasonably low latency, no sqm/qos required.

1 Like

So i tested your NBG6817 build, which gives me this result:
-NOTE: I did this test with a bit of load in the background. ( Twitch stream, Youtube video, streaming through discord ) to make sure there was enough load.
I think it's good, minus the fact i'm not reaching gigabit down and have a loss of about 100-150mbit..

Nice builds sir!

1 Like