I rebuilt the package and reinstalled the mac80211 package from LuCI, but DHCP is still not obtained on wwan, nor are relay packets passing through. I'm unsure if this procedure is correct.
$ rm package/kernel/mac80211/patches/nss/ath11k/999-902-ath11k-fix-WDS-by-disabling-nwds.patch
$ rm package/kernel/mac80211/patches/nss/subsys/{999-775-wifi-mac80211-Changes-for-WDS-MLD.patch,999-922-mac80211-fix-null-chanctx-warning-for-NSS-dynamic-VLAN.patch}
$ make package/{mac80211,ipq-wifi}/{clean,compile} package/install target/compile V=s -j4
# Uploaded and installed via LuCI:
bin/targets/qualcommax/ipq807x/packages/kmod-mac80211-6.6.80.6.12.6-r1.apk
I'm not using WDS mode, just STA mode. This configuration worked on the Agustin's 07/21/24 build.
Sat Mar 15 04:59:09 2025 daemon.info watchcat[4292]: Could not reach 8.8.8.8 for 18000. Rebooting after reaching 21600
Sat Mar 15 04:59:40 2025 daemon.notice netifd: radio0 (8153): sh: out of range
Sat Mar 15 04:59:40 2025 daemon.notice wpa_supplicant[2065]: Set new config for phy phy0
Sat Mar 15 04:59:40 2025 daemon.notice hostapd: Set new config for phy phy0:
Sat Mar 15 04:59:40 2025 daemon.notice wpa_supplicant[2065]: Set new config for phy phy0
Sat Mar 15 04:59:40 2025 daemon.notice netifd: Wireless device 'radio0' is now up
Sat Mar 15 04:59:40 2025 daemon.notice netifd: wwan (5106): udhcpc: received SIGTERM
Sat Mar 15 04:59:40 2025 daemon.notice netifd: wwan (5106): udhcpc: entering released state
Sat Mar 15 04:59:40 2025 daemon.notice netifd: wwan (5106): Command failed: ubus call network.interface notify_proto { "action": 0, "link-up": false, "keep": false, "interface": "wwan" } (Permission denied)
Sat Mar 15 04:59:40 2025 daemon.notice netifd: Interface 'wwan' is now down
Sat Mar 15 04:59:40 2025 daemon.notice netifd: Interface 'wwan' is setting up now
Sat Mar 15 04:59:40 2025 daemon.notice netifd: wwan (8251): udhcpc: started, v1.37.0
Sat Mar 15 04:59:40 2025 daemon.notice netifd: wwan (8251): udhcpc: broadcasting discover
Sat Mar 15 04:59:41 2025 daemon.warn odhcpd[2509]: No default route present, overriding ra_lifetime to 0!
Sat Mar 15 04:59:42 2025 daemon.info dnsmasq[1]: read /etc/hosts - 12 names
Sat Mar 15 04:59:42 2025 daemon.info dnsmasq[1]: read /tmp/hosts/dhcp.cfg01411c - 4 names
Sat Mar 15 04:59:42 2025 daemon.info dnsmasq[1]: read /tmp/hosts/odhcpd - 4 names
Sat Mar 15 04:59:42 2025 daemon.info dnsmasq-dhcp[1]: read /etc/ethers - 0 addresses
Sat Mar 15 04:59:43 2025 daemon.warn odhcpd[2509]: No default route present, overriding ra_lifetime to 0!
Sat Mar 15 04:59:43 2025 daemon.notice netifd: wwan (8251): udhcpc: broadcasting discover
Sat Mar 15 04:59:46 2025 daemon.notice netifd: wwan (8251): udhcpc: broadcasting discover
Any suggestions?
EDIT:
I rebuilt the entire firmware and reinstalled the sysupgrade image, and now I confirm that DHCP works on the wwan interface and relayd works fine also!
I'll continue testing and verifying if everything is functioning as expected.
I am redo the repos over the latest commit from OpenWRT.
Changelog (include upstream of OpenWRT):
Updated kernel and NSS software to version 6.6.83.
Fixed bug when updating packages from LUCI (apk-tools).
Changed âip-tinyâ package to âip-fullâ, to match âtc-fullâ package.
Added the latest changes developed by qosmio for NSS.
WARNING: (IN CASE YOU USE THEM). The following services are disabled on first startup: mwan3, sqm, mesh11sd (MESH build) and you have to re-enable them from: Luci -> System -> Startup
Notes:
Compilation is performed with the following limits for ath11k (512M) and NSS (NSS_MEM_PROFILE_HIGH) and pbuf set to auto by default.
The build is compiled with GCC 13.3.
The default TCP congestion protocol is CUBIC.
By default, the radio0 (IoT) is off (you can enable in LUCI) and the radio 1 (2.4 GHz) y 2 (5 GHz) is on.
The default country code for the WiFi is USA to avoid problems with 160 MHZ because it does not work if it does not have a specified country code.
NOTE: I am now only compiling for AX3600, AX6, AX9000, Buffalo WXR-5950AX12, Dynalink DL-WRX36, QNAP 301W, Netgear RAX120v2, SXR80, SXS80, WAX218, Arcadyan AW1000, Zyxel NBG7815, Linksys MX4200 (v1 and v2), MX4300, MX5300, MX8500 and Spectrum SAX1V1K devices, if someone has used my versions with other devices (and it is supported), let me know and I will add it.
used to be skb was better but within newer kernels it's really bad
but i guess bigger part of issues caused by isp but non-nss builds much more better
non skb build closer performance against non-nss official builds
i tested many scenarios with nss and best one is non-skb build
Hi @qosmio ,
STA/Relayd is working well so far. The AP (5950AX12) and STA/Relayd (5950AX12) are both operating in 160MHz/4T4R mode, achieving around 3Gbps, with the CPU almost idling. It looks like NSS is offloading traffic efficiently.
I built the firmware with the qca_nss_tunipip6 module to check the throughput of the v6 tunnel (ds-lite), but it seems that packets are being processed by the CPU instead of being offloaded.
Dear Mr. Augustin ( or any other OpenWRT NSS mavens ),
Hello and I hope that you are well. My issue is that I have not been able to build any custom firmware based on your repository for some time now. I used to be able to do so up until about a month or so ago. I am still able to compile @qosmio custom builds without any issues. I only add a few additional packages to your standard config.buildinfo file.
The only packages I add are :
1 - git clone https://github.com/AgustinLorenzo/openwrt.git -b main_nss
2 - cd openwrt
3 - # add custom themes
sed -i '$ a src-git darky https://github.com/Ninjanoir78/-luci-theme-darky.git' feeds.conf.default && sed -i '$ a src-git opentomato https://github.com/zxlhhyccc/luci-theme-opentomato.git' feeds.conf.default
4 - ./scripts/feeds update -a -f && ./scripts/feeds install -a -f
5 - cp config.buildinfo .config
6 - make defconfig && ./scripts/getver.sh
7 - make download -j4 && ./scripts/getver.sh
8 - make -j9 V=s
Below is the config.buildinfo file I used (NSS-WiFi) 2025-03-16-0239
# Target platform
CONFIG_TARGET_qualcommax=y
CONFIG_TARGET_qualcommax_ipq807x=y
CONFIG_TARGET_qualcommax_ipq807x_DEVICE_dynalink_dl-wrx36=y
CONFIG_TARGET_DEVICE_PACKAGES_qualcommax_ipq807x_DEVICE_dynalink_dl-wrx36=""
CONFIG_DEVEL=y
# CONFIG_ATH11K_DEBUGFS_HTT_STATS is not set
# CONFIG_ATH11K_DEBUGFS_STA is not set
# CONFIG_ATH11K_MEM_PROFILE_1G is not set
CONFIG_ATH11K_MEM_PROFILE_512M=y
# CONFIG_ATH11K_THERMAL is not set
# CONFIG_FEED_nss_packages is not set
# CONFIG_FEED_sqm_scripts_nss is not set
# CONFIG_IPQ_MEM_PROFILE_1024 is not set
CONFIG_IPQ_MEM_PROFILE_512=y
CONFIG_KERNEL_IPQ_MEM_PROFILE=512
CONFIG_LIBCURL_COOKIES=y
CONFIG_LIBCURL_FILE=y
CONFIG_LIBCURL_FTP=y
CONFIG_LIBCURL_HTTP=y
CONFIG_LIBCURL_NGHTTP2=y
CONFIG_LIBCURL_NO_SMB="!"
CONFIG_LIBCURL_OPENSSL=y
CONFIG_LIBCURL_PROXY=y
CONFIG_LIBCURL_UNIX_SOCKETS=y
# CONFIG_LUA_ECO_MBEDTLS is not set
CONFIG_LUA_ECO_OPENSSL=y
CONFIG_LUCI_LANG_es=y
CONFIG_NSS_DRV_GRE_ENABLE=y
CONFIG_NSS_DRV_IGS_ENABLE=y
CONFIG_NSS_DRV_LAG_ENABLE=y
CONFIG_NSS_DRV_MAPT_ENABLE=y
CONFIG_NSS_DRV_PPTP_ENABLE=y
CONFIG_NSS_DRV_SHAPER_ENABLE=y
CONFIG_NSS_DRV_TUN6RD_ENABLE=y
# CONFIG_NSS_FIRMWARE_VERSION_11_4 is not set
CONFIG_NSS_FIRMWARE_VERSION_12_2=y
CONFIG_OPENSSL_OPTIMIZE_SPEED=y
CONFIG_PACKAGE_6rd=y
CONFIG_PACKAGE_cgi-io=y
CONFIG_PACKAGE_curl=y
CONFIG_PACKAGE_ddns-scripts=y
CONFIG_PACKAGE_ddns-scripts-services=y
#NSS Dnsmasq-Full
# 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_dnssec=y
CONFIG_PACKAGE_dnsmasq_full_nftset=y
CONFIG_PACKAGE_dnsmasq_full_noid=y
CONFIG_PACKAGE_dnsmasq_full_tftp=y
# CONFIG_PACKAGE_dnsmasq_full_dhcpv6 is not set
CONFIG_PACKAGE_ds-lite=y
CONFIG_PACKAGE_etherwake=y
CONFIG_PACKAGE_gre=y
CONFIG_PACKAGE_htop=y
CONFIG_PACKAGE_ip-full=y
CONFIG_PACKAGE_ip6tables-nft=y
CONFIG_PACKAGE_ipset=y
CONFIG_PACKAGE_iptables-mod-conntrack-extra=y
CONFIG_PACKAGE_iptables-mod-ipopt=y
CONFIG_PACKAGE_iptables-nft=y
CONFIG_PACKAGE_kmod-bonding=y
CONFIG_PACKAGE_kmod-crypto-kpp=y
CONFIG_PACKAGE_kmod-crypto-lib-chacha20=y
CONFIG_PACKAGE_kmod-crypto-lib-chacha20poly1305=y
CONFIG_PACKAGE_kmod-crypto-lib-curve25519=y
CONFIG_PACKAGE_kmod-crypto-lib-poly1305=y
CONFIG_PACKAGE_kmod-crypto-sha1=y
CONFIG_PACKAGE_kmod-crypto-sha256=y
CONFIG_PACKAGE_kmod-gre6=y
CONFIG_PACKAGE_kmod-ifb=y
CONFIG_PACKAGE_kmod-ip6-tunnel=y
CONFIG_PACKAGE_kmod-ip6tables=y
CONFIG_PACKAGE_kmod-ipt-conntrack=y
CONFIG_PACKAGE_kmod-ipt-conntrack-extra=y
CONFIG_PACKAGE_kmod-ipt-core=y
CONFIG_PACKAGE_kmod-ipt-ipopt=y
CONFIG_PACKAGE_kmod-ipt-ipset=y
CONFIG_PACKAGE_kmod-iptunnel4=y
CONFIG_PACKAGE_kmod-iptunnel6=y
CONFIG_PACKAGE_kmod-nat46=y
CONFIG_PACKAGE_kmod-nf-conncount=y
CONFIG_PACKAGE_kmod-nf-ipt=y
CONFIG_PACKAGE_kmod-nf-ipt6=y
CONFIG_PACKAGE_kmod-nft-bridge=y
CONFIG_PACKAGE_kmod-nft-compat=y
CONFIG_PACKAGE_kmod-qca-mcs=y
CONFIG_PACKAGE_kmod-qca-nss-drv-gre=y
CONFIG_PACKAGE_kmod-qca-nss-drv-igs=y
CONFIG_PACKAGE_kmod-qca-nss-drv-lag-mgr=y
CONFIG_PACKAGE_kmod-qca-nss-drv-map-t=y
CONFIG_PACKAGE_kmod-qca-nss-drv-pppoe=y
CONFIG_PACKAGE_kmod-qca-nss-drv-pptp=y
CONFIG_PACKAGE_kmod-qca-nss-drv-qdisc=y
CONFIG_PACKAGE_kmod-qca-nss-drv-tun6rd=y
CONFIG_PACKAGE_kmod-sched-cake=y
CONFIG_PACKAGE_kmod-sched-core=y
CONFIG_PACKAGE_kmod-sit=y
CONFIG_PACKAGE_kmod-tls=y
CONFIG_PACKAGE_kmod-tun=y
CONFIG_PACKAGE_kmod-wireguard=y
CONFIG_PACKAGE_libbpf=y
CONFIG_PACKAGE_libcap=y
CONFIG_PACKAGE_libcap-ng=y
CONFIG_PACKAGE_libcurl=y
CONFIG_PACKAGE_libelf=y
CONFIG_PACKAGE_libipset=y
CONFIG_PACKAGE_libiptext=y
CONFIG_PACKAGE_libiptext-nft=y
CONFIG_PACKAGE_libiptext6=y
CONFIG_PACKAGE_liblua=y
CONFIG_PACKAGE_liblucihttp=y
CONFIG_PACKAGE_liblucihttp-lua=y
CONFIG_PACKAGE_liblucihttp-ucode=y
CONFIG_PACKAGE_libncurses=y
CONFIG_PACKAGE_libnghttp2=y
CONFIG_PACKAGE_libpcre2=y
CONFIG_PACKAGE_libqrencode=y
CONFIG_PACKAGE_libubus-lua=y
CONFIG_PACKAGE_libuv=y
CONFIG_PACKAGE_libwebsockets-full=y
CONFIG_PACKAGE_libxtables=y
CONFIG_PACKAGE_libzstd=y
CONFIG_PACKAGE_lua=y
CONFIG_PACKAGE_luci=y
CONFIG_PACKAGE_luci-app-ddns=y
CONFIG_PACKAGE_luci-app-firewall=y
CONFIG_PACKAGE_luci-app-mwan3=y
CONFIG_PACKAGE_luci-app-package-manager=y
CONFIG_PACKAGE_luci-app-sqm=y
CONFIG_PACKAGE_luci-app-ttyd=y
CONFIG_PACKAGE_luci-app-upnp=y
CONFIG_PACKAGE_luci-app-wifischedule=y
CONFIG_PACKAGE_luci-app-wol=y
CONFIG_PACKAGE_luci-base=y
CONFIG_PACKAGE_luci-i18n-base-es=y
CONFIG_PACKAGE_luci-i18n-ddns-es=y
CONFIG_PACKAGE_luci-i18n-firewall-es=y
CONFIG_PACKAGE_luci-i18n-mwan3-es=y
CONFIG_PACKAGE_luci-i18n-package-manager-es=y
CONFIG_PACKAGE_luci-i18n-sqm-es=y
CONFIG_PACKAGE_luci-i18n-ttyd-es=y
CONFIG_PACKAGE_luci-i18n-upnp-es=y
CONFIG_PACKAGE_luci-i18n-wifischedule-es=y
CONFIG_PACKAGE_luci-i18n-wol-es=y
CONFIG_PACKAGE_luci-lib-base=y
CONFIG_PACKAGE_luci-lib-ip=y
CONFIG_PACKAGE_luci-lib-json=y
CONFIG_PACKAGE_luci-lib-jsonc=y
CONFIG_PACKAGE_luci-lib-nixio=y
CONFIG_PACKAGE_luci-lib-uqr=y
CONFIG_PACKAGE_luci-light=y
CONFIG_PACKAGE_luci-lua-runtime=y
CONFIG_PACKAGE_luci-mod-admin-full=y
CONFIG_PACKAGE_luci-mod-network=y
CONFIG_PACKAGE_luci-mod-rpc=y
CONFIG_PACKAGE_luci-mod-status=y
CONFIG_PACKAGE_luci-mod-system=y
CONFIG_PACKAGE_luci-proto-gre=y
CONFIG_PACKAGE_luci-proto-ipv6=y
CONFIG_PACKAGE_luci-proto-ppp=y
CONFIG_PACKAGE_luci-proto-wireguard=y
CONFIG_PACKAGE_luci-ssl-openssl=y
CONFIG_PACKAGE_luci-theme-bootstrap=y
CONFIG_PACKAGE_luci-theme-darky=y
CONFIG_PACKAGE_luci-theme-opentomato=y
CONFIG_PACKAGE_map=y
CONFIG_PACKAGE_miniupnpd-nftables=y
CONFIG_PACKAGE_mwan3=y
CONFIG_PACKAGE_nano-full=y
CONFIG_PACKAGE_pbr=y
CONFIG_PACKAGE_luci-app-pbr=y
CONFIG_PACKAGE_openssl-util=y
CONFIG_PACKAGE_qca-ssdk-shell=y
CONFIG_PACKAGE_qrencode=y
CONFIG_PACKAGE_resolveip=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_rpcd-mod-ucode=y
CONFIG_PACKAGE_sqm-scripts=y
CONFIG_PACKAGE_sqm-scripts-nss=y
CONFIG_PACKAGE_tc-full=y
CONFIG_PACKAGE_terminfo=y
CONFIG_PACKAGE_ttyd=y
CONFIG_PACKAGE_ucode-mod-html=y
CONFIG_PACKAGE_ucode-mod-lua=y
CONFIG_PACKAGE_ucode-mod-math=y
CONFIG_PACKAGE_uhttpd=y
CONFIG_PACKAGE_uhttpd-mod-ubus=y
CONFIG_PACKAGE_wget-ssl=y
CONFIG_PACKAGE_wifischedule=y
CONFIG_PACKAGE_wireguard-tools=y
CONFIG_PACKAGE_xtables-nft=y
CONFIG_TARGET_OPTIMIZATION="-O2 -pipe -mcpu=cortex-a53+crc+crypto"
CONFIG_TARGET_OPTIONS=y
CONFIG_ZLIB_OPTIMIZE_SPEED=y
CONFIG_ZSTD_OPTIMIZE_O3=y
# CONFIG_HTOP_LMSENSORS is not set
So if you or anyone can assist me in getting this straightened enough - I will be most grateful. As I mentioned at the outset, I used to be able to compile @AgustinLorenzo builds without any failed attempts.
Peace
Instead of using âconfig.buildinfoâ, you can use the â.full_configâ which is the equivalent to â.configâ that I use to generate the build, it is uploaded on purpose with the intention of being as transparent as possible to the users of my fork
Dear @AgustinLorenzo
Thank you very very much - I do appreciate your excellent Builds and the kind and generous manner in which you assist us all here. Most of all your expertise and understanding are boundless.
Peace and God Bless Always
SKB recycler can be a double-edged sword. It helps reduce CPU overhead by recycling packet buffers instead of constantly allocating/freeing them, which improves performance and memory efficiency, especially on memory-constrained hardware. But it also introduces memory fragmentation and potential stale data issues, leading to stability problems. Thatâs likely why it was never mainlined.
I had backported the patch from QSDK 12 (kernel 6.1) to 6.6 while integrating NSS into IPQ807x. Without it, memory leaks would appear within 24-48 hours of boot, affecting both NSS and non-NSS builds. Upstream has stabilized since then, so enabling it isnât a hard requirement anymore. You have the option to disable it completely from being built rather than delete the patch though.
Glad to hear. Just curious, which version of NSS are you using and what is your use case for non-WDS mode when using AP+STA? Are you managing two separate networks on the STA end?
Currently working on reconsolidating NSS kernel patches. It includes fixes for offloaded GRE/VxLAN/IPIP tunnels. Just need to run a few test cases on my end + clean up before pushing them out.
From .config, the NSS firmware version is set to 11_4: CONFIG_NSS_FIRMWARE_VERSION_11_4=y
As you assumed, my use case is simply to use it as a Wi-Fi-to-Ethernet bridge, not to extend Wi-Fi coverage. I wasnât aware that WDS mode could actually function as an L2 bridge. However, I tried WDS mode, but no packets were received from Wi-Fi. I also tried @AgustinLorenzo's 03/16 build (both mesh and non-mesh builds), but neither worked.
Now I have two questions:
Does WDS mode require NSS firmware version 11.4? Does version 12.x work with WDS STA/AP mode?
Can I use WDS AP and a normal AP simultaneously?
My AP is running @AgustinLorenzo's 02-15 non-mesh build (NSS FW: NSS.FW.12.2-161-HK.R), and I added the following config to the AP for WDS:
WDS requires NSS firmware version 11.4 (AKA. mesh build) on the AP side so far. With NSS FW 11.4, The L2 bridge between WDS AP and WDS client works as I expected, and relayd package is not needed at all. Here are my test results:
AP
Client(WDS)
WDS Result
11.4
11.4
OK
11.4
12.2
OK
12.2
11.4
NG
12.2
12.2
NG
Using WDS AP and normal APs simultaneously on same radio works without any issues.
Yup, I've made a few mentions of this in previous posts. 11.4 is pretty much the ONLY universally working FW across the board in terms of wifi features, AP/Client WDS and non-WDS, and biggest one being mesh/802.11s.
I'm inclined to believe Qualcomm just stopped supporting IPQ807x/6018 boards after 11.4. Mesh feature is the most telling of this being the case as the interface fails to even register or come up.
In terms of "features", nothing of substance was really added after 11.4 that would prevent 99.9% of users getting across the board offloading. I will be marking the FW under the "@BROKEN" symbol so users will need to intentionally "unhide" it to build.