【RDMA】rdma-core驱动源码包|ibverbs|rdmacm
目录
源码包
mellanox的rdma驱动源码包形式如下:
MLNX_OFED_LINUX-5.8-1.1.2.1-rhel9.0-ext/src/MLNX_OFED_SRC-5.8-1.1.2.1/SRPMS
rdma-core-58mlnx43-1.58112.src.rpm
rpm -ivh rdma-core-58mlnx43-1.58112.src.rpm 安装完成后
源码解压到:/root/rpmbuild/SOURCES/
RDMA Core Userspace Libraries and Daemons
这是 Linux 内核驱动程序的用户空间组件,属于/infiniband 子系统。具体包含以下设备节点的用户空间库:
- /dev/infiniband/uverbsX(libibverbs)
- /dev/infiniband/rdma_cm(librdmacm)
- /dev/infiniband/umadX(libibumad)
libibverbs RDMA 内核驱动程序的用户空间组件包含在 providers/ 目录下。支持以下内核 RDMA 驱动程序:
- efa.ko
- iw_cxgb4.ko
- hfi1.ko
- hns-roce.ko
- i40iw.ko
- ib_qib.ko
- mlx4_ib.ko
- mlx5_ib.ko
- ib_mthca.ko
- ocrdma.ko
- qedr.ko
- rdma_rxe.ko
- siw.ko
- vmw_pvrdma.ko
此外,还提供了以下额外的服务守护进程:
- srp_daemon(ib_srp.ko)
- iwpmd(针对 iwarp 内核提供程序)
- ibacm(用于 InfiniBand 通信管理助手)
编译
进入驱动包目录,执行:
$ bash build.sh
输出在:build/bin 和 build/lib
build/bin 目录包含示例程序,build/lib 目录包含共享库。
注意:目前不易从构建目录运行插件,插件仅从系统路径加载
编译之前环境可能需要安装一些依赖,如:
CentOS 7:
$ yum install epel-release
$ yum install cmake3 ninja-build pandoc
详情见README.md
用法
略
驱动包内的例子
驱动包例子的源码在驱动包的excample内
rdma_xclient.c 和 rdma_client.c 的区别
rdma_xclient.c 客户端只发,接收端只收
rdma_client.c 双边相互收发
浙公网安备 33010602011771号