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.
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.
- 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.
- 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.
- q_min
Type: int
The queue size above which
becomes non-zero, specified in
packets. Default value of 30
packets.
- 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.
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.
- 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:
.
The default value is 20.
- alpha
Type: int
The value corresponding to
in [2], which is a
smoothing factor. The value here is divided by 100 to give the value of
. The interval of alphaval is [1,100], specified as an
integer. The default value is 25.
- tau
Type: int
The value of
in [2], which affects the rate
at which the window increases. It has units Bytes/sec and a default
value of 1.
Next: 6.3 Logger Interface
Up: 6 FCM User Interface
Previous: 6.1 Queue Information File
  Contents