[Cerowrt-devel] Problems testing sqm
Richard Smith
smithbone at gmail.com
Sun Oct 25 11:10:30 EDT 2015
On 10/24/2015 01:21 PM, Sebastian Moeller wrote:
> But since cerowrt automatically disabled all off-loads and Richard
> saw his issues also with cerowrt, I am not sure whether this is his
> issue…
Here's an update:
I've been doing a lot of testing off and on over the weekend as time
allows and currently I believe this problem is something in my network.
When I got home Friday night and started grabbing the tc -d qdisc info
and re-running tests. Everything Just Worked both on the 3700v2 and on
the 1900acs Same device and no configuration changes. Only difference
is that I powered them off before I went to work.
So I started to try and re-create my steps for failure.. I _am_ able to
duplicate the problem but I'm not able to figure out how. It seems to
just come and go irrespective of what I'm doing with the DUT. I'm
mostly in then bad state but every so often things work as expected.
So far I've played with routing the test(s) though a different
10/100/1000 switch and using a different machine for the server. Still
using the same laptop but I've rebooted. It's odd because I don't see
the issue when I go direct from my laptop to the server.
Next going to try and set up an isolated test with just my laptop, DUT
and a server and nothing else connected but I'm not sure if I'll get to
that today.
Just for reference here's the requested tc -d qdisc on the 1900acs
running my openwrt trunk build:
OpenWrt Designated Driver r47240 / LuCI Branch (git-15.294.53305-79383f5)
root at OpenWrt:~# tc -d qdisc
qdisc htb 1: dev eth0 root refcnt 9 r2q 10 default 12
direct_packets_stat 0 ver 3.17 direct_qlen 532
qdisc fq_codel 110: dev eth0 parent 1:11 limit 1001p flows 1024 quantum
300 target 5.0ms interval 100.0ms ecn
qdisc fq_codel 120: dev eth0 parent 1:12 limit 1001p flows 1024 quantum
300 target 5.0ms interval 100.0ms ecn
qdisc fq_codel 130: dev eth0 parent 1:13 limit 1001p flows 1024 quantum
300 target 5.0ms interval 100.0ms ecn
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 htb 1: dev ifb4eth0 root refcnt 2 r2q 10 default 10
direct_packets_stat 0 ver 3.17 direct_qlen 32
qdisc fq_codel 110: dev ifb4eth0 parent 1:10 limit 1001p flows 1024
quantum 300 target 5.0ms interval 100.0ms ecn
root at OpenWrt:~# /etc/init.d/sqm stop
SQM: /usr/lib/sqm/stop-sqm: Stopping eth0
SQM: ifb associated with interface eth0: ifb4eth0
SQM: /usr/lib/sqm/stop-sqm: ifb4eth0 shaper deleted
SQM: /usr/lib/sqm/stop-sqm: ifb4eth0 interface deleted
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
root at OpenWrt:~# /etc/init.d/sqm start
SQM: /usr/lib/sqm/start-sqm: Starting eth0
SQM: /usr/lib/sqm/start-sqm: Queue Setup Script: simple.qos
SQM: QDISC htb is useable.
SQM: QDISC fq_codel is useable.
SQM: Starting simple.qos
SQM: ifb associated with interface eth0:
SQM: Currently no ifb is associated with eth0, this is normal during
starting of the sqm system.
SQM: Squashing differentiated services code points (DSCP) from ingress.
SQM: get_limit: CURLIMIT: 1001
SQM: get_target defaulting to auto.
SQM: get_limit: CURLIMIT: 1001
SQM: get_target defaulting to auto.
SQM: get_limit: CURLIMIT: 1001
SQM: get_target defaulting to auto.
SQM: egress shaping activated
SQM: QDISC ingress is useable.
SQM: Do not perform DSCP based filtering on ingress. (1-tier classification)
SQM: get_limit: CURLIMIT: 1001
SQM: get_target defaulting to auto.
SQM: ingress shaping activated
root at OpenWrt:~# tc -d qdisc
qdisc htb 1: dev eth0 root refcnt 9 r2q 10 default 12
direct_packets_stat 0 ver 3.17 direct_qlen 532
qdisc fq_codel 110: dev eth0 parent 1:11 limit 1001p flows 1024 quantum
300 target 5.0ms interval 100.0ms ecn
qdisc fq_codel 120: dev eth0 parent 1:12 limit 1001p flows 1024 quantum
300 target 5.0ms interval 100.0ms ecn
qdisc fq_codel 130: dev eth0 parent 1:13 limit 1001p flows 1024 quantum
300 target 5.0ms interval 100.0ms ecn
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 htb 1: dev ifb4eth0 root refcnt 2 r2q 10 default 10
direct_packets_stat 0 ver 3.17 direct_qlen 32
qdisc fq_codel 110: dev ifb4eth0 parent 1:10 limit 1001p flows 1024
quantum 300 target 5.0ms interval 100.0ms ecn
Here's good/bad test files.
https://drive.google.com/folderview?id=0B-P0wCbNmKvAWnl6dUc1bVhMaU0&usp=sharing
Bad was run immediately after the above /etc/init.d/sqm start and tc -d
qdisc commands. Good was something I got on Friday.
> Save this into a shell file, say my_func.sh, source it from the
> router’s shell “. ./my_func.sh”, and call “IFACE=eth0 eth_setup” for
> all interfaces to tackle.
I don't seem to have the necessary things in my openwrt build to run this:
root at OpenWrt:~# IFACE=eth0 eth_setup
-ash: ethtool: not found
-ash: ethtool: not found
-ash: ethtool: not found
-ash: ethtool: not found
-ash: get_mtu: not found
-ash: arithmetic syntax error
I'll make a new 1900acs build that includes that stuff. In the meantime
I'll switch back to cerowrt and 3700v2 for testing so I'm using a known
working configuration.
--
Richard A. Smith
More information about the Cerowrt-devel
mailing list