Qualcommax NSS Build

Hi, I'm compiling from branch: "src-git nss_packages https://github.com/qosmio/nss-packages.git;NSS-12.5-K6.x-wwan" and I have this error:

linux-qualcommax_ipq807x/qca-nss-ecm-12.5.2024.06.20~92c7fa1/exports -Wall -Werror -I/home/metium/openwrt-ipq/staging_dir/target-aarch64_cortex-a53_musl/usr/include/qca-nss-drv -I/home/metium/openwrt-ipq/staging_dir/target-aarch64_cortex-a53_musl/usr/include/qca-mcs -I/home/metium/openwrt-ipq/staging_dir/target-aarch64_cortex-a53_musl/usr/include/nat46 -Wno-error=unused-function  -DMODULE  -DKBUILD_BASENAME='"ecm_nss_non_ported_ipv4"' -DKBUILD_MODNAME='"ecm"' -D__KBUILD_MODNAME=kmod_ecm -c -o /home/metium/openwrt-ipq/build_dir/target-aarch64_cortex-a53_musl/linux-qualcommax_ipq807x/qca-nss-ecm-12.5.2024.06.20~92c7fa1/frontends/nss/ecm_nss_non_ported_ipv4.o /home/metium/openwrt-ipq/build_dir/target-aarch64_cortex-a53_musl/linux-qualcommax_ipq807x/qca-nss-ecm-12.5.2024.06.20~92c7fa1/frontends/nss/ecm_nss_non_ported_ipv4.c  
../qca-nss-ecm-12.5.2024.06.20~92c7fa1/frontends/nss/ecm_nss_non_ported_ipv4.c: In function 'ecm_nss_non_ported_ipv4_connection_accelerate':
../qca-nss-ecm-12.5.2024.06.20~92c7fa1/frontends/nss/ecm_nss_non_ported_ipv4.c:859:47: error: 'NSS_IPV4_RULE_CREATE_RAWIP_VALID' undeclared (first use in this function); did you mean 'NSS_IPV4_RULE_CREATE_RPS_VALID'?
  859 |                         nircm->valid_flags |= NSS_IPV4_RULE_CREATE_RAWIP_VALID;
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                               NSS_IPV4_RULE_CREATE_RPS_VALID
../qca-nss-ecm-12.5.2024.06.20~92c7fa1/frontends/nss/ecm_nss_non_ported_ipv4.c:859:47: note: each undeclared identifier is reported only once for each function it appears in

[edit]
I will add that it compiles correctly on the default branch.

Build was successful from last commit but now getting kernel panic on boot

Router: Arcadyan AW1000

[   32.486138] l11: disabling
[   39.982613] net wwan0: link_state 0x0 -> 0x1
[   40.234210] NSS core 1 signal COREDUMP COMPLETE 4000
[   40.234250] ffffffc0790f47c0: Starting NSS-FW logbuffer dump for core 1
[   40.238257] ffffffc0790f47c0: Warn: trap[638]: A4_7: 00000000 3F000228 3F01F48C 3F0057B8
[   40.244585] ffffffc0790f47c0: Warn: trap[643]: D0_3: 00000010 00000000 00000000 00000000
[   40.252926] ffffffc0790f47c0: Warn: trap[643]: D4_7: 00000000 00000000 00000000 00000000
[   40.260996] ffffffc0790f47c0: Warn: trap[643]: D8_11: 00000000 00000000 00000000 00000000
[   40.269068] ffffffc0790f47c0: Warn: trap[643]: D12_15: 00000000 00000000 00000000 00000000
[   40.277141] ffffffc0790f47c0: Warn: trap[647]: PC 3F00059C: D6A00001 2CC004C0 00000800 24C004C0
[   40.285297] ffffffc0790f47c0: Warn: trap[650]: PPC 3F000598: 012D9000 D6A00001 2CC004C0 00000800
[   40.293896] ffffffc0790f47c0: Warn: trap[633]: Thread 10:
[   40.302917] ffffffc0790f47c0: Warn: trap[638]: A0_3: 3C000400 00000002 3F01F45C 3C000100
[   40.308224] ffffffc0790f47c0: Warn: trap[638]: A4_7: 3F02F92C 3F02FAAC 3F01F35C 3F004FB8
[   40.316378] ffffffc0790f47c0: Warn: trap[643]: D0_3: 00000010 00000002 645001F0 00000004
[   40.324446] ffffffc0790f47c0: Warn: trap[643]: D4_7: 00000051 00000001 173F7A00 FFFFFF80
[   40.332523] ffffffc0790f47c0: Warn: trap[643]: D8_11: 00000000 00000000 00000000 00000000
[   40.340597] ffffffc0790f47c0: Warn: trap[643]: D12_15: 00000000 00000000 00000000 00000000
[   40.348668] ffffffc0790f47c0: Warn: trap[647]: PC 3F00059C: D6A00001 2CC004C0 00000800 24C004C0
[   40.356829] ffffffc0790f47c0: Warn: trap[650]: PPC 3F000598: 012D9000 D6A00001 2CC004C0 00000800
[   40.365420] ffffffc0790f47c0: Warn: trap[633]: Thread 11:
[   40.374444] ffffffc0790f47c0: Warn: trap[638]: A0_3: 408815E4 00000001 3F01F32C 40881580
[   40.379745] ffffffc0790f47c0: Warn: trap[638]: A4_7: 408815E4 40827BE0 3F01F22C 3F0047B8
[   40.387906] ffffffc0790f47c0: Warn: trap[643]: D0_3: 0000768C 00000001 0000768B 00000000
[   40.395974] ffffffc0790f47c0: Warn: trap[643]: D4_7: 3F02F82C 00000000 00000001 FFFFFFFD
[   40.404054] ffffffc0790f47c0: Warn: trap[643]: D8_11: 00000014 00000019 00000000 00000000
[   40.412123] ffffffc0790f47c0: Warn: trap[643]: D12_15: 00000000 00000000 00000000 00000000
[   40.420197] ffffffc0790f47c0: Warn: trap[647]: PC 3F00059C: D6A00001 2CC004C0 00000800 24C004C0
[   40.428357] ffffffc0790f47c0: Warn: trap[650]: PPC 3F000598: 012D9000 D6A00001 2CC004C0 00000800
[   40.440008] NSS core 0 signal COREDUMP COMPLETE 4000
[   40.445969] ffffffc0790ece80: Starting NSS-FW logbuffer dump for core 0
[   40.450929] Kernel panic - not syncing: NSS FW coredump: bringing system down
[   40.457259] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G           O       6.6.37 #0
[   40.464548] Hardware name: Arcadyan AW1000 (DT)
[   40.472008] Call trace:
[   40.476258]  dump_backtrace+0xa0/0xe0
[   40.478690]  show_stack+0x18/0x24
[   40.482509]  dump_stack_lvl+0x48/0x60
[   40.485808]  dump_stack+0x18/0x24
[   40.489453]  panic+0x2dc/0x330
[   40.492751]  nss_fw_coredump_notify+0x1d8/0x3bc [qca_nss_drv]
[   40.495708]  nss_core_handle_napi_emergency+0x38/0x4c [qca_nss_drv]
[   40.501525]  __napi_poll+0x38/0x178
[   40.507595]  net_rx_action+0x114/0x24c
[   40.511069]  handle_softirqs+0x104/0x244
[   40.514889]  __do_softirq+0x14/0x20
[   40.518967]  ____do_softirq+0x10/0x1c
[   40.522180]  call_on_irq_stack+0x24/0x4c
[   40.526000]  do_softirq_own_stack+0x1c/0x28
[   40.529992]  irq_exit_rcu+0xc8/0xe4
[   40.533898]  el1_interrupt+0x38/0x68
[   40.537370]  el1h_64_irq_handler+0x18/0x24
[   40.541191]  el1h_64_irq+0x68/0x6c
[   40.545095]  default_idle_call+0x28/0x3c
[   40.548483]  do_idle+0x1cc/0x1ec
[   40.552561]  cpu_startup_entry+0x34/0x3c
[   40.555774]  kernel_init+0x0/0x1e0
[   40.559679]  arch_post_acpi_subsys_init+0x0/0x8
[   40.562893]  start_kernel+0x514/0x648
[   40.567319]  __primary_switched+0xb4/0xbc
[   40.571139] SMP: stopping secondary CPUs
[   40.575136] Kernel Offset: disabled
[   40.579123] CPU features: 0x0,00000000,00000000,0000400b
[   40.582340] Memory Limit: none
[   40.787894] Rebooting in 3 seconds..

Full Log Dump

EDIT: nvm, I had figured it out, some patches are not update on my fork

@qosmio
I'm currently on latest commit but I have difficulties with it. The router cannot connect to WAN. Restarted it multiple times without success.
Has anyone using the build with latest commits experienced WAN connection issues?

Yes! Same. Thought it was related to something I pushed, but I believe the recent addition of RT-AX89X changes were made in the way PHY works. I ended up having to do a full power cycle.

1 Like

I had to power cycle it too from the button but it works now with all latest commits.

Looks like this commit is related.

commit 157a33402d6ad900fe51e820f869a29f2f983c44
Author:     Robert Marko <robimarko@gmail.com>
AuthorDate: Thu Jun 29 20:18:10 2023 +0200
Commit:     Robert Marko <robimarko@gmail.com>
CommitDate: Tue Jul 9 12:33:17 2024 +0200

    qualcommax: ipq8074-ess: move switch to ess-instance node

    It seems that newer SSDK is now expecting the switch node to be a subnode
    of "ess-instance" node which also contains "num_devices" as the number of
    switches as you can also have external switches connected.

    Asus RT-AX89X is even more peculiar as its bootloader has a hardcoded path
    to enable if on that revision there is an AQR113 connected to port 6 of the
    switch.

    So, lets move the current switch node under ess-instance as otherwise it
    seems that SSDK is having some issues parsing the UNIPHY mode properly as
    I am getting the following:
    [    6.981404] _adpt_hppe_instance1_mode_get[3275]:ERROR:port 6 doesn't support port_interface_mode 9

    Which should not happen as that port has the mode set to 13.

    Link: https://github.com/openwrt/openwrt/pull/15840
1 Like

AX3600 works totally fine. Also latest commit

2 Likes

The RMNET build worked flawlessly, and I was able to make the device perform at it's peak.

For Arcadyan AW1000 users like me, I have released a build with NSS and RMNET enabled for the module.

You can try it here: https://github.com/xhikarishii/openwrt-ipq/releases/tag/v1.1.0b

Big thanks to @qosmio for making this possible :slight_smile:

5 Likes

Good day @xHikari! I tried your firmware, it works like a charm! Thanks for your hardwork. I tried to build my own firmware using your source code but I can't find any RMNET modules, may I know where is it? Do you mind share your .config? Thanks in advance!

Hi @leede it's already merged with @qosmio 's NSS-12.5-K6.x branch of NSS packages :slight_smile:

PR: https://github.com/qosmio/nss-packages/pull/31

1 Like

WIP: mac80211 6.9.9

There were pretty significant changes in 6.9 compared to 6.6. Almost all patches had to be re-done

 84 files changed, 1021 insertions(+), 2028 deletions(-)
ath10k/199-004-ath10k-fixup-nss-compile.patch                                     |   4 +-
ath10k/999-800-ath10k-Add-threaded-napi.patch                                     |   6 +-
ath11k/033-ath11k-fix-for-peer-memory-corruption.patch                            |   4 +-
ath11k/068-ath11k-add-rx-histogram-stats.patch                                    |  42 ++---
ath11k/069-ath11k-add-HE-stats-in-peer-stats.patch                                |  44 ++---
ath11k/080-ath11k-ethernet-rx-decap-offload.patch                                 |   2 +-
ath11k/084-ath11k-fix-ul-ofdma-counter-always-zero-in-peer-stat.patch             |   8 +-
ath11k/087-ath11k-fix-ul-ofdma-counter-increamenting-improperly.patch             |   8 +-
ath11k/108-ath11k-enable-ul-ofdma-ru-allocation-in-peer-stats.patch               |  38 ++--
ath11k/113-ath11k-add-8023-undecap-support.patch                                  |   4 +-
ath11k/142-ath11k-adding-support-for-mgmt-frame-stats.patch                       |  47 +++--
ath11k/181-ath11k-remove-error-on-soc-debugfs-fail.patch                          |  16 +-
ath11k/191-ath11k-add-mgmt-and-data-ack-rssi.patch                                |   4 +-
ath11k/199-002-ath11k_nss-add-nss-driver-interface.patch                          |  24 +--
ath11k/199-003-ath11k-add-nss-support.patch                                       | 134 +++++++-------
ath11k/203-mac80211-ath11k-fw-dynamic-muedca.patch                                |  12 +-
ath11k/207-ath11k-Add-support-for-dynamic-vlan.patch                              |   6 +-
ath11k/207-ath11k-Enable-256_512MB-profiles.patch                                 |  83 ++++++---
ath11k/211-002-ath11k-add-WDS-offload-support-on-NSS-offload-for-STA-mode.patch   |  24 +--
ath11k/214-ath11k-qos-null-frame-tx-over-wmi.patch                                |  50 ++---
ath11k/235-003-ath11k-add-AP_VLAN-vif-support-for-WDS-offload-in-NSS-offload.patch    |  40 ++--
ath11k/236-003-ath11k-add-dynamic-VLAN-support-in-NSS-offload.patch               | 186 +++++++++----------
ath11k/237-001-ath11k-Allow-fast-rx-by-bypassing-stats-update.patch               |   6 +-
ath11k/237-003-ath11k-allocate-dst-ring-descriptors-from-cacheable-.patch         |   6 +-
ath11k/237-006-ath11k-Allow-fast-rx-by-bypassing-stats-update.patch               |  34 ++--
ath11k/244-ath11k-dp-tx-perf.patch                                                |  42 ++---
ath11k/300-ath11k-nss-mesh-offload-support.patch                                  |  26 +--
ath11k/314-ath11k-Fix-peer-lookup-failure-in-mgmt-tx-completion.patch             |  10 +-
ath11k/330-ath11k-sync-wds_ast_entry-updates.patch                                |  14 +-
ath11k/335-0002-ath11k-use-DECLARE_BITMAP-for-idr-operations.patch                |  10 +-
ath11k/335-0003-ath11k-skip-HAL_TCL_DATA_CMD_INFO2_TID_OVERWRITE-con.patch        |   2 +-
ath11k/336-ath11k-Fix-updating-rx-stats-with-monitor-vif-enable.patch             |   8 +-
ath11k/336-ath11k-skip-status-ring-entry-processing.patch                         |  12 +-
ath11k/341-ath11k-fix-support-for-ext-vdev-in-NSS-for-AP_VLAN-v.patch             |   2 +-
ath11k/342-ath11k-provide-access-of-the-dma-buffer-back-to-dma-.patch             |   2 +-
ath11k/356-ath11k-invalid-desc-sanity-check.patch                                 |   6 +-
ath11k/357-ath11k-fix-clear-peer-keys-during-disassoc.patch                       |   4 +-
ath11k/371-ath11k-Fix-ppdu_id-from-firmware-PPDU-stats.patch                      |   6 +-
ath11k/373-ath11k-Add-retry-mechanism-for-update_rx_qu.patch                      |  22 +--
ath11k/401-ath11k-Fix-mutex-dead-lock-and-q6-dump-crash.patch                     |   2 +-
ath11k/453-ath11k-flush-management-frames-to-firmware-before-wa.patch             |   2 +-
ath11k/456-wifi-ath11k-Advertise-TX_QUEUE-mac-hw-flag.patch                       |   2 +-
ath11k/457-wifi-ath11k-Avoid-memset-of-ppdu-info-for-next-skb.patch               |   8 +-
ath11k/669-ath11k-change-dma_map_single-to-virt_to_phys-in-rx-r.patch             |   4 +-
ath11k/907-01-wifi-ath11k-remove-invalid-peer-create-logic.patch                  |  58 ------
ath11k/907-02-wifi-ath11k-rename-ath11k_start_vdev_delay.patch                    |  52 ------
ath11k/907-03-wifi-ath11k-avoid-forward-declaration-of-ath11k_mac_start_vdev_delay.patch     | 601 -------------------------------------------------------------
ath11k/907-04-wifi-ath11k-fix-connection-failure-due-to-unexpected-peer-delete.patch  | 257 --------------------------
ath11k/908-ath11k-make-debugfs-sta-htt-stats-modular.patch                        |  32 ++--
ath11k/909-wifi-ath11k-fix-invalid-access-to-memory.patch                         |   6 +-
ath11k/999-233-ath11k-Disable-rx_header-tlv-for-2K-SKB.patch                      |  44 ++---
ath11k/999-312-ath11k-add-fw-11-4-check.patch                                     |  31 ++++
ath11k/999-336-0001-ath11k-idr-optimization.patch                                 |  10 +-
ath11k/999-336-0002-ath11k-Use-idr_replace.patch                                  |  40 ++--
ath11k/999-374-ath11k-Check-skb_headroom-before-using-skb_push.patch              |  24 +--
ath11k/999-783-001-wifi-ath11k-Fix-BCCA-counter-for-EMA.patch                     |  20 +-
ath11k/999-800-ath11k-Add-threaded-napi.patch                                     |  16 +-
subsys/007-fix_compilation_issue.patch                                            |  53 ++----
subsys/146-mac80211-enable-TKIP-when-using-encapsulation-offloading.patch         |   2 +-
subsys/199-001-mac80211-add-nss-support.patch                                     |  95 +++++-----
subsys/199-mac80211-fix-xmit-callback-when-hwencap-enable-in-st.patch             |   6 +-
subsys/203-mac80211-ath11k-fw-dynamic-muedca.patch                                |  54 +++---
subsys/207-ath11k-Add-support-for-dynamic-vlan.patch                              |   4 +-
subsys/207-mac80211-add-nss-redirect-support.patch                                |  28 +--
subsys/235-001-mac80211-add-AP_VLAN-iftype-support-on-NSS-offload-case.patch      |  44 ++---
subsys/236-001-mac80211-add-dynamic-VLAN-support-on-NSS-offload.patch             |  20 +-
subsys/245-compilation_fix.patch                                                  |  16 +-
subsys/300-ath11k-nss-mesh-offload-support.patch                                  | 165 ++++++++---------
subsys/335-0003-ath11k-skip-HAL_TCL_DATA_CMD_INFO2_TID_OVERWRITE-con.patch        |  10 +-
subsys/335-0005-mac80211-simple-tx-for-AP-mode.patch                              |   6 +-
subsys/336-mac80211-Mesh-Fast-rx-support.patch                                    |  26 +--
subsys/342-mac80211-fix-unconditional-sta-usage.patch                             |   6 +-
subsys/345-mac80211-fix-mixed-declaration.patch                                   |  52 ------
subsys/346-mac80211-fix-bw-change-to-40Mhz-during-channel-switc.patch             |  34 ----
subsys/353-mac80211-fix-dynamic-vlan-warning-with-monitor-interface-restart.patch |   2 +-
subsys/640-006-01-mac80211-Remove-unused-RX_FLAGS-from-mac80211_rx_fla.patch      |  71 ++++----
subsys/657-mac80211-Avoid-encapsulation-of-EAPOL-frames-if-OFFL.patch             |  46 ++---
subsys/686-mac80211-fix-RCU-stall-in-mesh-fast-xmit-path.patch                    |   8 +-
subsys/751-mac80211-Get-valid-last_rate-for-rx_bitrate-from-cpu.patch             |  10 +-
subsys/780-mac80211-Advertise-HW-checksum-offload-only-for-ethm.patch             |  14 +-
subsys/785-wifi-mac80211-Add-mac-hw-flag-to-avoid-queue-skb.patch                 |  52 +++---
subsys/829-mac80211-fix-mesh-ping-issue.patch                                     |   8 +-
subsys/902-wifi-mac80211-Fix-memory-corruption-during-mesh-beac.patch             |   8 +-
subsys/970-mac80211-ath10k-fix-airtime-underflow.patch                            |   2 +-

Finally managed to get everything ported. Testing now. Will push an update once I've run the new driver for a few days.

8 Likes

Any significant impact on performance? Or any other notable changes for ath11k with NSS?

Can you push a branch for us to test?

Performance is good, and about the same as 6.6 so far. Luckily a lot of the additional patches I had (non-NSS related) were merged upstream so it was good to clean a lot of it out.

I still see this issue though:

[Sat Jul 13 09:45:56 2024] ath11k c000000.wifi: ath11k_peer_sta_kickout_event(8033): peer not found xx:xx:xx:xx:xx:xx
[Sat Jul 13 10:40:43 2024] ath11k c000000.wifi: ath11k_peer_sta_kickout_event(8033): peer not found xx:xx:xx:xx:xx:xx
[Sat Jul 13 10:40:52 2024] ath11k c000000.wifi: ath11k_peer_sta_kickout_event(8033): peer not found xx:xx:xx:xx:xx:xx
[Sat Jul 13 10:43:06 2024] ath11k c000000.wifi: peer ast idx 2994 can't be found
[Sat Jul 13 10:44:55 2024] ath11k c000000.wifi: ath11k_peer_sta_kickout_event(8033): peer not found xx:xx:xx:xx:xx:xx
[Sat Jul 13 10:45:03 2024] ath11k c000000.wifi: ath11k_peer_sta_kickout_event(8033): peer not found xx:xx:xx:xx:xx:xx
[Sat Jul 13 11:05:46 2024] ath11k c000000.wifi: peer ast idx 2994 can't be found
[Sat Jul 13 11:05:46 2024] ath11k c000000.wifi: peer ast idx 2994 can't be found
[Sat Jul 13 11:05:46 2024] ath11k c000000.wifi: peer ast idx 2994 can't be found
[Sat Jul 13 11:05:46 2024] ath11k c000000.wifi: peer ast idx 2994 can't be found
[Sat Jul 13 11:05:46 2024] ath11k c000000.wifi: peer ast idx 2994 can't be found
[Sat Jul 13 11:05:46 2024] ath11k c000000.wifi: peer ast idx 2994 can't be found

I've narrowed it down to 802.11r (FT) with devices moving between APs. Not sure if it's an Apple issue, but those are the only clients I have that even support 802.11r.

2 Likes

Update: Kernel 6.6.38 and initial backports 6.9.9

Another big update:

1.) Initial support for latest backports 6.9.9
2.) Reverted config-6.6 to match upstream and instead moved options to a configurable menuconfig item. This makes it easier to manage settings for IPQ systems without running into merge conflict issues.

  • Option to enable/disable Kernel PREEMPT
  • Option to enable/disable skb_recycler

3.) Refactored a lot of the NSS init scripts:
a.) /etc/init.d/qca-nss-pbuf no longer enforces performance mode for CPU scaling, and can now be set as an UCI option.

config general 'opt'
	option auto_scale 'on'
	option memory_profile 'auto'
	option scaling_governor 'performance'

b.) Ability to tweak skb_recyler settings, primarily the ability to disable it altogether. I noticed a lot of skb issues on MX5300 when running in mesh mode. Also, with a lot of work over the past few commits on 6.6, I wanted to see if skb_recycle is even needed anymore. Interested to see how memory usage is on 512M platforms.

To disable it:

uci set skb_recycler.opt.enable=0
uci commit skb_recycler
service skb_recycler restart
# Verify
➤ cat /proc/net/skb_recycler/skb_recycler_enable
0

OpenWRT NSS Fork:

date commit desc
2024-07-13 ec8189f71a iproute2: NSS: sync patch from QSDK 12.5
2024-07-13 1a2ed992ee qualcommax: skbuff: at latest changes from QSDK
2024-07-13 3ff7d23450 qualcommax: skbuff_recycle: add proc option to enable/disable
2024-07-13 ca3718f36b qualcommax: Add new menu item for IPQ settings
2024-07-13 31ceb0941b qualcommax: Switch to upstream default config
2024-07-13 c77f4c606f ath11k_nss: optimize qca-nss-pbuf init script
2024-07-13 19ff2c1e93 ath11k_nss: Bump version 6.6.15 to 6.9.9

NSS Repo:

date commit desc
2024-07-13 0b71120 nss-drv: move nss_empty_buf* to different cores
2024-07-13 ae95263 nss-drv: fix formatting of hotplug script
2024-07-13 217a4fa nss-drv: add skb_recycler init script
8 Likes
# NSS Offloading
CONFIG_ATH11K_NSS_SUPPORT=y
CONFIG_PACKAGE_MAC80211_NSS_SUPPORT=y
CONFIG_PACKAGE_nss-firmware-ipq8074=y
CONFIG_PACKAGE_kmod-qca-nss-drv=y
CONFIG_PACKAGE_kmod-qca-nss-ecm=y

# Additional NSS packages (VLAN, Multicast Snooping)
CONFIG_PACKAGE_kmod-qca-nss-drv-bridge-mgr=y
CONFIG_PACKAGE_kmod-qca-nss-drv-vlan-mgr=y
CONFIG_PACKAGE_kmod-qca-mcs=y

# Target dependant NSS config
CONFIG_NSS_MEM_PROFILE_HIGH=y
CONFIG_ATH11K_MEM_PROFILE_1G=y

are these still valid? in particular NSS_MEM_PROFILE_HIGH andATH11K_MEM_PROFILE_1G?

it depends on how you define "valid"..

NSS_MEM_PROFILE_HIGH is NSS offload option/config, which controls "how much mem NSS offload can use", and certainly it's ideal to set it accordingly to your hardware RAM size.

ref: https://github.com/qosmio/nss-packages/commit/a6f3128889471892627c3e07da2938f2e3d2c93f


ATH11K_MEM_PROFILE_1G controls the wireless driver (ath11k)

now the latest code in Qosmio's repo will set this one automatically, while I think, you can still override it by using the lines in your .config

config ATH11K_NSS_SUPPORT
               bool "Enable NSS WiFi offload"
               select ATH11K_MEM_PROFILE_512M if (TARGET_qualcommax_ipq807x_DEVICE_edimax_cax1800 || \
               	 TARGET_qualcommax_ipq807x_DEVICE_compex_wpq873 || \
               	 TARGET_qualcommax_ipq807x_DEVICE_linksys_mx4200v1 || \
               	 TARGET_qualcommax_ipq807x_DEVICE_redmi_ax6 || \
               	 TARGET_qualcommax_ipq807x_DEVICE_xiaomi_ax3600 || \
               	 TARGET_qualcommax_ipq807x_DEVICE_zte_mf269 )
               select ATH11K_MEM_PROFILE_256M if (TARGET_qualcommax_ipq807x_DEVICE_netgear_wax218)

for example, my board is "redmi_ax6", so ATH11K_MEM_PROFILE_512M is selected
but I can override it by using ATH11K_MEM_PROFILE_1G=y
(not sure if I need to set # ATH11K_MEM_PROFILE_512M is not set at the same time...)

@qosmio feel free to correct me if the above "but..." is wrong :slight_smile:


in short:
set CONFIG_NSS_MEM_PROFILE_HIGH when your board is 1G RAM
CONFIG_ATH11K_MEM_PROFILE_1G is now optional

2 Likes

confirmed from logs

previously

Sat Jul 13 16:54:50 2024 user.notice ath11k_nss: Using custom memory profile - 1gb
Sat Jul 13 16:54:50 2024 user.notice ath11k_nss: 1gb - setting dev.nss.n2hcfg.extra_pbuf_core0=10000000

latest build

Sun Jul 14 13:00:17 2024 user.notice qca-nss-pbuf: Using custom memory profile - xiaomi,ax3600
Sun Jul 14 13:00:17 2024 user.notice qca-nss-pbuf: xiaomi,ax3600 - setting dev.nss.n2hcfg.extra_pbuf_core0=10000000
1 Like

Tested with the same config as always. I am getting much slower speeds on my ax3600 roughly 500mpbs less.

.\iperf3 -c 192.168.1.1
Connecting to host 192.168.1.1, port 5201
[  5] local 192.168.1.85 port 2903 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.01   sec  96.1 MBytes   795 Mbits/sec
[  5]   1.01-2.01   sec  96.9 MBytes   813 Mbits/sec
[  5]   2.01-3.01   sec  97.6 MBytes   819 Mbits/sec
[  5]   3.01-4.01   sec  95.2 MBytes   800 Mbits/sec
[  5]   4.01-5.01   sec  89.9 MBytes   753 Mbits/sec
[  5]   5.01-6.01   sec  94.8 MBytes   795 Mbits/sec
[  5]   6.01-7.01   sec  94.9 MBytes   797 Mbits/sec
[  5]   7.01-8.01   sec  96.0 MBytes   806 Mbits/sec
[  5]   8.01-9.01   sec  88.2 MBytes   740 Mbits/sec
[  5]   9.01-10.01  sec  95.9 MBytes   804 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.01  sec   946 MBytes   792 Mbits/sec                  sender
[  5]   0.00-10.02  sec   946 MBytes   792 Mbits/sec                  receiver

iperf Done.