OpenNPU is made available under either GPL or BSD license to enable developers to explore, research, and innovate with true programmable packet processing at 600 million packets per seconds. The OpenNPU SDK addresses the need for open source software aimed at the increasing number of open networking platforms proliferating the market today.
"The market for networking devices is undergoing a major paradigm shift, moving away from closed proprietary OEM network equipment and migrating towards open platforms that are both flexible and configurable", stated Dror Goldenberg, vice president software architecture, Mellanox Technologies. "We are in full support of this movement as evidenced by our initiative to open source the entire suite of Mellanox software for our NPS family of network processors."
"Making an open source SDK available for the NPS-400 is a natural evolution of the Mellanox NPU offering", stated Bob Wheeler, principal analyst at The Linley Group. "With its support for GNU-based tools and Linux, the NPS architecture makes programming an NPU easier and more accessible than any prior merchant product."
OpenNPU is part of a community-wide effort to explore and redefine the boundaries and capabilities of high speed network processors. As such, OpenNPU is open to individual contributors, academic and research institutions as well commercial organisations wishing to participate. The goal of the OpenNPU is to engage with the community to provide an environment for rapid prototyping and innovation. The OpenNPU development environment is ideal for experts in high speed line rate data plane programming, Linux kernel networking stacks, DPDK, deep packet inspection, and other advanced networking applications.
In addition, Mellanox is launching a university partnership programme aimed at fostering the development of open source APIs and enabling a multi-vendor ecosystem aimed at dramatically accelerating software-defined networking. As part of this programme, Mellanox will provide NPS equipment and technical support to participating universities for the development of advanced technology projects. Terms and scope of each project are to be mutually agreed upon by Mellanox and the prospective university.
NPS is a family of high-end network processors capable of very sophisticated packet processing functions and is programmable in C in the Linux environment. The NPS is capable of performing L2-7 packet processing and is well-tuned for router-type functions as well as more sophisticated functions like deep packet processing for intrusion protection/detection systems (IPS/IDS), application recognition, firewalling and cyber-attack prevention, and distributed denial of service (DDOS) mitigation.
OpenNPU is a complete SDK for the NPS-400 packet processor, including open source driver software, APIs, control and data path libraries, and complete toolchain to program the NPS-400 network processor. In addition, the kit also provides reference applications for switching, routing and IPSec processing. The Accelerated Linux Virtual server (LVS) is provided as an example of how the OpenNPU can be used to provide significant hardware acceleration to the Linux kernel networking stack.