1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 2a07b4970SChristoph Hellwig 3a07b4970SChristoph Hellwigconfig NVME_TARGET 4a07b4970SChristoph Hellwig tristate "NVMe Target support" 5a07b4970SChristoph Hellwig depends on BLOCK 6a07b4970SChristoph Hellwig depends on CONFIGFS_FS 7d2d1c454SIsrael Rukshin select BLK_DEV_INTEGRITY_T10 if BLK_DEV_INTEGRITY 8a5dffbb6SEnrico Weigelt, metux IT consult select SGL_ALLOC 9a07b4970SChristoph Hellwig help 10a07b4970SChristoph Hellwig This enabled target side support for the NVMe protocol, that is 11a07b4970SChristoph Hellwig it allows the Linux kernel to implement NVMe subsystems and 12a07b4970SChristoph Hellwig controllers and export Linux block devices as NVMe namespaces. 13a07b4970SChristoph Hellwig You need to select at least one of the transports below to make this 14a07b4970SChristoph Hellwig functionality useful. 15a07b4970SChristoph Hellwig 16a07b4970SChristoph Hellwig To configure the NVMe target you probably want to use the nvmetcli 17a07b4970SChristoph Hellwig tool from http://git.infradead.org/users/hch/nvmetcli.git. 18a07b4970SChristoph Hellwig 19d9174c1aSChaitanya Kulkarniconfig NVME_TARGET_PASSTHRU 20d9174c1aSChaitanya Kulkarni bool "NVMe Target Passthrough support" 21d9174c1aSChaitanya Kulkarni depends on NVME_TARGET 22d9174c1aSChaitanya Kulkarni depends on NVME_CORE=y || NVME_CORE=NVME_TARGET 23d9174c1aSChaitanya Kulkarni help 24d9174c1aSChaitanya Kulkarni This enables target side NVMe passthru controller support for the 25d9174c1aSChaitanya Kulkarni NVMe Over Fabrics protocol. It allows for hosts to manage and 26d9174c1aSChaitanya Kulkarni directly access an actual NVMe controller residing on the target 279f20599cSColin Ian King side, including executing Vendor Unique Commands. 28d9174c1aSChaitanya Kulkarni 29d9174c1aSChaitanya Kulkarni If unsure, say N. 30d9174c1aSChaitanya Kulkarni 313a85a5deSChristoph Hellwigconfig NVME_TARGET_LOOP 323a85a5deSChristoph Hellwig tristate "NVMe loopback device support" 336eae8c45SArnd Bergmann depends on NVME_TARGET 343a85a5deSChristoph Hellwig select NVME_FABRICS 353a85a5deSChristoph Hellwig select SG_POOL 363a85a5deSChristoph Hellwig help 373a85a5deSChristoph Hellwig This enables the NVMe loopback device support, which can be useful 383a85a5deSChristoph Hellwig to test NVMe host and target side features. 393a85a5deSChristoph Hellwig 40a07b4970SChristoph Hellwig If unsure, say N. 418f000cacSChristoph Hellwig 428f000cacSChristoph Hellwigconfig NVME_TARGET_RDMA 438f000cacSChristoph Hellwig tristate "NVMe over Fabrics RDMA target support" 44533d1daeSArnd Bergmann depends on INFINIBAND && INFINIBAND_ADDR_TRANS 456eae8c45SArnd Bergmann depends on NVME_TARGET 4668c6e9cdSBart Van Assche select SGL_ALLOC 478f000cacSChristoph Hellwig help 488f000cacSChristoph Hellwig This enables the NVMe RDMA target support, which allows exporting NVMe 498f000cacSChristoph Hellwig devices over RDMA. 508f000cacSChristoph Hellwig 518f000cacSChristoph Hellwig If unsure, say N. 52c5343203SJames Smart 53c5343203SJames Smartconfig NVME_TARGET_FC 54c5343203SJames Smart tristate "NVMe over Fabrics FC target driver" 55c5343203SJames Smart depends on NVME_TARGET 56c5343203SJames Smart depends on HAS_DMA 574442b56fSBart Van Assche select SGL_ALLOC 58c5343203SJames Smart help 59c5343203SJames Smart This enables the NVMe FC target support, which allows exporting NVMe 60c5343203SJames Smart devices over FC. 61c5343203SJames Smart 62c5343203SJames Smart If unsure, say N. 63c5343203SJames Smart 64475d0fe7SJames Smartconfig NVME_TARGET_FCLOOP 65475d0fe7SJames Smart tristate "NVMe over Fabrics FC Transport Loopback Test driver" 66475d0fe7SJames Smart depends on NVME_TARGET 67475d0fe7SJames Smart select NVME_FABRICS 68475d0fe7SJames Smart select SG_POOL 69475d0fe7SJames Smart depends on NVME_FC 70475d0fe7SJames Smart depends on NVME_TARGET_FC 71475d0fe7SJames Smart help 72475d0fe7SJames Smart This enables the NVMe FC loopback test support, which can be useful 73475d0fe7SJames Smart to test NVMe-FC transport interfaces. 74475d0fe7SJames Smart 75475d0fe7SJames Smart If unsure, say N. 76872d26a3SSagi Grimberg 77872d26a3SSagi Grimbergconfig NVME_TARGET_TCP 78872d26a3SSagi Grimberg tristate "NVMe over Fabrics TCP target support" 79872d26a3SSagi Grimberg depends on INET 80872d26a3SSagi Grimberg depends on NVME_TARGET 81872d26a3SSagi Grimberg help 82872d26a3SSagi Grimberg This enables the NVMe TCP target support, which allows exporting NVMe 83872d26a3SSagi Grimberg devices over TCP. 84872d26a3SSagi Grimberg 85872d26a3SSagi Grimberg If unsure, say N. 86db1312ddSHannes Reinecke 87db1312ddSHannes Reineckeconfig NVME_TARGET_AUTH 88db1312ddSHannes Reinecke bool "NVMe over Fabrics In-band Authentication support" 89db1312ddSHannes Reinecke depends on NVME_TARGET 90db1312ddSHannes Reinecke select NVME_COMMON 91db1312ddSHannes Reinecke select CRYPTO 92db1312ddSHannes Reinecke select CRYPTO_HMAC 93db1312ddSHannes Reinecke select CRYPTO_SHA256 94db1312ddSHannes Reinecke select CRYPTO_SHA512 957a277c37SHannes Reinecke select CRYPTO_DH 96*4cf42ec3SLukas Bulwahn select CRYPTO_DH_RFC7919_GROUPS 97db1312ddSHannes Reinecke help 98db1312ddSHannes Reinecke This enables support for NVMe over Fabrics In-band Authentication 99db1312ddSHannes Reinecke 100db1312ddSHannes Reinecke If unsure, say N. 101