What is an SDN controller (software-defined networking controller)?
A software-defined networking controller is an application in SDN architecture that manages flow control for improved network management and application performance. The SDN controller platform typically runs on a server and uses protocols to tell switches where to send packets.
SDN controllers direct traffic according to forwarding policies that a network operator establishes, minimizing manual configurations for individual network devices.
The centralized controller takes the control plane off the network hardware and runs it as software instead. This capability facilitates automated network management and makes it easier to integrate and administer business applications. In effect, the SDN controller serves as an operating system for the network.

The controller is the core of an SDN. It resides between network devices at one end of the network and applications at the other end. Any communication between them must go through the controller.
Controller APIs
The controller communicates with applications -- such as firewalls and load balancers -- using northbound interfaces. IN 2013, the Open Networking Foundation (ONF) created a working group focused on northbound application programming interfaces (APIs) and their development. However, the industry never settled on a standardized set, largely because application requirements vary.
The controller talks with individual network devices using a southbound interface. The OpenFlow protocol, created by ONF in 2011, is an example of a southbound interface. These southbound APIs enable the controller to configure network devices and choose the optimal network path for application traffic.
Pros and cons of SDN controllers
One major benefit of an SDN controller is that it's aware of all available network paths and directs packets based on traffic requirements. Because of the controller's visibility into the network, it automatically modifies traffic flows and notifies network administrators about congested links.
Companies can use more than one controller, adding a backup for redundancy. It's common for both commercial and open source SDN options to use three controllers. This redundancy enables the network to continue running in the event of lost connectivity or controller susceptibility.
The controller acts as a single point of failure, so securing it is pivotal to any software-defined network. Whoever owns the controller has access to the entire network. Network admins should create security and authentication policies to ensure only the right people have access.
SDN controller vendors
The following is an alphabetically organized list of vendors that offer SDN controllers:
- Cisco.
- Hewlett Packard Enterprise.
- Juniper Networks.
- NEC Corporation.
- Nuage Networks.
- Nvidia.
- Pica8.
- VMware.
Open source SDN controllers
SDN controllers are also available as open source options. The following list of vendors is in alphabetical order.
- NOX and POX.
- OpenDaylight.
- Open Network Operating System.
- Tungsten Fabric.
SD-WAN controllers
Traditionally, data center networks use SDN controllers. As SDN technology evolved, WAN became a compelling use case, driving the growth of software-defined WAN (SD-WAN).
An SD-WAN controller performs many of the same duties as an SDN controller. It follows policy configurations to direct WAN traffic over the most efficient route. The SD-WAN market has fewer notable open source options than SDN, as most SD-WAN controllers are typically tied to the vendor's proprietary SD-WAN platform.