Xiaomi AX3600 is very well supported, I've been using this builds for a long time.
Hi @qosmio and others,
Have you seen this? Is related to dynamic VLAN for ath11k.
https://github.com/openwrt/openwrt/pull/17644 is similar to this: https://github.com/qosmio/openwrt-ipq/blob/main-nss/package/kernel/mac80211/patches/nss/ath11k/207-ath11k-Add-support-for-dynamic-vlan.patch
Regards, Agustin
@breeze303 How was it resolved?
Hi!
Iām using currently two ax3600 with OpenWRT vanilla as dumb access points.
Does this nss build has any advantage in my scenario?
thanks
Do you reach the speeds you want to reach? If so, the answer is no.
with 900-hostapd-update-muedca-params.patch disconnected clients don't drop associated stations list in luci
after removing patch disconnected clients can be dropped
hostapd: update to version 2025-01-09 except revert commit causes some trouble i have to remove revert
In the process of refreshing the patch 0981-1-qca-skb_recycler-support.patch the skb_recycler_init(); was overwritten, just patch it back in.
There are indeed some bugs on the vlan, I'm not using the vlan at the moment not quite sure, need more feedback.
Hi @breeze303, I want to build for Xiaomi AX3600, but i got
make[5]: Entering directory '/builder/openwrt-6.x/build_dir/target-aarch64_cortex-a53_musl/linux-qualcommax_ipq807x/linux-6.12.10'
SYNC include/config/auto.conf.cmd
*
* Restart config...
*
*
* Core Netfilter Configuration
*
Netfilter ingress support (NETFILTER_INGRESS) [Y/n/?] y
Netfilter egress support (NETFILTER_EGRESS) [N/y/?] n
Netfilter NFNETLINK interface (NETFILTER_NETLINK) [M/y/?] m
Netfilter base hook dump support (NETFILTER_NETLINK_HOOK) [N/m/?] n
Netfilter NFACCT over NFNETLINK interface (NETFILTER_NETLINK_ACCT) [N/m/y/?] n
Netfilter NFQUEUE over NFNETLINK interface (NETFILTER_NETLINK_QUEUE) [N/m/y/?] n
Netfilter LOG over NFNETLINK interface (NETFILTER_NETLINK_LOG) [N/m/y/?] n
Netfilter OSF over NFNETLINK interface (NETFILTER_NETLINK_OSF) [N/m/y/?] n
Netfilter connection tracking support (NF_CONNTRACK) [M/n/y/?] m
Syslog packet logging (NF_LOG_SYSLOG) [M/y/?] m
Connection mark tracking support (NF_CONNTRACK_MARK) [Y/n/?] y
Connection tracking zones (NF_CONNTRACK_ZONES) [Y/n/?] y
Supply CT list in procfs (OBSOLETE) (NF_CONNTRACK_PROCFS) [Y/n/?] y
Connection tracking events (NF_CONNTRACK_EVENTS) [Y/n/?] y
Connection tracking timeout (NF_CONNTRACK_TIMEOUT) [Y/n/?] y
Connection tracking extension for dscp remark target (NF_CONNTRACK_DSCPREMARK_EXT) [N/y/?] (NEW)
here is my .config
what should be set or unset for this?
thanks
Speed is such a thing.
I'm not happy with the latency over wifi with vanilla. But coverage, throuput is acceptable for me.
So can this build help with latency? Or should i investigate in generel wifi configs for my dumb aps?
There are a lot of unknown factors coming into play when transmitting data of the air. NSS could help with latency. I would suggest flashing my build with iperf3 installed an evaluating the latency between the router and a local client. Make sure to perform the measurements a bunch of times to reduce the impact of the unknown factors.
tysm dude! your proposal indeed fixed my issue!
i think the best we can do now is revert https://github.com/qosmio/openwrt-ipq/commit/44792d13d95054dc8b61b9abcf9071aeda2eea58#r151600943
@qosmio maybe add a relay before reload_wifi?
I installed qosmio nss release on a MX8500 (IPQ8078 + QCN9074), only change is using 2.12 01460 for ath11k firmware.
I am using NSS.FW.12.2-161-HK.R + ath11k WLAN 2.12 01460
I am using bonding to do 3x1Gbps on the lan side and 1x2.5Gbps on the WLAN side.
Without NSS, I can only reach around 1.8Gbps.on the LAN side with iperf3
With NSS, I can reach the 2.8Gbps on the LAN side (max with bonding overhead), I need to add WLAN to see if it can do even more
nss_diag
MODEL: Linksys MX8500
OPENWRT: r28769+536-41daf80a0a
IPQ BRANCH: main-nss
IPQ COMMIT: b1dc1e9a3a
IPQ DATE: 2025-01-21
NSS FW: NSS.FW.12.2-161-HK.R
MAC80211: v6.12.6-0-ge9d65b48ce1a
ATH11K FW: WLAN.HK.2.12-01460-QCAHKSWPL_SILICONZ-1
INTERFACE: br-lan tx-checksumming: on rx-gro-list: off
lan1 tx-checksumming: on rx-gro-list: off
lan2 tx-checksumming: on rx-gro-list: off
lan3 tx-checksumming: on rx-gro-list: off
lan4 tx-checksumming: on rx-gro-list: off
phy0-ap0 tx-checksumming: on rx-gro-list: off
phy1-ap0 tx-checksumming: on rx-gro-list: off
phy2-ap0 tx-checksumming: on rx-gro-list: off
wan tx-checksumming: on rx-gro-list: off
NSS PKGS: kmod-qca-mcs-6.6.71.12.5.2024.02.27~26d6424-r1 aarch64_cortex-a53 {feeds/nss_packages/qca-mcs} () [installed]
kmod-qca-nss-crypto-6.6.71.12.5.2022.12.15~3c5a574-r3 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-crypto} () [installed]
kmod-qca-nss-dp-6.6.71.2024.04.16~5bf8b91e-r1 aarch64_cortex-a53 {feeds/base/kernel/qca-nss-dp} () [installed]
kmod-qca-nss-drv-6.6.71.12.5.2024.04.06~53a0dc1-r15 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-drv} () [installed]
kmod-qca-nss-drv-bridge-mgr-6.6.71.12.5.2024.06.12~1bcef16-r7 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-clients} () [installed]
kmod-qca-nss-drv-eogremgr-6.6.71.12.5.2024.06.12~1bcef16-r7 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-clients} () [installed]
kmod-qca-nss-drv-gre-6.6.71.12.5.2024.06.12~1bcef16-r7 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-clients} () [installed]
kmod-qca-nss-drv-igs-6.6.71.12.5.2024.06.12~1bcef16-r7 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-clients} () [installed]
kmod-qca-nss-drv-lag-mgr-6.6.71.12.5.2024.06.12~1bcef16-r7 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-clients} () [installed]
kmod-qca-nss-drv-map-t-6.6.71.12.5.2024.06.12~1bcef16-r7 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-clients} () [installed]
kmod-qca-nss-drv-match-6.6.71.12.5.2024.06.12~1bcef16-r7 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-clients} () [installed]
kmod-qca-nss-drv-mirror-6.6.71.12.5.2024.06.12~1bcef16-r7 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-clients} () [installed]
kmod-qca-nss-drv-qdisc-6.6.71.12.5.2024.06.12~1bcef16-r7 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-clients} () [installed]
kmod-qca-nss-drv-vlan-mgr-6.6.71.12.5.2024.06.12~1bcef16-r7 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-clients} () [installed]
kmod-qca-nss-drv-vxlanmgr-6.6.71.12.5.2024.06.12~1bcef16-r7 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-clients} () [installed]
kmod-qca-nss-drv-wifi-meshmgr-6.6.71.12.5.2024.06.12~1bcef16-r7 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-clients} () [installed]
kmod-qca-nss-ecm-6.6.71.12.5.5.2024.09.02~bd5057b-r3 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-ecm} () [installed]
kmod-qca-nss-macsec-6.6.71.12.4.5.2023.10.16~b94e22d-r1 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-macsec} () [installed]
kmod-qca-ssdk-6.6.71.2024.06.13~c451136b-r3 aarch64_cortex-a53 {feeds/base/kernel/qca-ssdk} () [installed]
nss-eip-firmware-2.5.7-r1 aarch64_cortex-a53 {feeds/nss_packages/firmware/nss-eip-firmware} () [installed]
nss-firmware-default-2024.08.04~794fe373-r1 aarch64_cortex-a53 {feeds/nss_packages/firmware/nss-firmware} () [installed]
nss-firmware-ipq8074-2024.08.04~794fe373-r1 aarch64_cortex-a53 {feeds/nss_packages/firmware/nss-firmware} () [installed]
is ur 6GHz radio working fine? mine triggers a kernel panic every hour or so:
Summary
Oops#1 Part1
<6>[ 2383.284655] br-lan: port 7(phy1-ap0) entered disabled state
<6>[ 2383.289153] ath11k c000000.wifi phy1-ap0: entered allmulticast mode
<6>[ 2383.295056] ath11k c000000.wifi phy1-ap0: entered promiscuous mode
<6>[ 2383.465182] br-lan: port 7(phy1-ap0) entered blocking state
<6>[ 2383.465226] br-lan: port 7(phy1-ap0) entered forwarding state
<6>[ 2392.644591] br-lan: port 8(phy0-ap0) entered blocking state
<6>[ 2392.644635] br-lan: port 8(phy0-ap0) entered disabled state
<6>[ 2392.649085] ath11k c000000.wifi phy0-ap0: entered allmulticast mode
<6>[ 2392.654890] ath11k c000000.wifi phy0-ap0: entered promiscuous mode
<6>[ 2393.242630] br-lan: port 8(phy0-ap0) entered blocking state
<6>[ 2393.242677] br-lan: port 8(phy0-ap0) entered forwarding state
<5>[ 4826.198780] ubi1: attaching mtd14
<5>[ 4826.589663] ubi1: scanning is finished
<5>[ 4826.596607] ubi1: attached mtd14 (name "rootfs", size 74 MiB)
<5>[ 4826.596646] ubi1: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
<5>[ 4826.601339] ubi1: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
<5>[ 4826.608139] ubi1: VID header offset: 2048 (aligned 2048), data offset: 4096
<5>[ 4826.614973] ubi1: good PEBs: 592, bad PEBs: 0, corrupted PEBs: 0
<5>[ 4826.621737] ubi1: user volume: 2, internal volumes: 1, max. volumes count: 128
<5>[ 4826.628018] ubi1: max/mean erase counter: 19/13, WL threshold: 4096, image sequence number: 1735597816
<5>[ 4826.635051] ubi1: available PEBs: 0, total reserved PEBs: 592, PEBs reserved for bad PEB handling: 80
<5>[ 4826.644336] ubi1: background thread "ubi_bgt1d" started, PID 11942
<6>[ 4826.654310] block ubiblock1_0: created from ubi1:0(rootfs)
<1>[ 6436.102033] Unable to handle kernel read from unreadable memory at virtual address 0000000000003ec8
<1>[ 6436.102081] Mem abort info:
<1>[ 6436.109891] ESR = 0x0000000096000005
<1>[ 6436.112659] EC = 0x25: DABT (current EL), IL = 32 bits
<1>[ 6436.116479] SET = 0, FnV = 0
<1>[ 6436.121944] EA = 0, S1PTW = 0
<1>[ 6436.124811] FSC = 0x05: level 1 translation fault
<1>[ 6436.127852] Data abort info:
<1>[ 6436.132707] ISV = 0, ISS = 0x00000005, ISS2 = 0x00000000
<1>[ 6436.135838] CM = 0, WnR = 0, TnD = 0, TagAccess = 0
<1>[ 6436.141131] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
<1>[ 6436.146257] user pgtable: 4k pages, 39-bit VAs, pgdp=0000000052e7c000
<1>[ 6436.151640] [0000000000003ec8] pgd=0800000052f5c003, p4d=0800000052f5c003, pud=0800000052f5c003, pmd=0000000000000000
<0>[ 6436.157986] Internal error: Oops: 0000000096000005 [#1] SMP
<4>[ 6436.168564] Modules linked in: ecm(O) jitterentropy_rng pppoe ppp_async nft_fib_inet nf_flow_table_inet l2tp_ppp ath11k_pci(O) ath11k_ahb(O) ath11k(O) xt_DSCP pptp pppox ppp_generic nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject_bridge nft_reject nft_redir nft_quota nft_numgen nft_nat nft_meta_bridge nft_masq nft_log nft_limit nft_hash nft_fwd_netdev nft_flow_offload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_dup_netdev nft_ct nft_compat nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack_bridge nf_conntrack mac80211(O) iptable_mangle iptable_filter ipt_REJECT ipt_ECN ip_tables 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 x_tables slhc sch_cake rfcomm qrtr_smd qrtr_mhi qrtr qmi_helpers(O) nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_log_syslog nf_dup_netdev nf_defrag_ipv6 nf_defrag_ipv4 mhi libcrc32c hidp hci_uart compat(O) btusb btrtl btmtk btintel bnep bluetooth ntfs3 sch_tbf
<4>[ 6436.168748] sch_ingress sch_htb sch_hfsc em_u32 cls_u32 cls_route cls_matchall cls_fw cls_flow cls_basic act_skbedit act_gact hid evdev input_core qca_nss_wifi_meshmgr(O) qca_nss_bridge_mgr(O) qca_nss_vlan(O) qca_mcs(O) ip_gre gre qca_nss_drv(O) l2tp_netlink l2tp_core udp_tunnel ip6_udp_tunnel ip_tunnel nls_utf8 nls_iso8859_1 nls_cp437 ecdh_generic ecc sha512_generic sha512_arm64 seqiv sha3_generic drbg michael_mic kpp hmac geniv cmac usb_storage leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_qcom qca_nss_dp(O) qca_ssdk(O) ramoops reed_solomon pstore gpio_button_hotplug(O) vfat fat ext4 mbcache jbd2 aquantia hwmon crc_ccitt crc32c_generic [last unloaded: ifb]
<4>[ 6436.299976] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G O 6.6.71 #0
<4>[ 6436.322213] Hardware name: Linksys MR7500 (DT)
<4>[ 6436.329673] pstate: 40400005 (nZcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
<4>[ 6436.333930] pc : ath11k_dp_tx_htt_monitor_mode_ring_config+0x2b40/0x5238 [ath11k]
<4>[ 6436.340789] lr : ath11k_dp_htt_htc_t2h_msg_handler+0x50c/0x13a4 [ath11k]
<4>[ 6436.348427] sp : ffffffc080003ca0
<4>[ 6436.355191] x29: ffffffc080003ca0 x28: ffffffc080f73280 x27: ffffff800926d050
<4>[ 6436.358410] x26: ffffff8008262000 x25: ffffff8008269b48 x24: 000000000000000c
<4>[ 6436.365529] x23: ffffff800926d054 x22: ffffffc079bf54b4 x21: 000000000000000c
<4>[ 6436.372646] x20: ffffff8008260000 x19: ffffff8008076d00 x18: 0000000000000001
<4>[ 6436.379765] x17: 0000000000000300 x16: 0000000000000100 x15: ffffffc080f73280
<4>[ 6436.386883] x14: 0000000000000001 x13: 000000000000c00a x12: 0000000000000001
<4>[ 6436.394000] x11: 0000000100095ced x10: ffffffc079c4d0d0 x9 : ffffffc079becf34
<4>[ 6436.401118] x8 : 0000000000000000 x7 : 0000000000000000 x6 : 0000000000000100
<4>[ 6436.408236] x5 : 0000000000009b48 x4 : 0000000000000000 x3 : 0000000000000000
<4>[ 6436.415355] x2 : ffffffffffffffc0 x1 : 0000000000000009 x0 : 0000000000000000
<4>[ 6436.422473] Call trace:
<4>[ 6436.429582] ath11k_dp_tx_htt_monitor_mode_ring_config+0x2b40/0x5238 [ath11k]
<4>[ 6436.431848] ath11k_dp_htt_htc_t2h_msg_handler+0x50c/0x13a4 [ath11k]
<4>[ 6436.439138] ath11k_ce_per_engine_service+0x2a4/0x3d4 [ath11k]
<4>[ 6436.445559] 0xffffffc079c4ecb0
<4>[ 6436.451198] tasklet_action_common.isra.0+0x110/0x148
<4>[ 6436.454240] tasklet_action+0x24/0x30
<4>[ 6436.459446] handle_softirqs+0xf8/0x230
<4>[ 6436.463092] __do_softirq+0x14/0x20
<4>[ 6436.466735] ____do_softirq+0x10/0x1c
<4>[ 6436.470209] call_on_irq_stack+0x24/0x4c
<4>[ 6436.474030] do_softirq_own_stack+0x1c/0x28
<4>[ 6436.478023] irq_exit_rcu+0x90/0xc8
<4>[ 6436.481928] el1_interrupt+0x38/0x54
<4>[ 6436.485400] el1h_64_irq_handler+0x18/0x24
<4>[ 6436.489221] el1h_64_irq+0x68/0x6c
<4>[ 6436.493125] default_idle_call+0x28/0x40
<4>[ 6436.496511] do_idle+0x1cc/0x1ec
<4>[ 6436.500591] cpu_startup_entry+0x34/0x3c
<4>[ 6436.503803] kernel_init+0x0/0x1e0
<4>[ 6436.507709] arch_post_acpi_subsys_init+0x0/0x8
<4>[ 6436.510923] start_kernel+0x5c8/0x6fc
<4>[ 6436.515348] __primary_switched+0xb4/0xbc
<0>[ 6436.519171] Code: d503233f a9b87bfd 910003fd a90153f3 (f95f6413)
<4>[ 6436.523166] ---[ end trace 0000000000000000 ]---
I don't have any kernel panic.
Only issue is that I cannot make the 160Mhz channel width work in 6G.
I was able to do that with stock openwrt
huh, I can have everything including 160MHz working in 6G but once a client connects to it later it would trigger a panic
Has anyone tried the commands in this commit to see the memory allocations in the driver & mac80211.
ath11k_nss: Add support to account memory stats
Memory allocations in the driver & mac80211 are logged
and populate those values to the user space via debugfs.
This stats will give the snapshot of the memory being
used by the driver at the time of dumping these
memory stats.
Command:
cat /sys/kernel/debug/ath11k/ipq8074\ hw2.0/memory_stats
Sample output of the stats
MEMORY STATS IN BYTES:
malloc size : 6287583
ce_ring_alloc size: 109308
dma_alloc size:: 10831860
htc_skb_alloc size: 3840
wmi alloc size: 0
per peer object: 4644
rx_post_buf size: 5091840
Total size: 22329075
User can disable/enable the memory stats accounting with
the below command.
echo N > /sys/kernel/debug/ath11k/ipq8074\ hw2.0/enable_memory_stats
where N = 0 to disable logging, 1 to enable the logging.
Note: This should be enabled/disabled only after wifi is down.
User shouldn't enable/disable when the wifi is up to avoid
accounting the negative values which cause incorrect values
in the memory stats.
Command:
cat /sys/kernel/debug/ieee80211/phyX/memory_stats
memory stats: malloc_size: 108
I get nonexistent directory
root@QNAP:~# echo 1 > /sys/kernel/debug/ath11k/ipq8074\ hw2.0/enable_memory_stats
-ash: can't create /sys/kernel/debug/ath11k/ipq8074 hw2.0/enable_memory_stats: nonexistent directory
so no stats.
Hey, new user of the device (Dynalink DL-WRX36) here and kind of confused about all the builds available here. From what I can find, there is;
- @qosmio's build with branches for both main and 24.10 for all devices
- @AgustinLorenzo's build tracking the main branch for a collection of devices
- @JuliusBairaktaris's build for Ax3600 from the main branch
- @breeze303's build for ? tracking both main and 24.10
I am not terribly familiar with custom builds though I have used the image builder before to add packages before.
My device is going to be the main router and AP for our tiny place with no backups. I would ideally like something stable that I need to only build/update occasionally without borking stuff and getting on my partner's bad side.
Given that;
- Should I stick with 24.10 or the main for more stability? 24.10 seems the obvious choice but I am not sure if there are breaking bugs in it, like the WiFi disconnect one people were talking about.
- In case of either, is the starting point qosmio's openwrt-ipq or the main openwrt repo?
- I am currently on Agustin's snapshot and I tried tweaking it to only to be overwhelmed by the number of options in .full_config file. Do you need that many?
- Is there a list of the patches to apply to qosmio's or main branch to fix stuff for my device maintained somewhere?
- Is there a chance I can break my device doing this, given I stay within reasonable modifications? What should I watch out for?
TLDR; kind of overwhelmed by all the options and wanted help building.