Wifi buffer bloat

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.