Portability
Several years ago, under a partnership that eventually resulted in their acquisition by Xilinx, Solarflare began developing a fully portable SoftNIC architecture written in P4. A SoftNIC is one in which all the core NIC functions are expressed entirely as code, making the NIC easily portable between FPGA hardware platforms. The SoftNIC leverages standard hardware blocks like the Direct Memory Access (DMA) engine to talk with the host CPU, and the Media Access Control (MAC) block for Ethernet communications. These can be chip geometry specific. Also, it's often best to have the encryption block in hardware as well. Ultimately, bugs and feature additions to a SoftNIC do not require creating a new chip; customers just need to install the new bits.
The various vital components that make up the SN1000 portable NIC architecture are interfaces to the DMA engine, encryption, MAC blocks, a virtualized NIC (VNIC), and the Match Action Engine (MAE). The VNIC is how traditional OS device drivers view the NIC; it also handles checksum offloads and packet steering. The MAE in both the receive and transmit pipelines is where virtual networking requests are processed. Here Open vSwitch (OvS) functions are handled to manage traffic for virtual machines and containers running on the host. The MAE can significantly offload the host CPU from processing OS or hypervisor networking calls, sometimes returning as much as 30% of the host's CPU cycles for CSP workloads. The MAE is designed to easily interface with tc-flower and the DPDK generic flow API (rte_flow) for handling these functions. The plugin entry points, VNICs, MAEs, and NET engines are all written in software and compiled into gates. This is what Xilinx means by software-defined and hardware-accelerated.
Xilinx will be making several optional plugin modules available with the release of the SN1000 SmartNIC, and additional modules will follow in the coming months. With the SN1000, Xilinx has demonstrated the first completely composable and totally portable SmartNIC, a significant innovation in one of the most competitive sectors of our industry.