| # SPDX-License-Identifier: GPL-2.0-only |
| |
| config NVME_TARGET |
| tristate "NVMe Target support" |
| depends on BLOCK |
| depends on CONFIGFS_FS |
| select BLK_DEV_INTEGRITY_T10 if BLK_DEV_INTEGRITY |
| 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 NVME_KEYRING |
| select NET_HANDSHAKE |
| select KEYS |
| 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 support" |
| depends on NVME_TARGET |
| select NVME_AUTH |
| help |
| This enables support for NVMe over Fabrics In-band Authentication |
| |
| If unsure, say N. |