
There are a multitude of “open” projects aimed at driving innovation in the network, especially in the realm of network virtualization and “software defined” initiatives. I created this cheat sheet to help me keep them organized. I plan to update this document to keep it fresh. The most recent update is March 2018. The previous update was June 2016 (hey, I’ve been busy).
In addition to the table below, I’ve included details on each project, along with resources for more information. Feel free to make suggestions in the comments section for projects I might have missed.
NOTE: This list doesn’t include open source network operating systems (NOSs). You can find a list of open and proprietary NOSs on our Virtual Toolbox page.
Some Comments On ‘Open’
As you can see from the list, the word “open” gets thrown around a lot. In some cases the projects listed below are open source, meaning the code is available under a traditional open source license.
In other cases, the project is ‘open’ in the sense that you can join the project (often for a fee) to access code and contribute to the project’s development.
The Projects
DPDK (Data Plane Development Kit)
Description:
DPDK (Data Plane Development Kit) contains libraries and drivers to accelerate packet processing on general-purpose processors. Originally developed by Intel to boost the packet processing capabilities of x86 chips, DPDK is now an open source project under the auspices of the Linux Foundation.
DPDK has also been extended beyond x86 to work with ARM and IBM POWER CPUs.
The software is available under a BSD license.
Why It’s Relevant:
More and more networking functions (switching, firewalling, load balancing, and so on) are being performed in software that runs on commodity servers rather than in purpose-built appliances beefed up with custom ASICs.
DPDK can be used to accelerate network applications to squeeze more performance from those commodity boxes.
Resources:
DPDK Project Moves To The Linux Foundation – Packet Pushers
Intel Network Autobahn: Maximizing Your Traffic Throughput – Network Field Day (Vimeo)
Free Range Routing
Description:
Free Range Routing (FRR) is an open source IP routing stack for Unix and Linux OSs that includes common routing applications such as BGP, OSPF, and others. FRR is a fork of the Quagga project.
While Quagga is a mature and established code base, the fork occurred for several reasons, including a desire to employ more modern development practices and tools such as continuous integration, the use of GitHub, and faster testing.
Why It’s Relevant:
The disaggregation of network software and hardware has created new opportunities for organizations of all kinds to mix and match various elements of a network stack to optimize the infrastructure for their needs.
FFR fits this trend by providing a routing stack that can run on a variety of platforms while also being developed independently of other hardware and software.
Backers of FFR include Cumulus Networks, Big Switch Networks, 6Wind, LinkedIn, and others.
Resources:
FRRouting – GitHub
PQ Show 112: Free Range Routing At IETF 98 – Packet Pushers
Free Range Routing Project Forks Quagga – Packet Pushers
OpenDaylight
Description:
OpenDaylight is an open-source SDN controller. The project is overseen by the Linux Foundation, and members include Cisco, Brocade, Dell, HP, Arista, and VMware.
OpenDaylight is designed to run in a heterogenous network; the controller can configure switches and other network devices that support OpenFlow. It also supports a variety of other networking protocols, including NetConf, SNMP, BGP, and LACP.
On the northbound side it exposes a set of REST APIs to allow third-party applications to interact with the controller and request network services.
OpenDaylight also includes an API for Neutron, the networking module in OpenStack.
OpenDaylight is currently on its third release, called Lithium. The OpenDaylight Project anticipates that the controller will be used in as many as 20 commercial products. Several network vendors, including Cisco, Brocade, and Extreme, offer commercial implementations of the OpenDaylight controller.
OpenDaylight is available under the Eclipse Public License.
Why It’s Relevant:
As with other open-source efforts, OpenDaylight provides a counterbalance to proprietary software, fosters competition in the marketplace, and gives customers more choice. A robust project such as ODL draws attention from developers to create applications that extend the value of the controller.
Perhaps just as important, when it comes to a new and disruptive idea such as SDN, an open-source controller is a low-cost, low-risk option for organizations to experiment with SDN concepts and technologies.
Resources:
SDN Series Part Six: OpenDaylight, the Most Documented Controller – The New Stack
Show 148 – Talking With OpenDaylight Leadership – Packet Pushers
OpenFlow
Description:
OpenFlow is a protocol for configuring the forwarding plane of network devices. When used in conjunction with a centralized controller, OpenFlow can streamline and automate the configuration of network devices. Originally developed as a research project at Stanford University, OpenFlow is now overseen by the Open Networking Foundation (ONF), a non-profit industry consortium. ONF membership is required to access the protocol and contribute to its development, though it’s not required to use the specification.
Why It’s Relevant:
The creation of the OpenFlow protocol was an essential step in the development of software-defined networking. By defining a standard mechanism for configuring network devices, the protocol enabled both incumbents and startups to begin testing SDN concepts and to build—and ship—actual products.
Resources:
ONF Technical Library – Open Networking Foundation
OpenFlow @ Google – Video presentation by Google’s Urs Hoelzle (and slides)
OpenStack
Description:
OpenStack is an open-source cloud orchestration platform used to build private and public clouds. OpenStack is divided into modules for compute, networking, and both block and object storage. It also includes a management dashboard.
Queens is the most current release of the OpenStack platform as of March 2018. It’s available under an Apache 2.0 license.
Why It’s Relevant:
More enterprises want the flexibility and scale of cloud computing, whether to build a private cloud or a hybrid system that links premises systems and a public provider. At the same time, providers are looking to build public clouds to attract new customers. The OpenStack project targets both markets.
As with OpenDaylight, enterprises can download and experiment with OpenStack without having to make a substantial investment in proprietary software. At the same time, many vendors have released commercial distributions of OpenStack, including HP, Red Hat, Mirantis, Cisco, and IBM, to help organizations that want a more turnkey option and technical support.
Resources:
Learning OpenStack Networking – James Denton
Open Compute Project
Description:
The Open Compute Project (OCP) shares design specs for data center infrastructure, including servers, storage, networking, and data center racks. OCP originally emphasized hardware designs, but the project has expanded to include software. The goals of the project are to promote energy-efficient designs, leverage commodity components, and reduce capital and operating costs for large data centers.
Why It’s Relevant:
OCP was launched by Facebook and attracted a variety of participants, including Microsoft and Intel. However, the designs are tailored to the needs of the world’s largest data center operators and verticals such as financial services, rather than the general enterprise.
That said, the project’s efforts are likely to yield improvements that could make their way to the masses, such as switch designs that might be adopted by white box manufacturers.
Resources:
Open Compute Wiki – Open Compute Project
Facebook Unveils TOR Switch – Network Computing
Open Contrail
Description:
Open Contrail is open source software for creating a virtual network. Juniper Networks, which acquired Contrail Systems in 2012, launched the open source version in 2013. Open Contrail provides SDN and NFV functions and targets both enterprises and service providers.
Open Contrail includes a software controller that configures the virtual network, provides management and analytics, and provides REST-based APIs for third-party applications.
Also included with Open Contrail is vRouter, a virtual router that runs in a hypervisor. The vRouter builds tunnels between virtual machines to provide connectivity. The vRouters communicate with the controller via XMPP.
Open Contrail supports MPLS over GRE/UDP and VXLAN to enable tunnels for a network overlay. It is also integrated with OpenStack.
OpenContrail is available under an Apache 2 license. Juniper also offers a commercial version of Contrail.
Why It’s Relevant:
Juniper has two main goals for providing an open source version of its SDN/NFV software. The first is to get it into the hands of users as quickly and easily as possible. Service providers and enterprise customers that want to get their hands dirty in a test lab can pull down the code and start learning right away. In the hyper-competitive SDN space, that’s a win.
And for those investigating OpenStack, Open Contrail’s integration with the cloud orchestration platform creates an affinity for organizations that are interested in open-source options.
The second is to attract developers and build a community. The more developers you can bring to the product, the more likely the community gets code improvements and new applications. A community of active users provides a multiplier effect that amplifies Juniper’s own development efforts.
On the downside, there are already numerous open source SDN projects in the works, and only so many developers and community members to go around. Juniper needs to make a significant effort to build an active community of contributors and adopters to keep Open Contrail relevant.
Resources:
Open Contrail.org
Juniper Launches Contrail SDN Software, Goes Open Source – Network Computing
Show 243 – Network Virtualization with Juniper QFX & Contrail (Sponsored) – Packet Pushers
Juniper Networks Balancing Engineering Simplicity with Randy Bias (Open Contrail) – Network Field Day (Vimeo)
ONIE (Open Network Install Environment)
Description:
The Open Network Install Environment (ONIE) is a project within Open Compute. According the site’s home page, ONIE “acts as an enhanced boot loader utilizing facilities in a Linux/BusyBox environment.” In other words, it allows a network operating system to be installed on a bare metal switch.
ONIE’s project supporters include Accton, Agema, Big Switch Networks, Broadcom, Cumulus Networks, Dell, Penguin Computing, and Quanta.
Why It’s Relevant:
ONIE enables a key value proposition for white box switching: to allow manufacturers, resellers, and customers to install the switch OS of their choosing.
By decoupling the hardware from the OS, customers have more options to match specific hardware and software needs. Customers also aren’t tied to a single vendor’s release schedule for OS and hardware upgrades and improvements, as they would be on an integrated product.
A decoupled switch OS also lets customers leverage traditional configuration and operations tools to align switch management with server management.
Resources:
ONIE – Open Compute Project Wiki
What Is ONIE? – Ethan Banks
ONOS
Description:
ONOS, or Open Network Operating System, is an open source SDN project aimed at service providers. As with other controller-based systems, it supports OpenFlow (among other protocols) to program network devices, and has APIs to interact with applications. It’s based on a distributed core that can run across multiple instances in a cluster.
ONOS uses an intent-based model for application integration; in other words, applications specify high-level outcomes, but leave the low-level implementation details to the controller and the network.
Originally overseen by the Open Networking Lab (ON.Lab), a non-profit research consortium with ties to Stanford University and UC Berkeley, ONOS became a Collaborative Project at the Linux Foundation as of October 2015.
Why It’s Relevant:
At present, ONOS isn’t directly relevant to the enterprise because of its service provider/cloud provider focus. However, the project is being supported by major players, including AT&T, Huawei, Intel, NEC, and others. The emphasis on open source software and rapid innovation may result in code or features that could find their way to the enterprise market.
This summer at the Open Networking Summit, a proof-of-concept project called CORD (Central Office Re-architected as Data Center) debuted. CORD’s goal is to foster cloud-like agility for service providers through the use of ONOS, OpenStack, and commodity infrastructure such as white-box switches.
ONOS is also bundled in Atrium, a distribution of all-open-source SDN software released by the Open Networking Foundation (ONF). Besides ONOS, Atrium also includes Quagga BGP, and OpenFlow 1.3 device drivers.
Resources:
Introducing ONOS – Whitepaper
ONOS Overview video – ON.Lab
CORD Presentation – Open Networking Summit
OVS (Open vSwitch)
Description:
Open vSwitch is an open source virtual switch that provides forwarding capabilities for virtual machines. It can switch traffic among VMs on a single physical host, and connect VMs to the physical network. Open vSwitch can run on Linux-based hypervisors including KVM and Xen.
It’s available under an Apache 2.0 license.
Why It’s Relevant:
In addition to its networking capabilities in virtual environments, OVS is used in OpenStack, the cloud orchestration platform. More specifically, OVS is a plug-in within Neutron, the networking module within OpenStack. Open vSwitch is also OpenFlow-enabled, so controllers can use the OpenFlow protocol to set flows in OVS.
Resources:
Open vSwitch Under The Hood – Ivan Pepelnjak
Introduction to Open vSwitch – David Mahler
Show 219 – Open vSwitch Obtains Ludicrous Speed – Packet Pushers
Datanauts 009 – The Silo Series: Designing A vSwitch – Packet Pushers
PQ 138: Inside Open vSwitch – Packet Pushers
P4
Description:
P4 is an open-source language, released under an Apache 2.0 license, for programming packet-forwarding devices, such as a Broadcom ASIC, a network server adapter, or a software switch.
A blog by Nick McKeown & Jen Rexford, two of the people instrumental in creating the language, describes P4 this way: “P4 gives us a way to tell the switch what it should do, and how it should process packets. P4 lets us define what headers a switch will recognize (or “parse”), how to match on each header, and what actions we would like the switch to perform on each header.”
Originally developed in conjunction with academics and several large tech companies, P4 is now overseen by the P4 Language Consortium, a non-profit.
Why It’s Relevant:
By creating a low-level language to tell network devices how to process packets, P4 puts more control in the hands of network operators; they can add features and capabilities when they need to, such as support for a new protocol, instead of waiting for a chip manufacturer to burn a set of functions into an ASIC.
And because it creates a common abstraction layer, P4 should, in theory, enable more interoperability among network devices, including ASIC-driven hardware and virtual switches.
Resources:
PQ Show 80: P4 – A Language For Programming Switches – Packet Pushers
Clarifying the differences between P4 and OpenFlow – P4 Consortium blog
Programming Protocol-Independent Packet Processors – Slide presentation by Jennifer Rexford
Why Does the Internet Need a Programmable Forwarding Plane with Nick McKeown – Tech Field Day (Vimeo)
SAI (Switch Abstraction Interface)
Description:
SAI, or the Switch Abstraction Interface, was originally developed by Microsoft in 2014 as an API for programming ASICs. It was later accepted into the Open Compute Project.
Why It’s Relevant:
The disaggregation that has separated the network OS from the underlying CPU is also happening at the ASIC layer. Similar to P4, the goal of SAI is to provide a common interface to program network ASICs.
This programmability gives network operators more control over switch functions, enabling greater customization as well as a standard software layer that can be used across a variety of devices.
As you might imagine, the SAI project aims largely at Web giants, service providers, and telcos that have the use cases and internal resources to customize switch functions all the way down to the ASIC layer.
Resources:
SAI – GitHub
Switch Abstraction Interface (SAI) officially accepted by the Open Compute Project (OCP) – Microsoft Azure Blog
SAI: Releasing the Potential of Switch ASIC – Open Compute Project (YouTube)


How about considering OpenContrail ? http://www.opencontrail.org/
Thanks for the suggestion! It’s on my list for an update (along with Open Network Linux and ONIE).
Great compilation Drew !
I would just add, the ONOS has been designed/planned to have high scalability, high availability from DAY one , especially targeting service providers.
Great post. If you are updating, I’d suggest adding P4 (http://p4.org/), While it IS closely
related to one company (Barefoot), it is sort of the Openflow 2.0, and many ONF members are involved and follow it closely.
Please also take a look at the recently announced OpenSwitch (http://www.openswitch.net)
Hi Diego, I just got briefed on it and I need to do more digging. We’re actually tracking Network OSs in our Virtual Toolbox: https://packetpushers.net/virtual-toolbox/list-network-operating-systems/
What’s your take on OpenSwitch?
This is a great list, thanks for tracking it and providing jump off places for more info!
Thanks! Great cheat-sheet. One question. Does ONOS or ODL supports creating VNs for NFVs just like open-contrail?
Thanks for the summary Drew.
Would OPNFV have a spot on the table?