Autonomous NIC Offloads

Boris Pismenny, Haggai Eran, Aviad Yehezkel, Liran Liss, Adam Morrison, Dan Tsafrir

Published in ASPLOS '21: ACM International Conference on Architectural Support for Languages and Operating Systems, 2021

[paper]

CPUs routinely offload to NICs network-related processing tasks like packet segmentation and checksum. NIC offloads are advanta- geous because they free valuable CPU cycles. But their applicability is typically limited to layer≤4 protocols (TCP and lower), and they are inapplicable to layer-5 protocols (L5Ps) that are built on top of TCP. This limitation is caused by a misfeature we call “offload de- pendence,” which dictates that L5P offloading additionally requires offloading the underlying layer≤4 protocols and related functional- ity: TCP, IP, firewall, etc. The dependence of L5P offloading hinders innovation, because it implies hard-wiring the complicated, ever- changing implementation of the lower-level protocols

We propose “autonomous NIC offloads,” which eliminate offload dependence. Autonomous offloads provide a lightweight software- device architecture that accelerates L5Ps without having to migrate the entire layer≤4 TCP/IP stack into the NIC. A main challenge that autonomous offloads address is coping with out-of-sequence pack- ets. We implement autonomous offloads for two L5Ps: (i) NVMe- over-TCP zero-copy and CRC computation, and (ii) https authentica- tion, encryption, and decryption. Our autonomous offloads increase throughput by up to 3.3x, and they deliver CPU consumption and latency that are as low as 0.4x and 0.7x, respectively. Their imple- mentation is already upstreamed in the Linux kernel, and they will be supported in the next-generation of Mellanox NICs.