1# SPDX-License-Identifier: GPL-2.0-only 2 3config NVME_TARGET 4 tristate "NVMe Target support" 5 depends on BLOCK 6 depends on CONFIGFS_FS 7 select BLK_DEV_INTEGRITY_T10 if BLK_DEV_INTEGRITY 8 select SGL_ALLOC 9 help 10 This enabled target side support for the NVMe protocol, that is 11 it allows the Linux kernel to implement NVMe subsystems and 12 controllers and export Linux block devices as NVMe namespaces. 13 You need to select at least one of the transports below to make this 14 functionality useful. 15 16 To configure the NVMe target you probably want to use the nvmetcli 17 tool from http://git.infradead.org/users/hch/nvmetcli.git. 18 19config NVME_TARGET_PASSTHRU 20 bool "NVMe Target Passthrough support" 21 depends on NVME_TARGET 22 depends on NVME_CORE=y || NVME_CORE=NVME_TARGET 23 help 24 This enables target side NVMe passthru controller support for the 25 NVMe Over Fabrics protocol. It allows for hosts to manage and 26 directly access an actual NVMe controller residing on the target 27 side, including executing Vendor Unique Commands. 28 29 If unsure, say N. 30 31config NVME_TARGET_LOOP 32 tristate "NVMe loopback device support" 33 depends on NVME_TARGET 34 select NVME_FABRICS 35 select SG_POOL 36 help 37 This enables the NVMe loopback device support, which can be useful 38 to test NVMe host and target side features. 39 40 If unsure, say N. 41 42config NVME_TARGET_RDMA 43 tristate "NVMe over Fabrics RDMA target support" 44 depends on INFINIBAND && INFINIBAND_ADDR_TRANS 45 depends on NVME_TARGET 46 select SGL_ALLOC 47 help 48 This enables the NVMe RDMA target support, which allows exporting NVMe 49 devices over RDMA. 50 51 If unsure, say N. 52 53config NVME_TARGET_FC 54 tristate "NVMe over Fabrics FC target driver" 55 depends on NVME_TARGET 56 depends on HAS_DMA 57 select SGL_ALLOC 58 help 59 This enables the NVMe FC target support, which allows exporting NVMe 60 devices over FC. 61 62 If unsure, say N. 63 64config NVME_TARGET_FCLOOP 65 tristate "NVMe over Fabrics FC Transport Loopback Test driver" 66 depends on NVME_TARGET 67 select NVME_FABRICS 68 select SG_POOL 69 depends on NVME_FC 70 depends on NVME_TARGET_FC 71 help 72 This enables the NVMe FC loopback test support, which can be useful 73 to test NVMe-FC transport interfaces. 74 75 If unsure, say N. 76 77config NVME_TARGET_TCP 78 tristate "NVMe over Fabrics TCP target support" 79 depends on INET 80 depends on NVME_TARGET 81 help 82 This enables the NVMe TCP target support, which allows exporting NVMe 83 devices over TCP. 84 85 If unsure, say N. 86 87config NVME_TARGET_AUTH 88 bool "NVMe over Fabrics In-band Authentication support" 89 depends on NVME_TARGET 90 select NVME_COMMON 91 select CRYPTO 92 select CRYPTO_HMAC 93 select CRYPTO_SHA256 94 select CRYPTO_SHA512 95 select CRYPTO_DH 96 select CRYPTO_DH_RFC7919_GROUPS 97 help 98 This enables support for NVMe over Fabrics In-band Authentication 99 100 If unsure, say N. 101