Cumulus Networks has always strived to provide our customers with choice. And now, Cumulus Linux 3.0 has been refactored to make the user experience fun and easy … and at the same time bring you, even more choice:

  • In hardware platforms, from a variety of manufacturers.
  • In CPU architectures — x86 and ARM.
  • In Broadcom networking chips for a variety of use cases — 1G, 10G, 10GBase-T, 40G and 100G switches with Helix4, Hurricane2, Trident-II, Trident-II+ or Tomahawk chips inside.
  • And now, for the first time, choice in silicon vendors with the introduction of Cumulus Linux-powered 40G and 100G switches with Mellanox Spectrum chips inside.

Shrijeet Mukherjee (our fearless engineering leader) kicked off the Cumulus Linux 3.0 development cycle with this as our main goal — to offer even more choice to our customers. And then this happened…



So we took on the challenge of unifying the user experience across this sweeping range of hardware platforms and switch silicon without muting the unique prowess and feature richness of any of them.

How did we do this? By deploying the three dragons in our arsenal: ONIE, switchd and the Linux kernel itself (which is now better fed by a healthy refactoring of our networking applications).

Installing with ONIE

In the networking industry, ONIE has become the de facto standard for the network OS install environment. Regardless of which platform and silicon choices you make, the install experience is exactly the same with Cumulus Linux. ONIE can install Cumulus Linux for you via automation without any user intervention. And if you feel like being hands on, it’s a single command away: onie-nos-install.

And just like that, Cumulus Linux runs on all our supported hardware platforms.

Hardware Acceleration

Enter fire breather number two, switchd — which presented perhaps the most interesting challenge in adding new chips to our portfolio. We were challenged on two fronts: how switchd could forward traffic via the new silicon and how it could handle different vendors’ SDKs.

  • Traffic forwarding capabilities: Our goal had been set — map the hardware capabilities into something that the user can consume easily. DO NOT drop everything down to the lowest common denominator.

To do this, we used switchd to read the capabilities directly from the chip and bootstrap hardware acceleration by laying out the capabilities as profiles that could be picked based on the topology and traffic configuration.

  • New silicon vendor = New SDK: I’d be lying if I said that this was a piece of cake. It wasn’t. But Cumulus Networks co-founder Nolan Leake had always intended for switchd to be capable of handling multiple back ends, and had designed and coded for that. Tuyen Quoc (a software developer here) accomplished this mean feat by staying true to Nolan’s style.

Configuration, Monitoring and the Linux Kernel

Everything we do is centered around and grounded by the Linux kernel. And that has made system configuration and networking configuration largely silicon agnostic.

  • Configuring ports and L2 networking applications is done via our beloved ifupdown2 — most of the new code is upstream into Debian itself — and available for wider deployment and bleeding edge development by the Linux community.
  • L3 configuration is accomplished using the Cumulus Networks supercharged version of Quagga.
  • Network monitoring is possible via many Linux tools — iproute2, bridge-utils, ethtool, dmidecode, netshow and more.
  • Cumulus Linux 3.0 also moves forward to Linux kernel 4.1, which brings VRF and many other new features.

With Cumulus Linux 3.0, each networking application (like clagd, mstpd, ptmd and quagga, which feed their data directly into the kernel) now lives on its own. This was done to improve application agility — develop faster, upgrade easily. The refactoring also had a fortunate side effect of removing all hardware/silicon dependencies.

Now our L2 and L3 applications are packaged individually and usable on x86 and ARM CPUs and on any platform.



Cumulus Linux 3.0 is the culmination of taking a complex set of goals and simplifying the implementation without losing any of the inherent sophistication.

Try out Cumulus Linux 3.0 on the platform of your choice and see for yourself. Let us know how we did by commenting below or talking about it with the community.