Comparing Open Source SDN Controllers, like OpenDaylight, OpenContrail, and ONOS is a challenge. In Part 1 we compared commercial SDN controller vendors. 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 platforms that typically contains a collection of “pluggable” modules that 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 that supports 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).
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.
- Central Office Re-architected as a Datacenter (CORD)
CORD combines NFV, SDN, and the elasticity of commodity clouds to bring datacenter economics and cloud agility to the Telco Central Office. CORD lets the operator manage their Central Offices using declarative modeling languages for agile, real-time configuration of new customer services. Major service providers are already supporting CORD.
- 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.
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).
- Facebook Open Switching System (FBOSS)
Despite having "OS" in its name, FBOSS is not a full operating system. Facebook Open Switching System (FBOSS) is a set of applications that can be run on a standard Linux OS. The initial FBOSS release consists primarily of the FBOSS agent, a daemon that programs and controls the ASIC. This process runs on each switch and manages the hardware forwarding ASIC.
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.
HAProxy is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications. It is particularly suited for very high traffic web sites and powers quite a number of the world's most visited ones. Over the years it has become the de-facto standard open source load balancer, is now shipped with most mainstream Linux distributions, and is often deployed by default in cloud platforms
- IronFlow Project
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.
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.
- 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.
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.
- 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.
- Nuage Networks Neutron Plug-in
The Nuage Networks Neutron-plugin for OpenStack enables you remove complexity and limitation from the networking in OpenStack environments and replace it with added flexibility, scale and performance.
By tapping into the Nuage Networks Virtualized Services Platform, an OpenStack deployment will span multiple DCs, offer service chaining capabilities and additional features such as support for mixed-workloads (physical, containers and virtual machines) and quality of service (QoS).
- OCP 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.
- 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.
- Open Information Model and Tooling
- Open Network Operating System (ONOS)
ONOS has successfully enabled the beginning of the SDN revolution. Combining ONOS with white box switches and ONOS applications enables new forms of innovation never before possible with closed legacy networks.
- OpenStack Neutron
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
- Open Transport Configuration & Control (OTCC)
- 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.
- Quantum REST Proxy Plugin
- Ruijie Networks Quantum Plugin
- Snabb Switch Project
Snabb Switch is an open source virtual Ethernet switch for cloud networks.
Stratum is an open source project to develop a reference implementation for white box switches supporting all next generation SDN interfaces. It will provide a silicon-independent switch operating system that allows a switch to be controlled by a local or remote Network OS (NOS) via P4, P4Runtime and OpenConfig.
- Streaming Networks Analytics System (SNAS)
Trema is a full-stack, easy-to-use framework for developing OpenFlow controllers in Ruby and C. With Trema network DSL, you can describe the network topology in which the controller is executed. Trema is free software for developing OpenFlow controller. It is free software of GPL 2 license which proceed development to open on GitHub. Due to its powerful function and ease of use, it is adopted by a wide range of organizations.
- Tungsten Fabric
VOLTHA is an open source project to create a hardware abstraction for broadband access equipment. It supports the principle of multi-vendor, disaggregated, “any broadband access as a service” for the Central Offic