Qualcommax NSS Build

i recall i had the same issue.

once you do the initial flash, do a sysupgrade (to the same build, yes) from within openwrt. you can do sysupgrade -n just to be extra sure.

i think this was a necessary step.

Thanks, I can confirm that with an extra "sysupgrade -n", the config/settings is saved!

Excellent, you followed the proper advice. I've used that one too the first time I installed OpenWrt on 301W.
I've added that info in the Wiki too.

It's a real pleasure to be able to use cutting edge technologies like WireGuard on our routers. I have five WG interfaces now and still counting.

Actually I have this in rc.local too. Otherwise it doesn't work. For example if I remove even the last line it stops counting data. But I think it doesn't count properly IPv6 traffic at least on my NSS build.

## EXTRA BUFFERS for NLBWMON
## uci set nlbwmon.@nlbwmon[0].netlink_buffer_size="1573376"
## https://forum.openwrt.org/t/ipq806x-nss-build-netgear-r7800-tp-link-c2600-linksys-ea8500/82525/1783
sysctl -w net.core.rmem_max=1573376
sysctl -w net.core.wmem_max=1573376
sysctl -p
(sleep 60; /etc/init.d/nlbwmon restart) &

Is it with NSS possible to have on SSID and multiple VLAN's?

E. g. like:

1.) _Individual per-passphrase Wifi VLANs using wpa_psk_file (no RADIUS required) - #21 by zekica resp.: _One SSID, multiple VLANs

2.) _https://github.com/openwrt/openwrt/commit/5aa2ddd0d6b9759c62bbb7bb11b72a7f4269c16b

Trying the first approach using hostapd.wpa_psk resp. hostapd.vlan approach is ending with an assignment of the phy's to one vlan only. No matter what I do.

Trying the 2nd approach is crashing mac80211 completley as soon wifi is restarted.

I didn't try vanilla OpenWrt yet. I'm just investigating right now. It might be that I do thing wrong.

Is this try doomed to fail esp. for NSS or can this be achieved?

I guess Buffalo WXR-2533DHP can be added

@qosmio
Hi. Im trying to build the firmware for ax6 from your branch 24.10-nss. make menuconfig check enable kmod-qca-nss-drv-bridge-mgr and kmod-qca-nss-drv-vlan-mgr. But after compile firmware in config.buildinfo i dont see the line kmod-qca-nss-drv-bridge-mgr=y kmod-qca-nss-drv-vlan-mgr=y. It`s a normal?

config.buildinfo is not a "full list of what is enabled"

to see if certain kmod(s) is built into the firmware, you can check in the shell with the nss_diag script

What needs to be done to set WiFi IPQ8074 802.11ac/ax/n on 160mhz? I could not find it by using search functionality.

AP boots correctly on channel 36 and 160mhz. However, the clients (macbook m1) always connect to 80mhz and never switches to the 160mhz one.

What country code and channel setting should be used? Does the BDF or regfile need patching? (using @AgustinLorenzo's build, with ax3600)

root@OpenWrt:~# iw phy1 info
Wiphy phy1
	wiphy index: 1
	max # scan SSIDs: 16
	max scan IEs length: 398 bytes
	max # sched scan SSIDs: 0
	max # match sets: 0
	Retry short limit: 7
	Retry long limit: 4
	Coverage class: 0 (up to 0m)
	Device supports AP-side u-APSD.
	Available Antennas: TX 0xf0 RX 0xf0
	Configured Antennas: TX 0xf0 RX 0xf0
	Supported interface modes:
		 * managed
		 * AP
		 * AP/VLAN
		 * monitor
		 * mesh point
	Band 2:
		Capabilities: 0x19e7
			RX LDPC
			HT20/HT40
			Dynamic SM Power Save
			RX HT20 SGI
			RX HT40 SGI
			TX STBC
			RX STBC 1-stream
			Max AMSDU length: 7935 bytes
			DSSS/CCK HT40
		Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
		Minimum RX AMPDU time spacing: No restriction (0x00)
		HT TX/RX MCS rate indexes supported: 0-31
		VHT Capabilities (0x339b79f6):
			Max MPDU length: 11454
			Supported Channel Width: 160 MHz
			RX LDPC
			short GI (80 MHz)
			short GI (160/80+80 MHz)
			TX STBC
			SU Beamformer
			SU Beamformee
			MU Beamformer
			MU Beamformee
			RX antenna pattern consistency
			TX antenna pattern consistency
		VHT RX MCS set:
			1 streams: MCS 0-9
			2 streams: MCS 0-9
			3 streams: MCS 0-9
			4 streams: MCS 0-9
			5 streams: not supported
			6 streams: not supported
			7 streams: not supported
			8 streams: not supported
		VHT RX highest supported: 0 Mbps
		VHT TX MCS set:
			1 streams: MCS 0-9
			2 streams: MCS 0-9
			3 streams: MCS 0-9
			4 streams: MCS 0-9
			5 streams: not supported
			6 streams: not supported
			7 streams: not supported
			8 streams: not supported
		VHT TX highest supported: 0 Mbps
		VHT extended NSS: supported
		HE Iftypes: managed
			HE MAC Capabilities (0x000b9a181040):
				+HTC HE Supported
				TWT Requester
				Dynamic BA Fragementation Level: 1
				BSR
				Broadcast TWT
				OM Control
				Maximum A-MPDU Length Exponent: 3
				RX Control Frame to MultiBSS
				A-MSDU in A-MPDU
				OM Control UL MU Data Disable RX
			HE PHY Capabilities: (0x0c604c897fdb839c010c00):
				HE40/HE80/5GHz
				HE160/5GHz
				LDPC Coding in Payload
				HE SU PPDU with 1x HE-LTF and 0.8us GI
				STBC Tx <= 80MHz
				STBC Rx <= 80MHz
				Full Bandwidth UL MU-MIMO
				DCM Max Constellation: 1
				DCM Max Constellation Rx: 1
				SU Beamformer
				SU Beamformee
				MU Beamformer
				Beamformee STS <= 80Mhz: 7
				Beamformee STS > 80Mhz: 3
				Sounding Dimensions <= 80Mhz: 3
				Sounding Dimensions > 80Mhz: 3
				Ng = 16 SU Feedback
				Ng = 16 MU Feedback
				Codebook Size SU Feedback
				Codebook Size MU Feedback
				PPE Threshold Present
				HE SU PPDU & HE PPDU 4x HE-LTF 0.8us GI
				Max NC: 3
				STBC Rx > 80MHz
				HE ER SU PPDU 4x HE-LTF 0.8us GI
				TX 1024-QAM
				RX 1024-QAM
			HE RX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: MCS 0-11
				4 streams: MCS 0-11
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE TX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: MCS 0-11
				4 streams: MCS 0-11
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE RX MCS and NSS set 160 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: MCS 0-11
				4 streams: MCS 0-11
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE TX MCS and NSS set 160 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: MCS 0-11
				4 streams: MCS 0-11
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			PPE Threshold 0x7b 0x1c 0xc7 0x71 0x1c 0xc7 0x71 0x1c 0xc7 0x71 0x1c 0xc7 0x71
		HE Iftypes: AP
			HE MAC Capabilities (0x000d9a181040):
				+HTC HE Supported
				TWT Responder
				Dynamic BA Fragementation Level: 1
				BSR
				Broadcast TWT
				OM Control
				Maximum A-MPDU Length Exponent: 3
				RX Control Frame to MultiBSS
				A-MSDU in A-MPDU
				OM Control UL MU Data Disable RX
			HE PHY Capabilities: (0x0c604c887fdb839c010c00):
				HE40/HE80/5GHz
				HE160/5GHz
				LDPC Coding in Payload
				HE SU PPDU with 1x HE-LTF and 0.8us GI
				STBC Tx <= 80MHz
				STBC Rx <= 80MHz
				Full Bandwidth UL MU-MIMO
				DCM Max Constellation Rx: 1
				SU Beamformer
				SU Beamformee
				MU Beamformer
				Beamformee STS <= 80Mhz: 7
				Beamformee STS > 80Mhz: 3
				Sounding Dimensions <= 80Mhz: 3
				Sounding Dimensions > 80Mhz: 3
				Ng = 16 SU Feedback
				Ng = 16 MU Feedback
				Codebook Size SU Feedback
				Codebook Size MU Feedback
				PPE Threshold Present
				HE SU PPDU & HE PPDU 4x HE-LTF 0.8us GI
				Max NC: 3
				STBC Rx > 80MHz
				HE ER SU PPDU 4x HE-LTF 0.8us GI
				TX 1024-QAM
				RX 1024-QAM
			HE RX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: MCS 0-11
				4 streams: MCS 0-11
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE TX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: MCS 0-11
				4 streams: MCS 0-11
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE RX MCS and NSS set 160 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: MCS 0-11
				4 streams: MCS 0-11
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE TX MCS and NSS set 160 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: MCS 0-11
				4 streams: MCS 0-11
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			PPE Threshold 0x7b 0x1c 0xc7 0x71 0x1c 0xc7 0x71 0x1c 0xc7 0x71 0x1c 0xc7 0x71
		HE Iftypes: mesh point
			HE MAC Capabilities (0x00098a081040):
				+HTC HE Supported
				Dynamic BA Fragementation Level: 1
				BSR
				OM Control
				Maximum A-MPDU Length Exponent: 1
				RX Control Frame to MultiBSS
				A-MSDU in A-MPDU
				OM Control UL MU Data Disable RX
			HE PHY Capabilities: (0x0c600c807d5b811c000000):
				HE40/HE80/5GHz
				HE160/5GHz
				LDPC Coding in Payload
				HE SU PPDU with 1x HE-LTF and 0.8us GI
				STBC Tx <= 80MHz
				STBC Rx <= 80MHz
				SU Beamformer
				SU Beamformee
				Beamformee STS <= 80Mhz: 7
				Beamformee STS > 80Mhz: 3
				Sounding Dimensions <= 80Mhz: 3
				Sounding Dimensions > 80Mhz: 3
				Ng = 16 SU Feedback
				Codebook Size SU Feedback
				PPE Threshold Present
				HE SU PPDU & HE PPDU 4x HE-LTF 0.8us GI
				Max NC: 3
			HE RX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: MCS 0-11
				4 streams: MCS 0-11
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE TX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: MCS 0-11
				4 streams: MCS 0-11
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE RX MCS and NSS set 160 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: MCS 0-11
				4 streams: MCS 0-11
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE TX MCS and NSS set 160 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: MCS 0-11
				4 streams: MCS 0-11
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			PPE Threshold 0x7b 0x1c 0xc7 0x71 0x1c 0xc7 0x71 0x1c 0xc7 0x71 0x1c 0xc7 0x71
		Frequencies:
			* 5180.0 MHz [36] (30.0 dBm)
			* 5200.0 MHz [40] (30.0 dBm)
			* 5220.0 MHz [44] (30.0 dBm)
			* 5240.0 MHz [48] (30.0 dBm)
			* 5260.0 MHz [52] (24.0 dBm) (radar detection)
			* 5280.0 MHz [56] (24.0 dBm) (radar detection)
			* 5300.0 MHz [60] (24.0 dBm) (radar detection)
			* 5320.0 MHz [64] (24.0 dBm) (radar detection)
			* 5500.0 MHz [100] (24.0 dBm) (radar detection)
			* 5520.0 MHz [104] (24.0 dBm) (radar detection)
			* 5540.0 MHz [108] (24.0 dBm) (radar detection)
			* 5560.0 MHz [112] (24.0 dBm) (radar detection)
			* 5580.0 MHz [116] (24.0 dBm) (radar detection)
			* 5600.0 MHz [120] (24.0 dBm) (radar detection)
			* 5620.0 MHz [124] (24.0 dBm) (radar detection)
			* 5640.0 MHz [128] (24.0 dBm) (radar detection)
			* 5660.0 MHz [132] (24.0 dBm) (radar detection)
			* 5680.0 MHz [136] (24.0 dBm) (radar detection)
			* 5700.0 MHz [140] (24.0 dBm) (radar detection)
			* 5720.0 MHz [144] (24.0 dBm) (radar detection)
			* 5745.0 MHz [149] (30.0 dBm)
			* 5765.0 MHz [153] (30.0 dBm)
			* 5785.0 MHz [157] (30.0 dBm)
			* 5805.0 MHz [161] (30.0 dBm)
			* 5825.0 MHz [165] (30.0 dBm)
			* 5845.0 MHz [169] (30.0 dBm)
			* 5865.0 MHz [173] (30.0 dBm)
			* 5885.0 MHz [177] (30.0 dBm)
	valid interface combinations:
		 * #{ managed } <= 1, #{ AP, mesh point } <= 16,
		   total <= 16, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz, 80 MHz, 80+80 MHz, 160 MHz }

	HT Capability overrides:
		 * MCS: ff ff ff ff ff ff ff ff ff ff
		 * maximum A-MSDU length
		 * supported channel width
		 * short GI for 40 MHz
		 * max A-MPDU length exponent
		 * min MPDU start spacing
	max # scan plans: 1
	max scan plan interval: -1
	max scan plan iterations: 0
	Maximum associated stations in AP mode: 128
	Supported extended features:
		* [ RRM ]: RRM
		* [ SET_SCAN_DWELL ]: scan dwell setting
		* [ FILS_STA ]: STA FILS (Fast Initial Link Setup)
		* [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records
		* [ ACK_SIGNAL_SUPPORT ]: ack signal level support
		* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
		* [ ENABLE_FTM_RESPONDER ]: enable FTM (Fine Time Measurement) responder
		* [ STA_TX_PWR ]: TX power control per station
		* [ VLAN_OFFLOAD ]: VLAN offload support
		* [ SCAN_FREQ_KHZ ]: scan on kHz frequency support
		* [ BSS_COLOR ]: BSS coloring support
		* [ POWERED_ADDR_CHANGE ]: can change MAC address while up
root@OpenWrt:~#

Hi @qosmio, I was only able to get nlbwmon to work back in 6.50 and ever since it hasn't worked. Can you help me fix it? I always do fresh installs.
I'm on:

MODEL: Linksys MX4300
OPENWRT: r28155-17bdccb4a5
IPQ BRANCH: 24.10-nss-mx4300

Hi, rx-gro-list must be turned on or off?

AFAIK, the m1 mac does not support 160mhz,

Apple has a spec listed here:

1 Like

I am testing upload/download rate limit.
If I use nft-qos package, the policy is set as below.

table inet nft-qos-static {
        chain upload {
                type filter hook postrouting priority mangle; policy accept;
                ip saddr 192.168.1.163 limit rate over 2 mbytes/second drop
        }

        chain download {
                type filter hook prerouting priority mangle; policy accept;
                ip daddr 192.168.1.163 limit rate over 2 mbytes/second drop
        }
}

If I enable software flow offloading in firewall,
I can confirm that upload rate limit is applied, but download rate limit is not applied. I think it is due to NSS. Could you explain how to solve it?

1 Like

having flow offloading enabled defeats the purpose of NSS that does hardware flow offloading separate to the way openwrt implements it.

1 Like

For those of you using my nss-supported builds for the nbg7815 with LED and fan support, I've compiled a new version based on the 24.10.0-rc1 branch.
You can download it here.

2 Likes

any chance to have an mx 5300 build?

1 Like

Hi,

The RAX120v2 FW is not correct. It's for SXS80 (hexdump it to check)
image

Comming back to my attempt to implement vlan for wifi directly. I've tinkered around a while now and found out it is not working for nss.

While this approach (https://github.com/openwrt/openwrt/pull/17145) in connection with sae and the vlan patch for ath11k is working on vanilla. It is not working for nss builds.

As soon a device is trying to connect the mac80211 driver is constantly crashing with the output below (as long a device is trying to connect). Sometimes the connection goes through but the CPU is maxed out and the whole device/system is becomming unresponsive. If the device gets connected it is assigned to the first lan always but never to the desired vlan and after a while the device get dropped out.

Is it desired to open an issue or discussing this elsewhere or is this not within the scope off nss builds?

[ 2414.003667] WARNING: CPU: 1 PID: 11 at /home/pwned/nolf/openwrt/zyxel_nbg7815/openwrt-nss-05-12-2024-1158/build_dir/target-aarch64-openwrt-linux-musl_musl/linux-qualcommax_ipq807x/mac80211-regular/backports-6.11.2/net/mac80211/tx.c:6332 ieee80211_tx_skb_tid+0x94/0xac [mac80211]
[ 2414.010420] Modules linked in: ecm(O) pppoe ppp_async l2tp_ppp ath11k_pci(O) ath11k_ahb(O) ath11k(O) xt_DSCP wireguard pptp pppox ppp_generic nft_redir nft_nat nft_masq nft_flow_offload nft_fib_inet nft_ct nft_chain_nat nf_nat_ftp nf_nat nf_flow_table_inet nf_flow_table nf_conntrack_netlink nf_conntrack_ftp nf_conntrack_bridge nf_conntrack mmc_spi mac80211(O) libchacha20poly1305 ipt_REJECT chacha_neon cfg80211(O) xt_time xt_tcpudp xt_tcpmss xt_statistic xt_multiport xt_mark xt_mac xt_limit xt_length xt_hl xt_ecn xt_dscp xt_comment xt_TCPMSS xt_LOG xt_HL xt_CLASSIFY tmp103 spidev spi_gpio spi_bitbang slhc sch_cake rfcomm qrtr_smd qrtr_mhi qrtr qmi_helpers(O) poly1305_neon of_mmc_spi nft_tproxy nft_socket nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject_bridge nft_reject nft_quota nft_queue nft_numgen nft_meta_bridge nft_log nft_limit nft_hash nft_fwd_netdev nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_dup_netdev nft_compat nfnetlink_queue nf_tproxy_ipv6 nf_tproxy_ipv4 nf_tables nf_socket_ipv6 nf_socket_ipv4
[ 2414.010589]  nf_reject_ipv6 nf_reject_ipv4 nf_log_syslog nf_dup_netdev nf_defrag_ipv4 mhi libcurve25519_generic libchacha iptable_mangle iptable_filter ipt_ECN ip6_tables ip_tables hidp hci_uart crc7 crc_itu_t compat(O) btusb btrtl btmtk btintel bnep bluetooth fuse ntfs3 sch_tbf sch_ingress sch_htb sch_hfsc em_u32 cls_u32 cls_route cls_matchall cls_fw cls_flow cls_basic act_skbedit act_mirred act_gact configs hid evdev input_core gpio_fan qca_nss_bridge_mgr(O) qca_nss_vlan(O) xt_set x_tables ip_set_list_set ip_set_hash_netportnet ip_set_hash_netport ip_set_hash_netnet ip_set_hash_netiface ip_set_hash_net ip_set_hash_mac ip_set_hash_ipportnet ip_set_hash_ipportip ip_set_hash_ipport ip_set_hash_ipmark ip_set_hash_ipmac ip_set_hash_ip ip_set_bitmap_port ip_set_bitmap_ipmac ip_set_bitmap_ip ip_set nfnetlink msdos ip6_gre ip_gre gre ifb nat46(O) nf_defrag_ipv6 sit sctp qca_nss_drv(O) l2tp_netlink l2tp_core udp_tunnel ip6_udp_tunnel ip6_tunnel tunnel6 tunnel4 ip_tunnel tun hfsplus cdrom cifs oid_registry nls_ucs2_utils
[ 2414.100096]  cifs_md4 cifs_arc4 asn1_decoder dns_resolver netfs nls_utf8 nls_iso8859_15 nls_iso8859_1 nls_cp850 nls_cp437 nls_cp1250 rfkill wp512 twofish_generic twofish_common tea serpent_generic khazad cast6_generic cast5_generic cast_common camellia_generic blowfish_generic blowfish_common anubis ecdh_generic ecc xxhash_generic crypto_user algif_skcipher algif_rng algif_hash algif_aead af_alg sha512_generic sha512_arm64 sha2_ce sha256_arm64 sha1_ce seqiv sha3_generic jitterentropy_rng drbg michael_mic md5 kpp hmac geniv des_generic cmac blake2b_generic uas usb_storage leds_lp5569 leds_lp55xx_common leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_qcom ahci libahci libata qca_nss_dp(O) qca_ssdk(O) ramoops reed_solomon pstore gpio_button_hotplug(O) vfat fat f2fs ext4 mbcache jbd2 exfat btrfs xor xor_neon raid6_pq libcrc32c dm_mirror dm_region_hash dm_log dm_crypt dm_mod dax aquantia hwmon crc_ccitt tpm rng_core crc32c_generic crc32_generic encrypted_keys trusted
[ 2414.275095] CPU: 1 PID: 11 Comm: kworker/u8:0 Tainted: G        W  O       6.6.63 #0
[ 2414.297331] Hardware name: Zyxel NBG7815 (DT)
[ 2414.305051] Workqueue: events_unbound wiphy_delayed_work_pending [cfg80211]
[ 2414.309310] pstate: 80400005 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 2414.316078] pc : ieee80211_tx_skb_tid+0x94/0xac [mac80211]
[ 2414.323020] lr : ieee80211_tx_skb_tid+0x28/0xac [mac80211]
[ 2414.328576] sp : ffffffc080dcbba0
[ 2414.334040] x29: ffffffc080dcbba0 x28: ffffff802011c900 x27: 0000000000000001
[ 2414.337432] x26: ffffff8018eb3200 x25: ffffff802268f040 x24: ffffff8017ef3a98
[ 2414.344550] x23: 0000000000000025 x22: 0000000000000007 x21: ffffff8018eb3200
[ 2414.351668] x20: 00000000ffffffff x19: ffffff802011c900 x18: 0000000000000000
[ 2414.358786] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000
[ 2414.365905] x14: 0000000000000000 x13: 000000000000030c x12: 0000000000000002
[ 2414.373023] x11: 0000000000000000 x10: 00000000000009c0 x9 : 0000000000000000
[ 2414.380140] x8 : ffffff8018eb32b8 x7 : 0000000000000ec0 x6 : 0000000000000021
[ 2414.387259] x5 : ffffff802268f061 x4 : 0000000000000024 x3 : 00000000ffffffff
[ 2414.394378] x2 : 0000000000000007 x1 : ffffff8002108e40 x0 : 0000000000000000
[ 2414.401495] Call trace:
[ 2414.408604]  ieee80211_tx_skb_tid+0x94/0xac [mac80211]
[ 2414.410867]  __ieee80211_start_rx_ba_session+0x2b0/0x52c [mac80211]
[ 2414.416076]  ieee80211_process_addba_request+0x84/0x124 [mac80211]
[ 2414.422240]  ieee80211_ibss_leave+0xcc4/0x10fc [mac80211]
[ 2414.428489]  wiphy_delayed_work_pending+0x308/0x440 [cfg80211]
[ 2414.433959]  process_one_work+0x178/0x2a0
[ 2414.439683]  worker_thread+0x35c/0x480
[ 2414.443762]  kthread+0x10c/0x110
[ 2414.447407]  ret_from_fork+0x10/0x20
[ 2414.450795] ---[ end trace 0000000000000000 ]---

Looks like a bug on image creation. But I'm not sure if the devices share common things regarding flashing the device via manufacturer web gui. Maybe it's worth to open an issue on OpenWrt/Github.

Th ath11k driver doesn't support AP-VLAN functions, so dynamic VLAN isn't possible unless the draft patch is applied. Unfortunately, after it was drafted, it was sent back for some revisions and porting to a more recent base, but that was in 2022 and it's been stale since then.

There is a fork of the Linksys MX4300 non-NSS branch available here:
https://github.com/gtxaspec/openwrt-mx4300/blob/mx4300-dev/package/kernel/mac80211/patches/ath11k/906-ath11k-add-support-for-dynamic-vlan.patch

If someone were so inclined, it could be brought up to speed with the drivers used here, but as is it doesn't work here. It does, however, work with the main openwrt repo which is where I've been messing with it, trying to iron out my own hypothetical setup (thanks to practically free MX4300s, everyone can have a qa environment lol).

1 Like

@tardeaux:

1.) Thank you for your answer.
2.) I'm trying to adopt this approach to get rid of SSID pollution. I tried FreeRadius in the past (some years ago). But this is a software full of bugs trying to be feature rich (IMO). It's crap.
3.) As I've started investigating this topic I've realized very fast that VLAN is not supported by ath11k. But I've found out that the NSS repo is including VLAN patches (207-ath11k-Add-support-for-dynamic-vlan.patch (1 for subsys and 1 for ath11k)). That was the reason why I've tried NSS in first instance. So I assumed (maybe I'm completley wrong here) that it should work out of the box.
4.) Yesterday I've made a vanilla build including the SAE patch (PR from above) and the VLAN patch (written for plain ath11k; https://patchwork.kernel.org/project/linux-wireless/patch/1641786090-10232-1-git-send-email-quic_seevalam@quicinc.com/#24727646). It is working on vanialla.

To me (I don't have really a clue) it looks like that the NSS vlan patches are doing different things resp. are meant for other things but not dealing with vlans directly.

Next step I would try is to integrate the vlan patch into NSS. But I don't know if this is doomed for the NSS because it is so different. Maybe someone else could say sth. about. The patch I've used is dated 10 Jan 2022 09:11:30. There are several revisions flying around. So I do not really know what is the proper to use.

EDIT: I see you have used the same patch as I did.

EDIT2: Parts of the original patch are indeed within 207-ath11k-Add-support-for-dynamic-vlan.patch files (it is named "ath11k: Add support for dynamic vlan" also). It looks to me it is a more recent version of the original patch. So basically my assumption that this should work on NSS is not so wrong. To me it looks like it is just not enabled by default bc. the lines ".supports_ap_vlan = true," for the devices are missing within core.c. I'll try to enable it as a last effort.

EDIT3: Trying to use supports_ap_vlan does not work. It seems to be outdated resp. not suitable/useable for NSS.