User Manual for QoS architecture implementation

This user manual contains all instructions to set up and run the QoS architecture implementation on laptops equipped with wireless Ethernet cards running Linux.

Compiling and installing customized kernel

This section enumerates the step-wise procedure to be carried out to re-compile an existing version of the Linux kernel to enable the installation of the Click router. The re-compilation is necessary to enable the Click modular router to manipulate the packets in the user space of the kernel, and re-insert the packets the packets into the kernel stack.

Note: you have to be root user to run the following instructions.

1. Install a version of Red Hat Linux preferably the one with kernel version greater than or equal to 2.4.18. Make sure to select the Custom option during installation. The “Kernel Development” option should be selected from the installation menu.

2. If the 2.4.18 kernel version does not exist with the Linux installation, download the 2.4.18 or higher kernel version from http://kernel.org. Save the linux-2.4.18.tar.gz file in the /usr/src directory. Go to the /usr/src directory and untar the downloaded kernel version by typing the following commands:

cd /usr/src

tar –zxvf linux-2.4.18.tar.gz

On successful unpacking, go the /usr/src/linux sub-directory that is created.

cd /usr/src/linux

3. In the /usr/src/linux directory, enter the command make xconfig and carry out the following modifications to the options present. These are the only options that need to be modified. The other options should be maintained in the same state.

Select Code Maturity Level

In this menu set Code Maturity Level as ‘y’

Select Main Menu

Select Processor type and features

In this menu set Symmetric multi-processor support as ‘n’

Select Main Menu

Select Networking options

In this menu set Netlink device emulation as ‘y’

Select Main Menu

Select Network device support

In this menu set Universal TUN/TAP device driver as ‘y’

In this menu set Ethertap network tap as ‘y’

In this menu select Wireless LAN ( Non-Ham Radio)

In the new menu set Wireless LAN (non-hamradio) as ‘y’

set Cisco/Aironet 34X/35X/4500/4800 ISA and PCI cards as ‘m’

set Hermes Chipset 802.11b support as ‘m’

set Hermes PCMCIA card support as ‘m’

set Cisco/Aironet 34X/35X/4500/4800 PCMCIA cards as ‘m’

Select OK

Select Main Menu

Select Sound

You need to select the appropriate sound card support built into the new kernel if you plan to use multimedia applications on the QoS architecture. This is laptop dependent.

Select Main Menu

Select Save and Exit

Select OK in the new menu that opens which states that it is the end of the Linux kernel configuration.

6. Type

cd /usr/src/linux

Edit the file Makefile in that directory and change

EXTRAVERSION =

to

EXTRAVERSION = -tap

Save and exit. This will identify this new compiled version.

7. Type

make dep

8. Type

make bzImage

9. Type

make modules

10. Type

make modules_install

11. Type

make install

12. Type

cd /etc

To find the device where the root is loaded type

df

e.g. in our laptop root ( ‘/’) partition is loaded in /dev/hda2.

Now edit the lilo.conf file in the current directory to add the following lines to the end of the file

image=/boot/vmlinuz-2.4.18-tap

label=linux-tap

read-only

root=/dev/hda2

15. Type

cd /sbin/

lilo -v -v

16. Type

reboot

The laptop should boot now. Select the linux-tap option from the lilo boot loader and press Enter. Note that you need to select it quickly else in 30 seconds it will boot in the default kernel. Login as root.

17. Open a new terminal window. Set up the tap0 interface by running the following commands

mknod /dev/tap0 c 36 16

ifconfig tap0 up

This finishes the Linux kernel recompiling steps for the laptop.

Distribution files

We distribute the following three versions of the router code:

1.click-FSR-LANMAR : This directory contains the FSR-LANMAR router code without any QoS extension.

2.click-qos : This directory contains the FSR-LANMAR router code with the QoS architecture.

3.click-MBN: This directory contains the FSR-LANMAR router code with the Mobile Backbone Node code as well as QoS architecture.

These three directories are distributed as tar.gz files. Save these three files in the /root directory:

click-FSR-LANMAR.tar.gz

click-qos.tar.gz

click-MBN.tar.gz

The command to unzip them is

tar –zxvf <filename>.tar.gz

e.g to unzip the click-FSR-LANMAR.tar.gz file, type in the /root directory

tar –zxvf click-FSR-LANMAR.tar.gz

This command will install the click-FSR-LANMAR directory in /root directory.

Our Source code location in Click

The element files coded by us lies in the /elements/adhoc subdirectory of the corresponding click router versions.

e.g the element files in the click-FSR-LANMAR directory lie in

/root/click-FSR-LANMAR/elements/adhoc

These are:

1.  routingentity{.hh,.cc}

2.  paintswitch{.hh,.cc}

The include and library files coded by us lie in the /include/click subdirectory and in the /lib subdirectory of the click router version directory. These files are:

(a)  topoTable{.h,.cc}

(b)  path.h

(c)  pathIPAddress.h

(d)  maptable{.h,.cc}

The list.h file in the include/click subdirectory has been ported from the network simulator (ns2) framework.

Compiling the router code in Click

The userlevel mode is used for implementing the router with the QoS architecture. Hence to compile the code after making any changes:

  1. change working directory to the userlevel subdirectory of the click main directory
  2. type gmake to compile the code.

Once the code compiles successfully, the click exe file is ready for execution

e.g. to compile the click-FSR-LANMAR code

type

cd /root/click-FSR-LANMAR/userlevel

gmake

Router configuration files

The router is constructed by interconnecting elements in a router configuration file. These files are usually saved with a ‘.click’ extension in the conf subdirectory of the click router version directory. For a basic user, all one has to know about this file is how to assign an IP Address to the router. This can be done by changing the AddressInfo field in the fsr-router.click file to the address the node needs to have.

e.g. to change the router IP Address to 192.138.198.90, on the first line of fsr-router.click file you should have

AddressInfo( me0 192.138.198.90/16);

The netmask for that node is set to 255.255.0.0 by default.

Starting the router

To start the router:

  1. If not present in the tap kernel, boot up in the tap kernel: select linux-tap at the lilo prompt, login as root.
  2. Insert the wireless card in the upper slot. If the laptop gives two high beeps, the card is working fine. If the node has backbone node functionality, once the first card is successfully inserted, insert another wireless card in the lower slot.
  3. Bring up the wireless interfaces by running the script ./start from the root directory. To verify that the interfaces are up, run iwconfig eth1 at the prompt and verify that the essid is set to test. For the mobile backbone interface, run iwconfig eth2 and verify that the essid is set to backbone.
  4. Change working directory to the userlevel subdirectory of the click router version you want to run: e.g. for the Mobile Backbone code do

cd /root /click-MBN/userlevel

  1. Run

./click ../conf/ fsr-router.click 2>log.txt.

The log.txt file is to direct all standard error output like DEBUG and TRACE messages. Hence there is no output on the screen once the router starts.

If the output needs to be displayed on the screen, type

./click ../conf/ fsr-router.click

The router is associated with the tap0 interface. To verify this open a new terminal and type ifconfig tap0. This command should show the tap0 interface associated to the router address specified in the ‘fsr-router.click’ file in the conf subdirectory of the click router version main directory with the netmask as 255.255.0.0.

This completes the starting up the router on one machine. Now repeat the same procedure for all the other laptops.

Dumps and Traces

All dumps and trace information gets written to the file named ‘txt’.

To retrieve dump/debug information run ‘grep “DEBUG” txt ‘.

To retrieve trace information for that node run ‘grep “TRACE” txt ‘.

TRACE syntax

-l <level> : Trace level, in this case can be an agent level trace denoted by AGT or a router level trace denoted by RTR or a QoS level call admission control level trace denoted by CAC.

-s <packet type>: send a packet of type <packet type>, possible values

DATA: for Best effort data packets

RTDATA: for Real Time data packets

OVDATA: for Overflow Best Effort Data packets

FSR: for FSR Updates

LANMAR: for LANMAR Updates

PROBE: for QoS probe packets

PREPLY: for QoS probe reply packets

ECN : for ECN Notification packets

MBN : for Mobile Backbone Election packets

-r <packet type>: receive a packet of type <packet type>

-f <packet type>: forward a packet of type <packet type>

-d <packet type>: drop a packet of type <packet type>

-D <IP Address> : destination address in the IP header

-S <IP Address> : Source Address in the IP header.

A sample tracefile is as shown below:

TRACE: -l AGT -s DATA -D 192.138.198.90 -S 192.138.196.93

TRACE: -l RTR -d DATA -D 192.138.198.90 -S 192.138.196.93

TRACE: -l RTR -r FSR -S 192.138.197.94

TRACE: -l RTR -r LANMAR -S 192.138.197.94

TRACE: -l AGT -s DATA -D 192.138.198.90 -S 192.138.196.93

TRACE: -l RTR -f DATA 192.138.197.94

TRACE: -l AGT -s DATA -D 192.138.198.90 -S 192.138.196.93

TRACE: -l RTR -f DATA 192.138.197.94

TRACE: -l AGT -r DATA -S 192.138.198.90

TRACE: -l RTR -f DATA 192.138.197.94

TRACE: -l AGT -r RTDATA -S 192.138.198.90

TRACE: -l AGT -s DATA -D 192.138.198.90 -S 192.138.196.93

TRACE: -l RTR -f DATA 192.138.197.94

TRACE: -l AGT -r DATA -S 192.138.198.90

TRACE: -l RTR -f DATA 192.138.197.94

TRACE: -l AGT -s DATA -D 192.138.198.90 -S 192.138.196.93

TRACE: -l RTR -f DATA 192.138.197.94

TRACE: -l AGT -r DATA -S 192.138.198.90

TRACE: -l AGT -s FSR

TRACE: -l AGT -s LANMAR

TRACE: -l AGT -s DATA -D 192.138.198.90 -S 192.138.196.93

TRACE: -l RTR -f DATA 192.138.197.94

TRACE: -l RTR -r FSR -S 192.138.197.94

TRACE: -l AGT -r DATA -S 192.138.198.90

TRACE: -l RTR -f DATA 192.138.197.94

TRACE: -l AGT -r RTDATA -S 192.138.198.90

TRACE: -l AGT -s DATA -D 192.138.198.90 -S 192.138.196.93

TRACE: -l RTR -f DATA 192.138.197.94

TRACE: -l AGT -r DATA -S 192.138.198.90

TRACE: -l RTR -f DATA 192.138.197.94

TRACE: -l AGT -r RTDATA -S 192.138.198.90

TRACE: -l AGT -s DATA -D 192.138.198.90 -S 192.138.196.93

TRACE: -l RTR -f DATA 192.138.197.94

TRACE: -l AGT -r DATA -S 192.138.198.90

TRACE: -l RTR -f DATA 192.138.197.94

TRACE: -l AGT -s DATA -D 192.138.198.90 -S 192.138.196.93

TRACE: -l RTR -f DATA 192.138.197.94

TRACE: -l AGT -s FSR

TRACE: -l AGT -s LANMAR

TRACE: -l RTR -f DATA 192.138.197.94

TRACE: -l RTR -f DATA 192.138.197.94

TRACE: -l AGT -r RTDATA -S 192.138.198.90

TRACE: -l RTR -f DATA 192.138.197.94

TRACE: -l AGT -s FSR

TRACE: -l AGT -s LANMAR

TRACE: -l RTR -f DATA 192.138.197.94

Supported Hardware

Lucent Wavelan/Orinoco Gold/Silver cards Turbo 11Mbps