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