Hi Jim,

Try something a little more simple:

tc qdisc del dev $IF root
tc qdisc add dev $IF root handle 1: htb default 11
tc class add dev $IF parent 1: classid 1:1 htb rate 384kbit
tc class add dev $IF parent 1:1 classid 1:10 htb prio 0 rate 384kbit burst 3k
tc class add dev $IF parent 1:1 classid 1:11 htb prio 3 rate 384kbit

# "bulk" ssh on port 20022 goes to 1:11: (low priority)
tc filter add dev $IF parent 1:0 protocol ip prio 1 u32 \
       match ip sport 20022 0xffff flowid 1:11
       tc filter add dev $IF parent 1:0 protocol ip prio 1 u32 \
       match ip dport 20022 0xffff flowid 1:11

# ICMP goes fast:
tc filter add dev $IF parent 1:0 protocol ip prio 0 u32 \
       match ip protocol 1 0xff flowid 1:10

Some minor changes in numbers there.  Class 1:10 is fast, 1:11 is bulk.

Bob


Jim Lawson wrote:

> Hi,
> 
> I am attempting to set up some simple outbound shaping following the
> LARTC HOWTO.
> 
> The HTB qdisc seems to work as the documentation says, but my filters
> don't seem to be working.  All of the packets go to the default queue
> regardless of what filters I set, it seems.  (according to tc -s qdisc
> show)
> 
> I am trying to get this working on my openwrt box (whiterussian rc6),
> but when testing it on my Debian etch box for comparison, I see the same
> behavior.
> 
> I'm hoping someone can point out what I'm doing wrong with the filters...
> 
> FYI: "vlan1" is the outbound interface of my wrt54g.
> 
> Script follows:
> 
> IF=vlan1
> 
> insmod cls_u32
> insmod sch_htb
> insmod sch_prio
> insmod sch_sfq
> 
> #
> #  qdisc/class tree
> 
> 
> #       1:      root (HTB)  qdisc
> #       |
> #      1:10     class rate 384000bit
> #       |
> #      10:      prio qdisc
> #    /  |  \
> #  10:1 |   10:3
> #  |  10:2    |
> # 101:  |     |         sfq
> #      102:   |         sfq
> #            103:       sfq
> 
> 
> tc qdisc del dev $IF root
> 
> tc qdisc add dev $IF root handle 1: htb default 10
> 
> tc class add dev $IF parent 1: classid 1:10 htb rate 384kbit burst 3k
> 
> # This automatically creates 10:1, 10:2, 10:3
> tc qdisc add dev $IF parent 1:10 handle 10: prio
> 
> # Add sfq qdisc to each of the priority classes
> 
> tc qdisc add dev $IF parent 10:1 handle 101: sfq
> 
> tc qdisc add dev $IF parent 10:2 handle 102: sfq
> 
> tc qdisc add dev $IF parent 10:3 handle 103: sfq
> 
> # "bulk" ssh on port 20022 goes to 103: (low priority)
> tc filter add dev $IF parent 1:0 protocol ip prio 1 u32 \
>        match ip sport 20022 0xffff flowid 103:
>        tc filter add dev $IF parent 1:0 protocol ip prio 1 u32 \
>        match ip dport 20022 0xffff flowid 103:
> 
> # ICMP goes fast?
> 
> tc filter add dev $IF parent 1:0 protocol ip prio 2 u32 \
>        match ip protocol 1 0xff flowid 101:
> 
> 
> 
> _______________________________________________
> LARTC mailing list
> LARTC@mailman.ds9a.nl
> http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
> 
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

Reply via email to