Menu

ESnet SmartNIC

Hardware designs for supporting the building of network applications on FPGAs

The availability of commercial, off-the-shelf programmable hardware, in particular Field Programmable Gate Arrays and SmartNICs, has opened up exciting possibilities for implementing network applications. FPGAs combine the speed of hardware-based packet processing with the programmability and flexibility usually associated with software systems. A SmartNIC, meanwhile, is an advanced network interface card with its own processor and memory that can handle complex processing tasks offloaded from the server's main CPU, such as network, storage, and security functions. 

ESnet’s custom SmartNIC layer provides a set of hardware designs and software support designed to support building network applications on AMD (Xilinx) Alveo FPGA accelerator cards. It includes support for on-board network ports, the PCIe host interface, interfaces to various memories on the card, and a simple programmable switch for routing packets between the different logic blocks in the FPGA. Through the use of Vitis Networking P4, there is also support for P4 processing blocks that handle functions such as packet transmit / receive, header parsing, and packet manipulation. The ESnet SmartNIC platform currently supports the AMD (Xilinx) Alveo U280 and U55C accelerator cards.

ESnet SmartNIC is the foundation for two network applications developed at ESnet. The first is High-Touch, which provides high-fidelity network telemetry and measurement on flows and packets. The second is EJFAT, a system for streaming scientific measurement data from data acquisition systems to high-performance compute systems in real time. Both of these applications are under active development and used within ESnet’s wide-area network backbone. ESnet SmartNIC has also been used in the research and education (R&E) networking community for various experiments and applications.

ESnet SmartNIC has been released as open-source software under a Berkeley Lab variant of the BSD software license. Its source code is available in several repositories on GitHub. The main repository is shown below. Its documentation (README.md file) contains information on other GitHub repositories that must also be downloaded or cloned in order to build the complete system: https://github.com/esnet/esnet-smartnic-hw

The developers of ESnet SmartNIC can be reached by email at smartnic@es.net. Please note: The ESnet SmartNIC platform is provided “as-is”; there is no dedicated support.