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
- 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.
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
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.
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.
- 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.
- 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.
- 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