Ansuel
1490
just click Y and press enter
I made some comparisons between Ansuel's NSS and hnyman's build:
Ansuel hnyman Ansuel Ansuel
hw flow offloading no soft offloading
iperf3 550 Mbps 910 Mbps 815 Mbps 610 Mbps
(wired)
iperf3 400 Mbps 700 Mbps 450-600 Mbps 480-640 Mbps
(wireless)
bufferbloat B A B C
(wired)
speedtest 77 Mbps 270 Mbps 100 Mbps 270 Mbps
(wireless)
uptime few minutes stable > few minutes > few minutes
Although low CPU utilization during tests involving routing looks promising stability and to lesser extend performance are still an issue.
Not sure whether difference in performance is because of lack of some patches and tweaks or if there is different reason.
Would it make sense to disable software flow offloading?
EDIT: in order to be able to turn on hardware flow offloading software flow offloading has to be checked. Table updated with Ansuel's repo with disabled software flow offloading.
Ansuel
1492
with software offload you bypass nss
Crap! All tests for nothing 
Ansuel
1494
@quarky @robimarko i wonder if this work with the dsa driver... will do some test but i think it should since we modify the gmac driver in the dts not the switch driver
Ansuel
1496
@robimarko i remember you fixed the warning on phy unload and overhauled the gmac driver but i can't find the code. Am i missing something?
I fixed the missing MAC adress panic on driver load, PHY warnings were fixed by quarky.
Ansuel
1498
@quarky I notice that with https://github.com/quarkysg/openwrt/commit/52380e83ddff7ffb77294a06801cf2ecf00f40bc
netlink doesn't use the chain notifier anymore... I wonder if this would cause some performance degradation ?
Why not convert it to use the chain notifier instead?
quarky
1499
Not too sure what you meant by netlink tho. Could you point me to the code you think may be an issue?
Ansuel
1500
with the rework we dropped the use of the chain notifier in ctnl_notifier
quarky
1501
The changes are necessary to allow other modules that made use of the netfilter notifier to work, e.g. nlbwmon. I’ve switched NSS specific uses to the new chain notifier APIs, so that both NSS and existing Linux modules/drivers can coexists peacefully. There shouldn’t be any issues.
@quarky
Today I try build your newest "master-ipq806x-nss-qsdk11" twice,but get same erros as following
Please correct me
Thanks
Building backport-include/backport/autoconf.h ... done.
CC [M] /media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/compat/main.o
CC [M] /media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/compat/backport-5.5.o
LD [M] /media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/compat/compat.o
CC [M] /media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/drivers/net/wireless/ath/main.o
CC [M] /media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/drivers/net/wireless/ath/regd.o
CC [M] /media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/drivers/net/wireless/ath/hw.o
CC [M] /media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/drivers/net/wireless/ath/key.o
CC [M] /media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/drivers/net/wireless/ath/debug.o
CC [M] /media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/drivers/net/wireless/ath/dfs_pattern_detector.o
CC [M] /media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/drivers/net/wireless/ath/dfs_pri_detector.o
LD [M] /media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/drivers/net/wireless/ath/ath.o
CC [M] /media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/net/mac80211/main.o
In file included from /media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/net/mac80211/main.c:28:
/media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/net/mac80211/ieee80211_i.h:39:10: fatal error: nss_api_if.h: No such file or directory
#include <nss_api_if.h>
^~~~~~~~~~~~~~
compilation terminated.
scripts/Makefile.build:265: recipe for target '/media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/net/mac80211/main.o' failed
make[9]: *** [/media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/net/mac80211/main.o] Error 1
scripts/Makefile.build:500: recipe for target '/media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/net/mac80211' failed
make[8]: *** [/media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/net/mac80211] Error 2
Makefile:1704: recipe for target '/media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1' failed
make[7]: *** [/media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1] Error 2
Makefile.build:13: recipe for target 'modules' failed
make[6]: *** [modules] Error 2
Makefile.real:93: recipe for target 'modules' failed
make[5]: *** [modules] Error 2
Makefile:120: recipe for target 'modules' failed
make[4]: *** [modules] Error 2
make[4]: Leaving directory '/media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1'
Makefile:552: recipe for target '/media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/.built' failed
make[3]: *** [/media/jack/sam128/Gmobile/nss-qsdk11/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/backports-5.7-rc3-1/.built] Error 2
make[3]: Leaving directory '/media/jack/sam128/Gmobile/nss-qsdk11/package/kernel/mac80211'
time: package/kernel/mac80211/compile#13.73#3.05#28.88
package/Makefile:111: recipe for target 'package/kernel/mac80211/compile' failed
make[2]: *** [package/kernel/mac80211/compile] Error 2
make[2]: Leaving directory '/media/jack/sam128/Gmobile/nss-qsdk11'
package/Makefile:107: recipe for target '/media/jack/sam128/Gmobile/nss-qsdk11/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/stamp/.package_compile' failed
make[1]: *** [/media/jack/sam128/Gmobile/nss-qsdk11/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/stamp/.package_compile] Error 2
make[1]: Leaving directory '/media/jack/sam128/Gmobile/nss-qsdk11'
/media/jack/sam128/Gmobile/nss-qsdk11/include/toplevel.mk:222: recipe for target 'world' failed
make: *** [world] Error 2
Ansuel
1503
quarky
1504
I believe you did not clone my Github source branch? If you just copied the patch file, into your own source branch, compile will fail. The mac80211 package Makefile have to be patched to include the nss-drv headers and the dependency to nss-drv for the compile to succeed. Otherwise you will see the error that you saw. Do refer to the commit history in my master-ipq806x-nss-qsdk11 branch for the mac80211 patch and apply the same changes for the Makefile.
quarky
1505
Did a quick scan of the commit. Looks like what they did were basically what we did for both qsdk10 and qsdk11 changes for OpenWrt master.
Will let you know if I find anything else the QCA folks did that we missed.
Good find!
Ansuel
1506
yep i notice that too... we did pretty much the same changes...
I do clone your Github source branch of master-ipq806x-nss-qsdk11
clone twice for compiling ,but get failed
quarky
1508
In that case, it could be the dependencies in the Makefile still not correct. I did not encounter this error tho. Odd.
Can you show your build's diffconfig output?
CONFIG_TARGET_ipq806x=y
CONFIG_TARGET_ipq806x_generic=y
CONFIG_TARGET_ipq806x_generic_DEVICE_linksys_ea7500-v1=y
CONFIG_DEVEL=y
CONFIG_TOOLCHAINOPTS=y
CONFIG_CCACHE=y
CONFIG_IMAGEOPT=y
CONFIG_PACKAGE_6rd=y
CONFIG_PACKAGE_MAC80211_NSS_SUPPORT=y
CONFIG_PACKAGE_cgi-io=y
# CONFIG_PACKAGE_dnsmasq is not set
CONFIG_PACKAGE_dnsmasq-full=y
CONFIG_PACKAGE_dnsmasq_full_auth=y
CONFIG_PACKAGE_dnsmasq_full_conntrack=y
CONFIG_PACKAGE_dnsmasq_full_dhcp=y
CONFIG_PACKAGE_dnsmasq_full_dhcpv6=y
CONFIG_PACKAGE_dnsmasq_full_dnssec=y
CONFIG_PACKAGE_dnsmasq_full_ipset=y
CONFIG_PACKAGE_dnsmasq_full_noid=y
CONFIG_PACKAGE_dnsmasq_full_tftp=y
CONFIG_PACKAGE_iptables-mod-extra=y
CONFIG_PACKAGE_iptables-mod-physdev=y
CONFIG_PACKAGE_kmod-bonding=y
CONFIG_PACKAGE_kmod-br-netfilter=y
CONFIG_PACKAGE_kmod-crypto-acompress=y
CONFIG_PACKAGE_kmod-crypto-aead=y
CONFIG_PACKAGE_kmod-crypto-authenc=y
CONFIG_PACKAGE_kmod-crypto-cbc=y
CONFIG_PACKAGE_kmod-crypto-crc32c=y
CONFIG_PACKAGE_kmod-crypto-deflate=y
CONFIG_PACKAGE_kmod-crypto-des=y
CONFIG_PACKAGE_kmod-crypto-echainiv=y
CONFIG_PACKAGE_kmod-crypto-hash=y
CONFIG_PACKAGE_kmod-crypto-hmac=y
CONFIG_PACKAGE_kmod-crypto-manager=y
CONFIG_PACKAGE_kmod-crypto-md5=y
CONFIG_PACKAGE_kmod-crypto-null=y
CONFIG_PACKAGE_kmod-crypto-pcompress=y
CONFIG_PACKAGE_kmod-crypto-sha1=y
CONFIG_PACKAGE_kmod-fast-classifier=y
CONFIG_PACKAGE_kmod-fs-ext4=y
CONFIG_PACKAGE_kmod-fs-ntfs=y
CONFIG_PACKAGE_kmod-fs-vfat=y
CONFIG_PACKAGE_kmod-gre=y
CONFIG_PACKAGE_kmod-gre6=y
CONFIG_PACKAGE_kmod-ip6-tunnel=y
CONFIG_PACKAGE_kmod-ipsec=y
CONFIG_PACKAGE_kmod-ipt-conntrack-extra=y
CONFIG_PACKAGE_kmod-ipt-extra=y
CONFIG_PACKAGE_kmod-ipt-filter=y
CONFIG_PACKAGE_kmod-ipt-ipset=y
CONFIG_PACKAGE_kmod-ipt-physdev=y
CONFIG_PACKAGE_kmod-iptunnel=y
CONFIG_PACKAGE_kmod-iptunnel4=y
CONFIG_PACKAGE_kmod-iptunnel6=y
CONFIG_PACKAGE_kmod-ledtrig-default-on=y
CONFIG_PACKAGE_kmod-ledtrig-heartbeat=y
CONFIG_PACKAGE_kmod-ledtrig-netdev=y
CONFIG_PACKAGE_kmod-ledtrig-timer=y
CONFIG_PACKAGE_kmod-lib-crc16=y
CONFIG_PACKAGE_kmod-lib-textsearch=y
CONFIG_PACKAGE_kmod-lib-zlib-deflate=y
CONFIG_PACKAGE_kmod-lib-zlib-inflate=y
CONFIG_PACKAGE_kmod-nf-conntrack-netlink=y
CONFIG_PACKAGE_kmod-nfnetlink=y
CONFIG_PACKAGE_kmod-nls-cp437=y
CONFIG_PACKAGE_kmod-nls-iso8859-1=y
CONFIG_PACKAGE_kmod-nls-utf8=y
CONFIG_PACKAGE_kmod-qca-nss-crypto=y
CONFIG_PACKAGE_kmod-qca-nss-drv=y
CONFIG_PACKAGE_kmod-qca-nss-drv-eogremgr=y
CONFIG_PACKAGE_kmod-qca-nss-drv-gre=y
CONFIG_PACKAGE_kmod-qca-nss-drv-pppoe=y
CONFIG_PACKAGE_kmod-qca-nss-drv-qdisc=y
CONFIG_PACKAGE_kmod-qca-nss-drv-tun6rd=y
CONFIG_PACKAGE_kmod-qca-nss-drv-tunipip6=y
CONFIG_PACKAGE_kmod-qca-nss-ecm-standard=y
CONFIG_PACKAGE_kmod-qca-rfs=y
CONFIG_PACKAGE_kmod-qca-ssdk-hnat=y
CONFIG_PACKAGE_kmod-shortcut-fe=y
CONFIG_PACKAGE_kmod-shortcut-fe-drv=y
CONFIG_PACKAGE_kmod-sit=y
CONFIG_PACKAGE_libgmp=y
CONFIG_PACKAGE_libiwinfo-lua=y
CONFIG_PACKAGE_liblua=y
CONFIG_PACKAGE_liblucihttp=y
CONFIG_PACKAGE_liblucihttp-lua=y
CONFIG_PACKAGE_libmnl=y
CONFIG_PACKAGE_libnetfilter-conntrack=y
CONFIG_PACKAGE_libnettle=y
CONFIG_PACKAGE_libnfnetlink=y
CONFIG_PACKAGE_libubus-lua=y
CONFIG_PACKAGE_lua=y
CONFIG_PACKAGE_luci=y
CONFIG_PACKAGE_luci-app-firewall=y
CONFIG_PACKAGE_luci-app-opkg=y
CONFIG_PACKAGE_luci-base=y
CONFIG_PACKAGE_luci-lib-ip=y
CONFIG_PACKAGE_luci-lib-jsonc=y
CONFIG_PACKAGE_luci-lib-nixio=y
CONFIG_PACKAGE_luci-mod-admin-full=y
CONFIG_PACKAGE_luci-mod-network=y
CONFIG_PACKAGE_luci-mod-status=y
CONFIG_PACKAGE_luci-mod-system=y
CONFIG_PACKAGE_luci-proto-ipv6=y
CONFIG_PACKAGE_luci-proto-ppp=y
CONFIG_PACKAGE_luci-theme-bootstrap=y
CONFIG_PACKAGE_qca-nss-firmware=y
CONFIG_PACKAGE_qca-ssdk-shell=y
CONFIG_PACKAGE_rpcd=y
CONFIG_PACKAGE_rpcd-mod-file=y
CONFIG_PACKAGE_rpcd-mod-iwinfo=y
CONFIG_PACKAGE_rpcd-mod-luci=y
CONFIG_PACKAGE_rpcd-mod-rrdns=y
CONFIG_PACKAGE_uhttpd=y
CONFIG_PACKAGE_uhttpd-mod-ubus=y
thanks