On Fri, 2003-08-08 at 00:51, Stef Coene wrote: > On Friday 08 August 2003 00:20, Patrick Turley wrote: > > (This is a re-statement of a question I asked earlier) > > > > I have a number of HTB classes feeding into a root HTB qdisc. Whenever I > > set the rate on any of the subordinate classes to 78 kpbs or less, I get > > the following message: > > > > > > HTB : quantum of class <class ID> is small. Consider r2q change. > > > > > > I've done some reading about the meaning of r2q, and I understand it > > now: > > > > quantum = rate/r2q > > > > where: > > > > rate is expressed in kilobits per second > > quantum is expressed in bytes > > r2q has the appropriate units and is 10 by default > > > > Based on what I've read, it's not at all clear why HTB would complain > > about a rate of 78Kbit. That corresponds to a quantum of 7800 bytes, > > which is much larger than the maximum Ethernet packet size (1500). > > > > Anyone have a clue? > Yes. 78kbit = 9.75kbyte. So quantum = 9.75kilobyte/10 = 975byte. > > Stef <blush> OK, I wish I hadn't made that silly mistake. 79Kbit = 80896 bits/sec = 10112 bytes/sec 10112 bytes/sec / 10 r2q => quantum > 1000 bytes I conclude, then, that HTB will spit out a warning when the quantum implied by the subclass drops below 1000 bytes. This is useful information. As I said before, I have a number of classes feeding into the root. These classes can have widely varying rate limits, and they can change dynamically. Therefore, to avoid encountering the problem that this message indicates, I need to estimate the lowest reasonable rate limit and select an r2q that will just barely keep this rate's quantum above 1000. A lower rate limit of 50Kbit seems reasonable for my application: 50Kbit = 51200 bits/sec = 6400 bytes/sec 6400 bytes/sec / 1000 bytes = 6 r2q According to Stef's FAQ at http://qos.dyndns.org:3389/cgi-bin/fom?_highlightWords=r2q&file=31, the buit-in limit for the quantum is 60000 bytes. Even though I've reduced the value of r2q, I still won't hit this limit until the rate exceeds: 60000 bytes * 6 r2q = 360000 bytes/sec => 2.74Mbit This is acceptable.