Tried target 2.5ms /interval 50ms by editing the script, then in luci, but it still sets 2ms instead of 2.5ms.
This tc command works fine though.
tc qdisc add dev eth1 root fq_codel limit 1000 flows 1024 quantum 1514 target 2.5ms interval 50ms
With 2ms/eth0 & 2.5/eth1 (50ms) tests are more consistent, less fluctuations.
nss.qos occasionally doesn't start correctly, to fix this I edited both defaults.sh & sqm.conf like Kong's (ricsc) script.
defaults.sh
ALL_MODULES="sch_$QDISC sch_ingress act_mirred cls_fw cls_flow cls_u32 sch_htb nss-ifb"
sqm.conf
SQM_CHECK_QDISCS="nssfq_codel fq_codel codel pie sfq cake"
BusyBox v1.36.0 (2023-03-10 04:55:46 UTC) built-in shell (ash)
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
-----------------------------------------------------
OpenWrt SNAPSHOT, r22256+28-14334c222e
-----------------------------------------------------
root@OpenWrt:~# lsmod | grep nss
nss_ifb 16384 0
ppp_generic 40960 7 ecm,ppp_async,qca_nss_pptp,pptp,qca_nss_pppoe,pppoe,pppox
pppoe 24576 2 ecm,qca_nss_pppoe
pptp 28672 2 ecm,qca_nss_pptp
qca_nss_crypto 36864 0
qca_nss_drv 311296 7 nss_ifb,ecm,mac80211,qca_nss_qdisc,qca_nss_crypto,qca_nss_pptp,qca_nss_pppoe
qca_nss_gmac 61440 1 qca_nss_drv
qca_nss_pppoe 16384 0
qca_nss_pptp 16384 0
qca_nss_qdisc 61440 5
root@OpenWrt:~#
root@OpenWrt:~# cat /sys/kernel/debug/qca-nss-drv/stats/virt_if
if_num 35 stats start:
rx_packets = 543
rx_bytes = 294786
rx_dropped = 0
tx_packets = 889
tx_bytes = 123022
tx_enqueue_failed = 0
shaper_enqueue_failed = 0
ocm_alloc_failed = 0
if_num 35 stats end:
if_num 37 stats start:
rx_packets = 231705
rx_bytes = 341802064
rx_dropped = 0
tx_packets = 73580
tx_bytes = 7956049
tx_enqueue_failed = 0
shaper_enqueue_failed = 0
ocm_alloc_failed = 0
if_num 37 stats end:
if_num 39 stats start:
rx_packets = 246911
rx_bytes = 359148987
rx_dropped = 0
tx_packets = 14918
tx_bytes = 16461621
tx_enqueue_failed = 0
shaper_enqueue_failed = 0
ocm_alloc_failed = 0
if_num 39 stats end:
base node stats begin (shown on if_num 39):
active_interfaces = 6
ocm_alloc_failed = 0
ddr_alloc_failed = 0
base node stats end.
root@OpenWrt:~# tc -s qdisc show dev eth0
qdisc nsstbl 1: root refcnt 2 buffer/maxburst 1514b rate 90Mbit mtu 1514b accel_mode 0
Sent 6577462 bytes 65748 pkt (dropped 0, overlimits 39 requeues 0)
backlog 0b 0p requeues 0
qdisc nssfq_codel 10: parent 1: target 2ms limit 1001p interval 50ms flows 1024 quantum 300 set_default accel_mode 0
Sent 6577462 bytes 65748 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 1518 drop_overlimit 0 new_flow_count 33191 ecn_mark 0
new_flows_len 0 old_flows_len 1
root@OpenWrt:~#
root@OpenWrt:~# tc -s qdisc show dev nssifb
qdisc nsstbl 1: root refcnt 2 buffer/maxburst 1514b rate 500Mbit mtu 1514b accel_mode 0
Sent 359163391 bytes 247029 pkt (dropped 0, overlimits 1367 requeues 0)
backlog 0b 0p requeues 0
qdisc nssfq_codel 10: parent 1: target 2ms limit 1001p interval 50ms flows 1024 quantum 1514 set_default accel_mode 0
Sent 359163391 bytes 247029 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 1518 drop_overlimit 0 new_flow_count 83996 ecn_mark 0
new_flows_len 0 old_flows_len 2
root@OpenWrt:~#
root@OpenWrt:~# tc -d qdisc
qdisc noqueue 0: dev lo root refcnt 2
qdisc nsstbl 1: dev eth0 root refcnt 2 buffer/maxburst 1514b rate 90Mbit mtu 1514b accel_mode 0
qdisc nssfq_codel 10: dev eth0 parent 1: target 2ms limit 1001p interval 50ms flows 1024 quantum 300 set_default accel_mode 0
qdisc fq_codel 8003: dev eth1 root refcnt 2 limit 1000p flows 1024 quantum 1514 target 2.5ms interval 50ms memory_limit 4Mb ecn drop_batch 64
qdisc noqueue 0: dev br-lan root refcnt 2
qdisc noqueue 0: dev eth1.1 root refcnt 2
qdisc noqueue 0: dev eth0.2 root refcnt 2
qdisc noqueue 0: dev phy1-ap0 root refcnt 2
qdisc noqueue 0: dev phy0-ap0 root refcnt 2
qdisc nsstbl 1: dev nssifb root refcnt 2 buffer/maxburst 1514b rate 500Mbit mtu 1514b accel_mode 0
qdisc nssfq_codel 10: dev nssifb parent 1: target 2ms limit 1001p interval 50ms flows 1024 quantum 1514 set_default accel_mode 0
root@OpenWrt:~#
root@OpenWrt:~# iw phy0 get codel
CoDeL target: 5 ms
CoDeL interval: 50 ms
CoDeL ECN CE marking: 1
root@OpenWrt:~# iw phy1 get codel
CoDeL target: 5 ms
CoDeL interval: 50 ms
CoDeL ECN CE marking: 1
root@OpenWrt:~# cat /sys/kernel/debug/ieee80211/phy0/aql_txq_limit
AC AQL limit low AQL limit high
VO 5000 12000
VI 5000 12000
BE 5000 12000
BK 5000 12000
root@OpenWrt:~# cat /sys/kernel/debug/ieee80211/phy1/aql_txq_limit
AC AQL limit low AQL limit high
VO 5000 12000
VI 5000 12000
BE 5000 12000
BK 5000 12000
sqm restart (nss-rk.qos version 20230313a)
58.993375] 46a1dfa3: Reset nexthop successful for net device [eth0].
[ 58.998655] NSS IFB transmit callback unregistered
[ 58.999085] NSS virtual interface destroyed for dev [nssifb]
[ 65.418841] debugfs: File 'virt_if' in directory 'stats' already present!
[ 65.426368] Created a NSS virtual interface for dev [nssifb]
[ 65.430207] NSS IFB data callback registered
[ 65.436013] NSS IFB transmit callback registered
[ 65.580486] __nss_qdisc_init[2175]:parent (65536) and TC_H_ROOT (-1))
[ 65.580504] __nss_qdisc_init[2176]:root->ops->owner (00000000) and THIS_MODULE (bf62f600))
[ 65.580542] __nss_qdisc_init[2177]:NSS qdisc c5ad2200 (type 1) used along with non-nss qdiscs, or the interface is currently down
[ 65.592117] 46a1dfa3: Found net device [eth0]
[ 65.605930] 46a1dfa3: Net device [eth0] has NSS intf_num [1]
[ 65.610361] Nexthop successfully set for [eth0] to [nssifb]
**[ 66.147602] br-lan: port 3(phy0-ap0) entered blocking state**
**[ 66.147651] br-lan: port 3(phy0-ap0) entered forwarding state**
Edit:
sqm restart (nss-rk.qos 20230314a)
Tue Mar 14 20:39:21 2023 user.notice SQM: Stopping SQM on eth0
Tue Mar 14 20:39:21 2023 user.notice SQM: ERROR: cmd_wrapper: tc: FAILURE (2): /sbin/tc qdisc del dev eth0 ingress
Tue Mar 14 20:39:21 2023 user.notice SQM: ERROR: cmd_wrapper: tc: LAST ERROR: RTNETLINK answers: No such file or directory
Tue Mar 14 20:39:21 2023 kern.info kernel: [16612.900516] 46a1dfa3: Reset nexthop successful for net device [eth0].
Tue Mar 14 20:39:21 2023 kern.info kernel: [16612.907879] NSS IFB transmit callback unregistered
Tue Mar 14 20:39:21 2023 kern.info kernel: [16612.908241] NSS virtual interface destroyed for dev [nssifb]
Tue Mar 14 20:39:22 2023 user.notice SQM: Starting SQM script: nss-rk.qos on eth0, in: 500000 Kbps, out: 90000 Kbps
Tue Mar 14 20:39:22 2023 kern.err kernel: [16614.101631] debugfs: File 'virt_if' in directory 'stats' already present!
Tue Mar 14 20:39:22 2023 kern.info kernel: [16614.101948] Created a NSS virtual interface for dev [nssifb]
Tue Mar 14 20:39:22 2023 kern.info kernel: [16614.107543] NSS IFB data callback registered
Tue Mar 14 20:39:22 2023 kern.info kernel: [16614.113149] NSS IFB transmit callback registered
Tue Mar 14 20:39:22 2023 user.notice SQM: ERROR: No ip6tables binary found, please install 'ip6tables' or 'ip6tables-nft' to use this script
Tue Mar 14 20:39:22 2023 kern.warn kernel: [16614.215635] __nss_qdisc_init[2175]:parent (65536) and TC_H_ROOT (-1))
Tue Mar 14 20:39:22 2023 kern.warn kernel: [16614.215653] __nss_qdisc_init[2176]:root->ops->owner (00000000) and THIS_MODULE (bf62f600))
Tue Mar 14 20:39:22 2023 kern.warn kernel: [16614.215690] __nss_qdisc_init[2177]:NSS qdisc cae86a00 (type 1) used along with non-nss qdiscs, or the interface is currently down
Tue Mar 14 20:39:22 2023 kern.info kernel: [16614.227436] 46a1dfa3: Found net device [eth0]
Tue Mar 14 20:39:22 2023 kern.info kernel: [16614.241064] 46a1dfa3: Net device [eth0] has NSS intf_num [1]
Tue Mar 14 20:39:22 2023 kern.info kernel: [16614.245479] Nexthop successfully set for [eth0] to [nssifb]
Tue Mar 14 20:39:22 2023 user.notice SQM: nss-rk.qos was started on eth0 successfully
Kernel log
[16612.900516] 46a1dfa3: Reset nexthop successful for net device [eth0].
[16612.907879] NSS IFB transmit callback unregistered
[16612.908241] NSS virtual interface destroyed for dev [nssifb]
[16614.101631] debugfs: File 'virt_if' in directory 'stats' already present!
[16614.101948] Created a NSS virtual interface for dev [nssifb]
[16614.107543] NSS IFB data callback registered
[16614.113149] NSS IFB transmit callback registered
[16614.215635] __nss_qdisc_init[2175]:parent (65536) and TC_H_ROOT (-1))
[16614.215653] __nss_qdisc_init[2176]:root->ops->owner (00000000) and THIS_MODULE (bf62f600))
[16614.215690] __nss_qdisc_init[2177]:NSS qdisc cae86a00 (type 1) used along with non-nss qdiscs, or the interface is currently down
[16614.227436] 46a1dfa3: Found net device [eth0]
[16614.241064] 46a1dfa3: Net device [eth0] has NSS intf_num [1]
[16614.245479] Nexthop successfully set for [eth0] to [nssifb]