![]() |
Learn about your OpenFlow switch and controller options. Try out OpenFlow on your own PC! Install it, watch packets flow, and even make your own controller. |
How do I get started with OpenFlow?
To start experimenting with OpenFlow, you’ll want both an OpenFlow Controller and an OpenFlow switch.
OpenFlow Switch Options:
- Reference Linux User-space 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.
- Reference Linux Kernel-space Switch. This switch offers more control and debug options, plus more speed, than the User-space Switch. It supports as many ports as you can fit in a PC (8+), including wired and wireless ports.
- 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 www.netfpga.org.
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.
- Reference Test Controller. This controller comes with the Test Suite, and is meant to test specific functions and corner cases of the OpenFlow switch. It is written in Perl.
- 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. More details are available at www.noxrepo.org.
The OpenFlow reference software switch is available for a number of Linux distributions.
Even if you have a Linux PC available, your easiest option is probably to use virtualization software, which lets you run a virtual PC within the OS of your physical PC - no hardware required. Within the virtual PC, you can run both an OpenFlow switch and an OpenFlow controller, and see the control messages and packets flowing. Examples of virtualization software include VMWare Player/Server/Fusion, Parallels Desktop, Sun xVM VirtualBox, or QEMU.
The other option is to run on a hard disk install. With multiple Ethernet ports, you can use OpenFlow to network a bunch of physical machines - to transfer files, or browse the internet. You can run the Test Suite without any virtual machines, by creating virtual ethernet pairs within the Linux kernel.
The instructions below include exact steps for installing the OpenFlow Reference Switch and Test Suite, and should work for both virtual and physical machines.
OpenFlow Linux Install Instructions
OpenFlow should install on any Linux distribution, but different distros have different packages and package update commands. Below, find specific instructions for installing OpenFlow and the regression suite on three of the most common distros:
» Ubuntu Install Instructions |
|
![]() |
» Debian Install Instructions
|
» CentOS Install Instructions
|









