[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