Solaris Bandwidth Manager 1.5 Administration Guide

Borrowing Bandwidth

When using bandwidth allocation, every class has a guaranteed minimum bandwidth. However, if the amount of traffic in that class exceeds the bandwidth allocated, and if there is "spare" bandwidth that is not being used by another class, the class can borrow bandwidth.Graphic

In the above configuration, assume that traffic for class 1.2 exceeds the 5% allocated. Assume that it is 7%. But traffic in class 1 overall only adds up to 20%, leaving 10% of class 1's aggregate bandwidth available for borrowing. Class 1.2 can borrow up to 10% from class 1, so in this case, it can borrow the 2% it needs.

However, a class cannot borrow at the expense of another class's guaranteed minimum bandwidth. Assume that traffic in class 1.2 remains at 7%. But traffic in class 1.1 increases to 15% and traffic in class 1 overall increases to 30%. Class 1.2 cannot go on borrowing from its parent class, class 1. It may be possible for class 1 to borrow from its parent class root. In this case, class 1.2 could then borrow this extra bandwidth from class 1.

When more than one class wants to borrow bandwidth, the class's priorities are used to decide which class can borrow. The class with the highest priority can borrow all than bandwidth that it needs (subject to availability). If there is any bandwidth left, the next highest priority class can borrow, and so on.

If more than one class of the same priority wants to borrow, the amount of minimum guaranteed bandwidth is used to decide. For example, if classes 1.1 and 1.2 both wanted to borrow, and both had the same priority, a ratio of 3:1 would be used to split the available bandwidth between them.


Note -

In order to prevent a high priority class from using up all available bandwidth at the expense of other classes: