+348
−14
Loading
Nvidia ConnectX offloads work with verbs semanthic where an offload is a property of a Memory Key. We can change Memeory Key properties in IO path by submitting a special Work Request. Result is a User Memory Region (UMR). When NIC performs RDMA_READ/WRITE or send operation with this UMR, HW detects special properties of a memory key and applies these properties. For NVMEoF RDMA protocol that means that we can register UMR with e.g. encrypt/decrypt and send it in NVMF capsule to remote target. When target does RDMA_READ/WRITE, local NIC first applies crypto to the memory buffer and then executes RDMA operation. In case of encryption, data remains unencrypted in the host memory and encrypted during transmission to the wire. This patch is the first step to enable accel operations in nvme_rdma driver. We detect a sequence of encrypt+copy(rdma domain) or copy(rdma domain)+decrypt and treat such a sequence as UMR registration (without RDMA operation). Result of the sequence is UMR. To return UMR to the caller, memory domain in the copy task must support data transfer operation. Signed-off-by:Alexey Marchuk <alexeymar@nvidia.com> Change-Id: I1cafb4dbf6da4b16f416d4e82078982494858bc2 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24699 Reviewed-by:
Ben Walker <ben@nvidia.com> Community-CI: Mellanox Build Bot Reviewed-by:
Shuhei Matsumoto <smatsumoto@nvidia.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Tested-by:
SPDK CI Jenkins <sys_sgci@intel.com>