rrddmma
A Rust RDMA library.
Linkage
-
rrddmmarespects existing MLNX_OFED installations.- MLNX_OFED v4.9-x LTS installations will enable
ibv_exp_*features. Its installations is assumed to be in/usr/include(headers) and/usr/lib(static & dynamic libraries). You may specify these paths viaMLNX_OFED_INCLUDE_DIRandMLNX_OFED_LIB_DIRenvironment variables. - MLNX_OFED v5.x installations will enable
mlx5dv_*features.
- MLNX_OFED v4.9-x LTS installations will enable
-
Otherwise,
rrddmmawill try to find an existinglibibverbsinstallation viapkg-config. If this approach is taken,rrddmmawill respect provider-specific functionalities.mlx5provider will enablemlx5dv_*features.
-
Otherwise,
rrddmmawill try to download rdma-core and build from source. If this approach is taken, onlylibibverbsinterfaces are supported. Also, you need to ensure that the dependencies are properly installed.
Implementation
Beneath the interfaces exposed, every data structure maintains allocated ibv_* resources with an Arc if there are any.
As a result, such data structures can always be cloned.
Although this seems to introduce an unnecessary extra layer of indirection, it will also significantly relieve the programmer's
stress when they need to share the resources among threads.