0001 # SPDX-License-Identifier: GPL-2.0-only
0002
0003 config NVME_TARGET
0004 tristate "NVMe Target support"
0005 depends on BLOCK
0006 depends on CONFIGFS_FS
0007 select BLK_DEV_INTEGRITY_T10 if BLK_DEV_INTEGRITY
0008 select SGL_ALLOC
0009 help
0010 This enabled target side support for the NVMe protocol, that is
0011 it allows the Linux kernel to implement NVMe subsystems and
0012 controllers and export Linux block devices as NVMe namespaces.
0013 You need to select at least one of the transports below to make this
0014 functionality useful.
0015
0016 To configure the NVMe target you probably want to use the nvmetcli
0017 tool from http://git.infradead.org/users/hch/nvmetcli.git.
0018
0019 config NVME_TARGET_PASSTHRU
0020 bool "NVMe Target Passthrough support"
0021 depends on NVME_TARGET
0022 depends on NVME_CORE=y || NVME_CORE=NVME_TARGET
0023 help
0024 This enables target side NVMe passthru controller support for the
0025 NVMe Over Fabrics protocol. It allows for hosts to manage and
0026 directly access an actual NVMe controller residing on the target
0027 side, including executing Vendor Unique Commands.
0028
0029 If unsure, say N.
0030
0031 config NVME_TARGET_LOOP
0032 tristate "NVMe loopback device support"
0033 depends on NVME_TARGET
0034 select NVME_FABRICS
0035 select SG_POOL
0036 help
0037 This enables the NVMe loopback device support, which can be useful
0038 to test NVMe host and target side features.
0039
0040 If unsure, say N.
0041
0042 config NVME_TARGET_RDMA
0043 tristate "NVMe over Fabrics RDMA target support"
0044 depends on INFINIBAND && INFINIBAND_ADDR_TRANS
0045 depends on NVME_TARGET
0046 select SGL_ALLOC
0047 help
0048 This enables the NVMe RDMA target support, which allows exporting NVMe
0049 devices over RDMA.
0050
0051 If unsure, say N.
0052
0053 config NVME_TARGET_FC
0054 tristate "NVMe over Fabrics FC target driver"
0055 depends on NVME_TARGET
0056 depends on HAS_DMA
0057 select SGL_ALLOC
0058 help
0059 This enables the NVMe FC target support, which allows exporting NVMe
0060 devices over FC.
0061
0062 If unsure, say N.
0063
0064 config NVME_TARGET_FCLOOP
0065 tristate "NVMe over Fabrics FC Transport Loopback Test driver"
0066 depends on NVME_TARGET
0067 select NVME_FABRICS
0068 select SG_POOL
0069 depends on NVME_FC
0070 depends on NVME_TARGET_FC
0071 help
0072 This enables the NVMe FC loopback test support, which can be useful
0073 to test NVMe-FC transport interfaces.
0074
0075 If unsure, say N.
0076
0077 config NVME_TARGET_TCP
0078 tristate "NVMe over Fabrics TCP target support"
0079 depends on INET
0080 depends on NVME_TARGET
0081 help
0082 This enables the NVMe TCP target support, which allows exporting NVMe
0083 devices over TCP.
0084
0085 If unsure, say N.
0086
0087 config NVME_TARGET_AUTH
0088 bool "NVMe over Fabrics In-band Authentication support"
0089 depends on NVME_TARGET
0090 select NVME_COMMON
0091 select CRYPTO
0092 select CRYPTO_HMAC
0093 select CRYPTO_SHA256
0094 select CRYPTO_SHA512
0095 select CRYPTO_DH
0096 select CRYPTO_DH_RFC7919_GROUPS
0097 help
0098 This enables support for NVMe over Fabrics In-band Authentication
0099
0100 If unsure, say N.