Qualcommax NSS Build

Hi @qosmio

RMNET on the last update seems to be causing kernel panic, this starts when the interface for qmi_wwan_q is initiated, this also causes the device to reboot.

Here's what I got from the logs:

Sun Mar  2 23:01:44 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:44:759] Will use cdc-wdm='/dev/cdc-wdm0', proxy='quectel-qmi-proxy0'
Sun Mar  2 23:01:47 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:47:770] QConnectManager_Linux_V1.6.5
Sun Mar  2 23:01:47 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:47:771] Find /sys/bus/usb/devices/4-1 idVendor=0x2c7c idProduct=0x800, bus=0x004, dev=0x002
Sun Mar  2 23:01:47 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:47:771] Auto find qmichannel = /dev/cdc-wdm0
Sun Mar  2 23:01:47 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:47:771] Auto find usbnet_adapter = wwan0
Sun Mar  2 23:01:47 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:47:771] netcard driver = qmi_wwan_q, driver version = V1.2.6
Sun Mar  2 23:01:47 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:47:771] qmap_mode = 1, qmap_version = 9, qmap_size = 31744, muxid = 0x81, qmap_netcard = wwan0_1
Sun Mar  2 23:01:47 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:47:772] Modem works in QMI mode
Sun Mar  2 23:01:47 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:47:779] /proc/12175/fd/3 -> /dev/cdc-wdm0
Sun Mar  2 23:01:47 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:47:780] /proc/12175/exe -> /usr/bin/quectel-qmi-proxy
Sun Mar  2 23:01:49 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:49:780] cdc_wdm_fd = 7
Sun Mar  2 23:01:49 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:49:862] Get clientWDS = 14
Sun Mar  2 23:01:49 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:49:894] Get clientDMS = 1
Sun Mar  2 23:01:49 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:49:926] Get clientNAS = 4
Sun Mar  2 23:01:49 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:49:958] Get clientUIM = 1
Sun Mar  2 23:01:49 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:49:990] Get clientWDA = 1
Sun Mar  2 23:01:50 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:50:023] requestBaseBandVersion RG500QEAAAR13A01M4G
Sun Mar  2 23:01:50 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:50:054] qmap_settings.rx_urb_size = 31744
Sun Mar  2 23:01:50 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:50:054] qmap_settings.ul_data_aggregation_max_datagrams  = 11
Sun Mar  2 23:01:50 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:50:054] qmap_settings.ul_data_aggregation_max_size       = 4096
Sun Mar  2 23:01:50 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:50:054] qmap_settings.dl_minimum_padding                 = 0
Sun Mar  2 23:01:50 2025 kern.info kernel: [   76.402973] net wwan0: ul_data_aggregation_max_datagrams=11, ul_data_aggregation_max_size=4096, dl_minimum_padding=0
Sun Mar  2 23:01:50 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:50:182] requestGetSIMStatus SIMStatus: SIM_READY
Sun Mar  2 23:01:50 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:50:246] requestGetProfile[pdp:1 index:1] internet///0/IPV4
Sun Mar  2 23:01:50 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:50:246] requestSetProfile[pdp:1 index:1] internet///0/IPV4
Sun Mar  2 23:01:50 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:50:246] no need to set skip the rest
Sun Mar  2 23:01:50 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:50:278] requestRegistrationState2 MCC: 515, MNC: 3, PS: Attached, DataCap: UMTS
Sun Mar  2 23:01:50 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:50:310] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
Sun Mar  2 23:01:50 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:50:311] ip link set dev wwan0 down
Sun Mar  2 23:01:50 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:50:313] ip addr flush dev wwan0_1
Sun Mar  2 23:01:50 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:50:315] ip link set dev wwan0_1 down
Sun Mar  2 23:01:52 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:52:615] requestSetupDataCall WdsConnectionIPv4Handle: 0x50838390
Sun Mar  2 23:01:52 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:52:710] requestRegistrationState2 MCC: 515, MNC: 3, PS: Attached, DataCap: UMTS
Sun Mar  2 23:01:52 2025 daemon.notice netifd: wan_test (4022): Setting up wwan0
Sun Mar  2 23:01:52 2025 daemon.notice netifd: Interface 'wan_test' is now up
Sun Mar  2 23:01:52 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:52:775] ip link set dev wwan0 up
Sun Mar  2 23:01:52 2025 kern.info kernel: [   79.123052] net wwan0: link_state 0x0 -> 0x1
Sun Mar  2 23:01:52 2025 daemon.notice netifd: Network device 'wwan0' link is up
Sun Mar  2 23:01:52 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:52:779] ip link set dev wwan0_1 up
Sun Mar  2 23:01:52 2025 daemon.notice netifd: wan_test (4022): [03-02_23:01:52:793] busybox udhcpc -f -n -q -t 5 -i wwan0_1
Sun Mar  2 23:01:52 2025 daemon.notice netifd: wan_test (4022): udhcpc: started, v1.36.1
Sun Mar  2 23:01:52 2025 daemon.notice netifd: Interface 'wan_test_4' is enabled
Sun Mar  2 23:01:52 2025 daemon.notice netifd: Interface 'wan_test_4' has link connectivity
Sun Mar  2 23:01:52 2025 daemon.notice netifd: Interface 'wan_test_4' is setting up now
Sun Mar  2 23:01:52 2025 daemon.notice netifd: wan_test_4 (12346): udhcpc: started, v1.36.1
Sun Mar  2 23:01:52 2025 daemon.notice netifd: wan_test_4 (12346): udhcpc: broadcasting discover
Sun Mar  2 23:01:52 2025 kern.alert kernel: [   79.323707] NSS core 1 signal COREDUMP COMPLETE 4000
Sun Mar  2 23:01:52 2025 kern.alert kernel: [   79.323754] ffffffc07921c340: Starting NSS-FW logbuffer dump for core 1
Sun Mar  2 23:01:52 2025 kern.alert kernel: [   79.327798] ffffffc07921c340: Warn: trap[813]: Trap on CHIP ID 00050002
Sun Mar  2 23:01:52 2025 user.notice mwan3-hotplug[12277]: mwan3 hotplug on wan_test not called because interface disabled
Sun Mar  2 23:01:52 2025 kern.alert kernel: [   79.334111] ffffffc07921c340: Warn: trap[620]: Trapped: TRAP_TD(00000040) DCAPT(3C000080)
Sun Mar  2 23:01:52 2025 kern.alert kernel: [   79.340714] ffffffc07921c340: Warn: trap[645]: Trapped: Thread: 6, reason: 00000800, PC: 40824544, previous PC: 40824540
Sun Mar  2 23:01:53 2025 kern.alert kernel: [   79.349060] ffffffc07921c340: Warn: trap[594]: A0_3: 40D55A80 3F00A0A8 00000000 0000000C
Sun Mar  2 23:01:53 2025 kern.alert kernel: [   79.359977] ffffffc07921c340: Warn: trap[594]: A4_7: 40823AF4 4081413C 3F02F00C 3F006F68
Sun Mar  2 23:01:53 2025 kern.alert kernel: [   79.368046] ffffffc07921c340: Warn: trap[599]: D0_3: 00000000 3F00A0A8 00000000 00000000
Sun Mar  2 23:01:53 2025 kern.alert kernel: [   79.376119] ffffffc07921c340: Warn: trap[599]: D4_7: 40D55E40 00000004 00000400 00000000
Sun Mar  2 23:01:53 2025 kern.alert kernel: [   79.384200] ffffffc07921c340: Warn: trap[599]: D8_11: 0000000C 0000000F 00000000 00000000
Sun Mar  2 23:01:53 2025 kern.alert kernel: [   79.392273] ffffffc07921c340: Warn: trap[599]: D12_15: 00000000 00000000 00000000 00000000
Sun Mar  2 23:01:53 2025 kern.alert kernel: [   79.400340] ffffffc07921c340: Warn: trap[649]: Thread_6 has non-recoverable trap

Output from nss_diag:

root@HikariWrt:~# nss_diag
     MODEL: Arcadyan AW1000
   OPENWRT: 02032025
IPQ BRANCH: 24.10-nss
IPQ COMMIT: 833dee38ef
  IPQ DATE: 2025-03-02
    NSS FW: NSS.HK.11.4.0.5-6-R
  MAC80211: v6.12.6-0-ge9d65b48ce1a
 ATH11K FW: WLAN.HK.2.9.0.1-02146-QCAHKSWPL_SILICONZ-1
 INTERFACE: br-lan     tx-checksumming: on  rx-gro-list: on  
            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 
            phy1-ap1   tx-checksumming: on  rx-gro-list: off 
            wan        tx-checksumming: on  rx-gro-list: off 
            wwan0      tx-checksumming: off rx-gro-list: off 
            wwan0_1    tx-checksumming: off rx-gro-list: off 

  NSS PKGS: kmod-qca-nss-crypto - 6.6.79.12.5.2022.12.15~3c5a574-r3
            kmod-qca-nss-dp - 6.6.79.2024.04.16~5bf8b91e-r1
            kmod-qca-nss-drv - 6.6.79.11.4.0.5.2021.09.13~53e5863-r15
            kmod-qca-nss-drv-bridge-mgr - 6.6.79.11.4.0.5.2021.08.17~c4049d1-r7
            kmod-qca-nss-drv-igs - 6.6.79.11.4.0.5.2021.08.17~c4049d1-r7
            kmod-qca-nss-drv-qdisc - 6.6.79.11.4.0.5.2021.08.17~c4049d1-r7
            kmod-qca-nss-drv-vlan-mgr - 6.6.79.11.4.0.5.2021.08.17~c4049d1-r7
            kmod-qca-nss-drv-wifi-meshmgr - 6.6.79.11.4.0.5.2021.08.17~c4049d1-r7
            kmod-qca-nss-ecm - 6.6.79.12.5.5.2024.09.12~c5d8727-r4
            kmod-qca-ssdk - 6.6.79.2024.06.13~c451136b-r3
            nss-eip-firmware - 2.5.7-r1
            nss-firmware-default - 2024.08.04~794fe373-r1
            nss-firmware-ipq8074 - 2024.08.04~794fe373-r1

with recent kernels i got performance regression
for now best performance given with 6.6.70 kernel

i didn't tackle down the issue but i pretty sure there is some problems with newer kernels

1 Like

That's strange. Do you mean latest update to ECM package or the Openwrt NSS fork?

If you revert to ecm to commit bbaa20f43c1e1, does the resolve the issue?

Both openwrt-NSS fork and from the NSS-packages, I'll try reverting to that commit. Maybe there's also something on the latest version of the kernel that is breaking RMNET.

1 Like

What kind of regression exactly do you see? I have the same test results (kernel 6.6.80) from the tests I usually perform after each update.

i think schedutil governor made all trouble
But i gonna test more futher
i got more network latency with newer kernel

1 Like

I have ondemand running on mine without issues.

I made and install a build based on qosmio repo. So far so good. Everything works so far. The lan-wan speed is around 940Mbi limited by the wire. But this was also the case using stock openwrt 24.10. How can I check if NSS is used or not ?

1 Like

I've included an nss_stats command that should show you just that :slight_smile:

The biggest gains you can directly see are:

1.) WiFi
2.) SQM (if you need to shape traffic)

For wifi, run a speedtest from client that's connected over wifi and look at the CPU usage on the router. Non-offloaded will show ath11k_* kernel process heavily using CPU.

4 Likes

Not sure what to look into nss_stats. All entries have counters greater than 0. This mean it is ok ? If nss will not be usedd ALL should be 0 or only some of them ?

1 Like
Core 0:
Min     Avg     Max
 6%      6%      6%

If you get something around 6% you are good.

2 Likes

You don't have to explicitly enable NSS. It's always "ON". One of the reasons I created this fork was to have very little user involvement in enabling offloading. In fact, it's preferred to NOT mess with those settings.

It's just telling you traffic is flowing through the NSS cores and that it's handling it. And some metrics being 0 is good, as they're related to errors/failures.

2 Likes

Switching to 24.10.0 non-NSS build (downloaded from OpenWrt) fixed the issue, not sure what's wrong with the NSS build (I also tried the 2025-03-02-0220 version).

My setup is pretty straightforward, a main router with a main network and an IoT network and one bridge with 2 vlans, and 2 dumb APs (MX4200v1) with the same networks and vlans.

The vlan set up:

With the NSS build, my laptop connected to the dumb ap through wire can't ping the main router or access the internet, but the dumb ap can ping the main router, feels like the untag+pvid is not working. The exact same configs work on the non-NSS build

That's because the VLAN setup is different on NSS builds. Check this out: https://github.com/qosmio/openwrt-ipq/blob/24.10-nss/nss-setup/example/README.md#advanced-vlan-setup-with-trunk-ports

3 Likes

Thanks! Didn't aware of this.

1 Like

Hey everyone, really new to OpenWRT. I also have the Buffalo WXR-5950AX12, and got it up and running with the latest build (24.10.0). I live in Japan, and had to do some special MAP-E stuff in order to get it online, but it is online now.
I had a question though, as I am not getting 10g speeds from the 10G WAN and LAN ports (I have 10 Gig internet, although of course it's never really that fast; but on average I do get about 5,000 down and up). I did just upgrade to the latest NSS build. Any thoughts?

Check the link speed of those ports, I assume you have auto negotiate on

1 Like

I can't build the image, I keep getting error 2. Following the quick steps in the guide. Any help is appreciated

mv /home/builduser/openwrt-ipq/build_dir/target-aarch64_cortex-a53_musl/linux-qualcommax_ipq807x/tmp/openwrt-qualcommax-ipq807x-asus_rt-ax89x-initramfs-factory.trx.new /home/builduser/openwrt-ipq/build_dir/target-aarch64_cortex-a53_musl/linux-qualcommax_ipq807x/tmp/openwrt-qualcommax-ipq807x-asus_rt-ax89x-initramfs-factory.trx
/home/builduser/openwrt-ipq/staging_dir/host/bin/asusuimage -v 2 -n RT-AX89U -b 388 -e 49000 -i /home/builduser/openwrt-ipq/build_dir/target-aarch64_cortex-a53_musl/linux-qualcommax_ipq807x/tmp/openwrt-qualcommax-ipq807x-asus_rt-ax89x-initramfs-factory.trx -o /home/builduser/openwrt-ipq/build_dir/target-aarch64_cortex-a53_musl/linux-qualcommax_ipq807x/tmp/openwrt-qualcommax-ipq807x-asus_rt-ax89x-initramfs-factory.trx.new
/home/builduser/openwrt-ipq/staging_dir/host/bin/asusuimage: ERROR: kernel image size is too big (max size: 16MiB)
make[5]: *** [Makefile:42: /home/builduser/openwrt-ipq/build_dir/target-aarch64_cortex-a53_musl/linux-qualcommax_ipq807x/tmp/openwrt-qualcommax-ipq807x-asus_rt-ax89x-initramfs-factory.trx] Error 1
make[5]: Leaving directory '/home/builduser/openwrt-ipq/target/linux/qualcommax/image'
make[4]: *** [Makefile:23: install] Error 2
make[4]: Leaving directory '/home/builduser/openwrt-ipq/target/linux/qualcommax'
make[3]: *** [Makefile:12: install] Error 2
make[3]: Leaving directory '/home/builduser/openwrt-ipq/target/linux'
time: target/linux/install#35.13#39.78#101.82
    ERROR: target/linux failed to build.
make[2]: *** [target/Makefile:32: target/linux/install] Error 1
make[2]: Leaving directory '/home/builduser/openwrt-ipq'
make[1]: *** [target/Makefile:26: /home/builduser/openwrt-ipq/staging_dir/target-aarch64_cortex-a53_musl/stamp/.target_install] Error 2
make[1]: Leaving directory '/home/builduser/openwrt-ipq'
make: *** [/home/builduser/openwrt-ipq/include/toplevel.mk:233: world] Error 2

Are you building with all modules?

I'm not sure, I'm just trying to follow the quickstart guide and it fails with this error.