Skip to main content

Open Networking for Network Switches – How the Open-Source Dent Project Levels the Playing Field

By September 27, 2021Blog, Community News

Originally published to dzone.com

The promise of an open-source networking operating system (NOS) is enticing. Compared to legacy networking (Cisco, Arista, Juniper) which is proprietary, expensive, and complex to operate, the open networking model is disaggregated, easy to automate, and provides major cost reductions. 

An open-source NOS could give segments like data centers, retail, remote offices, and campuses an alternative solution that has significantly reduced the cost of goods and services (COGS), reduced integration time, wide access to hardware, and provides support with existing Linux toolchains, using, for example, the Ethernet switch device driver model Switchdev as infrastructure with value add apps on top.

Under the Linux Foundation, the DENT Project utilizes the Linux kernel, Switchdev, and other Linux-based projects as the basis for a solution without abstractions and overhead. DENT unifies and grows the community of silicon vendors, Original Design Manufacturers (ODM), System Integrators (SI), Original Equipment Manufacturers (OEM), and end-users to create an ecosystem of contributors around a full-featured NOS.

I talked with Roopa Prabhu, an engineering leader and architect at NVIDIA, to find out more. NVIDIA is a founding member of DENT.

Prabhu and her team work on all things Linux kernel networking and Linux system infrastructure. Her primary focus areas in the Linux kernel are Linux bridge, Netlink, Routing, VxLAN, Lightweight tunnels, and  E-VPN data plane. 

She is involved in several Open networking communities – Linux kernel networking, Open Compute Foundation, netdevconf, and the DENT project. Her past experience includes Linux clusters, High-Performance Computing, ethernet NIC drivers, and Linux KVM virtualization platforms. She has a BS and MS in Computer Science.

What is NVIDIA’s role at DENT?

NVIDIA Networking has a decade of experience in developing Open disaggregated network systems. We were at the forefront of the Open networking revolution when it started. Having had the maturity in this space, our role in DENT is to provide strategic guidance on architecture, reviews, engaging, and developing for the Linux kernel and ecosystem. 

We are contributors and maintainers for various Linux ecosystem components that make the DENT stack – including FRR (free-range routing suite), Linux kernel switchdev, Linux networking subsystems like vrf, bridge, vxlan.

What benefits does NVIDIA get from joining DENT?

NVIDIA believes in choice for its customers. DENT gives NVIDIA an opportunity to proliferate and design and build NVIDIA hardware for the distributed disaggregated space. It also gives us an opportunity to design and develop systems with our partners and customers. We believe this strengthens our value proposition as a player in the open disaggregated networking space.

How do NVIDIA customers benefit from DENT technologies being used in the NVIDIA Linux Switch product?

NVIDIA networking customers get the choice of an Open indepenDENT operating system on NVIDIA networking hardware. DENT provides an Open ecosystem and collaborative development environment for our customers. It gives our customers visibility and participation in design, architecture, testing, and the full development lifecycle of their open network operating system stack on NVIDIA networking hardware.

What can we expect to see from DENT in the next year?

DENT ecosystem, features, and partners will evolve over time. I think we will see more features, more contributions, and more hardware vendors. 

What is the biggest problem that DENT needs to solve in the next 5 years?

Getting more operators, HW vendors, and users on board will be key to DENTs success in the next few years. 

Is DENT ready for mainstream deployment? Where do you recommend people deploy DENT?

Yes, DENT is ready for mainstream deployment. Though DENT’s initial feature set has been for the distributed edge, DENT architecture is capable of enabling more platforms and use-cases. 

What are the benefits of open API and standardized open-source components for the network manager evaluating their options versus proprietary solutions?

Open solutions provide transparency, flexibility, and control. Open communities and Open ecosystems provide faster innovation and a shared resource pool which is an economic incentive. Open ecosystems and projects like DENT also provide adopters with a path to influence the design/architecture and development of software they intend to deploy and maintain. 

This sense of control and participation is very powerful when compared to proprietary solutions.

Multi-vendor hardware with the same software stack is also a huge incentive. It enables uniformity in operations without single vendor lock-in.

Can you summarize some of NVIDIA’s contributions to the DENT community?

NVIDIA networking was the first company to enable switch ASIC support (switchdev) in the Linux kernel along with their hardware driver which enables DENT on NVIDIA switches. Since then, NVIDIA has worked with the kernel community to evolve and revise the switchdev API and infrastructure. 

Along the way assisting other hardware vendors to get on board with switchdev with reviews and feedback. NVIDIA Networking has and continues to contribute many networking features in the areas of routing/bridging/vxLAN/VRFs/Mpls to enable native HW accelerated Linux kernel networking on datacenter and edge switches and routers.

For people wondering how to work with the Linux kernel community, do you have advice on communication with people, submitting features, and generally effective techniques to make contributions?

Patience and working through feedback are critical areas to work on when working on kernel submissions. The additional scrutiny is justifiable as the kernel is the most important component of your operating system stack. Effective submissions are always clear cover letters, clear commit-msg. Looking at old email archives to see what works for a particular subsystem always helps. Git logs on a particular subsystem you are submitting to help get a feel of what has worked in the past. CC the right folks you want to call attention to.

A positive attitude on learning from feedback always works and you will get better with time.

Do you feel that there are any differences between how a large company like NVIDIA can work with open source versus a small startup?  

The best thing about open source is it levels the playing field for everyone. All participating members benefit. Of course, big companies might have more resources to maintain and engage in open-source communities, but small companies bring focused interest and agility. Diversity fuels open-source communities and all members big or small involved benefit from it. 

A shared resource pool works economically in favor of all participants. 

Do you have any advice for female developers that want to make solid contributions to the Linux kernel? Are people generally friendly and polite about newcomers making contributions?

Linux kernel community has helped me in many ways in my personal growth. Even today, I think many things I learn are from the kernel mailing lists. I don’t expect nor look for friendliness on mailing lists. Mailing lists are the place for reviews and technical discussions. As long as you have an appetite for constructive feedback, kernel mailing lists are a great place for learning and growing. 

For any new female developers wanting to learn Linux kernel development, the best thing to start with is lurking on mailing lists. It’s a good learning experience to get started. It has helped me. Organizations like Outreachy are doing a great deal to help female developers get on board in open source communities. 

Start slow and be patient. It is very rewarding.

How can a hardware vendor get started with assessing DENT?

There are many ways to get started. Get familiar with the DENT software architecture so that you know what the hardware-software integration points are. Reach out to the DENT community, join weekly calls, join the mailing list, collaborate with other vendors. Since DENT is based on Linux kernel switchdev, learning about Linux kernel support for switch ASICs helps. 

There are a lot of open-source technical conference presentations on the subject. The best part of integrating hardware in an existing open-source operating system and ecosystem are the things you can leverage and borrow from existing open work. 

If you could add one enhancement to the Linux networking stack, what would it be?

Linux networking API is constantly evolving with newer features and API, but it takes a really long time for network infrastructure applications to catch up. Plus, there are separate APIs or channels for each networking subsystem in some cases (eg., ethtool, devlink, rtnetlink). The kernel community has been doing great work in unifying all networking API under Netlink and also a lot of effort goes into extending user-space utilities like iproute2 with code to enable new API and example code. 

Having been through some experience with network operations and network infrastructure code, what is missing is a library that can unify all networking APIs and is developed at the pace of networking features being added to the kernel. I have spent time on extending libraries like this for my own company and have seen everyone doing the same. Having such libraries come out of the kernel development community or as part of kernel releases will be a great thing for faster adoption I think. This is already happening in some areas like the eBPF libraries for faster eBPF adoption, and it’s a good trend. 

The other thing I would like to see is unification in the kernel and hardware network programmability APIs. Linux networking has had great success with hardware acceleration support, and I hope it continues to have this along with kernel networks programmability technologies like eBPF and XDP.