On Monday, May 29, 2006, at 10:48 US/Pacific, Karl O. Pinc wrote:

On 05/29/2006 07:02:40 AM, Steven Surdock wrote:
I found that cbq didn't borrow as aggressively as I expected. Switching to the hfsc scheduler approached closer to what I wanted.

That does seem to be better, but I clearly am not getting how hfsc uses the 'bandwidth' parameter as it seems to be using more bandwidth for a sub-queue than 'bandwidth' would allow. Perhaps I should be setting "upperlimit" as well....

HFSC is different enough that the "bandwidth" setting alone often doesn't make much sense. CBQ works in terms of bandwidth limits; HFSC works with bandwidth guarantees. You've got 3 options to play with:

hfsc(realtime) is the minimum bandwidth for this queue. No matter what traffic comes along, a queue is guaranteed to get at least this much bandwidth.

hfsc(upperlimit) is the maximum bandwidth for this queue. It will never get more than this.

hfsc(linkshare) is what the "bandwidth" setting controls. It sets the weight of this queue (in relation to the others) for excess bandwidth on the interface, which is what is left over after the realtime guarantees have been satisfied for all queues. If you had 2 queues, each with a linkshare of 50% (or the equivalent bandwidth setting), and both queues were equally contending for the same bandwidth, they would each get 50% of the excess. If one queue wasn't in use at all, the other would get 100%.

For a given queue, available bandwidth under HFSC is:
    realtime <= (excess weighted by linkshare) <= upperlimit

Reply via email to