The different NSS DRV features are independent of each other and shouldn't be enabled explicitly. You can clean them out, and let the individual client packages qca-nss-drv-*
enable what it needs.
Qualcomm's nss-hosts
which is what the Makefiles for eacho package in my repo are based on don't provide any knobs to disable/enable. They just enable everything by default which in turn enables a bunch of unnecessary kernel features... All of which were a dependency hell and increased the kernel size for no reason.
You shouldn't even need to explicitly enable anything anymore. The base config includes selecting the appropriate NSS modules. The only extras I choose are:
# Additional NSS packages (VLAN, Multicast Snooping)
CONFIG_PACKAGE_kmod-qca-nss-drv-vlan-mgr=y
CONFIG_PACKAGE_kmod-qca-mcs=y
# NSS SQM Traffic Shaping
CONFIG_PACKAGE_sqm-scripts-nss=y
Which will select what it needs after a make oldconfig
I have the following loaded with NSS FW 11.4 and not seeing any of the TX/RX info or station inactive issues with MX5300, MX4300, or DL-WRX36.
qca_nss_bridge_mgr 32768 0
qca_nss_dp 61440 1 qca_nss_drv
qca_nss_drv 1191936 7 ecm,ath11k,mac80211,qca_nss_wifi_meshmgr,qca_nss_bridge_mgr,qca_nss_vlan
qca_nss_vlan 32768 1 qca_nss_bridge_mgr
qca_nss_wifi_meshmgr 36864 1 ath11k
qca_ssdk 1118208 4 qca_nss_bridge_mgr,qca_nss_vlan,qca_nss_drv,qca_nss_dp
NSS DRV final generated output
CONFIG_NSS_DRV_BRIDGE_ENABLE=y
# CONFIG_NSS_DRV_CAPWAP_ENABLE is not set
# CONFIG_NSS_DRV_C2C_ENABLE is not set
# CONFIG_NSS_DRV_CLMAP_ENABLE is not set
# CONFIG_NSS_DRV_CRYPTO_ENABLE is not set
# CONFIG_NSS_DRV_DTLS_ENABLE is not set
# CONFIG_NSS_DRV_GRE_ENABLE is not set
CONFIG_NSS_DRV_IGS_ENABLE=y
# CONFIG_NSS_DRV_IPSEC_ENABLE is not set
# CONFIG_NSS_DRV_IPV4_REASM_ENABLE is not set
CONFIG_NSS_DRV_IPV6_ENABLE=y
# CONFIG_NSS_DRV_IPV6_REASM_ENABLE is not set
# CONFIG_NSS_DRV_L2TP_ENABLE is not set
# CONFIG_NSS_DRV_LAG_ENABLE is not set
# CONFIG_NSS_DRV_MAPT_ENABLE is not set
# CONFIG_NSS_DRV_MATCH_ENABLE is not set
# CONFIG_NSS_DRV_MIRROR_ENABLE is not set
# CONFIG_NSS_DRV_OAM_ENABLE is not set
# CONFIG_NSS_DRV_PORTID_ENABLE is not set
# CONFIG_NSS_DRV_LSO_RX_ENABLE is not set
# CONFIG_NSS_DRV_PPPOE_ENABLE is not set
# CONFIG_NSS_DRV_PPTP_ENABLE is not set
# CONFIG_NSS_DRV_PVXLAN_ENABLE is not set
# CONFIG_NSS_DRV_QRFS_ENABLE is not set
# CONFIG_NSS_DRV_QVPN_ENABLE is not set
# CONFIG_NSS_DRV_RMNET_ENABLE is not set
CONFIG_NSS_DRV_SHAPER_ENABLE=y
# CONFIG_NSS_DRV_SJACK_ENABLE is not set
# CONFIG_NSS_DRV_TLS_ENABLE is not set
# CONFIG_NSS_DRV_TRUSTSEC_ENABLE is not set
# CONFIG_NSS_DRV_UDP_ST_ENABLE is not set
# CONFIG_NSS_DRV_TSTAMP_ENABLE is not set
# CONFIG_NSS_DRV_TUN6RD_ENABLE is not set
# CONFIG_NSS_DRV_TUNIPIP6_ENABLE is not set
CONFIG_NSS_DRV_VIRT_IF_ENABLE=y
CONFIG_NSS_DRV_VLAN_ENABLE=y
# CONFIG_NSS_DRV_VXLAN_ENABLE is not set
CONFIG_NSS_DRV_WIFIOFFLOAD_ENABLE=y
CONFIG_NSS_DRV_WIFI_EXT_VDEV_ENABLE=y
CONFIG_NSS_DRV_WIFI_MESH_ENABLE=y
# CONFIG_NSS_DRV_WIFI_LEGACY_ENABLE is not set
My suggestion, is to start clean, use the ./scripts/env
script to version control your current .config
and files
and run.
perl -i -ne '
if (/^(CONFIG_NSS_DRV|^CONFIG_PACKAGE_kmod.*=)/ && !/^CONFIG_PACKAGE_kmod-(usb|wireguard|ramoops|pstore|fs).*=(y|m)/) {
next;
}
print;
' .config
I excluded removing some kernel modules that aren't selected by default which you may have enabled. Should provide for fewer questions asked during make oldconfig
. Also do a factory install vs. sysupgrade.