In a move designed to seed a new ecosystem around its line of NPS line of network processor units (NPU), including its 400 Gbps NPS-400 model, Mellanox Technologies on Wednesday announced its launch of an open source initiative, and the release of an SDK, called OpenNPU. After wallowing in the shallow end of open source development for the past two years with the Open Compute Project, now the company seems ready to dive deeper.
The NPS series is already programmable using the classic C language, and features a built-in Linux operating system. Mellanox has been pushing NPS as a platform for network functions virtualization (NFV) — for virtualizing the class of functions required to run applications and customer services on networks themselves.
“The market for networking devices is undergoing an immense paradigm shift,” reads a statement published Wednesday on the project’s new, independent Web site, opennpu.org, “from closed proprietary equipment supplied by OEM manufacturers, to open whitebox/brite-box systems that end users can customize and configure at will according to their needs. Mellanox recognizes this trend and has decided to open-source the entire SW [software] SDK of its NPS family of network processors in order to facilitate innovation within the open source SW community.”
The company followed up that statement with a laundry list of the functionality it would like to see open source developers contribute to its chip. At the top of that list is a “high-performance Layer 2/3 data path” allowing the Linux kernel to be accelerated using the open source SwitchDev interface. A Linux kernel is necessary in a programmable ASIC (which is what the NPS series is), in order for switching applications to become bootable.
ASIC vendors, such as Mellanox, would need to be able to provide drivers for interoperating with the on-chip kernel. But to make certain that applications are always using the correct drivers, open source engineers suggest that vendors contribute their drivers upstream to the broader community.
Put another way, Mellanox needs to interface with the open source community with more than just a pledge of support. It needs to put up code that developers and engineers can put to use. Producing an SDK for NPS series may be one giant step in that direction.
Mellanox may have needed to take an aggressive step quickly to stay competitive in this emerging space. In October 2015, it acquired the NPS-400 chip by way of a merger with EZchip Semiconductor, in a move that some investors actively opposed at the time. One of EZchip’s major stakeholders complained that the merging parties were being too friendly with one another, and refusing to open up the acquisition process to competitive bidding.
Just prior to the merger, EZchip produced a product brief [PDF] outlining the prospects for NPS series in network appliances. NPS would provide all the programmability one gets from SDN — the separation of the control plane from the data plane, and a development environment that’s based on Eclipse, which Java developers prefer — in a fast hardware appliance.
“To achieve the performance requirements for data plane applications,” EZchip explained, “EZchip’s optimized Linux kernel provides deterministic performance for data plane applications on par with a bare metal application, while enjoying the benefits of a standard OS support.”
One of the major complaints that telcos and other high-volume networking users have had against typical SDN systems is that they provide non-deterministic performance — that because they operate in x86 boxes with CPUs with variable levels of cache, running some such flavor of Linux, there’s no way for them to provide the synchronicity and determinism that a large-scale NFV user would require. NPS-400 would endeavor to solve that problem, ironically but effectively achieving SDN in hardware.
But it needs the support and the community that SDN projects related to NFV, such as ONOS and OpenDaylight, currently enjoy. So Mellanox is making this critical move now. In addition to its new .org Web site, Mellanox has opened a project page for a related effort — its ALVS accelerated software load balancer — on GitHub.