The continuous improvements of RDMA [1]}
and the essential power and memory walls of the CPU
have led to the emergency of SmartNICs—the RNICs
with programmable capabilities, which offer
systems the opportunity to offload
more complex computations to the NIC.
Currently, there are two main types of SmartNICs. The first one is on-path SmartNIC [2]},
which directly exposes the processing units for handling RDMA packets (NIC cores) to the systems.
Unfortunately, programming the low-level NIC cores with firmware [3]}, [4]}
and isolating the offloaded program with normal RDMA requests pose significant burdens on the developers.
To ease development,
off-path SmartNIC [5]}, [6]}, [7]}, [8]}
instead attaches a programmable multi-core SoC (with DRAM) next to the RNIC cores,
which is off the critical path of RDMA.
Thanks to this separation,
the SoC is independent of the normal RDMA requests,
which can further deploy a full-fledged OS to simplify
system developments [9]}.
Specifically, developers can treat the SoC as a full-fledged server.
Due to its generality and programmability,
we focus on off-path SmartNICWe only refer to off-path SmartNIC in this paper,
so we use the more generic but shorter term SmartNIC (and SNIC) throughout. in this paper.
