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 NVME_KEYRING if NVME_TARGET_TCP_TLS 8 select KEYS if NVME_TARGET_TCP_TLS 9 select SGL_ALLOC 10 help 11 This enabled target side support for the NVMe protocol, that is 12 it allows the Linux kernel to implement NVMe subsystems and 13 controllers and export Linux block devices as NVMe namespaces. 14 You need to select at least one of the transports below to make this 15 functionality useful. 16 17 To configure the NVMe target you probably want to use the nvmetcli 18 tool from http://git.infradead.org/users/hch/nvmetcli.git. 19 20config NVME_TARGET_DEBUGFS 21 bool "NVMe Target debugfs support" 22 depends on NVME_TARGET 23 help 24 This enables debugfs support to display the connected controllers 25 to each subsystem 26 27 If unsure, say N. 28 29config NVME_TARGET_PASSTHRU 30 bool "NVMe Target Passthrough support" 31 depends on NVME_TARGET 32 depends on NVME_CORE=y || NVME_CORE=NVME_TARGET 33 help 34 This enables target side NVMe passthru controller support for the 35 NVMe Over Fabrics protocol. It allows for hosts to manage and 36 directly access an actual NVMe controller residing on the target 37 side, including executing Vendor Unique Commands. 38 39 If unsure, say N. 40 41config NVME_TARGET_LOOP 42 tristate "NVMe loopback device support" 43 depends on NVME_TARGET 44 select NVME_FABRICS 45 select SG_POOL 46 help 47 This enables the NVMe loopback device support, which can be useful 48 to test NVMe host and target side features. 49 50 If unsure, say N. 51 52config NVME_TARGET_RDMA 53 tristate "NVMe over Fabrics RDMA target support" 54 depends on INFINIBAND && INFINIBAND_ADDR_TRANS 55 depends on NVME_TARGET 56 select SGL_ALLOC 57 help 58 This enables the NVMe RDMA target support, which allows exporting NVMe 59 devices over RDMA. 60 61 If unsure, say N. 62 63config NVME_TARGET_FC 64 tristate "NVMe over Fabrics FC target driver" 65 depends on NVME_TARGET 66 depends on HAS_DMA 67 select SGL_ALLOC 68 help 69 This enables the NVMe FC target support, which allows exporting NVMe 70 devices over FC. 71 72 If unsure, say N. 73 74config NVME_TARGET_FCLOOP 75 tristate "NVMe over Fabrics FC Transport Loopback Test driver" 76 depends on NVME_TARGET 77 select NVME_FABRICS 78 select SG_POOL 79 depends on NVME_FC 80 depends on NVME_TARGET_FC 81 help 82 This enables the NVMe FC loopback test support, which can be useful 83 to test NVMe-FC transport interfaces. 84 85 If unsure, say N. 86 87config NVME_TARGET_TCP 88 tristate "NVMe over Fabrics TCP target support" 89 depends on INET 90 depends on NVME_TARGET 91 help 92 This enables the NVMe TCP target support, which allows exporting NVMe 93 devices over TCP. 94 95 If unsure, say N. 96 97config NVME_TARGET_TCP_TLS 98 bool "NVMe over Fabrics TCP target TLS encryption support" 99 depends on NVME_TARGET_TCP 100 select NET_HANDSHAKE 101 help 102 Enables TLS encryption for the NVMe TCP target using the netlink handshake API. 103 104 The TLS handshake daemon is available at 105 https://github.com/oracle/ktls-utils. 106 107 If unsure, say N. 108 109config NVME_TARGET_AUTH 110 bool "NVMe over Fabrics In-band Authentication in target side" 111 depends on NVME_TARGET 112 select NVME_AUTH 113 help 114 This enables support for NVMe over Fabrics In-band Authentication in 115 target side. 116 117 If unsure, say N. 118