you have error in conf. As you can see class 1:40 and 1:50 are added to the root not as 1:2 children. The output of htb.init is wrong - you can see that it uses 1:2 class before it demands its create ... I don't know htb.init - you will have to contact maintainer with bugrerport probably ;) devik On Fri, 5 Apr 2002, Gavin wrote: > I tried it with a minimal config - two classes, each with rate: 256Kbit and > ceiling: 512Kbit and one dest. IP address in each, as well as a default > class. Each specified machine could only pull 256Kbit maximum, either alone > or with the other downloading as well. > > Output of tc -s qdisc show dev eth1: > > qdisc sfq 50: quantum 1514b perturb 10sec > Sent 7506464 bytes 4984 pkts (dropped 0, overlimits 0) > backlog 6p > > qdisc sfq 40: quantum 1514b perturb 10sec > Sent 4275617 bytes 2829 pkts (dropped 0, overlimits 0) > backlog 3p > > qdisc sfq 10: quantum 1514b perturb 10sec > Sent 287102 bytes 542 pkts (dropped 0, overlimits 0) > > qdisc htb 1: r2q 100 default 10 dcache 0 > deq_util 1/1000000 deq_rate 125 trials_per_deq 0 > dcache_hits 0 direct_packets 0 > Sent 12069183 bytes 8355 pkts (dropped 0, overlimits 15537) > backlog 9p > > > Output of tc -s class show dev eth1: > > class htb 1:10 root leaf 10: prio 0 rate 2Mbit ceil 2Mbit burst 15Kb cburst > 4220b > Sent 331368 bytes 678 pkts (dropped 0, overlimits 32) > rate 107bps > lended: 678 borrowed: 0 giants: 0 injects: 0 > tokens: 47825 ctokens: 13015 > > class htb 1:2 root prio 0 rate 5Mbit ceil 5Mbit burst 15Kb cburst 8151b > Sent 0 bytes 0 pkts (dropped 0, overlimits 0) > lended: 0 borrowed: 0 giants: 0 injects: 0 > tokens: 19199 ctokens: 10190 > > class htb 1:40 root leaf 40: prio 0 rate 256Kbit ceil 512Kbit burst 15Kb > cburst 2254b > Sent 4275671 bytes 2830 pkts (dropped 0, overlimits 0) > rate 226bps > lended: 2830 borrowed: 0 giants: 0 injects: 0 > tokens: 382801 ctokens: 27588 > > class htb 1:50 root leaf 50: prio 0 rate 256Kbit ceil 512Kbit burst 15Kb > cburst 2254b > Sent 8214460 bytes 5467 pkts (dropped 0, overlimits 0) > rate 546bps > lended: 5467 borrowed: 0 giants: 0 injects: 0 > tokens: 382801 ctokens: 27588 > > Output of htb.init compile: > > 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: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.20 classid 1:40 > > tc class add dev eth1 parent 1:2 classid 1:50 htb rate 256Kbit ceil 512Kbit > 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: classid 1:2 htb rate 5Mbit burst 15k > > > > Gavin > > > ----- Original Message ----- > From: "Martin Devera" <devik@cdi.cz> > To: "Stef Coene" <stef.coene@docum.org> > Cc: "Gavin" <gavin@raha.com>; <LARTC@mailman.ds9a.nl> > Sent: Friday, April 05, 2002 1:40 PM > Subject: Re: [LARTC] htb ceiling > > > > > > 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 :). > > > > No Stef, > > the rate is really measured - it is used as source for DRR weight > > (here it is used relative to other classes) and to see whether we > > need to borrow from parent - here absolute value matters. > > So that the example above should work and give 512k. > > > > Gavin, did you tried with only these classes present ? (to have > > maximaly simplified configuration which exhibits it). > > If yes and it really does only 256k then post > > tc -s {qdisc,class} show dev ethXX outputs ... as usual > > devik > > > > > > >