librdmacm/libibverbs: Add bnxtre RDMA provider to OFED build infrastructure

Extend the FreeBSD OFED build framework to include the Broadcom bnxtre RDMA
provider library.

This change:

 -Registers libbnxtre in src.libnames.mk so it is built and installed as part
  of the OFED libraries.
 -Adds bnxtre to the OFED pcap dependency set when MK_OFED is enabled.
 -Declares proper dependency mappings for bnxtre (ibverbs, pthread).
 -Introduces LIBBNXTREDIR for consistent object directory handling.
 -Updates libibverbs and librdmacm build rules to link against libbnxtre,
  enabling Broadcom RoCE device support at runtime.
 -libbnxtre library uses below constructor to register with the libibverbs,
  static attribute((constructor)) void bnxt_re_register_driver(void)

These updates ensure that applications using libibverbs and librdmacm can
discover and use Broadcom bnxt RDMA devices on FreeBSD.

Reviewed by: markj, ssaxena
Differential Revision: https://reviews.freebsd.org/D54368
MFC after: 3 days
This commit is contained in:
Sreekanth Reddy
2026-01-09 11:34:43 +00:00
committed by Sumit Saxena
parent 702b3a9a03
commit 821c6c43a3
3 changed files with 7 additions and 4 deletions
+4 -1
View File
@@ -283,6 +283,7 @@ _LIBRARIES+= \
irdma \ irdma \
mlx4 \ mlx4 \
mlx5 \ mlx5 \
bnxtre \
rdmacm \ rdmacm \
osmcomp \ osmcomp \
opensm \ opensm \
@@ -358,7 +359,7 @@ _DP_cap_sysctl= nv
_DP_cap_syslog= nv _DP_cap_syslog= nv
_DP_crypt= md _DP_crypt= md
.if ${MK_OFED} != "no" .if ${MK_OFED} != "no"
_DP_pcap= ibverbs mlx5 _DP_pcap= ibverbs mlx5 bnxtre
.endif .endif
_DP_pjdlog= util _DP_pjdlog= util
_DP_usb= pthread _DP_usb= pthread
@@ -512,6 +513,7 @@ _DP_ibverbs=
_DP_irdma= ibverbs pthread _DP_irdma= ibverbs pthread
_DP_mlx4= ibverbs pthread _DP_mlx4= ibverbs pthread
_DP_mlx5= ibverbs pthread _DP_mlx5= ibverbs pthread
_DP_bnxtre= ibverbs pthread
_DP_rdmacm= ibverbs _DP_rdmacm= ibverbs
_DP_osmcomp= pthread _DP_osmcomp= pthread
_DP_opensm= pthread _DP_opensm= pthread
@@ -804,6 +806,7 @@ LIBIBVERBSDIR= ${_LIB_OBJTOP}/lib/ofed/libibverbs
LIBIRDMADIR= ${_LIB_OBJTOP}/lib/ofed/libirdma LIBIRDMADIR= ${_LIB_OBJTOP}/lib/ofed/libirdma
LIBMLX4DIR= ${_LIB_OBJTOP}/lib/ofed/libmlx4 LIBMLX4DIR= ${_LIB_OBJTOP}/lib/ofed/libmlx4
LIBMLX5DIR= ${_LIB_OBJTOP}/lib/ofed/libmlx5 LIBMLX5DIR= ${_LIB_OBJTOP}/lib/ofed/libmlx5
LIBBNXTREDIR= ${_LIB_OBJTOP}/lib/ofed/libbnxtre
LIBRDMACMDIR= ${_LIB_OBJTOP}/lib/ofed/librdmacm LIBRDMACMDIR= ${_LIB_OBJTOP}/lib/ofed/librdmacm
LIBOSMCOMPDIR= ${_LIB_OBJTOP}/lib/ofed/complib LIBOSMCOMPDIR= ${_LIB_OBJTOP}/lib/ofed/complib
LIBOPENSMDIR= ${_LIB_OBJTOP}/lib/ofed/libopensm LIBOPENSMDIR= ${_LIB_OBJTOP}/lib/ofed/libopensm
+1 -1
View File
@@ -3,6 +3,6 @@ _spath=${SRCTOP}/contrib/ofed/libibverbs
BINDIR?= /usr/bin BINDIR?= /usr/bin
CFLAGS+= -I${_spath} CFLAGS+= -I${_spath}
LIBADD+= ibverbs mlx4 mlx5 cxgb4 irdma pthread LIBADD+= ibverbs mlx4 mlx5 bnxtre cxgb4 irdma pthread
WARNS?= 2 WARNS?= 2
+1 -1
View File
@@ -3,6 +3,6 @@ _spath=${SRCTOP}/contrib/ofed/librdmacm
BINDIR?= /usr/bin BINDIR?= /usr/bin
CFLAGS+= -I${SRCTOP}/contrib/ofed CFLAGS+= -I${SRCTOP}/contrib/ofed
LIBADD+= ibverbs rdmacm irdma mlx4 mlx5 cxgb4 pthread LIBADD+= ibverbs rdmacm irdma mlx4 mlx5 bnxtre cxgb4 pthread
WARNS?= 0 WARNS?= 0