linux-rdma/rdma-core logo

linux-rdma/rdma-core

Free

RDMA core userspace libraries and daemons

FreeFree tier
Type
Open Source
Company
linux-rdma

About linux-rdma/rdma-core

rdma-core is the userspace component of the Linux Kernel's drivers/infiniband subsystem. It provides libraries and daemons for RDMA (Remote Direct Memory Access) operations, including libibverbs (for /dev/infiniband/uverbsX), librdmacm (for /dev/infiniband/rdma_cm), and libibumad (for /dev/infiniband/umadX). The project includes userspace drivers for a wide range of kernel RDMA hardware (e.g., bnxt_re, efa, mlx5_ib, hfi1, iw_cxgb4, etc.) and service daemons such as srp_daemon, iwpmd, and ibacm. It uses a CMake-based build system and supports Linux distributions including Debian, Ubuntu, Fedora, CentOS, and openSUSE. rdma-core enables users to set up software RDMA over existing network interfaces using drivers like rdma_rxe or siw.

Key Features

Userspace libraries for Linux kernel InfiniBand/RDMA devices (libibverbs, librdmacm, libibumad)
Userspace drivers for many kernel RDMA providers (bnxt_re, efa, irdma, mlx5_ib, hfi1, etc.)
Service daemons: srp_daemon (SRP), iwpmd (iWARP), ibacm (InfiniBand communication management)
CMake-based build system with support for multiple Linux distributions
Software RDMA support via rdma_rxe (Soft RoCE) and siw (Soft iWARP) drivers
Includes sample programs and diagnostic tools (infiniband-diags, rdma-ndd)
Python bindings (pyverbs) for RDMA verbs programming
InfiniBand network diagnostics and management utilities

Pros & Cons

Pros
  • Open source under multiple permissive licenses (BSD, GPL2, MIT)
  • Supports a wide range of RDMA hardware from multiple vendors
  • Active community and frequent updates on GitHub
  • Comprehensive documentation and build instructions for major Linux distros
  • Includes both low-level verbs and higher-level communication management APIs
Cons
  • Limited to Linux systems; no native Windows or macOS support
  • Requires kernel support and appropriate drivers to function
  • Configuration and setup can be complex for beginners
  • Some features may depend on specific kernel versions or hardware availability

Best For

Developing RDMA applications using libibverbs or librdmacmConfiguring iWARP or InfiniBand network adaptersSetting up software RDMA (SoftRoCE or SoftiWARP) on existing Ethernet interfacesManaging SRP (SCSI RDMA Protocol) targets and initiatorsDiagnosing and monitoring InfiniBand fabricsKernel module development and testing for RDMA drivers