Install an RDMA device. As long as the RDMA device driver is supported by the kernel, it should work. This includes both software emulators (soft RoCE, soft iWARP) and hardware devices (InfiniBand, RoCE, iWARP).
Install a kernel with SMB Direct support. The first kernel release to support SMB Direct on both the client and server side is 5.15. Therefore, a distribution compatible with kernel 5.15 or later is required.
Install cifs-utils, which provides the mount.cifs command to mount SMB shares.
Configure the RDMA stack
Make sure that your kernel configuration has RDMA support enabled. Under Device Drivers -> Infiniband support, update the kernel configuration to enable Infiniband support.
Enable the appropriate IB HCA support or iWARP adapter support, depending on your hardware.
If you are using InfiniBand, enable IP-over-InfiniBand support.
For soft RDMA, enable either the soft iWARP (RDMA _SIW) or soft RoCE (RDMA_RXE) module. Install the iproute2 package and use the rdma link add command to load the module and create an RDMA interface.
e.g. if your local ethernet interface is eth0, you can use:
sudo rdma link add siw0 type siw netdev eth0
Enable SMB Direct support for both the server and the client in the kernel configuration.
Server Setup
Network File Systems ---> <M> SMB3 server support [*] Support for SMB Direct protocolClient Setup
Network File Systems ---> <M> SMB3 and CIFS support (advanced network filesystem) [*] SMB Direct support
Build and install the kernel. SMB Direct support will be enabled in the cifs.ko and ksmbd.ko modules.