Comparing Open Source SDN Controllers, like OpenDaylight, OpenContrail, and ONOS is a challenge. In Part 1 we compared commercial SDN controller vendors. First you, have to understand the what makes up an SDN Controller. Here in part 2, we’ll compare open source SDN Controllers. In a software-defined network (SDN), the SDN Controllers is the “brains” of the network. It is the strategic control point in the SDN network, relaying information to the switches/routers ‘below’ (via southbound APIs) and the applications and business logic ‘above’ (via northbound APIs).
The open source SDN Controllers are consider a platform that typically contains a collection of “pluggable” modules that can perform different network tasks. Some of the basic tasks include inventorying what devices are within the network and the capabilities of each and gathering network statistics. Extensions can be inserted that enhance the functionality and support more advanced capabilities, such as running algorithms to perform analytics and orchestrating new rules throughout the network.
There are a variety of Open Source SDN Controllers under development, from POX to Beacon, which is one of the most popular. Started in early 2010, Beacon is a Java-based OpenFlow Controller licensed under a combination of the GPL v2 license and the Stanford University FOSS License Exception v1.0. Other SDN Controllers of note include Trema (Ruby-based from NEC), as well as Ryu (supported by NTT).
For detailed SDN Controller Vendor and Open Source SDN Controller comparisons, checkout the 2016 Future of Network Virtualization and SDN Controllers Report also available as PDF Download
Open Source SDN Controllers and SDN Controller Comparison
- A10 Networks LBaaS Neutron
This A10 Network Driver is specifically designed to manage Thunder Series Appliances. A non-community version of the driver can be provided which extends horizon and other component.
- Arista Neutron ML2 Driver
Arista ML2 Mechanism Driver implement ML2 Plugin Mechanism Driver API. This driver can manage all types of Arista switches.
- Ashton Gate Stadium
Zeetta Networks will be using Ashton Gate as a ‘live lab’ to test a cutting edge High Density Wi-Fi solution using a SDN-enabled ‘bare metal’ technology approach. Zeetta Networks is developing and marketing Open Networking solutions for heterogeneous networks based on SDN and NFV principles.
Corsa is heavily involved in the deployment of Atrium. The Open Network Foundation’s (ONF) Atrium is the first-of-its-kind effort to integrate the industry’s best-of-breed open source SDN building blocks into a complete SDN distribution for network operators. The first release of Atrium features ONOS as the carrier-grade control plane.
Beacon is a fast, cross-platform, modular, Java-based OpenFlow controller that supports both event-based and threaded operation.
- Beryllium (Be)
Beryllium (Be) is the fourth release of OpenDaylight (ODL), the leading open source platform for programmable, software-defined networks.
- \'Bristol Is Open\' programmable Smart City
Zeetta Network\'s SDN/NFV technology underpins the first worldwide deployment of a SDN-based Smart City test-bed in Bristol City, UK.
- CIMI CloudNFV
CloudNFV was started as a response to the initial industry Call For Action issued by 10 global network operators in the fall of 2012. It was this Call for Action that generated the ETSI Industry Specification Group. Tom Nolle of CIMI Corporation
- Cisco ML2 Mechanism Driver
The Cisco Nexus ML2 Mechanism Driver implements the ML2 Plugin Mechanism Driver API. This driver manages multiple types of Cisco Nexus switches. Note: The initial version of this driver supports only the VLAN network type on a single physical network
- Cisco Nexus Neutron Plug-in
The Cisco Nexus® family of switches has been a staple in data centers since its introduction in 2008. The Cisco Nexus plug-in for OpenStack Neutron allows customers to easily build their infrastructure-as-a-service (IaaS) networks using the industry
- Cisco Nexus Quantum Plug-in
Cisco Quantum is an integrated suite of network management tools. The solution can allow you to efficiently and effectively monetize and optimize your networks in the face of ever-increasing demands.
- Citrix Neutron LBaaS NetScaler
The NetScaler loadbalancer integration in Neutron LBaaS implements all the LBaaS driver CRUD APIs defined in the Havana release: It implements all the defined operations on VIPs, Pools, Pool Members and Health Monitors.
- Cloudify OpenStack Plugin
The OpenStack plugin allows users to use an OpenStack based cloud infrastructure for deploying services and applications.
- CORD: Central Office Reimagined as a Datacenter
CORD re-architects the Telco Central Office as Datacenter to bring in cloud-style economies of scale and agility. It takes today’s proprietary boxes, determines how their functions can be aggregated or disaggregated, and instantiates them on commodity infrastructure.
dpdk.org is the open source community for Data Plane Development Kit (DPDK).
The Dronecode Project is an open source, collaborative project that brings together existing and future open source drone projects under a nonprofit structure governed by The Linux Foundation. The result will be a common, shared open source platform for Unmanned Aerial Vehicles (UAVs).
- Embrane Driver LBaaS Neutron
The present blueprint aims at the implementation of a Neutron LBaaS driver which allows users to provision heleos Load Balancers using Neutron LBaaS framework.
- Embrane Neutron Plugin
This plugin interfaces OpenStack Neutron with Embrane's heleos platform, which provides layer 3-7 network services for cloud environments. L2 connectivity is leveraged by one of the supported existing plugins.
- Experimental OpenFlow Fields: PoC
Enabling OpenFlow protocol extensions to support valuable vendor-specific features on OpenFlow-compatible Layer3 switch
- Facebook Open Switching System (FBOSS)
Facebook Open Switching System (FBOSS) is a set of applications that can be run on a standard Linux OS.
- Faucet SDN Controller
FAUCET is an OpenFlow controller for multi table OpenFlow 1.3 switches, that implements layer 2 switching, VLANs, ACLs, and layer 3 IPv4 and IPv6 routing, static and via BGP. It is based on Waikato University's Valve and the Ryu OpenFlow Controller.
The Floodlight Open SDN Controller is an enterprise-class, Apache-licensed, Java-based OpenFlow Controller. It is supported by a community of developers including a number of engineers from Big Switch Networks.
- Flow-Based QoS Support for Open vSwitch with DPDK
QoS software adds priority queues to assure the performance level increase of DPDK-accelerated Open vSwitch for video and voice services.
FlowER is an open-source Erlang based OpenFlow controller. Its purpose is to provide a simplified platform for writing network control software in Erlang. Its still under development but Travelping, FlowER’s creator, is already using it in its products.
FlowVisor is the ON.LAB network slicer that acts as a transparent proxy between OpenFlow switches and various guest network operating systems.
- ICSI Network Virtualization for OpenCloud
Researchers are working to implement a network virtualization infrastructure to allow the academic community to explore the fundamental technical challenges that underlie the cloud.
- IETF Generic Network Virtualization Encapsulation (Geneva)
Network virtualization involves the cooperation of devices with a wide variety of capabilities such as software and hardware tunnel endpoints, transit fabrics, and centralized control clusters. As a result of their role in tying together different elements in the system, the requirements on tunnels are influenced by all of these components. Flexibility is therefore the most important aspect of a tunnel protocol if it is keep pace with the evolution of the system.
- IO Visor Project
The IO Visor Project is a community driven open source project that opens up new ways to innovate, develop and share IO and networking functions.
IRIS is the Openflow-based Resursive SDN Openflow Controller created by SDN Research Section, ETRI.
- Juniper Networks Neutron Plug-in
The Juniper Networks plug-in for OpenStack Neutron enables you to orchestrate virtual and physical network configurations.
- Juniper Networks Quantum Plug-in (now Neutron)
The Juniper Networks plug-in for OpenStack Quantum enables you to use the DMI/NETCONF interfaces on Juniper Networks switches to orchestrate virtual networks
KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). It consists of a loadable kernel module, kvm.ko, that provides the core virtualization infrastructure and a processor specific module, kvm-intel.ko or kvm-amd.ko. KVM also requires a modified QEMU although work is underway to get the required changes upstream.
Lithium is the third release of OpenDaylight, the open source platform for building programmable, software-defined networks. With Lithium, service providers and enterprises can transition to SDN with particular focus on broadening the programmability of intelligent networks.
The purpose of the LOOM project is to design and prototype an experimental network switch controller that implements the OpenFlow 1.3.x and 1.4 protocols.
- Mellanox Neutron Plugin
The Openstack Mellanox Neutron plugin supports Mellanox embedded switch functionality as part of the VPI (Ethernet/InfiniBand) HCA. Mellanox Neutron Plugin allows hardware vNICs (based on SR-IOV virtual functions) per each Virtual Machine vNIC to
- Mellanox Neutron Plugin
The Openstack Mellanox Neutron plugin supports Mellanox embedded switch functionality as part of the VPI (Ethernet/InfiniBand) HCA.
- Mellanox Quantum Plugin
The Mellanox Quantum Plugin allows hardware vNICs (mapped to PCI SR-IOV Virtual Functions) per each Virtual Machine vNIC to have its unique connectivity, security, and QoS attributes.
- Midokura MidoNet Neutron Plugin
To provide and enable MidoNet virtual networking technology as one of the options for those using OpenStack Neutron as cloud networking orchestration.
- MidoNet Project
MidoNet is an open-source network virtualization platform for Infrastructure-as-a-Service (IaaS) clouds. MidoNet decouples your IaaS cloud from your network hardware, creating an intelligent software abstraction layer between your end hosts and your physical network.
- NEC OpenFlow Plugin
NEC OpenFlow plugin talks to OpenFlow Controller and each Neutron would be mapped to an virtual layer-2 network slice on an OpenFlow enabled network.
- Network Functions Virtualization (NFV) - Openstack Orchestration for Virtual Gateway
Openstack based orchestration for Virtual appliances
- Network Functions Virtualization (NFV) - Virtualized Security Services & Management
Openstack based orchestration for Virtual appliances
- Neutron Plugin
Brocade OpenStack Neutron Plugin for VDX/VCS provides a means to interface Openstack’s Networking (formerly Quantum Networking) to orchestrate Brocade’s physical switches.
- Neutron REST Proxy Plugin
This module provides a generic neutron plugin 'NeutronRestProxy' that translates neutron function calls to authenticated REST request to a set of redundant external network controllers.
- North-Bound API for Data Center Networking Solution
Firmware development for high capacity data center switch product family with support of programmable interfaces
To a developer, NOX:
Provides a C++ OpenFlow 1.0 API
Provides fast, asynchronous IO
Is targeted at recent Linux distributions (particularly Ubuntu 11.10 and 12.04, but Debian is also easy, and RHEL 6 is possible)
Includes sample components for:
- Nuage Networks Neutron Plug-in
OFlops is a standalone controller that benchmarks various aspects of an OpenFlow switch. Oflops implements a modular framework for adding and running implementation-agnostic tests to quantify an switch's performance.
- ON.LAB Mininet
Mininet is a convenient, realistic emulator for Software-Defined Networks (SDNs). It creates a representative OpenFlow network that runs real kernel, switch and application code on a single machine, which can be native, virtual or in the cloud.
OpenContrail is an Apache 2.0-licensed project that is built using standards-based protocols and provides all the necessary components for network virtualization–SDN controller, virtual router, analytics engine, and published northbound APIs. Learn more about OpenContrail from the slideshow overview or the detailed software architecture document.
OpenDaylight is leading the transformation to Open SDN. By uniting the industry around a common SDN platform, the ODL community is helping to make interoperable, programmable networks a reality. This is why so many regard OpenDaylight as the industry’s de facto standard.
- OpenDaylight Project
OpenDaylight, the largest open source SDN controller, is helping lead this transition. By uniting the industry around a common SDN platform, the OpenDaylight community -- solution providers, individual developers, and users working together -- is delivering interoperable, programmable networks to service providers, enterprises, and a variety of organizations.
- OpenFlow Sec FortNOX
FortNOX is an extension to the open-source NOX OpenFlow controller. FortNOX automatically checks whether the new flow rules violate security policies. FortNOX can detect rule contradictions, even in the presence of dynamic flow tunneling using set
- OpenFlow Sec FRESCO
FRESCO is an initiative to develop an OpenFlow application framework for rapidly prototyping security detection and mitigation modules, and composing these modules into efficiently deployable security services. Situated between the OpenFlow control
- OpenFlow Sec OF-BotHunter
OF-BOTHUNTER: BHResponder, Beta 3 Release 6 December 2013 Requires: SDN Security Actuator, BotHunter v1.7.2, and Perl.
- OpenFlow Sec SDN Security Actuator
SDN Security Actuator (Java and Perl versions), Beta 3 Release 6 December 2013
Requires: SE-Floodlight, Java v1.6+ or Perl.
- OpenFlow Sec Security Enhanced Floodlight
SE-Floodlight is a software extension to the BigSwitch Floodlight controller, providing role-based authorization and strong security constraints enforcement. It is the first reference implementation of an SDN security policy enforcing mediation
- OpenMUL SDN Controller
OpenMUL Controller provides a base controller platform for everything SDN/Openflow. It is a lightweight SDN/Openflow controller written almost entirely in C (from scratch) and provides top performance in terms of flow handling (download rate and latency) as well as a very stable application development platform.
- Open Network Install Environment (ONIE)
Created by Cumulus Networks, Inc. in 2012, the Open Network Install Environment (ONIE) Project is a small operating system, pre-installed as firmware on bare metal network switches, that provides an environment for automated operating system provisioning.
- Open Network Linux
Open Network Linux is a Linux distribution for bare metal switches, that is, network forwarding devices built from commodity components.
- Open Network Operating System (ONOS)
The Open Network Operating System (ONOS) is a software defined networking OS for service providers that has scalability, high availability, high performance and abstractions to make it easy to create apps and services. The platform is based on solid architecture and has matured to be feature rich and production ready.
- Open Network Operating System (ONOS)
The Open Network Operating System (ONOS) is a software defined networking (SDN) OS for service providers that has scalability, high availability, high performance and abstractions to make it easy to create apps and services. The platform is based on a solid architecture and has quickly matured to be feature rich and production ready.
- Openstack Ironic
OpenStack bare metal provisioning a.k.a Ironic is an integrated OpenStack program which aims to provision bare metal machines instead of virtual machines, forked from the Nova baremetal driver. It is best thought of as a bare metal hypervisor API and a set of plugins which interact with the bare metal hypervisors.
- OpenStack Neutron ML2 Plugin
The Modular Layer 2 (ml2) plugin is a framework allowing OpenStack Networking to simultaneously utilize the variety of layer 2 networking technologies found in complex real-world data centers.
- OpenStack Neutron Plugin
Neutron is an OpenStack project to provide "networking as a service" between interface devices (e.g., vNICs) managed by other Openstack services (e.g., nova). Starting in the Folsom release, Neutron is a core and supported part of the OpenStack
- OpenStack Newton
OpenStack Newton, the 14th release of the open source cloud software, now offers greater scalability, resiliency and user experience to support a wider variety of workloads. The Newton release was designed and built by an international community of 2,581 developers, operators and users from 309 organizations.
OpenStack is the cloud platform of choice for enterprises and service providers; an integration engine to manage bare metal, virtual machines, and containers with a single set of APIs.
- OpenVirteX (OVX)
OpenVirteX implements network virtualization as a proxy that sits between the network and the tenants’ controllers, rewriting OpenFlow messages to translate between tenants’ topologies and header spaces to that of the infrastructure network.
- Open Virtual Network (OVN)
Open Virtual Network (OVN) is a new network virtualization project that brings virtual networking to the Open vSwitch user community. It is being developed by the core OVS team.
OpenVNet is an Open Source Project for creation of highly scalable edge overlaid virtual networks. License under LGPL3.
Open Platform for NFV (OPNFV) facilitates the development and evolution of NFV components across various open source ecosystems. Through system level integration, deployment and testing, OPNFV constructs a reference NFV platform to accelerate the transformation of enterprise and service provider networks. Goals include accelerating time to market for NFV solutions, ensuring the platform meets the industry’s needs, and enabling end user choice in specific technology components.
- OVS Quantum Plugin
The Quantum openvswitch plugin works as part of the OpenStack Quantum Virtual Network Service.
- PLUMgrid OpenStack Networking Suite Neutron Plugin
PLUMgrid Neutron Plugin enables PLUMgrid OpenStack Networking Suite, which is a secure, comprehensive and open software solution that delivers terabits of performance and scales across tens of thousands of workloads. The product suite provides highly automated workflows that significantly reduce the deployment time of OpenStack clouds, enables users to create...
POX is NOX‘s younger sibling. At its core, it’s a platform for the rapid development and prototyping of network control software using Python. Meaning, at a very basic level, it’s one of a growing number of frameworks (including NOX, Floodlight, Trema, etc., etc.) for helping you write an OpenFlow controller.
- Project DELTA
Delta is a new SDN security evaluation framework with two main functions:
(1) It can automatically instantiate attack cases against SDN elements across diverse environments, and
(2) it can assist in uncovering unknown security problems within an SDN deployment.
- Protocol Oblivious Forwarding (POF) Controller
Control to support POF, based on Floodlight with POF extensions.
- Quantum REST Proxy Plugin
This module provides a generic quantum plugin 'QuantumRestProxy' that translates quantum function calls to authenticated REST request to a set of redundant external network controllers.
- Red Hat OpenShift Origin
OpenShift Origin is the open source upstream of OpenShift, the next generation application hosting platform developed by Red Hat. Also known as Platform-as-a-Service, OpenShift takes care of infrastructure, middleware, and management so that you can focus on your app.
- REPLICATE Smart City Project
Zeetta Networks participates to REPLICATE, one of the largest 'lighthouse' Horizon2020 Smart City Projects in Europe with a budget of €25 million to integrate under the control of Zeetta's NetOS® energy management, transport and ICT infrastructure at scale in three EU Cities: Bristol (UK), Florence (Italy) and San Sebastian (Spain).
Resonance is a Network Access Control application built using NOX and OpenFlow.
- Ruijie Networks Quantum Plugin
This driver will implement the Layer 2 QuantumPluginBase class, defined in the Quantum Plugin API.It will manage and control Ruijie switches.
- Ryu OpenFlow Controller
Ryu provides REST API by which Quantum server tells necessary informations. Quantum Server manages the association networks(uuid) to actual key value in addition to normal Quantum management informations.
- SDN Controller Applications and Network Integration
Feature enhancements for SDN platform capable of managing real-world carrier networks comprising Ethernet, SONET/SDH, OTN and DWDM technologies
- SDN-Enabled Corporate Wi-Fi
Solution prototype development for corporate Wi-Fi system supporting automatic wireless authentication in accordance with BYOD (bring your own device) policies
- SDN Security Vulnerability Genome Project
The ultimate goal of this project is to provide a unified database of all the security vulnerabilities exist in various SDN components available today.
- Security-Mode ONOS
Security-Mode ONOS can be enabled to enhance the robustness of the network environments controlled by ONOS.
This is a collaborative project with researchers from SRI International and KAIST.
- Snabb Switch Project
Snabb Switch is an open source virtual Ethernet switch for cloud networks.
- Software Defined Networking Research and Development for the Industrial Sector
Research and development of a virtual SDN switch for the Industrial sector, contributing to the Customer winning a $2 million contract
- Tail-F Neutron ML2 Plugin
The Tail-f NCS Mechanism Driver implements the ML2 Plugin Mechanism Driver API.
The best way to learn how to develop your own OpenFlow controller on top of Trema at this moment is to explore the sample applications in src/examples directory and trema/app repository.
- VNS3 helps Imagination Group connect virtual networks across Azure, data centers 2 months
“Without VNS3 we couldn’t have connected multiple VPN sites to Azure,” said Paul Saunders, Imagination’s Head of IT EMEA and Global Networks. Imagination migrated a new ERP application to Azure, but could not connect multiple networks. Cohesive Networks helped the company set up, test, and launch within 2 months.
Wakame-vdc is an IaaS (Infrastructure as a Service) cloud computing framework, facilitating the provisioning and management of a heterogeneous virtualized infrastructure. Wakame-vdc virtualizes the entire data center; servers, storage, and networking
- Weave Net
Weave Net is a powerful cloud native networking toolkit. It creates a virtual network that connects Docker containers across multiple hosts and enables their automatic discovery. Set up subsystems and sub-projects that provide DNS, IPAM, a distributed virtual firewall and more. Net is so easy to use, you may even forget it’s there – we like to call this: ‘invisible infrastructure’.
- ZeroTier One
ZeroTier is a software defined networking protocol that works across both LAN and WAN and can be deployed on desktop, mobile, container, and cloud systems and inside applications in the form of an embeddable SDK. Its goal is to deliver advanced enterprise networking everywhere and on everything.