The Problem: In the early 2000s, commercial Network Operating Systems (NOS) were limited and not very extensible. Options like Level 7 (later acquired by Broadcom) and Tornado for Managed Switches by VxWorks offered proprietary user interfaces with Cisco-like CLIs but lacked flexibility for customers to build additional functionalities on top of their switch management applications. Our team at Bluedot Insights, then working at an embedded networking company, faced the challenge of creating a versatile NOS for Broadcom XGS silicon while also incorporating support for newer switching silicon from vendors like Intel and Switchcore. The goal was to develop a solution that was both extensible and familiar to users, reducing the learning curve and enhancing usability.
The Insight: The breakthrough came with the creation of a Hardware Abstraction Layer (HAL), which is essentially the precursor to what is known today as the Switch Abstraction Interface (SAI) in open-source NOS.
This HAL allowed the system to be agnostic to the underlying switch silicon, providing flexibility and ease of integration with different hardware. Another significant insight was leveraging the Linux Networking Environment to manage L2 and L3 tables directly in the silicon. By building the switch management into the Linux distribution itself, we created a seamless experience where customers felt they were managing a Linux box with integrated switch interfaces and hardware accelerators. This approach allowed customers to add new functionality within a familiar Linux environment, shadowing updates directly into the line-rate silicon.
The Implementation: Our company at the time sold hardware to the Telecommunication, Aerospace, and Military markets, where the Ethernet switches were embedded in larger systems. The software platform we developed needed to be extensible, allowing customers to add value on top of the NOS’s standard features. By embedding the NOS within the Linux distribution, we provided a complete Linux experience, making it easier for customers to develop and manage the switches.
Unlike competing NOS solutions that required users to switch between a Linux command prompt and a proprietary management application, our solution integrated the switch management directly into the Linux environment.
We utilized the Linux kernel’s routing capabilities, creating daemons to push routing changes into the silicon via the driver. This meant that any application making route updates in the Linux kernel would benefit from hardware acceleration, offloading work to the switch silicon. Additionally, Linux utilities like iptables and tc were mapped into the switch silicon, allowing customers to build custom functionalities and choose their preferred routing stack. This approach not only met our design goals but also provided a well-understood environment for configuring the switches.
The HAL innovation further enhanced the NOS by enabling silicon independence. This abstraction allowed deployment across various form factors with minimal testing and automation burden. Customers enjoyed a consistent user interface across different generations of products, reducing the need for extensive testing and qualification. Our solution ultimately offered a scalable, flexible, and user-friendly NOS that met the diverse needs of our customers in the Communication Service Provider market.