fq_codel in the AP does, see below the main relevant configuration options.
/etc/config/sqm
— to note this is in the router DOCSIS 3.1 connection (1000/50 Mbps)
config queue 'eth1'
option interface 'eth1'
option qdisc 'cake'
option linklayer 'none'
option upload '47000'
option debug_logging '0'
option verbosity '5'
option qdisc_advanced '1'
option qdisc_really_really_advanced '1'
option ingress_ecn 'ECN'
option egress_ecn 'ECN'
option enabled '1'
option script 'layer_cake_ct.qos'
option iqdisc_opts 'nat dual-dsthost ingress docsis noatm rtt 80ms diffserv4'
option eqdisc_opts 'nat ack-filter dual-srchost docsis noatm rtt 80ms diffserv4'
option download '800000'
option squash_dscp '0'
option squash_ingress '0'
Note: I use DSCP marking in my router only, this is why the squash_*
parameters and layer_cake_ct.qos
; more info searching for dscpclassify
.
/etc/config/wireless
—in the access point
config wifi-iface 'wifinet1'
option device 'radio1'
option mode 'ap'
option ssid 'Chaos'
option encryption 'psk2+ccmp'
option key 'mi.clave'
option network 'lan lan6'
option ieee80211r '1'
option nasid '000C432660B1'
option mobility_domain 'b347'
option ft_psk_generate_local '1'
option ft_over_ds '0'
option reassociation_deadline '20000'
option wds '1'
option ieee80211k '1'
option bss_transition '1'
option wnm_sleep_mode '1'
option time_advertisement '2'
option time_zone 'AEST-10AEDT,M10.1.0,M4.1.0/3'
option disassoc_low_ack '0'
option dtim_period '4'
option iw_qos_map_set '0,63,255,255,255,255,255,255,255,255,255,255,255,255,255,255'
Note: I don't use QoS marking in my WiFi network everything goes to WM_BE, as you can see above.
And the last final relevant parameters to improve latency under load, are:
# Change AQL parameters, see https://forum.openwrt.org/t/aql-and-the-ath10k-is-lovely/59002/304?page=16
for ac in 0 1 2 3; do echo $ac 1500 1500 > /sys/kernel/debug/ieee80211/phy0/aql_txq_limit; done
for ac in 0 1 2 3; do echo $ac 1500 1500 > /sys/kernel/debug/ieee80211/phy1/aql_txq_limit; done
# Disable AQL threshold (testing, can it be zero?)
echo 1500 > /sys/kernel/debug/ieee80211/phy0/aql_threshold
echo 1500 > /sys/kernel/debug/ieee80211/phy1/aql_threshold
And finally, as a different test. No traffic in the network, sitting 3 m apart from the router (by the way this is a Ubiquiti NanoHD WiFi 5 AP running r24727 snapshot):
I hope this helps.