When you buy a server, you don’t worry whether or not Windows will run on the server. You know it will. That’s because the server industry has a comprehensive solution to a hard problem: rapid, standard integration between the OS and underlying open hardware. They’ve made it ubiquitous and totally transparent to you.
This is not the case for embedded systems, where you have to check whether an OS works on a particular hardware platform, and oftentimes you find out that it’s not supported yet. Bare metal switches are a good example of this.
It’s time to change that. We need the same transparent model on switches that we have on servers.
To make open networking ubiquitous — and to give customers choice among a wide variety of designs, port configurations and manufacturers — the integration between the networking OS and bare metal networking hardware must be standardized, fast, and easy to validate. We need open hardware.
The Starting Point
Today, a bare-metal networking hardware vendor supplies their hardware spec to the NOS (network OS) provider. The NOS team reads the spec, interprets it and writes drivers/scripts to manage the device components (sensors, LEDs, fans and so forth). Then they build the control logic and map the resources. Unfortunately, the hardware spec is never 100% accurate. So there is a lot of back-and-forth between the two organizations. The end result? It takes weeks or even months to integrate.
Now there is a better way.
It is time to change the industry status quo. Cumulus Network is defining a better way — not just for us and our bare metal partners but for the industry overall. We contributed ONIE (Open Network Install Environment) to the open networking industry to provide choice and simplify the NOS loading process. Now we’re taking an industry-standard framework and extending it to simplify NOS integration. Our goal is clear and laser-focused: we’re unleashing the power of open networking not just with our own products and services, but for the industry at large.
The standard we use is ACPI (Advanced Configuration & Power Interface), which is widely used in the server/desktop/laptop industry. There is no need to reinvent the wheel; we are just extending ACPI to open networking platforms. This new framework is called APD — ACPI Platform Description.
APD allows hardware vendors to describe their hardware platforms to the OS in a standard, machine-readable language. The OS processes this information and uses generic drivers to control the platform-specific hardware components like fans, CPLDs, LEDs, and sensors. Hardware vendors know their platforms the best, so we provide a special OS image to help them validate the accuracy and completeness of their description; they can quickly get this ready, and it’s 100% accurate.
The result: time-to-market is reduced from months to days.
Now a particular open hardware platform can be designed and built in whatever way the designer prefers, but as long as it’s described per the APD spec, it can quickly integrate with an APD-aware NOS like Cumulus Linux.
Cumulus Networks will contribute the spec to the Open Compute Project (OCP), and we’ll also contribute documentation and generic APD drivers to the Linux kernel so that every NOS vendor can take advantage of this. We’ll use this to accelerate additions to the Cumulus Linux hardware compatibility list.
What’s the ultimate goal? Every NOS can be installed on every piece of bare metal open networking hardware, and…
It just runs!