Concast Kernel Documentation



Billy Mullins


Overview

Conveniently, the kernel changes are implemented as a loadable module. You may need to read the Linux HOWTO's on working with modules. The Concast kernel consists of filters that are implemented using Linux Netfilter. The filters are controlled via socket options. The socket options exist on multiple levels, consisting of application options(join, create), and control options(scspd, rcspd, set flowstate, get flowstate, etc...).

The rest of the documentation assumes you have the knowledge to compile and install the kernel and modules. If not I recommend the Linux HOWTO's, you can find them at the Linux Documentation Project.

Note: This distribution is an old concast release (2001-2002). Although, most of the information is still relevant, the latest release contains many more features. The current concast release including 'Secure Concast', using IPSec channels, is an in-house release that is available only upon request.


Getting Started

To start, you will need a 2.4.X Linux Kernel. If you already have a concast release distribution from the main page, the files you need are in the Kernel directory. Otherwise, download both the Concast Linux 2.4.X Kernel Patch, and the Concast Module Source and then follow the installation instructions below.

Concast Kernel Setup/Install

  1. Assemble the files listed above.
  2. Use the patch command to apply the patch to a fresh linux kernel. If you don't already have a 2.4.X kernel you will need to download one from Linux Kernel Archives.
  3. Untar the Concast Module Source into your freshly patched kernel directory.
  4. Use make xconfig to configure your kernel. For concast you must enable Linux Netfilter, and enable IPv6 as a module.
  5. Once you have configured your kernel run: make depend all modules modules_install
  6. While the kernel is compiling edit lilo.conf to contain an entry for your new Concast kernel. Example:
      image=/boot/vmlinuz-2.4.X
      label=Concast_v2
    Try man lilo, or reference the Linux Documentation Project. to learn more about using lilo.
  7. You will need to copy the new kernel binary to /boot, you may choose any name for the new file, but it must correspond to the entry you added to lilo.conf.
    The new kernel binary can be found in ./arch/i386/boot/vmlinuz
    You will need to:
    cp arch/i386/boot/vmlinuz /boot/vmlinuz-2.4.X
    Note: Make sure you aren't overwriting a previously installed 2.4.X kernel. Otherwise, if you have not correctly configured your kernel, you may have difficulty booting your machine. Also, keep your original kernel as the default.
  8. You now need to run lilo, just run it from the command line: lilo You should see a report such as the following:
      # lilo
      Added Concast2 *
      Added Concast
      Added Linux
      Added LinuxOLD
      #
    In this case, Concast2 is the default kernel(selected in lilo.conf), thus when the machine is rebooted this kernel will be loaded unless the lilo boot process is interrupted and a new kernel is selected.
    At first you will probably want to use your original kernel as the default.
  9. Reboot, and select the Concast kernel at the lilo prompt.
  10. Once the machine is booted you will need to load the concast module before you can use its features(ie: run the rcspd, scspd, etc).

    If you have been using a kernel version older than 2.4.X, then you will probably need to get the latest modules utilities package. Otherwise, you will receive reports indicating the concast module was not found.

    To load the concast module use modprobe:
      modprobe concast

    If you receive error messages indicating missing symbols then your kernel is not configured correctly. Go back over the kernel configuration process and make sure you included all the necessary options.

  11. Once the module has loaded cleanly you will need to install and configure the concast signaling daemons( Concast Signaling Protocol Daemon(CSPd) Distribution).


Kernel Additions

User level control of the concast kernel by the applications, merge daemon, and signalling daemons is accomplished via socket options(setsockopt, getsockopt). The list of options is extensive:

We have also composed a text file of the potential errors from calls to the system calls or to setsockopt using the concast options. You may need to look at the code to see exactly what is causing the error, but this file will save you some time. (Error Tracking Info).

For examples of use, you should look at the user level daemon and the application code. The base(simplest) examples are included in the Test directories of the Concast user level source distribution, and can be used as a starting point for building concast applications.


Debugging

If you run into problems, or are further interested in the kernel functionality with respect to the applications, the concast module may be loaded with a debug flag. Doing so will allow different levels of debugging information to be displayed.

Debugging may be turned on in levels 1-N. To turn on debugging with the module the parameter cdebug needs to be be set as follows: If you are not compiling concast as a modules you'll need to set the value of cdebug at compile time.


If you need further assistance with the kernel you may send mail to