Qualcommax NSS Build

I've used pure dnsmasq in the past, but added unbound, as it's the only one capable of recursive DNS. I don't believe unbound is the issue though. Since even disabling/stopping the application I'm unable to make DNS requests directly from the router to an external resolver, or to dnsmasq for local queries.

Pretty much any communication requiring UDP socket breaks at the kernel level.

1 Like

i've had a little bit of free time with work lately so i decided to try another target for fun.

i bought 2 x mt6000. they are based on the mediatek filogic soc. pretty close to the same class as these ipq807x devices.

after using them for 2 weeks i am sending them back to amazon.

this nss build + the 301w are better. they are fairly close, but strictly speaking about wifi:

the ipq807x has a more stable connection. when i do transfers that are wifi speed limited, i typically see 180-190MB/s fairly flat (0-50GB transfers) with the ipq807x.

the mediatek filogic has a higher peak, the transfers frequently hit 215+MB/s, but they are much choppier. frequently dropping below 150MB/s, if not lower.

i know its hard to compare since there is more to a router than just the soc, but after quite a bit of tinkering... the ipq807x + this nss build in my opinion is still the best that non proprietary (...software wise) wifi routers have to offer. and yes i know the 301w is 10gbe and the mt6000 is 2.5gbe etc etc etc... but my nas cant really push too much past 250-300MB/s anyways so its sort of a moot point in my use case. my wan connection is 500/100 so both devices can handle that without any problems.

just though id post my insight in case anyone else was thinking about giving the other 'big' soc a shot.

edit : i suppose its worth mentioning that the mt6000 plus all of the other filogic based devices have quite a larger community around it. larget than the ipq807x one by the looks of it. so progress with issues witll probably be faster than with the ipq807x. also mediatek looks to be much more involved in the various oss bits around their products. more so than qca by the looks of it anyways. so maybe in a year or so the story will be different. and of course theres the new filogic soc that came out fairly recently (bpi r4) which looks to be quite the beast. but its early days there so all the usual caveats apply.

3 Likes

The mt6000 will always have more users, simply because the NSS part is not official.

Why does the SQM keeps rebooting? doesn't matter which script i use. Is it because of BBR?

My lottery guess is that your error has something common with this error I experiense.
And that is, probably RTNETLINK that looks suspicious (not working).
So maybe we have an issue with RTNETLINK in the builds and @qosmio just another blind guess - can it be somehow connected with your recent DNS issue.
I first experienced that error once I changed some advanced configuration settings that I made looking here.
I changed the below settings. Before that I used only default settings and I didn't experienced that error.

CONFIG_USE_MOLD=y
CONFIG_USE_LTO=y
CONFIG_USE_GC_SECTIONS=y

CONFIG_TARGET_OPTIONS=y
CONFIG_TARGET_OPTIMIZATION="-O3 -pipe -mcpu=cortex-a53+crypto+crc"

# CONFIG_SECCOMP is not set
CONFIG_PKG_RELRO_PARTIAL=y
# CONFIG_PKG_RELRO_FULL is not set

# CONFIG_KERNEL_WERROR is not set
# CONFIG_KERNEL_SECCOMP is not set
# CONFIG_KERNEL_NAMESPACES is not set
# CONFIG_KERNEL_KEYS is not set
# CONFIG_KERNEL_IPV6_SEG6_LWTUNNEL is not set
# CONFIG_KERNEL_ELF_CORE is not set
# CONFIG_KERNEL_CGROUPS is not set
CONFIG_COLLECT_KERNEL_DEBUG=y
CONFIG_KERNEL_PERF_EVENTS=y
CONFIG_KERNEL_DYNAMIC_DEBUG=y
CONFIG_KERNEL_ARM_PMU=y
CONFIG_GCC_DEFAULT_PIE=y
CONFIG_EXPERIMENTAL=y
CONFIG_DEVEL=y
CONFIG_CCACHE=y
CONFIG_BUILD_PATENTED=y

And I've recently found out that if KERNEL_CGROUPS isn't used on ipq806x (R7800) the compiled firmware will not include cpuset and thus unable to use it in a script that sets different services to different cpu cores (irq affinity). Although there is a script that can set them without using cpuset.
Another error for example on ipq806x, messing with those advanced settings, was that zerotier started to spit segmentation fault error. This error appeared once I used GCC 13.1 (default for 23.05 is GCC 12.3) and CGROUPS enabled. Trial and error showed that zerotier works properly if I don't touch default advanced settings or I if use GCC 13.1 without CGROUPS. In latter case losing cpuset.
So obviously if any advanced setting is changed (better to not do it blindly) a good understanding of its functions is needed. But it's a good feeling to tackle with all these settings.

# CONFIG_KERNEL_CGROUPS is not set

I suspect that any of these advanced configuration settings might be the reason for these RTNETLINK errors. But its simply a guess based on what settings I changed in my config before and after that error appeared in my build.
Last but not least, there are many other settings in menuconfig that should be accounted for too.

Getting the wifi offload + memory usage were the last few pieces of the "full offload" puzzle. And as a whole it's been a pretty stable and performant platform. Especially in regards to wifi performance when compared to Mediatek, and even Broadcom (I had but returned the RT-AX86U on Merlin FW).

QCA's codebase is all over the place, the GIT commits may as well be "did some stuff", "update", "blah". The QSDK release schemes have no rhyme or reason to discern between features, bugfixes, backports, etc, and the documentation is non-existent.

Majority of my NSS patches have been a complete shot in the dark... But by some miracle hasn't blown up in my face and chugging a long :person_shrugging:.

4 Likes

Looks like an iface trigger activating /etc/hotplug.d/iface/11-sqm. Your interfaces are going up and down. Check which one.

cat << "EOF" > /etc/hotplug.d/iface/00-logger
logger -t hotplug $(env)
EOF

Also increase log verbosity of SQM

uci set sqm.wan.verbosity=8
uci commit sqm

cgroups, cpuset, namespaces are primarily for containers and virtualization which we wouldn't be doing on these platforms, and just added to kernel size.

These are still experimental but could be the reason for most of your segmentation errors.

Not sure which specific RTNETLINK error you mean. The one from @TomCruise's output? I believe there is a race condition somewhere in the way I'm managing the available interfaces being available during initialization.

My specific issue related to UDP socket bug only started after b5c5384 and 7116d2f on 6.6.28 and 29.

The advanced menuconfig settings though have been pretty much the same since I posted it for 6.1, and through 6.6 when it was introduced in 6.6.22.

1 Like

no issues on wifi 2.4GHzz and 5GHz.

all good with UDP traffic as well.
Uptime is 22hrs currently. On @qosmio latest 6.6.29 repo build.
faultless from what i can see. but i do have a simplified usage as AP only.

1 Like
Wed May  1 11:52:14 2024 user.notice SQM: Starting SQM script: nss-zk.qos on wan, in: 225000 Kbps, out: 180000 Kbps
Wed May  1 11:52:14 2024 user.notice SQM: fn_exists: function candidate name: sqm_start
Wed May  1 11:52:14 2024 user.notice SQM: fn_exists: TYPE_OUTPUT: sqm_start is a function
Wed May  1 11:52:14 2024 user.notice SQM: fn_exists: return value: 0
Wed May  1 11:52:14 2024 user.notice SQM: Using script specific sqm_start function overriding the generic sqm_start_default.
Wed May  1 11:52:14 2024 user.notice SQM: sqm_start: Starting sqm_start from nss.qos
Wed May  1 11:52:14 2024 user.notice SQM: check_wan: IP on WAN: ###
Wed May  1 11:52:14 2024 user.notice SQM: sqm_prepare_script: loading required kernel module: qca_nss_qdisc
Wed May  1 11:52:14 2024 user.notice SQM: sqm_prepare_script: loading required kernel module: act_nssmirred
Wed May  1 11:52:14 2024 user.notice SQM: fn_exists: function candidate name: egress
Wed May  1 11:52:14 2024 user.notice SQM: fn_exists: TYPE_OUTPUT: egress is a function
Wed May  1 11:52:14 2024 user.notice SQM: fn_exists: return value: 0
Wed May  1 11:52:14 2024 user.notice SQM: IFACE: wan MTU: 1500
Wed May  1 11:52:14 2024 user.notice SQM: calc_limit: Queue limit should be 1482 packets for speed 180000, MTU 1518 and maximum delay 100 ms
Wed May  1 11:52:14 2024 user.notice SQM: add_nsstbl wan: interface:wan speed:180000 burst:1000 mtu:1518 overhead:18
Wed May  1 11:52:14 2024 user.notice SQM: get_burst: 1: 1518, 2: 180000, 3: 1000
Wed May  1 11:52:14 2024 user.notice SQM: get_burst (by duration): BURST [Byte]: 22500, BANDWIDTH [Kbps]: 180000, DURATION [us]: 1000
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev wan root handle 1: nsstbl rate 180000kbit burst 22770 mtu 1518 accel_mode 0
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev wan parent 1: handle 10: nssprio bands 3 accel_mode 0
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev wan parent 10:1 handle 100: nsstbl rate 18000kbit burst 2277 accel_mode 0
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev wan parent 100: handle 1000: nsspfifo limit 100 accel_mode 0
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev wan parent 10:2 handle 200: nsstbl rate 72000kbit burst 6831 accel_mode 0
Wed May  1 11:52:14 2024 user.notice SQM: get_ECN: ECN CURECN: ecn IECN: ECN EECN: ECN
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev wan parent 200: handle 2000: nssred limit 100k min 30k max 80k avpkt 1k burst 55 ecn probability 0.50 accel_mode 0
Wed May  1 11:52:14 2024 user.notice SQM: add_nssfq_codel wan: interface:wan speed:180000 target:5ms limit:1482 mtu:1518 overhead:18 opts:
Wed May  1 11:52:14 2024 user.notice SQM: add_nssfq_codel wan: No interval specified via advanced option string, going with 100ms
Wed May  1 11:52:14 2024 user.notice SQM: add_nssfq_codel wan: No quantum specified via advanced option string, setting default to 1518 based on an MTU of 1518
Wed May  1 11:52:14 2024 user.notice SQM: get_limit: 1482 CURLIMIT: 1482
Wed May  1 11:52:14 2024 user.notice SQM: cur_target: 5ms cur_bandwidth: 180000
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev wan parent 10:3 handle 300: nssfq_codel limit 1482 target 5ms flows 1024 quantum 1518 interval 100ms set_default accel_mode 0
Wed May  1 11:52:14 2024 user.notice SQM: sqm_start: egress shaping activated
Wed May  1 11:52:14 2024 user.notice SQM: fn_exists: function candidate name: ingress
Wed May  1 11:52:14 2024 user.notice SQM: fn_exists: TYPE_OUTPUT: ingress is a function
Wed May  1 11:52:14 2024 user.notice SQM: fn_exists: return value: 0
Wed May  1 11:52:14 2024 user.notice SQM: IFACE: wan MTU: 1500
Wed May  1 11:52:14 2024 user.notice SQM: calc_limit: Queue limit should be 1852 packets for speed 225000, MTU 1518 and maximum delay 100 ms
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: ip: SUCCESS: /sbin/ip link add name ifb-nss type ifb
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: ip: SUCCESS: /sbin/ip link set dev ifb-nss up
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev wan handle ffff: ingress
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc filter add dev wan parent ffff: protocol all u32 match u32 0 0 action nssmirred redirect dev ifb-nss fromdev wan
Wed May  1 11:52:14 2024 user.notice SQM: add_nsstbl ifb-nss: interface:ifb-nss speed:225000 burst:1000 mtu:1518 overhead:18
Wed May  1 11:52:14 2024 user.notice SQM: get_burst: 1: 1518, 2: 225000, 3: 1000
Wed May  1 11:52:14 2024 user.notice SQM: get_burst (by duration): BURST [Byte]: 28125, BANDWIDTH [Kbps]: 225000, DURATION [us]: 1000
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev ifb-nss root handle 1: nsstbl rate 225000kbit burst 28842 mtu 1518 accel_mode 0
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev ifb-nss parent 1: handle 10: nssprio bands 3 accel_mode 0
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev ifb-nss parent 10:1 handle 100: nsstbl rate 22500kbit burst 2884 accel_mode 0
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev ifb-nss parent 100: handle 1000: nsspfifo limit 100 accel_mode 0
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev ifb-nss parent 10:2 handle 200: nsstbl rate 90000kbit burst 8652 accel_mode 0
Wed May  1 11:52:14 2024 user.notice SQM: get_ECN: ECN CURECN: ecn IECN: ECN EECN: ECN
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev ifb-nss parent 200: handle 2000: nssred limit 100k min 30k max 80k avpkt 1k burst 55 ecn probability 0.50 accel_mode 0
Wed May  1 11:52:14 2024 user.notice SQM: add_nssfq_codel ifb-nss: interface:ifb-nss speed:225000 target:5ms limit:1852 mtu:1518 overhead:18 opts:
Wed May  1 11:52:14 2024 user.notice SQM: add_nssfq_codel ifb-nss: No interval specified via advanced option string, going with 100ms
Wed May  1 11:52:14 2024 user.notice SQM: add_nssfq_codel ifb-nss: No quantum specified via advanced option string, setting default to 1518 based on an MTU of 1518
Wed May  1 11:52:14 2024 user.notice SQM: get_limit: 1852 CURLIMIT: 1852
Wed May  1 11:52:14 2024 user.notice SQM: cur_target: 5ms cur_bandwidth: 225000
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev ifb-nss parent 10:3 handle 300: nssfq_codel limit 1852 target 5ms flows 1024 quantum 1518 interval 100ms set_default accel_mode 0
Wed May  1 11:52:14 2024 user.notice SQM: sqm_start: ingress shaping activated
Wed May  1 11:52:14 2024 user.notice SQM: nss-zk.qos was started on wan successfully
Wed May  1 11:52:14 2024 user.notice SQM: ifb associated with interface wan: ifb-nss
Wed May  1 11:52:14 2024 user.notice SQM: Stopping SQM on wan
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc del dev wan parent 100:
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc del dev wan parent 10:1
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc del dev wan parent 10:2
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc del dev wan parent 10:3
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc del dev wan parent 1:
Wed May  1 11:52:14 2024 user.notice SQM: ERROR: cmd_wrapper: tc: FAILURE (2): /sbin/tc qdisc del dev wan parent 200:
Wed May  1 11:52:14 2024 user.notice SQM: ERROR: cmd_wrapper: tc: LAST ERROR: RTNETLINK answers: No such file or directory
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc del dev wan parent ffff:fff1
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc del dev wan root
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc del dev ifb-nss parent 100:
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc del dev ifb-nss parent 10:1
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc del dev ifb-nss parent 10:2
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc del dev ifb-nss parent 10:3
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc del dev ifb-nss parent 1:
Wed May  1 11:52:14 2024 user.notice SQM: ERROR: cmd_wrapper: tc: FAILURE (2): /sbin/tc qdisc del dev ifb-nss parent 200:
Wed May  1 11:52:14 2024 user.notice SQM: ERROR: cmd_wrapper: tc: LAST ERROR: RTNETLINK answers: No such file or directory
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc del dev ifb-nss root
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: ip: SUCCESS: /sbin/ip link set dev ifb-nss down
Wed May  1 11:52:14 2024 user.notice SQM: cmd_wrapper: ip: SUCCESS: /sbin/ip link del ifb-nss type ifb
Wed May  1 11:52:14 2024 user.notice SQM: sqm_stop: Removing kernel module: act_nssmirred
Wed May  1 11:52:15 2024 user.notice SQM: sqm_stop: Removing kernel module: qca_nss_qdisc
Wed May  1 11:52:15 2024 user.notice SQM: sqm_stop: Removing kernel module: ifb
Wed May  1 11:52:15 2024 user.notice SQM: Starting SQM script: nss-zk.qos on wan, in: 225000 Kbps, out: 180000 Kbps
Wed May  1 11:52:15 2024 user.notice SQM: fn_exists: function candidate name: sqm_start
Wed May  1 11:52:15 2024 user.notice SQM: fn_exists: TYPE_OUTPUT: sqm_start is a function
Wed May  1 11:52:15 2024 user.notice SQM: fn_exists: return value: 0
Wed May  1 11:52:15 2024 user.notice SQM: Using script specific sqm_start function overriding the generic sqm_start_default.
Wed May  1 11:52:15 2024 user.notice SQM: sqm_start: Starting sqm_start from nss.qos
Wed May  1 11:52:15 2024 user.notice SQM: check_wan: IP on WAN: ###
Wed May  1 11:52:15 2024 user.notice SQM: sqm_prepare_script: loading required kernel module: qca_nss_qdisc
Wed May  1 11:52:15 2024 user.notice SQM: sqm_prepare_script: loading required kernel module: act_nssmirred
Wed May  1 11:52:15 2024 user.notice SQM: fn_exists: function candidate name: egress
Wed May  1 11:52:15 2024 user.notice SQM: fn_exists: TYPE_OUTPUT: egress is a function
Wed May  1 11:52:15 2024 user.notice SQM: fn_exists: return value: 0
Wed May  1 11:52:15 2024 user.notice SQM: IFACE: wan MTU: 1500
Wed May  1 11:52:15 2024 user.notice SQM: calc_limit: Queue limit should be 1482 packets for speed 180000, MTU 1518 and maximum delay 100 ms
Wed May  1 11:52:15 2024 user.notice SQM: add_nsstbl wan: interface:wan speed:180000 burst:1000 mtu:1518 overhead:18
Wed May  1 11:52:15 2024 user.notice SQM: get_burst: 1: 1518, 2: 180000, 3: 1000
Wed May  1 11:52:15 2024 user.notice SQM: get_burst (by duration): BURST [Byte]: 22500, BANDWIDTH [Kbps]: 180000, DURATION [us]: 1000
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev wan root handle 1: nsstbl rate 180000kbit burst 22770 mtu 1518 accel_mode 0
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev wan parent 1: handle 10: nssprio bands 3 accel_mode 0
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev wan parent 10:1 handle 100: nsstbl rate 18000kbit burst 2277 accel_mode 0
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev wan parent 100: handle 1000: nsspfifo limit 100 accel_mode 0
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev wan parent 10:2 handle 200: nsstbl rate 72000kbit burst 6831 accel_mode 0
Wed May  1 11:52:15 2024 user.notice SQM: get_ECN: ECN CURECN: ecn IECN: ECN EECN: ECN
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev wan parent 200: handle 2000: nssred limit 100k min 30k max 80k avpkt 1k burst 55 ecn probability 0.50 accel_mode 0
Wed May  1 11:52:15 2024 user.notice SQM: add_nssfq_codel wan: interface:wan speed:180000 target:5ms limit:1482 mtu:1518 overhead:18 opts:
Wed May  1 11:52:15 2024 user.notice SQM: add_nssfq_codel wan: No interval specified via advanced option string, going with 100ms
Wed May  1 11:52:15 2024 user.notice SQM: add_nssfq_codel wan: No quantum specified via advanced option string, setting default to 1518 based on an MTU of 1518
Wed May  1 11:52:15 2024 user.notice SQM: get_limit: 1482 CURLIMIT: 1482
Wed May  1 11:52:15 2024 user.notice SQM: cur_target: 5ms cur_bandwidth: 180000
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev wan parent 10:3 handle 300: nssfq_codel limit 1482 target 5ms flows 1024 quantum 1518 interval 100ms set_default accel_mode 0
Wed May  1 11:52:15 2024 user.notice SQM: sqm_start: egress shaping activated
Wed May  1 11:52:15 2024 user.notice SQM: fn_exists: function candidate name: ingress
Wed May  1 11:52:15 2024 user.notice SQM: fn_exists: TYPE_OUTPUT: ingress is a function
Wed May  1 11:52:15 2024 user.notice SQM: fn_exists: return value: 0
Wed May  1 11:52:15 2024 user.notice SQM: IFACE: wan MTU: 1500
Wed May  1 11:52:15 2024 user.notice SQM: calc_limit: Queue limit should be 1852 packets for speed 225000, MTU 1518 and maximum delay 100 ms
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: ip: SUCCESS: /sbin/ip link add name ifb-nss type ifb
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: ip: SUCCESS: /sbin/ip link set dev ifb-nss up
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev wan handle ffff: ingress
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc filter add dev wan parent ffff: protocol all u32 match u32 0 0 action nssmirred redirect dev ifb-nss fromdev wan
Wed May  1 11:52:15 2024 user.notice SQM: add_nsstbl ifb-nss: interface:ifb-nss speed:225000 burst:1000 mtu:1518 overhead:18
Wed May  1 11:52:15 2024 user.notice SQM: get_burst: 1: 1518, 2: 225000, 3: 1000
Wed May  1 11:52:15 2024 user.notice SQM: get_burst (by duration): BURST [Byte]: 28125, BANDWIDTH [Kbps]: 225000, DURATION [us]: 1000
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev ifb-nss root handle 1: nsstbl rate 225000kbit burst 28842 mtu 1518 accel_mode 0
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev ifb-nss parent 1: handle 10: nssprio bands 3 accel_mode 0
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev ifb-nss parent 10:1 handle 100: nsstbl rate 22500kbit burst 2884 accel_mode 0
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev ifb-nss parent 100: handle 1000: nsspfifo limit 100 accel_mode 0
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev ifb-nss parent 10:2 handle 200: nsstbl rate 90000kbit burst 8652 accel_mode 0
Wed May  1 11:52:15 2024 user.notice SQM: get_ECN: ECN CURECN: ecn IECN: ECN EECN: ECN
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev ifb-nss parent 200: handle 2000: nssred limit 100k min 30k max 80k avpkt 1k burst 55 ecn probability 0.50 accel_mode 0
Wed May  1 11:52:15 2024 user.notice SQM: add_nssfq_codel ifb-nss: interface:ifb-nss speed:225000 target:5ms limit:1852 mtu:1518 overhead:18 opts:
Wed May  1 11:52:15 2024 user.notice SQM: add_nssfq_codel ifb-nss: No interval specified via advanced option string, going with 100ms
Wed May  1 11:52:15 2024 user.notice SQM: add_nssfq_codel ifb-nss: No quantum specified via advanced option string, setting default to 1518 based on an MTU of 1518
Wed May  1 11:52:15 2024 user.notice SQM: get_limit: 1852 CURLIMIT: 1852
Wed May  1 11:52:15 2024 user.notice SQM: cur_target: 5ms cur_bandwidth: 225000
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc add dev ifb-nss parent 10:3 handle 300: nssfq_codel limit 1852 target 5ms flows 1024 quantum 1518 interval 100ms set_default accel_mode 0
Wed May  1 11:52:15 2024 user.notice SQM: sqm_start: ingress shaping activated
Wed May  1 11:52:15 2024 user.notice SQM: nss-zk.qos was started on wan successfully
Wed May  1 11:52:15 2024 user.notice SQM: ifb associated with interface wan: ifb-nss
Wed May  1 11:52:15 2024 user.notice SQM: Stopping SQM on wan
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc del dev wan parent 100:
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc del dev wan parent 10:1
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc del dev wan parent 10:2
Wed May  1 11:52:15 2024 user.notice SQM: cmd_wrapper: tc: SUCCESS: /sbin/tc qdisc del dev wan parent 10:3

I meant both the @TomCruise error and the error I experienced from wg-bench linked in my previous post. Just because RTNETLINK showed there.
I believe you know better than me but my error just happened when I changed above advanced settings but it just maybe a chance.
And of course the real reason is probably completely different and not connected to any of those advanced settings.
But still I wonder if RTNETLINK is the main culprit for both issues or it is only an aftermath of any other issue?

i got some network performance issues with new 6.6.29 build even in fps games are not snappy

Flashing back to 6.6.28 build than things goes back to normal as used to be

edit: @qosmio
you should look into this
probably may fix your udp issue in gro
[PATCH net v4 0/2] net: gro: add flush/flush_id checks and fix wrong offset in udp

also i may try later the patch series

1 Like

Your problem seem to be like this one

The solution is here

1 Like

Those look interesting. I'll take a look at those today. Thanks!

Also, it looks like we may have to revisit re-enabling the 'disable_offloads' options of ECM. We're technically supposed to keep GRO and GSO off. But I've found disabling GSO actually negatively impacted wifi performance.

1 Like

Could someone please post an all-inclusive list of repository links of prebuilt downloads? Would be helpful to have in one place. THANK YOU

1 Like

In my IPQ8074a device the Wi-Fi is provided by two external transceivers and 12 front end module's, the Ethernet is provided by two external PHY chips and I'm guessing the SOC provides the switching?.

I'm guessing all devices are of similar modular setup.

[OpenWrt Wiki] TP-Link X80-5G V1

@qosmio just a question.. your build is working for all IPQ807x target? I want to test it into a ZTE MF269

Does it able to run while having only 512MB of RAM? I see the build from @AgustinLorenzo where ath11k seems compiled with a limite of 512MB, so may be these builds are suitable only for device with 1GB of RAM?

Thanks in advance :slight_smile:

If there's support in main stream for your device. You just need NSS patches. You'll have to test and see.

512M is the baseline for many of these routers, ideal is 1GB with the "mindset" of a constrained device like 512MB.

ATH11K is a memory hog so, effort was made to minimize it as much as possible, since many folks are running more than couple of apps on these routers.

Yup, it's on purpose. You don't gain any extra performance boost from more memory available to the driver than necessary. Because once it's assigned at boot that's it.

EDIT: Typos..

[PATCH net v4 0/2] net: gro: add flush/flush_id checks and fix wrong offset in udp patches applied on ax3600
and running since 24h uptime
still nsloopup works fine on router
no errors shown yet

1 Like

Are these commits/changes reflected in the snapshot builds on OpenWRT website? Or is NSS a separate branch?

Hi @olci

Maybe this would be interesting for @nbd who was the one who pushed part of the series of patches in the OpenWRT repo.

Thanks for the test :slight_smile:

Regards, Agustin