Hmmmm.....clearly I must have failed to explain something. : > Does that illustrate for you why the top-level class should perform the : > shaping? : : Yeah, I got that. However I don't quite understand why TBF can't be : like CBQ, ie classful? Let me try again. The following qdiscs are classless: - tbf - pfifo_fast - sfq The following qdiscs are classful: - prio - cbq - htb TBF, as a classless qdisc, can only be a terminal qdisc. That makes it far less complex than CBQ, which can support an arbitrary number of nested classes. : They both do the same thing (albeit in different ways), right? Only in the most general way do they do the same thing. Each qdisc provides a set of parameters you can adjust to limit your bandwidth. While CBQ is a fully-featured queuing discipline, TBF provides only shaping capabilities. Both CBQ and TBF are non-work-conserving qdiscs, though--this is what you are looking for if you want to shape your transmitted traffic. Again, since you appear to want the non-work-conserving (shaping) features of TBF in a classful form, you are well-advised to look at HTB. HTB is an implementation of TBF-style scheduling in a classful queuing discipline. And one other note--it sounds like you want to use "tc filter" commands to prioritize ACKs and other interactive traffic. In order to use "tc filter" commands (classification), you need to have separate classes into which to classify your traffic. TBF provides no classes, so you can't classify! -Martin -- Martin A. Brown --- SecurePipe, Inc. --- mabrown@xxxxxxxxxxxxxx