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_PASSTHRU 21 bool "NVMe Target Passthrough support" 22 depends on NVME_TARGET 23 depends on NVME_CORE=y || NVME_CORE=NVME_TARGET 24 help 25 This enables target side NVMe passthru controller support for the 26 NVMe Over Fabrics protocol. It allows for hosts to manage and 27 directly access an actual NVMe controller residing on the target 28 side, including executing Vendor Unique Commands. 29 30 If unsure, say N. 31 32config NVME_TARGET_LOOP 33 tristate "NVMe loopback device support" 34 depends on NVME_TARGET 35 select NVME_FABRICS 36 select SG_POOL 37 help 38 This enables the NVMe loopback device support, which can be useful 39 to test NVMe host and target side features. 40 41 If unsure, say N. 42 43config NVME_TARGET_RDMA 44 tristate "NVMe over Fabrics RDMA target support" 45 depends on INFINIBAND && INFINIBAND_ADDR_TRANS 46 depends on NVME_TARGET 47 select SGL_ALLOC 48 help 49 This enables the NVMe RDMA target support, which allows exporting NVMe 50 devices over RDMA. 51 52 If unsure, say N. 53 54config NVME_TARGET_FC 55 tristate "NVMe over Fabrics FC target driver" 56 depends on NVME_TARGET 57 depends on HAS_DMA 58 select SGL_ALLOC 59 help 60 This enables the NVMe FC target support, which allows exporting NVMe 61 devices over FC. 62 63 If unsure, say N. 64 65config NVME_TARGET_FCLOOP 66 tristate "NVMe over Fabrics FC Transport Loopback Test driver" 67 depends on NVME_TARGET 68 select NVME_FABRICS 69 select SG_POOL 70 depends on NVME_FC 71 depends on NVME_TARGET_FC 72 help 73 This enables the NVMe FC loopback test support, which can be useful 74 to test NVMe-FC transport interfaces. 75 76 If unsure, say N. 77 78config NVME_TARGET_TCP 79 tristate "NVMe over Fabrics TCP target support" 80 depends on INET 81 depends on NVME_TARGET 82 help 83 This enables the NVMe TCP target support, which allows exporting NVMe 84 devices over TCP. 85 86 If unsure, say N. 87 88config NVME_TARGET_TCP_TLS 89 bool "NVMe over Fabrics TCP target TLS encryption support" 90 depends on NVME_TARGET_TCP 91 select NET_HANDSHAKE 92 help 93 Enables TLS encryption for the NVMe TCP target using the netlink handshake API. 94 95 The TLS handshake daemon is available at 96 https://github.com/oracle/ktls-utils. 97 98 If unsure, say N. 99 100config NVME_TARGET_AUTH 101 bool "NVMe over Fabrics In-band Authentication in target side" 102 depends on NVME_TARGET 103 select NVME_AUTH 104 help 105 This enables support for NVMe over Fabrics In-band Authentication in 106 target side. 107 108 If unsure, say N. 109