In the little remaining time I have in France I have been testing out Eric Dumazet's implementation of REDSFQ, against two boxes with his newer SFQ on them. I need to take time out to do this work in isolation, but I'm out of time for the next several weeks to do so.
Baseline numbers to: * one hop router 64 bytes from 172.30.50.1: icmp_req=2 ttl=64 time=0.245 ms two hop router 64 bytes from 172.30.47.1: icmp_req=1 ttl=63 time=0.610 ms During this test I am pinging away with a 10ms stream, which stays at or below... 172.30.50.1 : [999], 248 bytes, 2.56 ms (2.55 avg, 0% loss) for 100% of the samples. (this is my attempt at simulating voip to some extent) And 10 iperfs going to the closest router do: [ 12] 0.0-66.3 sec 2.75 MBytes 348 Kbits/sec [ 13] 0.0-66.3 sec 2.75 MBytes 348 Kbits/sec [ 8] 0.0-66.3 sec 2.75 MBytes 348 Kbits/sec [ 11] 0.0-66.4 sec 2.75 MBytes 348 Kbits/sec [ 9] 0.0-66.4 sec 2.75 MBytes 348 Kbits/sec [ 10] 0.0-66.4 sec 2.75 MBytes 348 Kbits/sec [ 6] 0.0-66.4 sec 2.75 MBytes 347 Kbits/sec [ 5] 0.0-67.2 sec 2.88 MBytes 359 Kbits/sec [ 7] 0.0-67.2 sec 2.88 MBytes 359 Kbits/sec [ 4] 0.0-67.2 sec 2.88 MBytes 359 Kbits/sec [SUM] 0.0-67.2 sec 27.9 MBytes 3.48 Mbits/sec vs a single latecomer RTT stream, started after those and ending before them (because I told it to run for 55 seconds, not 60), to the further router: [ ID] Interval Transfer Bandwidth [ 3] 0.0-60.7 sec 2.62 MBytes 363 Kbits/sec You'll note that the iperf tests tend to run longer than 60 seconds for some reason, but the net result is statistically right in the ballpark. $TC -s qdisc show dev eth0 qdisc htb 1: root refcnt 2 r2q 10 default 1 direct_packets_stat 0 Sent 130783919 bytes 93092 pkt (dropped 1, overlimits 177024 requeues 0) rate 1744bit 2pps backlog 0b 0p requeues 0 qdisc sfq 10: parent 1:1 limit 120p quantum 1514b depth 16 headdrop divisor 16384 ewma 6 min 1500b max 18000b probability 0.12 ecn prob_mark 0 prob_mark_head 3223 prob_drop 0 forced_mark 0 forced_mark_head 0 forced_drop 0 Sent 130783919 bytes 93092 pkt (dropped 1, overlimits 3223 requeues 0) rate 1728bit 2pps backlog 0b 0p requeues 0 To set this up: I am not going to claim this is a correct setting for redsfq, but it is certainly the simplest qdisc setup for a shaper I've yet seen. Many of these params may well be optional... tc qdisc del dev eth0 tc qdisc add dev eth0 root handle 1: est 1sec 8sec htb default 1 tc class add dev eth0 parent 1: classid 1:1 est 1sec 8sec \ htb rate 4Mbit mtu 1500 quantum 4500 qdisc add dev eth0 parent 1:1 handle 10: est 1sec 4sec sfq \ limit 120 headdrop flows 64 divisor 16384 \ redflowlimit 40000 min 1500 max 18000 \ depth 16 probability 0.12 ecn For a single stream at this setting, I get: [14] 0.0-60.6 sec 27.5 MBytes 3.81 Mbits/sec which translates out well to decimal megabits, which keep mentally messing with me. 3.81*1.05 4.00 the packet captures are lovely, and it's nice to see ecn working. I also did a 24 hour wireless stress test against both the latest cerowrt and two laptops without ever dropping a connection... and similar results. Now I pack for Britain! -- Dave Täht SKYPE: davetaht US Tel: 1-239-829-5608 FR Tel: 0638645374 http://www.bufferbloat.net _______________________________________________ Bloat mailing list Bloat@lists.bufferbloat.net https://lists.bufferbloat.net/listinfo/bloat