next up previous contents index
Next: 28.4 API reference Up: 28 HPFQ: Hierarchical Network Previous: 28.2 Configuration

28.3 Usage

 

The basic procedure of using this library is to first create a scheduling hierarchy according to the user's needs, and then to retrieve the oskit_netio's from the leaf nodes for use by the various sessions. The sessions can then send on these oskit_netio's and the data will flow to the root according to the policies and allocations in place.

There are no restrictions on the format of the data sent to the leaf oskit_netio's, but it must be what the oskit_netio corresponding to the root expects. In the common case of oskit_netio's created by the Linux driver library, this data will simply be Ethernet frames.

The creation of the hierarchy is done by first creating a root node and setting the global variables oskit_pfq_root and oskit_pfq_reset_path appropriately (see Section 28.4). Then various intermediate and/or leaf nodes are created and attached to the root with appropriate share values. This process is then repeated as needed for the children of any intermediate nodes.

In this library, share values are floating point numbers that represent a percentage of the parent's bandwidth allocated to the child. For example, a child with share value 0.45 is guaranteed 45% of the parent's bandwidth when the child has data to send, assuming the parent has not over-subscribed its bandwidth.

On a given level of the hierarchy, only the relative differences between share values is important, however for simplicity it is recommended that share values on a given level add up to 1.

A more subtle implication of this relative-differences fact, is that parents can over-subscribe their bandwidth to their children. More specifically, there is no guarantee that a session with a share value of, say 50% will actually receive that amount of the parent's bandwidth. To see this, consider the case of an intermediate node with two children, each allocated 50% of the bandwidth. Another child may be added with a share value of 50%, but it will in reality only receive 33%. This is more generally termed a problem of admission control, and is not currently dealt with in this library.


next up previous contents index
Next: 28.4 API reference Up: 28 HPFQ: Hierarchical Network Previous: 28.2 Configuration

University of Utah Flux Research Group