[Cerowrt-devel] performance numbers from WRT1200AC (Re: Latest build test - new sqm-scripts seem to work; "cake overhead 40" didn't)

Mikael Abrahamsson swmike at swm.pp.se
Mon Jun 29 06:00:58 PDT 2015


On Mon, 29 Jun 2015, Toke Høiland-Jørgensen wrote:

> Mikael Abrahamsson <swmike at swm.pp.se> writes:
>
>> How can I tell which one of these actually is included? Tried moving the feed
>> statement so ceropackages was first but that doesn't seem to have helped, I
>> still get OpenWrt regular sqm-scripts (no cake in luci-app-sqm).
>
> You need to have the cero feed first in feeds.conf, then do
> ./script/feeds uninstall sqm-scripts; ./script/feeds install sqm-scripts
> -- that should pull it from the cero feed. If it doesn't work, try doing
> ./scripts/feeds update first
>
> That seemed to work for me when I just tested it now, at least :)

Hi,

Ok, yes, this worked, I must have forgotten do to update after I moved 
ceropackages to the top of the list before. Thanks!

So now I have a sysupgrade image for the wrt1200ac that out of the box 
comes with CeroPackages and working bidirectional shaping for cake (don't 
know why it didn't work before, it might have to do with my modifications. 
This time I didn't modify anything on-disk, this is purely from the 
CeroPackages feed).

I did try to get Kernel 4.1 to compile but that didn't work even though I 
removed some packages that didn't compile, I ended up with no .dts file 
and nothing to me obvious in scrollback to fix. So this is with 3.18.

Here are the cake 50M and 500M results and output from the router:

oot at OpenWrt:~# cat /etc/config/sqm

config queue 'eth1'
 	option interface 'eth0'
 	option qdisc_advanced '1'
 	option squash_dscp '0'
 	option squash_ingress '0'
 	option ingress_ecn 'ECN'
 	option egress_ecn 'ECN'
 	option qdisc_really_really_advanced '0'
 	option linklayer 'ethernet'
 	option overhead '42'
 	option linklayer_advanced '1'
 	option tcMTU '2047'
 	option tcTSIZE '128'
 	option tcMPU '0'
 	option enabled '1'
 	option script 'simple.qos'
 	option qdisc 'cake'
 	option linklayer_adaptation_mechanism 'cake'
 	option download '500000'
 	option upload '500000'

root at OpenWrt:~# tc -d qdisc
qdisc cake 8009: dev eth0 root refcnt 9 bandwidth 500Mbit diffserv4 flows 
noatm overhead 42
qdisc ingress ffff: dev eth0 parent ffff:fff1 ----------------
qdisc mq 0: dev eth1 root
qdisc fq_codel 0: dev eth1 parent :1 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth1 parent :2 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth1 parent :3 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth1 parent :4 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth1 parent :5 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth1 parent :6 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth1 parent :7 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth1 parent :8 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc cake 800a: dev ifb4eth0 root refcnt 2 bandwidth 500Mbit diffserv4 
flows noatm overhead 42

These are the results from 50M and 500M, also including 50up and 50down 
that I added to my test suite script.

http://swm.pp.se/aqm/rrul_150629-cake-4.tar

Then I re-did the test that Dave asked before, I set the wan port to 100 
megabit/s in my switch, and removed the SQM. It resulted in the following 
config:

root at OpenWrt:~# cat /etc/config/sqm

config queue 'eth1'
 	option interface 'eth0'
 	option qdisc_advanced '1'
 	option squash_dscp '0'
 	option squash_ingress '0'
 	option ingress_ecn 'ECN'
 	option egress_ecn 'ECN'
 	option qdisc_really_really_advanced '0'
 	option linklayer 'ethernet'
 	option overhead '42'
 	option linklayer_advanced '1'
 	option tcMTU '2047'
 	option tcTSIZE '128'
 	option tcMPU '0'
 	option script 'simple.qos'
 	option qdisc 'cake'
 	option linklayer_adaptation_mechanism 'cake'
 	option download '50000'
 	option upload '50000'
 	option enabled '0'

root at OpenWrt:~# tc -d qdisc
qdisc mq 0: dev eth0 root
qdisc fq_codel 0: dev eth0 parent :1 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth0 parent :2 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth0 parent :3 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth0 parent :4 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth0 parent :5 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth0 parent :6 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth0 parent :7 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth0 parent :8 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc mq 0: dev eth1 root
qdisc fq_codel 0: dev eth1 parent :1 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth1 parent :2 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth1 parent :3 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth1 parent :4 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth1 parent :5 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth1 parent :6 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth1 parent :7 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc fq_codel 0: dev eth1 parent :8 limit 1024p flows 1024 quantum 300 
target 5.0ms interval 100.0ms ecn
qdisc cake 800c: dev ifb4eth0 root refcnt 2 bandwidth 50Mbit diffserv4 
flows noatm overhead 42
root at OpenWrt:~# tc -d class show dev eth0
class mq :1 root
class mq :2 root
class mq :3 root
class mq :4 root
class mq :5 root
class mq :6 root
class mq :7 root
class mq :8 root

what worries me is this:

root at OpenWrt:~# ethtool eth0
Settings for eth0:
 	Supported ports: [ TP MII ]
 	Supported link modes:   1000baseT/Half 1000baseT/Full
 	Supported pause frame use: No
 	Supports auto-negotiation: Yes
 	Advertised link modes:  1000baseT/Half 1000baseT/Full
 	Advertised pause frame use: No
 	Advertised auto-negotiation: Yes
 	Link partner advertised link modes:  1000baseT/Full
 	Link partner advertised pause frame use: No
 	Link partner advertised auto-negotiation: No
 	Speed: 1000Mb/s
 	Duplex: Full
 	Port: MII
 	PHYAD: 0
 	Transceiver: external
 	Auto-negotiation: on
 	Link detected: yes

So basically even after the wan port went to 100/full, eth0 doesn't know 
about it (and it only supports gig speed (probably to the local switch) 
anyway. I am seeing dropped packets, so this would support this theory.

First I ran some tests with only that, then I set SQM to 90 megabit/s 
results here:

http://swm.pp.se/aqm/rrul_150629-cake-5.tar
http://swm.pp.se/aqm/rrul_150629-cake-6.tar

Next I am going to test wireless but it seems something has gone wrong 
because I can't get the wireless to enable properly, so that'll have to be 
for the next email after I fix that problem.

-- 
Mikael Abrahamsson    email: swmike at swm.pp.se


More information about the Cerowrt-devel mailing list