OpenFlow ported to the Netronome NFE-i8000

September 21st, 2009, Guido Appenzeller in OpenFlow Blog

OfOnNetronomeTeamYan Luo, Pablo Cascon, Eric Murray and Julio Ortega (photos of the team to the left) have implemented OpenFlow for the Netronome NFE-i8000 Network Processor Card. The joint project between the University of Massachusetts at Lowell and the University of Granada, Spain is not only adds another platform to OpenFlow, it can also claim the title as the first port of OpenFlow on a network processor card. Right now their implementation is limited to exact matches and only tested with the reference controller, but according to Prof. Luo the team is working on wild card matches as well.

The Netronome NFE-i8000 card is a PCI Express card that fits into a PC and includes 4x 1Gb/s SFP port, a 16-core IXP2855 Netowork Processor, 768MB RDRAM for packet buffering and 40MB SRAM for flow table operations. One feature that makes this hardware stand out is that it accomodates up to 250k flow table entries. Read below for details on the implementation.

For the actual implementation, Professor Luo wrote:

“We developed the OpenFlow-NP software on both the host side and the NIC side. On the host side, we implemented the software based on OpenFlow specification release 0.8.9~2. The OpenFlow software communicates with the NIC card through a kernel module called “hwtable_nfei8k_mod”. This module functions in the similar way as hwtable_nf2_mod to support the passing of OpenFlow commands from the host to the NP, and the values of statistical counters from the NP to the host. The NIC side software maintains a flow table in the SRAM of the card. The NP on the NIC writes new flow table entries/actions and clears out existing entries/actions. These operations are triggered by the OpenFlow switching software (i.e. secchan) upon receiving new flows or detecting expired flows. Incoming packets are switched immediately at the NIC level by the NP if they belong to a known flow and the NP finds a matched entry in the flow table, leading to faster switching performance. Experiment data show that the packet delay can be reduced by up to 20% compared to a dumb NIC based reference design. The current release of OpenFlow-NP (v0.8) handles only extact flow entries while the wildcard entries are under development.  The flow statistics are not fully supported in this release.”

More details of the OpenFlow-NP project and source code are available on the Project Page.

Leave a Reply