SDN Controller Handbook

This guide to SDN controllers describes the options available via open source software, traditional networking vendors and SDN startups, and how they differ.

9 Min Read
Network Computing logo

As the concept of software-defined networking gains traction and you think about SDN deployment in your organization, the number of choices available may be baffling. There are a number of open source SDN options, and it seems every traditional networking vendor has jumped into the ring with its own products or platform. Then there are the SDN startups, which are too plentiful to count.

Here we focus on SDN controllers in the market. The SDN controller is especially crucial because of the central role it plays in the network. The controller is an application that enables intelligent networking by allowing IT to control the flow between physical network devices on one side and applications on the other.

SDN controller platforms take the burden off network devices by removing the control plane from the network hardware. They use protocols such as OpenFlow and OVSDB to control traffic and configure network devices, typically via an assortment of modules that are able to provide different functions. Controllers can manage and monitor both virtual networking infrastructure and the underlying physical networking devices, and many can isolate parts of the network for multitenant network infrastructure.

There are several flavors of open source SDN controllers, and many networking vendors have joined the OpenDaylight Project in order to contribute or develop compliant products. As a result, several commercial products are now based on open source code and are frequently designed to work with OpenFlow-enabled network devices.

SDN controllers can be useful in many environments, including cloud and data center networks, where they can offer better utilization of resources and faster turnaround times for multitenant segregation, and in enterprise campus networks, in which the benefits of network access control and network monitoring can be leveraged. They also show great promise for service provider networks, where traffic optimization and control of application flows is essential to business growth and success.

Which SDN controller is right for your network and applications? We've outlined the options, focusing mainly on those that can be used in the enterprise, to help you decide.

Early open source SDN controllers

NOX was the first OpenFlow controller, developed at Nicira Networks (acquired by VMware in 2012) in parallel with OpenFlow. It was written in C++ as a program to manage switches. Nicira donated NOX to the research community in 2008.

POX is the successor to NOX, written in Python. POX is still under active development with the goal to develop the archetypal, modern SDN controller.

Beacon is written in Java and works with the Eclipse integrated development environment. Although limited to star topologies, it was the first SDN controller that allowed programmers without extensive experience to enable SDN environments.

Floodlight is based on Beacon and is Apache-licensed. One of the open source projects supported by Big Switch Networks, the controller can work with networks containing OpenFlow and non-OpenFlow components. It also integrates OpenStack cloud orchestration.


New, free open source controllers

ONOS is the Open Network Operating System developed by the Open Networking Lab (ON.Lab), a non-profit organization founded by SDN inventors and leaders from Stanford and UC Berkeley. Although ONOS is now aimed at carrier networks, ON.Lab intends it as an alternative to the vendor-driven OpenDaylight initiative and hopes to extend it to enterprises in the future.

OpenContrail is the open source version of Juniper Networks' Contrail controller, which resulted from its acquisition of Contrail Systems in 2012. Licensed under Apache 2.0, the project intends to foster SDN adoption and cloud integration. It relies more heavily on traditional networking protocols like MPLS and BGP than many architecture designs.

OpenDaylight, a collaborative project funded by the Linux Foundation, has developed an SDN controller designed to work in almost any environment. The controller is based on Beacon and implemented within a Java virtual machine, so it can be deployed on any hardware or operating system supporting Java, according to OpenDaylight. It supports OpenFlow, as well as other open SDN standards. The group has made significant progress, announcing two major software releases, Hydrogen and Helium, just a year apart.

Ryu is an SDN controller written in Python and available under Apache 2.0 licensing. It is supported by NTT Communications and deployed in the company's data centers, and has been packaged by Pica8 as part of its SDN starter kit. Ryu supports various protocols including OpenFlow, Netconf and OF-config. Using OpenStack with Ryu allows for profuse segmentation, according to its documentation.

Enterprise SDN controllers

Big Switch Networks offers the Big Cloud Fabric Controller as part of its SDN data center fabric. The controller is based on Project Floodlight open source specifications, and uses an OpenFlow extension to interface with Switch Light, which is Big Switch's switch operating system. Virtual switching can be done through vSwitch, the platform's virtual OS. The product is available in a leaf-spine physical Clos fabric or in a leaf-spine and vswitch hybrid fabric.

Brocade's Vyatta Controller is an open source controller based on OpenDaylight's specifications. Brocade acquired the basis for its virtual networking technology through the acquisition of Vyatta in 2012. According to Brocade, the controller is the first one built to the OpenDaylight standard without any proprietary extensions or platform dependencies, providing a common platform for multi-vendor networks and applications. The controller is also available with a one-year free license.

Cisco's Application Policy Infrastructure Controller (APIC) is the company's point of automation and management for its ACI platform, which provides control of network environments via application profiles. APIC depends on the Cisco OpFlex protocol to enable those policies to be applied across physical and virtual network switches. AIPC concentrates on policy enforcement -- allowing hardware devices and networking protocols to retain intelligence -- unlike OpenFlow controllers, which aim to centralize all functions on the controller. The APIC Enterprise Module is also available as software and as a hardware appliance to extend SDN to the WAN and network edge.

Cisco's Extensible Network Controller (XNC) was the first commercial version of the OpenDaylight controller, according to Cisco, and serves as its reference implementation of the OpenDaylight stack. The controller uses a modular architecture that supports OpenFlow as well as Cisco's One Platform Kit (onePK).

Dell's Active Fabric Controller is designed for enterprise OpenStack deployments. It uses OpenFlow to interface with data center switches. The controller was built on OpenFlow and also has a plug-in for the OpenStack Neutron networking project, providing the ability to scale cloud and network services. Dell intends for customers to use the fabric with its Z9500 switches in cloud or very high-density enterprise environments.

Extreme Networks' OneController is based on OpenDaylight specifications but includes proprietary extensions. These allow customers to extend SDN to Extreme's wireless products (obtained through its acquisition of Enterasys in 2013) via controller modules based on wireless analytics, wireless control, security and policy control.

Hewlett-Packard's Virtual Application Networks (VAN) SDN controller is an OpenFlow-based controller intended for data center, campus, or service provider environments using HP or other OpenFlow-compliant hardware. VAN works in conjunction with OpenStack and uses HP's Virtual Cloud Networking platform to extend to OpenStack's Neutron. HP also has the distinction of offering an app store with its SDN platform.


IBM's Programmable Network Controller provides an OpenFlow-based fabric with centralized control of network flows and virtual machine mobility. The controller integrates with IBM's broader platform, SDN for Virtual Environments. SDN for VE is an IBM network overlay software that gives existing network hardware the capability to be subdivided into virtual segments.

Juniper Networks' Contrail Controller is built on technology obtained from the company's acquisition of Contrail Systems in 2012. The controller operates on a virtual machine that manages network processes using the XMPP protocol. It leverages Juniper’s OpenStack distribution for cloud orchestration and automation, and supports CloudStack and IBM's SmartCloud Orchestrator. Juniper also offers OpenContrail, an open source version of Contrail, as well as the NorthStar Controller for carrier networks.

Metaswitch Networks' Gulfstream SDN Controller is designed for network access and hyperscale data center infrastructures, according to the company. It supports standards including OpenFlow 1.3, REST and NETCONF, and combines open source and proprietary code.

Midokura's Enterprise MidoNet is a software-defined virtual network for infrastructure-as-a-service cloud environments. MidoNet focuses on virtual switches only, but integration with other SDN controllers and Cumulus switches make expansion to the physical infrastructure possible. Midokura is very involved in OpenStack, and has tightly integrated MidoNet with OpenStack and its Horizon user interface.

NEC's ProgrammableFlow Controller was the first commercially available SDN controller based on OpenFlow. Launched in 2011, it is now in its fifth version. The controller supports physical and virtual switches, and is available in hybrid flavors that work with traditional networks as well as OpenFlow. It offers integrated orchestration with OpenStack and Microsoft System Center Virtual Machine Manager. NEC also offers the Univerge Network Coordinator, which can control multiple SDN controllers. 

Pica8 Integrated Open OVS Controller is the controller component of Pica8's SDN platform and controller. The controller uses OpenFlow and interoperates with both physical and virtual switches. Pica8 specifies the RYU open source controller for its reference architecture but has also demonstrated interoperability with Floodlight and NOX. The RYU controller is supported by NTT Communications and was developed by the company's labs unit.

Plexxi Control is an SDN controller built to work with the company's Big Data Fabric. It also interacts with Plexxi Switch hardware, which is configured in a two-tier architecture connected by passive optical interconnects. The switches handle some of the network intelligence, acting as "co-controllers," the company says. Plexxi's API allows the architecture to interoperate with systems such as VMware's VCenter.

VMware's NSX Controller is part of the company's NSX SDN platform, which grew out of the acquisition of Nicira Networks in 2012. The controller supports unicast and hybrid logical switch control plane modes in order to decouple NSX from the physical network. A fully virtual product, NSX is compatible with any network hardware, according to VMware. It can be deployed in a VMware vSphere or multi-hypervisor environment, and supports OpenStack, CloudStack, and VMware cloud management software.

Need more specifics on virtual networking? Check out the entire SDN Track or attend the live workshop, Software-Defined Networking and Network Virtualization, at Interop Las Vegas this spring. Don't miss out! Register now for Interop, April 27 to May 1, and receive $200 off.

About the Author(s)

Stay informed! Sign up to get expert advice and insight delivered direct to your inbox

You May Also Like

More Insights