Version 9 (modified by 15 years ago) ( diff ) | ,
---|
Setting up the host for the NetFPGA
Here we provide the links and directions followed to set up a working NetFPGA host. The directions can be found on the following site: http://netfpga.org/netfpgawiki/index.php/Guide
Installing CentOS
CentOS is the recommended OS for use with NetFPGA. The most current version is 5.3, which is not listed as a version of CentOS that works with NetFPGA, but was used anyways.
CentOS 5.3
The latest version is CentOS 5.3.
For the installation, the net install iso was chosen because of its small size. This can be found on any mirror site.
- CentOS mirrors : http://isoredirect.centos.org/centos/5/os/i386/
- Network installation of CentOS : http://www.tonybhimani.com/2007/12/20/centos-51-network-install-instructions/
CD install of CentOS 5.2
The .iso images can be found here: http://vault.centos.org/5.2/isos/i386/ You only need CD's 1 through 4. k3b on Ubuntu was used to burn the images since the images burned with Windows seemed to become corrupt. It seems that you need to manually configure the network interface for eth0.
- Network interface configurations: http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-networkscripts-interfaces.html
- VLANs on CentOS: http://www.tummy.com/journals/entries/jafo_20061130_063931
Before installing the netFPGA base package, make sure to update the kernel, since the dependencies for NetFPGA software require a newer version of the kernel than the one for 5.3. To install the basic drivers, install teh yum repository and GPG key, followed by the netFPGA base package.
rpm -Uhv http://netfpga.org/yum/el5/RPMS/noarch/netfpga-repo-1-1_CentOS5.noarch.rpm yum install netfpga-base /usr/local/NF2/lib/scripts/user_account_setup/user_account_setup.pl
The directions then go over installing CAD tools, but since we are just trying to make the FPGA into an !OPenFlow switch, we skip over that section of the guide. cd into the NetFPGA directory, then make, make install, and reboot.
make #a bunch of output showing status make install #more outputs reboot
after the machine has rebooted, check that drivers are loaded. The PID should show up:
[root@localhost ~]# /sbin/lsmod | grep nf2 nf2 22540 0
Finally, verify the interfaces with /sbin/ifconfig -a
at the terminal. This is the output for our setup:
eth0 Link encap:Ethernet HWaddr 00:1C:C0:B4:EC:D4 inet addr:192.168.202.102 Bcast:192.168.203.255 Mask:255.255.252.0 inet6 addr: fe80::21c:c0ff:feb4:ecd4/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:825 errors:0 dropped:0 overruns:0 frame:0 TX packets:212 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:76080 (74.2 KiB) TX bytes:21489 (20.9 KiB) Interrupt:50 Base address:0xa000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1162 errors:0 dropped:0 overruns:0 frame:0 TX packets:1162 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2004680 (1.9 MiB) TX bytes:2004680 (1.9 MiB) nf2c0 Link encap:Ethernet HWaddr 00:4E:46:32:43:00 BROADCAST MULTICAST MTU:1986 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:58 nf2c1 Link encap:Ethernet HWaddr 00:4E:46:32:43:01 BROADCAST MULTICAST MTU:1986 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:58 nf2c2 Link encap:Ethernet HWaddr 00:4E:46:32:43:02 BROADCAST MULTICAST MTU:1986 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:58 nf2c3 Link encap:Ethernet HWaddr 00:4E:46:32:43:03 BROADCAST MULTICAST MTU:1986 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:58 sit0 Link encap:IPv6-in-IPv4 NOARP MTU:1480 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
NetFPGA on Ubuntu (11/7)
Ultimately, the second NetFPGA host was built using Ubuntu 8.04 (kernel 2.6.24-16). To make things neat, user 'netfpga' was created for this process. Make sure the user is added to the sudoers list.
installing NetFPGA drivers
First off, you need an account at netfpga.org to download the .tar files needed to install the netfpga drivers. The files needed are netfpga_base_beta_x_x.tar.gz and netfpga_lib.tar.gz. With an account, they can be downloaded from here: http://netfpga.org/beta/distributions/
Untar and the files with tar -xvf <filename>
. They will untar into one directory called NF2. Do not make and install yet - At this point, follow the directions on the Ubuntu compatibility page. They ask you to make a few changes on the files located in NF2. A few things to note regarding the directions:
- to edit /boot/grub/menu.lst as per the instructions, use the directions for modifying grub.conf for CentOS, found here: http://www.netfpga.org/netfpgawiki/index.php/Install_Software_1.0#CentOS_Installation_Instructions
- Environmental variables can be added by the command
/usr/local/NF2/lib/scripts/user_account_setup/user_account_setup.pl
as per the Guide, however you might need to edit /usr/local/NF2 in user_account_setup.pl to specify the exact path to your NF2 directory:else { print "Copying the NF2 directory to your user account\n"; `cp -r /home/netfpga/test/NF2 ~`; } print "Adding the NetFPGA Enviornment Variables to your .bashrc\n"; `cat /home/netfpga/test/NF2/bashrc_addon >> ~/.bashrc\n`;
Then you can make and install the drivers. Note, the selftest can't be run in Ubuntu.
installing OpenFlow on NetFPGA
General directions are found here: http://netfpga.org/netfpgawiki/index.php/OpenFlow-NetFPGA-090
In order to install OpenFlow on the FPGA you need both the netFPGA OpenFlow switch driver and the actual OpenFlow software.
- netFPGA-OpenFLow-switch package : http://netfpga.org/beta/distributions/netfpga_openflow_switch.0_9_0-1.tar.gz (you need an account to access it)
- OpenFlow : use git (directions below)
Don't bother with the ./install.sh stuff under the Usage section of the directions found at netfpga.org, since they are custom-fitted for CentOS. Instead, the directions found at openflowswitch.org should be referenced. The directions need to be modified slightly for Ubuntu:
- Install Dependencies
The following are needed to install everything properly (you should be able to apt-get install
these):
- git-core (recommended)
- curl - dependency for Git that does not get installed properly due to a known bug in some versions of Ubuntu
- autoconf
- automake
- libtool
- gcc
- pkg-config
The stuff needed to build kernel modules:
- linux-kernel-devel
- kernel-package
- linux-libc-dev
- Install
The commands, as per the CentOS install page at openflow.org:
git clone git://openflowswitch.org/openflow cd openflow ./boot.sh
Reboot the machine, then build the kernel modules:
./configure --with-l26=/lib/modules/`uname -r`/build make sudo make install
- Check that all is well/ the kernel modules exist:
the command
ls <path-to-your-openflow-directory>/datapath/linux-2.6 | grep ofdatapath
should bring up the following 2 things:
- ofdatapath.ko
- ofdatapath_netfpga.ko
Regression testing
Connecting the SATA feedback loop seems to prevent the test from loading correctly, throwing the following error:
[root@localhost ~]# /root/NF2/lib/C/download/nf2_download ~/NF2/bitfiles/selftest.bit Found net device: nf2c0 Bit file built from: nf2_top_par.ncd Part: 2vp50ff1152 Date: 2008/ 7/21 Time: 17: 0:39 After resetting Programming interface, expected status to be 1 (FIFO empty). However status & 0x102 is 0x102 Fatal Error, exiting...
In addition, the Ethernet cables used for the cross-connection should be crossover, not straight through. Once the SATA cable was removed, and the test run with the command
~/NF2/projects/selftest/sw/selftest -n
the proper output was returned.
Installing the OpenFlow implementation (OpenFlow-NetFPGA-090)
After successfully installing the drivers, you can install the OpenFlow switch with the following command:
[root@localhost ~]# yum install netfpga-openflow_switch
Attachments (3)
- libpcap.so.0.9.4.tar.gz (72.3 KB ) - added by 15 years ago.
-
ubuntu_setup.sh
(346 bytes
) - added by 14 years ago.
Ubuntu compatibility symlinks
-
bitfiles.tgz
(1.7 MB
) - added by 14 years ago.
netfpga cpci/tunnel bitfiles
Download all attachments as: .zip