IPQ806x NSS Drivers

My r3d.config contain:

CONFIG_PACKAGE_kmod-pppoe=y
CONFIG_PACKAGE_kmod-pptp=y
CONFIG_PACKAGE_kmod-qca-nss-ecm-standard=y
CONFIG_PACKAGE_kmod-qca-nss-drv-pppoe=y
CONFIG_PACKAGE_kmod-qca-nss-drv-l2tpv2=y
CONFIG_PACKAGE_kmod-qca-nss-drv-pptp=y

After make defconfig created .config with content:

CONFIG_PACKAGE_kmod-pppoe=y
CONFIG_PACKAGE_kmod-pptp=y
CONFIG_PACKAGE_kmod-qca-nss-ecm-standard=y
CONFIG_PACKAGE_kmod-qca-nss-drv-pppoe=m   <<<===
CONFIG_PACKAGE_kmod-qca-nss-drv-l2tpv2=y
CONFIG_PACKAGE_kmod-qca-nss-drv-pptp=y

For this reason, module qca-nss-pppoe does not have autoloading.
I don't even know what it's about anymore. I've already reviewed all the makefiles.

UPD:
[ Resolved ]

CONFIG_PACKAGE_kmod-tls=y
CONFIG_PACKAGE_kmod-bonding=y
1 Like

anyone using nss driver with bug on youtube apps buffering?

Hi all,

Recently freed my R7800 for tinkering and was wondering if I can get QSDK's NSS GMAC driver to work with DSA. The hope is that if it works, it can pave the way to get NSS acceleration working without force enabling swconfig.

The good news is that I got NSS GMAC working with DSA, but it doesn't seem stable.

Below are the SSH (yes, I can ssh into the R7800 once booted) output showing qca-nss-gmac driving both GMACs, with DSA.

Summary
root@OpenWrt:/sys/devices/platform/soc# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1502 qdisc fq_codel state UP qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1502 qdisc fq_codel state UP qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
4: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN qlen 1000
    link/tunnel6 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
5: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
6: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN qlen 1000
    link/gre 0.0.0.0 brd 0.0.0.0
7: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
8: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1450 qdisc noop state DOWN qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
9: ip6gre0@NONE: <NOARP> mtu 1448 qdisc noop state DOWN qlen 1000
    link/[823] 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
10: lan4@eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
11: lan3@eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
12: lan2@eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
13: lan1@eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
14: wan@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state LOWERLAYERDOWN qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
15: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
root@OpenWrt:/sys/devices/platform/soc# uname -a
Linux OpenWrt 6.6.80 #0 SMP Wed Mar  5 19:23:50 2025 armv7l GNU/Linux
root@OpenWrt:~# ls -l /sys/bus/platform/drivers/nss-gmac/
lrwxrwxrwx    1 root     root             0 Jan  1 00:04 37200000.ethernet -> ../../../../devices/platform/soc/37200000.ethernet
lrwxrwxrwx    1 root     root             0 Jan  1 00:04 37400000.ethernet -> ../../../../devices/platform/soc/37400000.ethernet
--w-------    1 root     root          4096 Jan  1 00:04 bind
lrwxrwxrwx    1 root     root             0 Jan  1 00:04 module -> ../../../../module/qca_nss_gmac
--w-------    1 root     root          4096 Jan  1 00:04 uevent
--w-------    1 root     root          4096 Jan  1 00:04 unbind

Not ready for prime time tho. as I think I need to further understand how to get both the RGMII and SGMII MACs to play nice with the physical layer.

Good news is that now I can get the LAN1 - LAN4 ports working and using it to access LUCI.

The WAN port is a little finicky tho. I think it's due to me not configuring the SGMII MAC PHY link.

Will update back here when I have more progress.

Once I think the code is good enough, I'll push it into my Github repo.

17 Likes

Hi

I am interested in your work that allowed QCA8337 to work with DSA, is it possible to see the kernel or nss-gmac patch and DTS

Thank’s!

2 Likes

I suspect there are lots of other users interested in the @quarky 's NSS with DSA work. I suppose there may be other users that can help with this.