Radus, see below. > > I've been trying to write a traffic shaper for a 128kbit line with this setup > : > 5 computers that get dedicated bandwidth and the rest go in a pool with bigger > priorities. > I do not see the priorities in your script. Only some of the filters have priorities, but it has nothing to do with scheduling (you should give prioirties to the HTB classes). > > I made the attached script, but it seems it doesn't work... > > It sends the traffic coming from the dedicated ips to the default class. > Where is the error ? > You mean it all goes to 1:14 ? > > > I've set r2q to 1 (it's the smallest one possible, no ? ) and it receive > warnings that the quantum is too small > Quantum = rate/r2q For class 1:12, quantum = 10k/r2q = 10*1024(8*r2q) = 1280Bytes. This is smaller than MTU, that's why it complains that quantum is too small. Same thing for classes 1:13 and 1:14, quantum = 640 Bytes, which is smaller them MTU. What you can (and should) do is specify the quantum manually. > > Thanks in advance.... > > Radu > > Here's the script : > > tc qdisc add dev eth1 root handle 1: htb default 14 r2q 1 > tc class add dev eth1 parent 1: classid 1:1 htb rate 128kbit burst 2k > tc class add dev eth1 parent 1:1 classid 1:10 htb rate 48kbit burst 2k > > tc class add dev eth1 parent 1:1 classid 1:20 htb rate 12kbit ceil 128kbit > burst 2k > > tc class add dev eth1 parent 1:1 classid 1:30 htb rate 12kbit ceil 128kbit > burst 2k > > tc class add dev eth1 parent 1:1 classid 1:40 htb rate 12kbit ceil 128kbit > burst 2k > > tc class add dev eth1 parent 1:1 classid 1:50 htb rate 12kbit ceil 128kbit > burst 2k > > tc class add dev eth1 parent 1:1 classid 1:11 htb rate 20kbit ceil 128kbit > burst 2k > > tc class add dev eth1 parent 1:11 classid 1:12 htb rate 10kbit burst 2k > tc class add dev eth1 parent 1:11 classid 1:13 htb rate 5kbit burst 2k > tc class add dev eth1 parent 1:11 classid 1:14 htb rate 5kbit burst 2k > > tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 15 > tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 15 > tc qdisc add dev eth1 parent 1:40 handle 40: sfq perturb 15 > tc qdisc add dev eth1 parent 1:50 handle 50: sfq perturb 15 > > tc qdisc add dev eth1 parent 1:12 handle 12: sfq perturb 15 > tc qdisc add dev eth1 parent 1:13 handle 13: sfq perturb 15 > tc qdisc add dev eth1 parent 1:14 handle 14: sfq perturb 15 > > tc filter add dev eth1 protocol ip parent 1: u32 match ip dst 192.168.0.45 > flowid 1:20 > > tc filter add dev eth1 protocol ip parent 1: u32 match ip dst 192.168.0.4 > flowid 1:30 > > tc filter add dev eth1 protocol ip parent 1: u32 match ip dst 192.168.0.50 > flowid 1:40 > > tc filter add dev eth1 protocol ip parent 1: u32 match ip dst 192.168.0.38 > flowid 1:50 > > tc filter add dev eth1 protocol ip parent 1: prio 1 u32 match ip sport 80 > 0xffff flowid 1:12 > tc filter add dev eth1 protocol ip parent 1: prio 2 u32 match ip sport 25 > 0xffff flowid 1:13 > tc filter add dev eth1 protocol ip parent 1: prio 3 u32 match ip sport 110 > 0xffff flowid 1:13