linux-rdma/rdma-core

GitHub: linux-rdma/rdma-core

Linux 内核 InfiniBand/RDMA 子系统的用户空间库与守护进程,提供 RDMA 硬件驱动用户空间接口和高性能网络通信的基础支持。

Stars: 2284 | Forks: 873

[![构建状态](https://dev.azure.com/ucfconsort/rdma-core/_apis/build/status/linux-rdma.rdma-core?branchName=master)](https://dev.azure.com/ucfconsort/rdma-core/_build/latest?definitionId=2&branchName=master) # RDMA Core 用户空间库与守护进程 这是 Linux Kernel 的 drivers/infiniband 子系统的用户空间组件。具体而言,它包含以下 设备节点的用户空间库: - /dev/infiniband/uverbsX (libibverbs) - /dev/infiniband/rdma_cm (librdmacm) - /dev/infiniband/umadX (libibumad) libibverbs RDMA 内核驱动程序的用户空间组件包含在 providers/ 目录下。包含对以下内核 RDMA 驱动程序的 支持: - bnxt_re.ko - efa.ko - erdma.ko - iw_cxgb4.ko - hfi1.ko - hns-roce-hw-v2.ko - ionic_rdma.ko - irdma.ko - ib_qib.ko - mana_ib.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 内核 provider) - ibacm (用于 InfiniBand 通信管理助手) # 构建 本项目使用基于 cmake 的构建系统。快速开始: ``` $ bash build.sh ``` *build/bin* 将包含示例程序,*build/lib* 将包含 共享库。此构建配置为“原地”运行所有程序, 且无法被安装。 ### Debian 系 ``` $ apt-get install build-essential cmake gcc libudev-dev libnl-3-dev libnl-route-3-dev ninja-build pkg-config valgrind python3-dev cython3 python3-docutils pandoc ``` 支持的发行版: * Debian 9 (stretch) 或更高版本 * Ubuntu 16.04 LTS (xenial) 或更高版本 ### Fedora, CentOS 8 ``` $ dnf builddep redhat/rdma-core.spec ``` 注意:Fedora Core 将 'ninja' 命令命名为 'ninja-build'。 ### openSUSE ``` $ zypper install cmake gcc libnl3-devel libudev-devel ninja pkg-config valgrind-devel python3-devel python3-Cython python3-docutils pandoc ``` ## 在 CentOS 7, Amazon Linux 2 上构建 安装所需的软件包: ``` $ yum install cmake gcc libnl3-devel libudev-devel make pkgconfig valgrind-devel ``` 建议在 CentOS 7 或 Amazon Linux 2 上的开发者安装更现代化的 工具以获得最佳体验。 CentOS 7: ``` $ yum install epel-release $ yum install cmake3 ninja-build pandoc ``` Amazon Linux 2: ``` $ amazon-linux-extras install epel $ yum install cmake3 ninja-build pandoc ``` 注意:EPEL 将 'ninja' 命令命名为 'ninja-build',将 'cmake' 命令命名为 'cmake3'。 # 用法 要使用任一可用的驱动程序在现有接口上设置软件 RDMA,请使用 以下命令,将 `` 替换为您选择的驱动程序 名称(`rdma_rxe` 或 `siw`),并将 `` 替换为与该 驱动程序对应的类型(`rxe` 或 `siw`)。 ``` # modprobe # rdma link add type netdev ``` 请注意,您需要足够新版本的 `iproute2` 才能使上述 命令正常工作。 您可以使用 `ibv_devices` 或 `rdma link` 来验证设备是否 已成功添加。 # 报告 Bug Bug 应报告至 邮件列表 在您的 Bug 报告中,请包含: * 有关您系统的信息: - Linux 发行版及版本 - Linux 内核及版本 - InfiniBand 硬件及固件版本 - ……任何其他相关信息 * 如何重现该 Bug。 * 如果该 Bug 是崩溃,请提供崩溃发生时打印的准确输出, 包括产生的任何内核消息。 # 提交补丁 请参阅[为 rdma-core 贡献代码](Documentation/contributing.md)。 # 稳定分支 稳定版本会定期发布并包含向后移植的修复(参见 Documentation/stable.md) 目前仍在维护的最低版本是 'v33.X'
标签:Bash脚本, InfiniBand, RDMA, 客户端加密, 系统底层, 网络通信