[Cerowrt-devel] squash/ignore DSCP and mangle table questions

Sebastian Moeller moeller0 at gmx.de
Mon Apr 13 17:39:41 EDT 2015


Hi there,

On Apr 13, 2015, at 18:48 , leetminiwheat <LeetMiniWheat at gmail.com> wrote:

> 
> 
> On Mon, Apr 13, 2015 at 10:23 AM, Sebastian Moeller <moeller0 at gmx.de> wrote:
> 
> >         Could you post the output of calling the following commands on your router please:
> >
> > /etc/init.d/sqm stop
> > /etc/init.d/sqm start
> > tc -d qdisc
> 
> I had some tweaks in /etc/rc.local I had to remove, so this is the output after a fresh reboot and running those commands:

Thanks.

> 
>  ~ # /etc/init.d/sqm stop
>  ~ # /etc/init.d/sqm start
>  ~ # tc -d qdisc
> qdisc fq_codel a: dev se00 root refcnt 2 limit 1000p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> qdisc htb 1: dev ge00 root refcnt 2 r2q 10 default 12 direct_packets_stat 1 ver 3.17 direct_qlen 1000
> qdisc fq_codel 110: dev ge00 parent 1:11 limit 1001p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 120: dev ge00 parent 1:12 limit 1001p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 130: dev ge00 parent 1:13 limit 1001p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn
> qdisc ingress ffff: dev ge00 parent ffff:fff1 ----------------
> qdisc mq 1: dev sw10 root
> qdisc fq_codel 10: dev sw10 parent 1:1 limit 800p flows 1024 quantum 500 target 10.0ms interval 100.0ms
> qdisc fq_codel 20: dev sw10 parent 1:2 limit 800p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 30: dev sw10 parent 1:3 limit 1000p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 40: dev sw10 parent 1:4 limit 1000p flows 1024 quantum 300 target 5.0ms interval 100.0ms
> qdisc mq 1: dev sw00 root
> qdisc fq_codel 10: dev sw00 parent 1:1 limit 800p flows 1024 quantum 500 target 10.0ms interval 100.0ms
> qdisc fq_codel 20: dev sw00 parent 1:2 limit 800p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 30: dev sw00 parent 1:3 limit 1000p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 40: dev sw00 parent 1:4 limit 1000p flows 1024 quantum 300 target 5.0ms interval 100.0ms
> qdisc htb 1: dev gw00 root refcnt 5 r2q 10 default 12 direct_packets_stat 0 ver 3.17 direct_qlen 1000
> qdisc fq_codel 110: dev gw00 parent 1:11 limit 1001p flows 1024 quantum 300 target 8.0ms interval 103.0ms
> qdisc fq_codel 120: dev gw00 parent 1:12 limit 1001p flows 1024 quantum 300 target 8.0ms interval 103.0ms
> qdisc fq_codel 130: dev gw00 parent 1:13 limit 1001p flows 1024 quantum 300 target 8.0ms interval 103.0ms
> qdisc ingress ffff: dev gw00 parent ffff:fff1 ----------------
> qdisc htb 1: dev ifb4ge00 root refcnt 2 r2q 10 default 12 direct_packets_stat 0 ver 3.17 direct_qlen 32
> qdisc fq_codel 110: dev ifb4ge00 parent 1:11 limit 1001p flows 1024 quantum 500 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 120: dev ifb4ge00 parent 1:12 limit 1001p flows 1024 quantum 1500 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 130: dev ifb4ge00 parent 1:13 limit 1001p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn
> qdisc htb 1: dev ifb4gw00 root refcnt 2 r2q 10 default 12 direct_packets_stat 0 ver 3.17 direct_qlen 32
> qdisc fq_codel 110: dev ifb4gw00 parent 1:11 limit 1001p flows 1024 quantum 500 target 10.9ms interval 105.9ms ecn
> qdisc fq_codel 120: dev ifb4gw00 parent 1:12 limit 1001p flows 1024 quantum 1500 target 10.9ms interval 105.9ms ecn
> qdisc fq_codel 130: dev ifb4gw00 parent 1:13 limit 1001p flows 1024 quantum 300 target 10.9ms interval 105.9ms ecn

	This looks reasonable.

> 
>  ~ # ifconfig
> ge00        Link encap:Ethernet  HWaddr 20:4E:7F:91:9F:5D
>                collisions:0 txqueuelen:1000
> 
> gw00       Link encap:Ethernet  HWaddr 22:4E:7F:91:9F:5C
>                collisions:0 txqueuelen:1000
> 
> 
> ifb4ge00   Link encap:Ethernet  HWaddr C2:00:73:A7:1E:30 
>                collisions:0 txqueuelen:32
> 
> 
> ifb4gw00  Link encap:Ethernet  HWaddr 9A:BA:17:27:79:A5     
>                collisions:0 txqueuelen:32
> 
> lo            Link encap:Local Loopback
>               collisions:0 txqueuelen:0
> 
> se00       Link encap:Ethernet  HWaddr 22:4E:7F:91:9F:5C
>               collisions:0 txqueuelen:1000
> 
> sw00      Link encap:Ethernet  HWaddr 20:4E:7F:91:9F:5C
>              collisions:0 txqueuelen:1000
> 
> sw10      Link encap:Ethernet  HWaddr 20:4E:7F:91:9F:5E
>              collisions:0 txqueuelen:1000

	I had a look at my cerowrt router and I also see txqueuelen at 1000, but IIRC that does not matter much anymore, since the wndr37/800 support BQL:
cat /sys/class/net/ge00/queues/tx-0/byte_queue_limits/limit_max
3000
So even with txqueuelen = 1000 the tx queue will only hold 3000 bytes. For fib and friends it does not really matter as far as I can tell.

> 
> and after rebooting and running my commands (still testing different values. should the IFBs txqueuelen be left alone? I left at default):
>  ~ # ifconfig ge00 txqueuelen 8
>  ~ # ifconfig se00 txqueuelen 8
>  ~ # ifconfig gw00 txqueuelen 4
>  ~ # ifconfig sw00 txqueuelen 4
>  ~ # ifconfig sw10 txqueuelen 4
> followed by a sqm restart
>  ~ # /etc/init.d/sqm stop
>  ~ # /etc/init.d/sqm start
>  ~ # tc -d qdisc
> qdisc fq_codel a: dev se00 root refcnt 2 limit 1000p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> qdisc htb 1: dev ge00 root refcnt 2 r2q 10 default 12 direct_packets_stat 0 ver 3.17 direct_qlen 8
> qdisc fq_codel 110: dev ge00 parent 1:11 limit 1001p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 120: dev ge00 parent 1:12 limit 1001p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 130: dev ge00 parent 1:13 limit 1001p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn
> qdisc ingress ffff: dev ge00 parent ffff:fff1 ----------------
> qdisc mq 1: dev sw00 root
> qdisc fq_codel 10: dev sw00 parent 1:1 limit 800p flows 1024 quantum 500 target 10.0ms interval 100.0ms
> qdisc fq_codel 20: dev sw00 parent 1:2 limit 800p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 30: dev sw00 parent 1:3 limit 1000p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 40: dev sw00 parent 1:4 limit 1000p flows 1024 quantum 300 target 5.0ms interval 100.0ms
> qdisc mq 1: dev sw10 root
> qdisc fq_codel 10: dev sw10 parent 1:1 limit 800p flows 1024 quantum 500 target 10.0ms interval 100.0ms
> qdisc fq_codel 20: dev sw10 parent 1:2 limit 800p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 30: dev sw10 parent 1:3 limit 1000p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 40: dev sw10 parent 1:4 limit 1000p flows 1024 quantum 300 target 5.0ms interval 100.0ms
> qdisc htb 1: dev gw00 root refcnt 5 r2q 10 default 12 direct_packets_stat 0 ver 3.17 direct_qlen 4
> qdisc fq_codel 110: dev gw00 parent 1:11 limit 1001p flows 1024 quantum 300 target 8.0ms interval 103.0ms
> qdisc fq_codel 120: dev gw00 parent 1:12 limit 1001p flows 1024 quantum 300 target 8.0ms interval 103.0ms
> qdisc fq_codel 130: dev gw00 parent 1:13 limit 1001p flows 1024 quantum 300 target 8.0ms interval 103.0ms
> qdisc ingress ffff: dev gw00 parent ffff:fff1 ----------------
> qdisc htb 1: dev ifb4ge00 root refcnt 2 r2q 10 default 12 direct_packets_stat 0 ver 3.17 direct_qlen 32
> qdisc fq_codel 110: dev ifb4ge00 parent 1:11 limit 1001p flows 1024 quantum 500 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 120: dev ifb4ge00 parent 1:12 limit 1001p flows 1024 quantum 1500 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 130: dev ifb4ge00 parent 1:13 limit 1001p flows 1024 quantum 300 target 5.0ms interval 100.0ms ecn
> qdisc htb 1: dev ifb4gw00 root refcnt 2 r2q 10 default 12 direct_packets_stat 0 ver 3.17 direct_qlen 32
> qdisc fq_codel 110: dev ifb4gw00 parent 1:11 limit 1001p flows 1024 quantum 500 target 10.9ms interval 105.9ms ecn
> qdisc fq_codel 120: dev ifb4gw00 parent 1:12 limit 1001p flows 1024 quantum 1500 target 10.9ms interval 105.9ms ecn
> qdisc fq_codel 130: dev ifb4gw00 parent 1:13 limit 1001p flows 1024 quantum 300 target 10.9ms interval 105.9ms ecn
> 
> 
>  ~ # ifconfig
> ge00        Link encap:Ethernet  HWaddr 20:4E:7F:91:9F:5D
>                collisions:0 txqueuelen:8
> 
> gw00       Link encap:Ethernet  HWaddr 22:4E:7F:91:9F:5C
>                collisions:0 txqueuelen:4
> 
> 
> ifb4ge00   Link encap:Ethernet  HWaddr C2:00:73:A7:1E:30 
>                collisions:0 txqueuelen:32
> 
> 
> ifb4gw00  Link encap:Ethernet  HWaddr 9A:BA:17:27:79:A5     
>                collisions:0 txqueuelen:32
> 
> lo            Link encap:Local Loopback
>               collisions:0 txqueuelen:0
> 
> se00       Link encap:Ethernet  HWaddr 22:4E:7F:91:9F:5C
>               collisions:0 txqueuelen: 8
> 
> sw00      Link encap:Ethernet  HWaddr 20:4E:7F:91:9F:5C
>              collisions:0 txqueuelen: 4
> 
> sw10      Link encap:Ethernet  HWaddr 20:4E:7F:91:9F:5E
>              collisions:0 txqueuelen: 4
> 
> 

If you have time and netperf-wrapper it would be good to convince yourself and us again, that txqueuelen really does not matter for BQL’d interfaces by running RRUL tests with and without your modifications….

Best Regards
	Sebastian





More information about the Cerowrt-devel mailing list