Abstract
An IPU (IO processing unit) is a smart NIC with on-board processors that can run software. An IPU device presents many new opportunities combining the flexibility of software in the network path. An exciting opportunity for IPUs is NVMe Emulation, in which the host is presented with an NVMe PCIe device, while the implementation of the device logic is done in software on the IPU's processors.NVMe emulation has many interesting use cases: bare-metal and virtual cloud providers; storage systems with proprietary protocols; full control, security and isolation over storage services; added features like compression and encryption over the standard NVMe interface; and more. The presentation will show NVMe emulation APIs for such IPUs, the use of SPDK as a standard framework for development, and offload possibilities.