Hi Mikael,
On Jun 29, 2015, at 15:00 , Mikael Abrahamsson <[email protected]> wrote:
> [...]
> 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).
Erm, I committed the fix for the $DEV $IFACE confusion to the
ceropackages repository, so you got the fixed version you helped fix ;) (that
or you deselected ingress 3-tier classification).
>
> 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@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@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
I love that passing per packet overheads to cake works, but for your
testing it is going to reduce the maximum achievable speed from:
TCP/IPv4 Payload at 500Mbps shaping:
1500 - 20 - 20 = 1460 Byte
payload to OTWS ratio
1460/1518 = 0.961791831357
Payload Bandwidth
500*1460/1518 = 480.90 Mbps
to:
TCP/IPv4 Payload at 500Mbps shaping: with overhead 42
MTU: 1500
MSS: 1500 - 20 - 20 = 1460 Byte
PerPacketOverhead: 42
configured On-The-Wire Size: 1500 + 42 = 1542 Byte
payload to OTWS ratio (due to the explicitly configured overhead42)
1460/1542 = 0.961791831357
Payload Bandwidth
500*1460/1542 = 473.411154345 Mbps
I really ned to get a new router to take part in all the fun…
Best Regards
Sebastian
>
> 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@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@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@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@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:
> [email protected]_______________________________________________
> Cerowrt-devel mailing list
> [email protected]
> https://lists.bufferbloat.net/listinfo/cerowrt-devel
_______________________________________________
Cerowrt-devel mailing list
[email protected]
https://lists.bufferbloat.net/listinfo/cerowrt-devel