Packet Pushers

Where Too Much Technology Would Be Barely Enough

  • Podcasts
    • Heavy Networking
    • Day Two Cloud
    • Network Break
    • Heavy Strategy
    • Briefings In Brief + Tech Bytes
    • Full Stack Journey
    • IPv6 Buzz
    • Community
    • Your Podcast Hosts
    • Packet Pushers On Spotify
    • Priority Queue (Retired)
    • Datanauts (Retired)
  • Articles
    • Tech Blogs
    • Industry News
    • SD-WAN Vendor List
    • Toolbox – IT Resource Collections
  • Newsletter
  • Slack
  • Subscribe
  • Sponsor
You are here: Home / Blogs / The Open Networking Cheat Sheet

The Open Networking Cheat Sheet

Drew Conry-Murray September 21, 2015

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

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

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

2015 OpenDaylight Summit

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:

OpenStack.org

OpenStack Wiki

OpenStack Marketplace

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

Open Compute Summit

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:

ONOS.org

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)

About Drew Conry-Murray

Drew Conry-Murray has been writing about information technology for more than 15 years, with an emphasis on networking, security, and cloud. He's co-host of The Network Break podcast and a Tech Field Day delegate. He loves real tea and virtual donuts, and is delighted that his job lets him talk with so many smart, passionate people. He writes novels in his spare time. Follow him on Twitter @Drew_CM or reach out at [email protected]

Comments

  1. Numan says

    September 22, 2015 at 1:20 pm

    How about considering OpenContrail ? http://www.opencontrail.org/

    • Drew Conry-Murray says

      September 22, 2015 at 8:07 pm

      Thanks for the suggestion! It’s on my list for an update (along with Open Network Linux and ONIE).

  2. Faisal says

    September 22, 2015 at 5:15 pm

    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.

  3. Michael Orr says

    September 24, 2015 at 8:27 pm

    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.

  4. Diego Dompe says

    October 7, 2015 at 7:45 am

    Please also take a look at the recently announced OpenSwitch (http://www.openswitch.net)

    • Drew Conry-Murray says

      October 7, 2015 at 7:54 pm

      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?

  5. David Mahler says

    December 14, 2015 at 8:06 pm

    This is a great list, thanks for tracking it and providing jump off places for more info!

  6. Muhammad Assad says

    April 28, 2018 at 5:17 pm

    Thanks! Great cheat-sheet. One question. Does ONOS or ODL supports creating VNs for NFVs just like open-contrail?

  7. networkss says

    June 17, 2018 at 12:41 am

    Thanks for the summary Drew.

    Would OPNFV have a spot on the table?

  • Email
  • Facebook
  • LinkedIn
  • RSS
  • Twitter
  • YouTube

RSS Heavy Networking

  • Heavy Networking 574: Get HIP With Zero Trust And Tempered Networks (Sponsored) April 23, 2021

RSS YouTube

  • Why Use OpenShift To Deliver Kubernetes? (Stu Miniman) April 29, 2021

RSS Day Two Cloud

  • Day Two Cloud 095: Grappling With The Open Source Business Model April 28, 2021

RSS Network Break

  • Network Break 330: VMware Stitches Together A SASE Offering; Nvidia’s Arm Purchase On Hold April 26, 2021

RSS Briefings In Brief

  • Tech Bytes: Rethinking Network Automation Using Nokia Fabric Services System (Sponsored) April 26, 2021

RSS IPv6 Buzz

  • IPv6 Buzz 074: IPv6 And Public VPN Services April 22, 2021

RSS Full Stack Journey

  • Full Stack Journey 053: Exploring Developer Advocacy And Developer Relations April 20, 2021

RSS The Community Show

  • Network Neighborhood 04: We The Sales Engineers With Ramzi Marjaba November 21, 2019

Recent Comments

  • Rudolpho on Network Break 330: VMware Stitches Together A SASE Offering; Nvidia’s Arm Purchase On Hold
  • Ethan Banks on Heavy Networking 573: Using Application Dictionaries For Better Security Policy Management
  • Cory C. on Heavy Networking 573: Using Application Dictionaries For Better Security Policy Management
  • User on Heavy Networking 445: An Introduction To The Nornir Automation Framework
  • Steven Sanchez on Is It Illegal To Be Called “Engineer” Without Having An Engineering Degree?
  • Pedant Maximus on Network Break 327: Cisco Embraces As-A-Service Procurement; Will Amazon Make Its Own ASICs?

PacketPushers Podcast

  • Heavy Networking
  • Day Two Cloud
  • Network Break
  • Briefings In Brief & Tech Bytes
  • Full Stack Journey
  • IPv6 Buzz
  • Community Podcast
  • Heavy Strategy
  • Priority Queue (Retired)
  • Datanauts (Retired)

PacketPushers Articles

  • All the News & Blogs
  • Only the Latest News
  • Only the Community Blogs
  • Virtual Toolbox

Search

Website Information

  • Frequently Asked Questions
  • Subscribe
  • Sponsorship
  • How To Pitch Us
  • Meet the Hosts
  • Terms & Conditions
  • Privacy Policy

Connect

  • Contact The Packet Pushers
  • Join Our Slack Group
  • Subscribe To Podcasts
  • Subscribe To Newsletter
  • Become A Sponsor
  • Facebook
  • LinkedIn
  • RSS
  • Twitter
  • YouTube

© Copyright 2021 Packet Pushers Interactive, LLC · All Rights Reserved