# SPDX-License-Identifier: GPL-2.0-only
menuconfig [31mCONFIG_INFINIBAND[0m
tristate "InfiniBand support"
depends on [31mCONFIG_HAS_IOMEM[0m && [31mCONFIG_HAS_DMA[0m
depends on [31mCONFIG_NET[0m
depends on [31mCONFIG_INET[0m
depends on m || [31mCONFIG_IPV6[0m != m
depends on ![31mCONFIG_ALPHA[0m
select [31mCONFIG_IRQ_POLL[0m
select [31mCONFIG_DIMLIB[0m
---help---
Core support for InfiniBand (IB). Make sure to also select
any protocols you wish to use as well as drivers for your
InfiniBand hardware.
if [31mCONFIG_INFINIBAND[0m
config [31mCONFIG_INFINIBAND_USER_MAD[0m
tristate "InfiniBand userspace MAD support"
depends on [31mCONFIG_INFINIBAND[0m
---help---
Userspace InfiniBand Management Datagram (MAD) support. This
is the kernel side of the userspace MAD support, which allows
userspace processes to send and receive MADs. You will also
need libibumad from rdma-core
<https://github.com/linux-rdma/rdma-core>.
config [31mCONFIG_INFINIBAND_USER_ACCESS[0m
tristate "InfiniBand userspace access (verbs and CM)"
depends on [31mCONFIG_MMU[0m
---help---
Userspace InfiniBand access support. This enables the
kernel side of userspace verbs and the userspace
communication manager (CM). This allows userspace processes
to set up connections and directly access InfiniBand
hardware for fast-path operations. You will also need
libibverbs, libibcm and a hardware driver library from
rdma-core <https://github.com/linux-rdma/rdma-core>.
config [31mCONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI[0m
bool "Allow experimental legacy verbs in new ioctl uAPI (EXPERIMENTAL)"
depends on [31mCONFIG_INFINIBAND_USER_ACCESS[0m
---help---
IOCTL based uAPI support for Infiniband is enabled by default for
new verbs only. This allows userspace to invoke the IOCTL based uAPI
for current legacy verbs too.
config [31mCONFIG_INFINIBAND_USER_MEM[0m
bool
depends on [31mCONFIG_INFINIBAND_USER_ACCESS[0m != n
depends on [31mCONFIG_MMU[0m
default y
config [31mCONFIG_INFINIBAND_ON_DEMAND_PAGING[0m
bool "InfiniBand on-demand paging support"
depends on [31mCONFIG_INFINIBAND_USER_MEM[0m
select [31mCONFIG_MMU_NOTIFIER[0m
select [31mCONFIG_INTERVAL_TREE[0m
default y
---help---
On demand paging support for the InfiniBand subsystem.
Together with driver support this allows registration of
memory regions without pinning their pages, fetching the
pages on demand instead.
config [31mCONFIG_INFINIBAND_ADDR_TRANS[0m
bool "RDMA/CM"
depends on [31mCONFIG_INFINIBAND[0m
default y
---help---
Support for RDMA communication manager (CM).
This allows for a generic connection abstraction over RDMA.
config [31mCONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS[0m
bool
depends on [31mCONFIG_INFINIBAND_ADDR_TRANS[0m && [31mCONFIG_CONFIGFS_FS[0m && !([31mCONFIG_INFINIBAND[0m=y && [31mCONFIG_CONFIGFS_FS[0m=m)
default y
---help---
ConfigFS support for RDMA communication manager (CM).
This allows the user to config the default GID type that the CM
uses for each device, when initiaing new connections.
if [31mCONFIG_INFINIBAND_USER_ACCESS[0m || ![31mCONFIG_INFINIBAND_USER_ACCESS[0m
source "drivers/infiniband/hw/mthca/Kconfig"
source "drivers/infiniband/hw/qib/Kconfig"
source "drivers/infiniband/hw/cxgb3/Kconfig"
source "drivers/infiniband/hw/cxgb4/Kconfig"
source "drivers/infiniband/hw/efa/Kconfig"
source "drivers/infiniband/hw/i40iw/Kconfig"
source "drivers/infiniband/hw/mlx4/Kconfig"
source "drivers/infiniband/hw/mlx5/Kconfig"
source "drivers/infiniband/hw/ocrdma/Kconfig"
source "drivers/infiniband/hw/vmw_pvrdma/Kconfig"
source "drivers/infiniband/hw/usnic/Kconfig"
source "drivers/infiniband/hw/hns/Kconfig"
source "drivers/infiniband/hw/bnxt_re/Kconfig"
source "drivers/infiniband/hw/hfi1/Kconfig"
source "drivers/infiniband/hw/qedr/Kconfig"
source "drivers/infiniband/sw/rdmavt/Kconfig"
source "drivers/infiniband/sw/rxe/Kconfig"
source "drivers/infiniband/sw/siw/Kconfig"
endif
source "drivers/infiniband/ulp/ipoib/Kconfig"
source "drivers/infiniband/ulp/srp/Kconfig"
source "drivers/infiniband/ulp/srpt/Kconfig"
source "drivers/infiniband/ulp/iser/Kconfig"
source "drivers/infiniband/ulp/isert/Kconfig"
source "drivers/infiniband/ulp/opa_vnic/Kconfig"
endif # [31mCONFIG_INFINIBAND[0m