Please Note: This website has been archived and is no longer maintained.
See the Open Networking Foundation for current OpenFlow-related information.


To start experimenting with OpenFlow, you’ll want both an OpenFlow switch (either a software-based switch or a hardware one) and a controller that supports higher-level applications. We offer several options as summarized below:

oftrace oflops openseer ofmonitor 
LAVI ENVI n-Casting Aggregation NOX Beacon Trema (Helios) BigSwitch SNAC Maestro Expedient FlowVisor HP Procurve NEC PF5240 Pronto Software switch NetFPGA OpenWrt WiFi AP OpenVSwitch

Based on which type of network you plan to run, your choice for the switches and controller will vary. Following provides more details on the choices:

OpenFlow software switch Options

  • Reference Linux Switch: This implementation runs on the widest variety of systems and is easy to port. It is also the slowest, as it cannot take advantage of multiple CPUs and requires kernel-to-user-space transitions. It supports as many ports as you can fit in a PC (8+), including wired and wireless ports. Select platform for further instructions:
  • NetFPGA Switch: This switch offers line-rate performance for 4 Gigabit ports, regardless of packet size, via hardware acceleration. It requires the purchase of a NetFPGA card, which is $500 for researchers and $1000 for industry. More NetFPGA details are available at
  • Open vSwitch: Open vSwitch is a multilayer virtual switch, licensed under the open source Apache 2 license, with OpenFlow support. Open vSwitch currently supports multiple virtualization technologies including Xen/XenServer, KVM, and VirtualBox.
  • OpenWRT: By porting OpenFlow support to OpenWrt, we convert a cheap commercial wireless router and access point into an OpenFlow-enabled switch with a WebUI and a CLI.

OpenFlow hardware Options

To obtain a hardware switch that supports the latest release of OpenFlow, purchase one of the following:

  • HP Procurve 5400zl: This switch typically features 48 x 1Gbps ports that are expandable to 576 ports. Support OpenFlow ver 0.8.9
  • NEC PF5240: This switch typically features 48 x 1Gbps ports, along with 2 x 10Gbps ports. Supports OpenFlow ver up 1.0
  • Pronto: This switch typically features 48 x 1Gbps ports, 4 SPF+ 10Gbps ports. This switch provides vanilla OpenFlow support for ver 1.0, with firmware developed by Stanford.

OpenFlow Controller Options

  • Reference Learning Switch Controller. This controller comes with the Reference Linux distribution, and can be configured to act as a hub or as a flow-based learning switch. It is written in C.
  • NOX: NOX is a Network Operating System that provides control and visibility into a network of OpenFlow switches. It supports concurrent applications written in Python and C++, plus includes a number of sample controller applications.
  • Beacon: Beacon is an extensible Java-based OpenFlow controller. It was built on an OSGI framework, allowing OpenFlow applications built on the platform to be started/stopped/refreshed/installed at run-time, without disconnecting switches.
  • Helios: Helios is an extensible C-based OpenFlow controller build by NEC, targeting researchers. It also provides a programmatic shell for performing integrated experiments
  • BigSwitch: BigSwitch released a closed-source controller based on Beacon that targets production enterprise networks. It features an user-friendly CLI for centrally managing your network.
  • SNAC: SNAC is a controller targeting production enterprise networks. It is based on NOX0.4, and features a flexible policy definition language and a user-friendly interface to configure devices and monitor events.
  • Maestro: Maestro is an extensible Java-based OpenFlow controller released by Rice University. It has support for multi-threading and targets researchers.

OpenFlow Slicing Software

  • FlowVisor: This is a special purpose OpenFlow controller that acts as a transparent proxy between OpenFlow switches and multiple OpenFlow controllers. It slices the network based on the Flow fields and allocated the “flowspace” to individual controllers.