, List of OpenFlow Software Projects

List of OpenFlow Software Projects (that I know of)

(I am trying to keep a running list of all OpenFlow-related software projects where either the bits or the source are available online. If you know of one that I'm missing, please e-mail me and I'll include it)

Switch Software and Stand-Alone OpenFlow Stacks

Open vSwitch: (C/Python) Open vSwitch is a an OpenFlow stack that is used both as a vswitch in virtualized environments and has been ported to multiple hardware platforms. It is now part of the Linux kernel (as of 3.3).

OpenFlow Reference: (C) The OpenFlow reference implementation is a minimal OpenFlow stack that tracks the spec.

Pica8: (C) An open switch software platform for hardware switching chips that includes an L2/L3 stack and support for OpenFlow.

Indigo: (C) Indigo is a for-hardware-switching OpenFlow implementation based on the Stanford reference implementation.

Pantou: (C) Pontou is an OpenFlow port to the OpenWRT wireless environment.

OpenFaucet: (Python) OpenFaucet is a pure Python implementation of the OpenFlow 1.0.0 protocol, based on Twisted. OpenFaucet can be used to implement both switches and controllers in Python.

OpenFlowJ: (Java) OpenFlow stack written in Java.

Oflib-node: (Javascript) Oflib-node is an OpenFlow protocol library for Node. It converts between OpenFlow wire protocol messages and Javascript objects.

Nettle: (Haskell) OpenFlow library written in Haskell.

Controller Platforms

POX: (Python) Pox as a general SDN controller that supports OpenFlow. It has a high-level SDN API including a queriable topology graph and support for virtualization.

IRIS: (Java) a Resursive SDN Openflow Controller created by IRIS Research Team of ETRI. Our vision was to create an SDN controller platform with the following features : (a) Horizontal Scalability for carrier-grade network (b) High Availability with transparent failover from failure (c) Multi-domain support with recursive network abstraction based on Openflow

MUL: (C) MūL, is an openflow (SDN) controller. It has a C based muli-threaded infrastructure at its core. It supports a multi-level north bound interface for hooking up applications. It is designed for performance and reliability which is the need of the hour for deployment in mission-critical networks.

NOX: (C++/Python) NOX was the first OpenFlow controller.

Jaxon: (Java) Jaxon is a NOX-dependent Java-based OpenFlow Controller.

Trema: (C/Ruby) Trema is a full-stack framework for developing OpenFlow controllers in Ruby and C.

Beacon: (Java) Beacon is a Java-based controller that supports both event-based and threaded operation.

Floodlight: (Java) The Floodlight controller is Java-based OpenFlow Controller. It was forked from the Beacon controller, originally developed by David Erickson at Stanford.

Maestro: (Java) Maestro is an OpenFlow "operating system" for orchestrating network control applications.

NDDI - OESS: OESS is an application to configure and control OpenFlow Enabled switches through a very simple and user friendly User Interface.

Ryu: (Python) Ryu is an open-sourced Network Operating System (NOS) that supports OpenFlow.

NodeFlow (JavaScript) NodeFlow is an OpenFlow controller written in pure JavaScript for Node.JS.

ovs-controller (C) Trivial reference controller packaged with Open vSwitch.

Special Purpose Controllers

RouteFlow RouteFlow, is an open source project to provide virtualized IP routing services over OpenFlow enabled hardware. RouteFlow is composed by an OpenFlow Controller application, an independent RouteFlow Server, and a virtual network environment that reproduces the connectivity of a physical infrastructure and runs IP routing engines (e.g. Quagga).

Flowvisor (Java) FlowVisor is a special purpose OpenFlow controller that acts as a transparent proxy between OpenFlow switches and multiple OpenFlow controllers.

SNAC (C++) SNAC is an OpenFlow controller builton NOX, which uses a web-based policy manager to manage the network.

Resonance Resonance is a Network Access Control application built using NOX and OpenFlow.

Oflops (C) OFlops (OpenFLow Operations Per Second) is a standalone controller that benchmarks various aspects of an OpenFlow switch.


Ironflow ironflow is a IF-MAP client to map the offered data from an Openflow controller into the MAP-Infrastructure. In addition ironflow offers the possibility to react on request for Investigation requests with the blocking of network traffic for the hosts quoted in the request.

STS SDN Troubleshooting Simulator

FlowScale FlowScale is a project to divide and distribute traffic over multiple physical switch ports. FlowScale replicates the functionality in load balancing appliances but using a Top of Rack (ToR) switch to distribute traffic.

NICE-OF NICE is a tool to test OpenFlow controller application for the NOX controller platform.

OFTest OFTest is a Python based OpenFlow switch test framework and collection of test cases. It is based on unittest which is included in the standard Python distribution.

Mirage Mirage is an exokernel for constructing secure, high-performance network applications across a variety of cloud computing and mobile platforms. Apparently, it supports OpenFlow.

Wakame VDC (Ruby) IaaS platform that uses OpenFlow for the networking portion.

ENVI ENVI is a GUI framework that was designed as an extensible platform which can provide the foundation of many interesting OpenFlow-related networking visualizations.

NS3 (C++/Python) NS3 is a network simulator. It has openflow support built in to emulate an openflow environment and also it can be used for real-time simulations.