# SPDX-License-Identifier: GPL-2.0-only config NVME_TARGET tristate "NVMe Target support" depends on BLOCK depends on CONFIGFS_FS select NVME_KEYRING if NVME_TARGET_TCP_TLS select KEYS if NVME_TARGET_TCP_TLS select SGL_ALLOC help This enabled target side support for the NVMe protocol, that is it allows the Linux kernel to implement NVMe subsystems and controllers and export Linux block devices as NVMe namespaces. You need to select at least one of the transports below to make this functionality useful. To configure the NVMe target you probably want to use the nvmetcli tool from http://git.infradead.org/users/hch/nvmetcli.git. config NVME_TARGET_PASSTHRU bool "NVMe Target Passthrough support" depends on NVME_TARGET depends on NVME_CORE=y || NVME_CORE=NVME_TARGET help This enables target side NVMe passthru controller support for the NVMe Over Fabrics protocol. It allows for hosts to manage and directly access an actual NVMe controller residing on the target side, including executing Vendor Unique Commands. If unsure, say N. config NVME_TARGET_LOOP tristate "NVMe loopback device support" depends on NVME_TARGET select NVME_FABRICS select SG_POOL help This enables the NVMe loopback device support, which can be useful to test NVMe host and target side features. If unsure, say N. config NVME_TARGET_RDMA tristate "NVMe over Fabrics RDMA target support" depends on INFINIBAND && INFINIBAND_ADDR_TRANS depends on NVME_TARGET select SGL_ALLOC help This enables the NVMe RDMA target support, which allows exporting NVMe devices over RDMA. If unsure, say N. config NVME_TARGET_FC tristate "NVMe over Fabrics FC target driver" depends on NVME_TARGET depends on HAS_DMA select SGL_ALLOC help This enables the NVMe FC target support, which allows exporting NVMe devices over FC. If unsure, say N. config NVME_TARGET_FCLOOP tristate "NVMe over Fabrics FC Transport Loopback Test driver" depends on NVME_TARGET select NVME_FABRICS select SG_POOL depends on NVME_FC depends on NVME_TARGET_FC help This enables the NVMe FC loopback test support, which can be useful to test NVMe-FC transport interfaces. If unsure, say N. config NVME_TARGET_TCP tristate "NVMe over Fabrics TCP target support" depends on INET depends on NVME_TARGET help This enables the NVMe TCP target support, which allows exporting NVMe devices over TCP. If unsure, say N. config NVME_TARGET_TCP_TLS bool "NVMe over Fabrics TCP target TLS encryption support" depends on NVME_TARGET_TCP select NET_HANDSHAKE help Enables TLS encryption for the NVMe TCP target using the netlink handshake API. The TLS handshake daemon is available at https://github.com/oracle/ktls-utils. If unsure, say N. config NVME_TARGET_AUTH bool "NVMe over Fabrics In-band Authentication in target side" depends on NVME_TARGET select NVME_AUTH help This enables support for NVMe over Fabrics In-band Authentication in target side. If unsure, say N.