On Sat, Dec 08, 2001 at 09:10:50PM +0100, bert hubert wrote: > > Notice above I supplied bandwidth 30kbit which is far from the actual > > physical bandwidth (100Mbit). Maybe this is why I get good results. > > Maybe this is what you're SUPPOSED to do! > > Not that I'm aware of. To agree with you, AFAICS, the correct way to deal with this is to specify the root bandwidth as the maximum physical bandwidth on the interface, then split it down using classes that have rates set to the expected rates. On a 100Mbit card connected to a 256kbit line, I used something like: tc qdisc add dev eth0 root handle 1: cbq \ bandwidth 100Mbit avpkt 1000 tc class add dev eth0 parent 1:0 classid 1:1 cbq \ bandwidth 100Mbit rate 256kbit [...] tc qdisc add dev eth0 parent 1:1 handle 10: cbq \ bandwidth 256kbit allot 1514 avpkt 1000 (PS, highly inspired by Stef and others' scripts of course) All my other classes then hang off 10: instead of 1: and work quite well. What I've considered doing a few times is adding an option to dump out the values CBQ is looking at for idleness at each level as well as dynamic avpkt values (based on reality). HTB may do this, of course. -- Michael T. Babcock CTO, FibreSpeed Ltd. (Hosting, Security, Consultation, Database, etc) http://www.fibrespeed.net/~mbabcock/