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