On Saturday 19 April 2003 22:55, Frank v Waveren wrote: > I have the following setup: > > tc qdisc del dev eth1 root > tc qdisc add dev eth1 root handle 1: htb > tc class add dev eth1 parent 1: classid 1:1 htb rate 80kbit ceil 80kbit > tc qdisc add dev eth1 parent 1:1 handle 2: prio > tc qdisc add dev eth1 parent 2:1 handle 3: sfq perturb 10 > tc filter add dev eth1 protocol ip parent 1: prio 2 u32 match u8 0 0x0 at 0 > flowid 3: > > (the filter line is not like the one suggested in the howto because my > version of tc (the most recent with htb patch) barfs on not having any > rules) > > After a while, looking at the stats: > qdisc sfq 3: dev eth1 limit 128p quantum 1514b perturb 10sec > Sent 0 bytes 0 pkts (dropped 0, overlimits 0) > qdisc prio 2: dev eth1 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 > Sent 0 bytes 0 pkts (dropped 0, overlimits 0) > qdisc htb 1: dev eth1 r2q 10 default 0 direct_packets_stat 476 > Sent 112219 bytes 476 pkts (dropped 0, overlimits 0) > > All the traffic went through the top htb (which wasn't limited) and > went straight out again. Why didn't the filter rule put everything in > the 3: SFQ, forcing it to trickle through the limited HTB class 1:1? Qdisc 3: is added to class 2:1. So all traffic flowing in class 2:1 is handled by qdisc 3:. Also, traffic in class 1:1 is handled by qdisc 2:. So you have to put the traffic in the class and not the qdisc. So your filter should be : 1: -> 1:1 and a second filter from 2: -> 2:1. Or 1: -> 2:1. The end of a filter is a class, not a qdisc. Stef -- stef.coene@xxxxxxxxx "Using Linux as bandwidth manager" http://www.docum.org/ #lartc @ irc.oftc.net