rxe dev: Home - SoftRoCE/rxe-dev GitHub Wiki
Soft RDMA over Ethernet (RoCE) Driver
This repository contains a full kernel source tree, with the RoCE driver code located in the directory drivers/infiniband/hw/rxe.
Source
Kernel Space Driver
- Github: https://github.com/SoftRoCE/rxe-dev.git (this repository)
- Active Branch:
rxe_submission_v18
User Space Library
- Github: https://github.com/SoftRoCE/librxe-dev.git
- Current Version:
librxe-1.0.0
Build Instructions
Compile and install kernel:
- Clone kernel git:
0.
git clone https://github.com/SoftRoCE/rxe-dev.git0. Checkout branch 'rxe_submission_v18' - Compile kernel:
0. Enter the source directory
cd rxe-dev0.cp /boot/config-$(uname –r) .config0.make menuconfig0. Need to enableCONFIG_RDMA_RXE0. Need to enableCONFIG_INFINIBAND_ADDR_TRANS=yandCONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=yin new config file.config0.make –j 320.make modules_install0.make install0.make headers_install INSTALL_HDR_PATH=/usr - Verify that the new kernel entry is added (e.g. to grub); if not, need to add it manually.
- Boot with new kernel.
Install user space library (librxe):
- Install the following package (example shown using RedHat):
0.
yum install perl-Switch(name might vary according to distribution) - Make sure that the following upstream user space libraries are installed:
0.
libibverbs0.libibverbs-devel0.libibverbs-utils0.librdmacm0.librdmacm-devel0.librdmacm-utils( For ubuntu libibverbs-dev libswitch-perl rdmacm-utils ibverbs-utils ) - Compile and install user space library
librxe: 0.git clone https://github.com/SoftRoCE/librxe-dev.git0.cd librxe-dev0../configure --libdir=/usr/lib64/ --prefix=0.make0.make install
Configure Soft-RoCE (RXE):
- Load
ib_rxekernel module using therxe_cfgscript included in thelibrxeRPM: 0.rxe_cfg start(this might requiresudoor root privileges) - Create RXE device over network interface (e.g.
eth0): 0.rxe_cfg add eth0 - Use the
statuscommand to display the current configuration: 0.rxe_cfg status - If configured successfully, you should see output similar to the following:
Name Link Driver Speed NMTU IPv4_addr RDEV RMTU
eth0 yes mlx4_en rxe0 1024 (3)
- If you are using a Mellanox HCA: Need to make sure that the
mlx4_ibkernel module is not loaded (modprobe –rv mlx4_ib) in the soft-RoCE machine. - Now you have an Infiniband device called “rxe0” that can be used to run any RoCE app.