#% flent markings seem to be full decimal TOS byte values
#% conversion: TOS(dec) = DSCP(dec) * 4
#dscp(dec): EF:46 -> 184
#markings=CS0,CS1,CS2,CS3,CS4,CS5,CS6,CS7
#markings=0,32,64,96,128,160,192,224
date ; ping -c 10 netperf-eu.bufferbloat.net ; ./run-flent --ipv4 -l 300 -H netperf-eu.bufferbloat.net rrul_var --remote-metadata=root@192.168.42.1 --test-parameter=cpu_stats_hosts=root@192.168.42.1 --step-size=.05 --socket-stats --test-parameter bidir_streams=8 --test-parameter markings=0,32,64,96,128,160,192,224 --test-parameter ping_hosts=1.1.1.1 -D . -t IPv4_SQM_cake_layer-cake_LLA-ETH_OH34_U097pct34500of35483K-D090pct105000of116797K_work-horse-eth0_2_TurrisOmnia-TurrisOS.5.7.2-pppoe-wan-eth2.7_2_bridged-BTHH5A-OpenWrt-r17498-07203cb253-Hvt-VDSL100_2_netperf-eu.bufferbloat.net --log-file
rrul_var to the rescue, just define the number of flows and which DSCPs to use, see above for all 8 class selectors... just pick which DSCPs you want to include...
hostapd: add wmm qos map set by default
author Felix Fietkau <[nbd@nbd.name](mailto:nbd@nbd.name)>
Wed, 3 Nov 2021 22:40:53 +0100 (22:40 +0100)
committer Felix Fietkau <[nbd@nbd.name](mailto:nbd@nbd.name)>
Wed, 3 Nov 2021 22:47:55 +0100 (22:47 +0100)
commit a5e3def1822431ef6436cb493df77006dbacafd6
tree f4494efd6e08a872524eedb5081564a6f5ece20c tree | snapshot
parent b14f0628499142a718a68be7d1a7243f7f51ef0a commit | diff
hostapd: add wmm qos map set by default
This implements the mapping recommendations from RFC8325, with an
update from RFC8622. This ensures that DSCP marked packets are properly
sorted into WMM classes.
The map can be disabled by setting iw_qos_map_set to something invalid
like 'none'
Signed-off-by: Felix Fietkau <[nbd@nbd.name](mailto:nbd@nbd.name)>
Which introduces the following new RFC8325 inspired DSCP to AC mappings:
set_default iw_qos_map_set 0,0,2,16,1,1,255,255,18,22,24,38,40,40,44,46,48,56
Which translates into the following mappings (according to the hostapd rules below*):
unraveling this gets us to (0 is coded as DSCP Exception, the rest as DSCP ranges):
UP DSCP AC PHBs(decDSCP)
Ex0 BE BE(0) BE/CS0(0)
Range0 2-16 BE CS1(8)**, AF11(10), AF12(12), AF13(14), CS2(16)
Range1 1-1 BK LE(1)
Range2 -
Range3 18-22 BE AF21(18), AF22(20), AF23(22)
Range4 24-38 VI CS3(24), AF31(26), AF32(28), AF33(30), CS4(32), AF41(34), AF42(36), AF43(38)
Range5 40-40 VI CS5(40)
Range6 44-46 VO VA(44), EF(46)
Range7 48-56 VO CS6(48), CS7(56)
So e.g. 4,4,0,0,160,160,184,184 (LE,LE,BE,BE,CS5,CS5,EF,EF) should put two flows into each AC of current OpenWrt...
date ; ping -c 10 netperf-eu.bufferbloat.net ; ./run-flent --ipv4 -l 300 -H netperf-eu.bufferbloat.net rrul_var --remote-metadata=root@192.168.42.1 --test-parameter=cpu_stats_hosts=root@192.168.42.1 --step-size=.05 --socket-stats --test-parameter bidir_streams=8 --test-parameter markings=4,4,0,0,160,160,184,184 --test-parameter ping_hosts=1.1.1.1 -D . -t IPv4_SQM_cake_layer-cake_LLA-ETH_OH34_U097pct34500of35483K-D090pct105000of116797K_work-horse-eth0_2_TurrisOmnia-TurrisOS.5.7.2-pppoe-wan-eth2.7_2_bridged-BTHH5A-OpenWrt-r17498-07203cb253-Hvt-VDSL100_2_netperf-eu.bufferbloat.net --log-file