Install gcc
Disable unused services
Download 2.6.24 kernel source code:
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.7.tar.bz2
# tar xvjf linux-2.6.24.7.tar.bz2
# ln -s linux-2.6.24.7 linux
Download the kernel config file for RouteBricks:
# cp rb.config linux/.config
Download the 1Gb driver for the new kernel
Compile and install the 2.6.24.7 kernel
# make -j 8
# make -j 8 modules_install
# make -j 8 install
Compile and install the 1Gb driver for Intel on-board NICs
# tar xvzf igb-1.3.28.4.tar.gz
# cd igb-1.3.2.8.4
# cd src
# make
# make install
Make sure /boot/grub/grub.conf points to the new kernel 2.6.24.7 and reboot.
Note: The network interface may not load by default after reboot. If not, from the shell one has to manually install the driver module:
Download and unpack Click runtime
# wget http://read.cs.ucla.edu/click/click-1.7.0rc1.tar.gz
# tar xvzf click-1.7.0rc1.tar.gz
# ln -s click-1.7.0rc1 click
Patch the Linux kernel for Click runtime
# patch -p1 -b < /usr/src/click/etc/linux-2.6.24.7-patch
Download the RouteBricks 10Gbps driver patch
# wget http://routebricks.org/code/ixgbe.netdevice.h
# cp ixgbe.netdevice.h /usr/src/linux/include/linux/netdevice.h
Compile the new kernel and the igb driver
# make -j 8
# make -j 8 modules_install
# make -j 8 install
Re-install the Intel on-board NIC driver
# cd src
# make install
# reboot
Configure the Click runtime
# ./configure --enable-linuxmodule --enable-warp9 --enable-multithread=16 --disable-userlevel
Compile and install the elements to support multiple RX/TX queues
# wget http://routebricks.org/code/mq-click-1.0.tgz
# tar -C /usr/src/click/elements/linuxmodule -xvzf mq-click-1.0.tgz
# cd click
# make elemlist
# make install
Download Intel 10 Gbps NIC driver source code
# wget http://downloads.sourceforge.net/project/e1000/ixgbe%20stable/1.3.56.5/ixgbe-1.3.56.5.tar.gz
# tar xvzf ixgbe-1.3.56.5.tar.gz
Download and apply driver patches (they only work with Intel 'Oplin' 82598EB NICs)
# cd ixgbe-1.3.56.5
# patch -p1 -b < /usr/src/ixgbe-1.3.56.5.patch
Install driver with patches and reboot
# make CFLAGS_EXTRA="-DIXGBE_NO_LRO -DCLICK_ENABLED" install
# reboot
Start the driver enabling RSS with 8 RX and 8 TX queues.
Start the Click kernel module with the minimal forwarding configuration
# wget http://routebricks.org/code/minfwdtest.click
# click-install -t 8 minfwdtest.click
Once the Click threads are running, all traffic received on port eth0 will be forwarded (independently of the content) to eth1 and viceversa. (the eth0 and eth1 interface names must be assigned to the 10Gbps NIC).