9 releases

0.6.6 Jan 23, 2024
0.6.5 Jan 23, 2024
0.6.1 Dec 22, 2023
0.5.6 Sep 7, 2023
0.4.4 May 9, 2023

#796 in Network programming

31 downloads per month
Used in rrppcc

MIT license

6MB
155K SLoC

C 124K SLoC // 0.1% comments Cython 12K SLoC // 0.2% comments Python 12K SLoC // 0.2% comments Rust 4K SLoC // 0.0% comments Perl 1.5K SLoC // 0.2% comments RPM Specfile 1.5K SLoC // 0.1% comments Shell 199 SLoC // 0.1% comments Bitbake 20 SLoC // 0.9% comments

rrddmma

A Rust RDMA library.

Crates.io Crates.io License

This library is more for academic use than for industry. It is highly specialized to Mellanox/NVIDIA ConnectX network adapter series.

WARNING: the interfaces are unstable and under continuous change!

Linkage

This library supports multiple linkage types to the ibverbs library.

  1. First, this library respects existing MLNX_OFED installations. It works on both v4.9-x and v5.x versions.

    • MLNX_OFED v4.9-x will enable experimental verbs. (TODO)
    • MLNX_OFED v5.x will enable mlx5dv_* features. (TODO)
  2. Otherwise, rrddmma will try to find an existing libibverbs installation via pkg-config.

    • This will enable enable mlx5dv_* features. (TODO)
  3. Otherwise, rrddmma will try to download rdma-core and build from source. You need to ensure that the dependencies are properly installed. In Ubuntu and other Debian-derived OSs, these are:

    sudo apt install -y build-essential cmake gcc libclang-dev libudev-dev libsystemd-dev \
                        libnl-3-dev libnl-route-3-dev ninja-build pkg-config valgrind \
                        python3-dev cython3 python3-docutils pandoc
    

    Building from source is different from the previous two approaches in that libibverbs is linked statically and cannot detect providers at runtime. This library currently only allows the mlx5 provider.

    • This will enable enable mlx5dv_* features. (TODO)

Dependencies

~3–6.5MB
~122K SLoC