Files
openflow/datapath/hwtable_nf2
Mikio Hara 7d1591aec9 Add debian new kernel module build style support
Please run configure as
	./configure --with-l26=/lib/modules/`uname -r`
instead of
	./configure --with-l26=/lib/modules/`uname -r`/build
2009-10-21 11:35:38 -07:00
..
2009-09-04 09:58:01 -07:00
2009-09-04 09:58:01 -07:00
2009-09-04 09:58:01 -07:00

NetFPGA Hardware Table
  Date - 09/04/09
----------------------------------------

The NetFPGA Hardware Table creates a single software table that contains all
the flows that are currently held in the NetFPGA card. The card itself splits
exact match flows into SRAM and wildcard match flows into TCAMs. Currently
there are 24 usable wildcard flow entries and 32,768 available exact match
entries.

Installation
----------------------------------------

First build OpenFlow ensuring you include the directive to build the
openflow_netfpga2 hardware table in your configure statement:

	% ./configure --with-l26=/lib/modules/`uname -r` --enable-hw-tables=nf2

To get debugging output from the NetFPGA hardware table uncomment the following 
line from within <openflow>/datapath/hwtable_nf2/nf2_flowtable.h, then recompile:

	#define NF2_DEBUG 1

For further help regarding building OpenFlow please see the INSTALL file in
the OpenFlow root directory.

Platform support
----------------

OpenFlow v0.9 with hwtable_nf2 has been tested on CentOS 5.2(Linux 2.6.18),
which is the officially supported platform of NetFPGA.

Running
----------------------------------------

Use nf2_download to download the openflow_switch.bit file that is located in
the <openflow>/datapath/hwtable_nf2 folder:

	% nf2_download -r <openflow>/datapath/hwtable_nf2/openflow_switch.bit

'-r' option enables PHY interrupt for its link status changing, and OpenFlow
switch can detect it.

Install the OpenFlow kernel module:

	% insmod <openflow>/datapath/linux-2.6/openflow_mod.ko

Install the NetFPGA Hardware Table kernel module:

	% insmod <openflow>/datapath/linux-2.6/openflow_netfpga2_mod.ko

Create an OpenFlow datapath:

	% <openflow>/utilities/dpctl adddp nl:0

Add the NetFPGA interfaces to the datapath:

	% <openflow>/utilities/dpctl addif nl:0 nf2c0
	% <openflow>/utilities/dpctl addif nl:0 nf2c1
	% <openflow>/utilities/dpctl addif nl:0 nf2c2
	% <openflow>/utilities/dpctl addif nl:0 nf2c3

At this point your OpenFlow switch should be ready to go.

While you are running OpenFlow switch, you can check the hardware information
including its bitfile version as follows:

	% cat /proc/net/openflow-netfpga

Known Bugs
----------------------------------------
* There is currently no support for priority amongst wildcard-match entries.

Contact
-------
e-mail: openflow-discuss@lists.stanford.edu
www: http://openflowswitch.org/