The full output of htp.init compile is this: tc qdisc del dev eth1 root tc qdisc add dev eth1 root handle 1 htb default 10 r2q 100 tc class add dev eth1 parent 1:2 classid 1:10 htb rate 2Mbit ceil 2Mbit burst 15k tc qdisc add dev eth1 parent 1:10 handle 10 sfq perturb 10 tc class add dev eth1 parent 1:2 classid 1:20 htb rate 1Mbit ceil 5Mbit burst 15k tc qdisc add dev eth1 parent 1:20 handle 20 sfq perturb 10 tc filter add dev eth1 parent 1:0 protocol ip prio 100 u32 match ip dport 25 0xffff classid 1:20 tc class add dev eth1 parent 1:2 classid 1:30 htb rate 512Kbit ceil 1Mbit burst 15k tc qdisc add dev eth1 parent 1:30 handle 30 sfq perturb 10 tc class add dev eth1 parent 1:2 classid 1:40 htb rate 256Kbit ceil 512Kbit burst 15k tc qdisc add dev eth1 parent 1:40 handle 40 sfq perturb 10 tc filter add dev eth1 parent 1:0 protocol ip prio 100 u32 match ip dst 10.0.0.2 classid 1:40 tc class add dev eth1 parent 1:2 classid 1:50 htb rate 128Kbit ceil 256Kbit burst 15k tc qdisc add dev eth1 parent 1:50 handle 50 sfq perturb 10 tc filter add dev eth1 parent 1:0 protocol ip prio 100 u32 match ip dst 10.0.0.150 classid 1:50 tc class add dev eth1 parent 1:2 classid 1:60 htb rate 64bit ceil 128bit burst 15k tc qdisc add dev eth1 parent 1:60 handle 60 sfq perturb 10 tc class add dev eth1 parent 1:2 classid 1:70 htb rate 32Kbit ceil 64Kbit burst 15k tc qdisc add dev eth1 parent 1:70 handle 70 sfq perturb 10 tc class add dev eth1 parent 1:2 classid 1:80 htb rate 16bit ceil 32bit burst 15k tc qdisc add dev eth1 parent 1:80 handle 80 sfq perturb 10 tc class add dev eth1 parent 1:2 classid 1:90 htb rate 8Kbit ceil 16Kbit burst 15k tc qdisc add dev eth1 parent 1:90 handle 90 sfq perturb 10 tc class add dev eth1 parent 1: classid 1:2 htb rate 5Mbit burst 15k - the only classes with any filters are 1:40(256Kbit/512kKbit) for 10.0.0.2 and 1:50(128Kbit/256Kbit) for 10.0.0.150. I just ran some more tests, and 10.0.0.150 can still only get 128Kbit Am I seriously misunderstanding how this works? ----- Original Message ----- From: "Stef Coene" <stef.coene@docum.org> To: "Gavin" <gavin@raha.com>; <LARTC@mailman.ds9a.nl> Sent: Friday, April 05, 2002 11:42 AM Subject: Re: [LARTC] htb ceiling On Friday 05 April 2002 10:19, Gavin wrote: > Hello, > > I'm using HTB (through htb.init :) and it's nearly perfect, but the CEIL > directive seems to have no effect. > > The relevant lines are: > > tc qdisc add dev eth1 root handle 1 htb default 10 r2q 100 > tc class add dev eth1 parent 1: classid 1:2 htb rate 5Mbit burst 15k > tc class add dev eth1 parent 1:2 classid 1:40 htb rate 256Kbit ceil 512Kbit > burst 15k > tc qdisc add dev eth1 parent 1:40 handle 40 sfq perturb 10 > tc filter add dev eth1 parent 1:0 protocol ip prio 100 u32 match ip dst > 10.0.0.2 classid 1:40 > > - this allows 10.0.0.2 to download at 256Kbit, even when it is the only > machine doing any downloading. I can affect this speed by changing the > $rate, but changing $ceil has no effect whatsoever. The ceil will prevent 10.0.0.2 to download faster then 512 kbit. The rate will say how much 10.0.0.2 can download compare to the other classes (so the other lines are also relevant :). As example : If you have a second class : tc class add dev eth1 parent 1:2 classid 1:50 htb rate 256Kbit ceil 512Kbit burst 15k Then both classes will get 50% of the bandwidth if they are both downloading. If they are alone, they can get the 512 Kbit. Second example : tc class add dev eth1 parent 1:2 classid 1:50 htb rate 128Kbit ceil 512Kbit burst 15k Class 1:50 and class 1:40 are downloading -> class 1:40 will get 256 * (512/(256+128)) = 341 kbit and class 1:50 : 128 * (512/(256+128)) = 171 Kbit (they will devide the bandwidth compared to the rates). I hope you understand what you want I want to say and I hope it's an answer on your question :) Stef -- stef.coene@docum.org "Using Linux as bandwidth manager" http://www.docum.org/ #lartc @ irc.openprojects.net