We are excited to announce that Cumulus is joining project DENT!
Project DENT is a huge step for the industry, taking both open networking and Linux networking forward. DENT will help grow the community of open Linux networking vendors and partners, and Cumulus Networks is pleased to be part of this project that aligns with our core values and strengths. We strongly believe in mass innovation with open Linux software, platforms and the Linux community.
Linux ecosystem players have historically benefited from mass innovation. By bringing together vendors, distributors, system integrators and users, DENT enables distributed development and support for open Linux networking operating system for campus and remote networking. We believe this will enable networking hardware vendors to leverage the same benefits that all Linux hardware technologies do today: Open Linux firmware management, platform driver infrastructure, network interface management and Linux tools and ecosystem.
The Cumulus Linux connection
Cumulus Linux is based on the same foundational principles as project DENT with the goal of unifying Networking across distributed systems. This unification comes from its native Linux platform and networking API. Today’s technologies powering hybrid cloud and on-prem infrastructure are distributed systems technologies. Networking is fundamental to distributed systems. Uniformity makes distributed systems and infrastructure simpler, easier to manage and operationalize. Operating systems are fundamental to the systems that make up your infrastructure. Given most of your infrastructure runs Linux and is built on Linux API and ecosystem, your network operating system should be no different. It’s time to not treat your Network Operating System differently, it’s a piece in the modern distributed systems architecture. Like Cumulus Linux, DENT uses Linux kernel and other Linux software to make a viable Open Linux Network Operating system.
It all starts with switchdev
Let’s talk about the foundational piece of DENT which is Linux kernel networking and switchdev:
Linux kernel networking has supported ‘hardware offload’ or ‘hardware acceleration’ for decades. ‘Hardware offload’ or ‘Hardware acceleration’ is accelerating kernel functions with hardware for performance. For example, basic bridging function is available in most NIC hardware today. The Linux kernel supports bridging function in software but is also capable of offloading it to hardware if the hardware driver is capable of it and the driver requests the offload. The power of this hardware offload or hardware acceleration model is that when hardware is not available things continue to work in software with kernel doing the work in software making virtualization possible on day-1. All hardware natively supported on Linux benefits from this today.
Switchdev is the name of the Linux kernel project that supports switch ASIC drivers in the Linux kernel. The in-kernel API to support hardware offload to switch ASIC drivers started with the name switchdev but soon it became apparent that many existing in-kernel networking APIs could be used. Though the project goes by the name switchdev, the effort to support switchdev is not limited to the switchdev API’s or hardware offload. Over the years, like many other subsystems in the Linux kernel, switchdev efforts are being leveraged in other use cases and hardware and vice versa. Switchdev evolution has also seeing the unification of in-kernel API across all networking hardware. Note that we are all still talking about in-kernel API for switch ASIC drivers and hardware: The user, control plane API remains the same Linux networking API that is uniform across all systems deploying/using Linux networking.
A look back at the history of switchdev
Almost seven years ago when some of us at Cumulus Networks were working on supporting the Linux kernel Networking API for switch ASIC hardware, it was natural for us to see a future with in-kernel switch ASIC drivers where switch ASIC hardware leveraged the same benefits that other hardware benefits from the Linux kernel and ecosystem. We went forward and sowed the seed to get vendors and distributions thinking of switch ASIC in-kernel drivers. This effort subsequently became the swichdev project and Mellanox was the first vendor to take this forward with a first in-kernel switch ASIC driver. To make switchdev or Linux kernel hardware offload model for switch ASICs successful, we at Cumulus Networks have been contributing features to the Linux kernel network stack in the areas of VRF, bridging, VxLAN, EVPN, ip multicast and others. We have also been evangelizing switch ASIC hardware support with BOFs and workshops (I described this journey a few years back).
Why does all this matter?
Remember the networking control plane or Linux networking app that you built for some Linux distribution or hypervisor or container OS? Just like how we said it was Cumulus Linux ready, it is also already DENT ready! That’s the power of building software with a fundamental Operating Systems API like Linux. Applications, monitoring and control plane software does not have to change for a hardware and ecosystem. Propagating the Linux model to all networking in your infrastructure also makes monitoring, automation and end-to-end troubleshooting simpler. Vast mature Linux ecosystem and community become available to you and your hardware!
To learn more about Cumulus Networks and how we’ve contributed to the Linux kernel, check out this article on Cumulus Networks and our open source philosophy.