next up previous contents
Next: 6.3 Logger Interface Up: 6 FCM User Interface Previous: 6.1 Queue Information File   Contents

Subsections


6.2 Module Loading and Use

The two FCM kernel modules must be loaded into the kernel before they can be used. The insmod and modprobe tools are used for this purpose. The complete use of these tools is beyond the scope of this document, however their role with regards to the modules's design will be explained.

The standard Linux kernel API for modules have been used. This includes the facilities for receiving options from the user upon loading of the module. Code will also be used which will allow the use of the modinfo tools to retrieve information about the available options. These two things are done using code similar to the following, placed in the source for a module, outside of any functions.

MODULE_PARM(maxrate, "i");
MODULE_PARM_DESC(maxrate, "The data rate of the outgoing link");

As with all the options for the FCM modules, they will be of type i which stands for integer. maxrate is the global variable name, which must be declared elsewhere. Code within the module's initialisation function may return a failure code if the options are not valid. Note that the options are passed to insmod or modprobe in the following way:

insmod sch_qsize.o maxrate=10000

The functions to be called upon module loading and unloading will be called init_module and cleanup_module respectively. Both take no arguments, and init_module returns an int while cleanup_module is void. The kernel will then automatically call these functions.

6.2.1 Router Module Options

The following options may be provided to the Router module upon loading. These are as described in [6]. The name given to each is the name of the global variable which will hold the value.

  1. maxrate
    Type: int
    The rate of the low bandwidth link from the Router, in kbits/sec. There is no default value, so this must be specified.
  2. bval
    Type: int
    The value of b, used to determine the sensitivity of the queue to the number of streams passing through the Router. Default value is 10.
  3. q_min
    Type: int
    The queue size above which $p(q)$ becomes non-zero, specified in packets. Default value of 30 packets.
  4. limit
    Type: int
    The size of the queue, in packets. This is the maximum number of packets which the queue will store. Once it reaches this, any attempts to enqueue more packets will result in them being dropped.

6.2.2 Receiver Module Options

The following options may be provided to the Receiver module upon loading. These are as described in [6]. The name given to each is the name of the global variable which will hold the value.

  1. ps_thresh
    Type: int
    The value corresponding to PS_THRESH, specified as a positive integer, but corresponding to a real negative number. The value here is an integer, which has the following relationship to PS_THRESH: ${\rm PS\_THRESH} = - \frac{{\rm ps\_thresh}}{100}$. The default value is 20.

  2. alpha
    Type: int
    The value corresponding to $\alpha$ in [2], which is a smoothing factor. The value here is divided by 100 to give the value of $\alpha$. The interval of alphaval is [1,100], specified as an integer. The default value is 25.

  3. tau
    Type: int
    The value of $\tau$ in [2], which affects the rate at which the window increases. It has units Bytes/sec and a default value of 1.


next up previous contents
Next: 6.3 Logger Interface Up: 6 FCM User Interface Previous: 6.1 Queue Information File   Contents