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 765e2a74cSArnd Bergmann select NVME_KEYRING if NVME_TARGET_TCP_TLS 865e2a74cSArnd Bergmann select KEYS if NVME_TARGET_TCP_TLS 9a5dffbb6SEnrico Weigelt, metux IT consult select SGL_ALLOC 10a07b4970SChristoph Hellwig help 11a07b4970SChristoph Hellwig This enabled target side support for the NVMe protocol, that is 12a07b4970SChristoph Hellwig it allows the Linux kernel to implement NVMe subsystems and 13a07b4970SChristoph Hellwig controllers and export Linux block devices as NVMe namespaces. 14a07b4970SChristoph Hellwig You need to select at least one of the transports below to make this 15a07b4970SChristoph Hellwig functionality useful. 16a07b4970SChristoph Hellwig 17a07b4970SChristoph Hellwig To configure the NVMe target you probably want to use the nvmetcli 18a07b4970SChristoph Hellwig tool from http://git.infradead.org/users/hch/nvmetcli.git. 19a07b4970SChristoph Hellwig 20649fd414SHannes Reineckeconfig NVME_TARGET_DEBUGFS 21649fd414SHannes Reinecke bool "NVMe Target debugfs support" 22649fd414SHannes Reinecke depends on NVME_TARGET 23649fd414SHannes Reinecke help 24649fd414SHannes Reinecke This enables debugfs support to display the connected controllers 25649fd414SHannes Reinecke to each subsystem 26649fd414SHannes Reinecke 27649fd414SHannes Reinecke If unsure, say N. 28649fd414SHannes Reinecke 29d9174c1aSChaitanya Kulkarniconfig NVME_TARGET_PASSTHRU 30d9174c1aSChaitanya Kulkarni bool "NVMe Target Passthrough support" 31d9174c1aSChaitanya Kulkarni depends on NVME_TARGET 32d9174c1aSChaitanya Kulkarni depends on NVME_CORE=y || NVME_CORE=NVME_TARGET 33d9174c1aSChaitanya Kulkarni help 34d9174c1aSChaitanya Kulkarni This enables target side NVMe passthru controller support for the 35d9174c1aSChaitanya Kulkarni NVMe Over Fabrics protocol. It allows for hosts to manage and 36d9174c1aSChaitanya Kulkarni directly access an actual NVMe controller residing on the target 379f20599cSColin Ian King side, including executing Vendor Unique Commands. 38d9174c1aSChaitanya Kulkarni 39d9174c1aSChaitanya Kulkarni If unsure, say N. 40d9174c1aSChaitanya Kulkarni 413a85a5deSChristoph Hellwigconfig NVME_TARGET_LOOP 423a85a5deSChristoph Hellwig tristate "NVMe loopback device support" 436eae8c45SArnd Bergmann depends on NVME_TARGET 443a85a5deSChristoph Hellwig select NVME_FABRICS 453a85a5deSChristoph Hellwig select SG_POOL 463a85a5deSChristoph Hellwig help 473a85a5deSChristoph Hellwig This enables the NVMe loopback device support, which can be useful 483a85a5deSChristoph Hellwig to test NVMe host and target side features. 493a85a5deSChristoph Hellwig 50a07b4970SChristoph Hellwig If unsure, say N. 518f000cacSChristoph Hellwig 528f000cacSChristoph Hellwigconfig NVME_TARGET_RDMA 538f000cacSChristoph Hellwig tristate "NVMe over Fabrics RDMA target support" 54533d1daeSArnd Bergmann depends on INFINIBAND && INFINIBAND_ADDR_TRANS 556eae8c45SArnd Bergmann depends on NVME_TARGET 5668c6e9cdSBart Van Assche select SGL_ALLOC 578f000cacSChristoph Hellwig help 588f000cacSChristoph Hellwig This enables the NVMe RDMA target support, which allows exporting NVMe 598f000cacSChristoph Hellwig devices over RDMA. 608f000cacSChristoph Hellwig 618f000cacSChristoph Hellwig If unsure, say N. 62c5343203SJames Smart 63c5343203SJames Smartconfig NVME_TARGET_FC 64c5343203SJames Smart tristate "NVMe over Fabrics FC target driver" 65c5343203SJames Smart depends on NVME_TARGET 66c5343203SJames Smart depends on HAS_DMA 674442b56fSBart Van Assche select SGL_ALLOC 68c5343203SJames Smart help 69c5343203SJames Smart This enables the NVMe FC target support, which allows exporting NVMe 70c5343203SJames Smart devices over FC. 71c5343203SJames Smart 72c5343203SJames Smart If unsure, say N. 73c5343203SJames Smart 74475d0fe7SJames Smartconfig NVME_TARGET_FCLOOP 75475d0fe7SJames Smart tristate "NVMe over Fabrics FC Transport Loopback Test driver" 76475d0fe7SJames Smart depends on NVME_TARGET 77475d0fe7SJames Smart select NVME_FABRICS 78475d0fe7SJames Smart select SG_POOL 79475d0fe7SJames Smart depends on NVME_FC 80475d0fe7SJames Smart depends on NVME_TARGET_FC 81475d0fe7SJames Smart help 82475d0fe7SJames Smart This enables the NVMe FC loopback test support, which can be useful 83475d0fe7SJames Smart to test NVMe-FC transport interfaces. 84475d0fe7SJames Smart 85475d0fe7SJames Smart If unsure, say N. 86872d26a3SSagi Grimberg 87872d26a3SSagi Grimbergconfig NVME_TARGET_TCP 88872d26a3SSagi Grimberg tristate "NVMe over Fabrics TCP target support" 89872d26a3SSagi Grimberg depends on INET 90872d26a3SSagi Grimberg depends on NVME_TARGET 91872d26a3SSagi Grimberg help 92872d26a3SSagi Grimberg This enables the NVMe TCP target support, which allows exporting NVMe 93872d26a3SSagi Grimberg devices over TCP. 94872d26a3SSagi Grimberg 95872d26a3SSagi Grimberg If unsure, say N. 96db1312ddSHannes Reinecke 97675b453eSHannes Reineckeconfig NVME_TARGET_TCP_TLS 98675b453eSHannes Reinecke bool "NVMe over Fabrics TCP target TLS encryption support" 99675b453eSHannes Reinecke depends on NVME_TARGET_TCP 100675b453eSHannes Reinecke select NET_HANDSHAKE 101675b453eSHannes Reinecke help 102675b453eSHannes Reinecke Enables TLS encryption for the NVMe TCP target using the netlink handshake API. 103675b453eSHannes Reinecke 104675b453eSHannes Reinecke The TLS handshake daemon is available at 105675b453eSHannes Reinecke https://github.com/oracle/ktls-utils. 106675b453eSHannes Reinecke 107675b453eSHannes Reinecke If unsure, say N. 108675b453eSHannes Reinecke 109db1312ddSHannes Reineckeconfig NVME_TARGET_AUTH 11029ac4b2fSShin'ichiro Kawasaki bool "NVMe over Fabrics In-band Authentication in target side" 111db1312ddSHannes Reinecke depends on NVME_TARGET 112d6800634SHannes Reinecke select NVME_AUTH 113db1312ddSHannes Reinecke help 11429ac4b2fSShin'ichiro Kawasaki This enables support for NVMe over Fabrics In-band Authentication in 11529ac4b2fSShin'ichiro Kawasaki target side. 116db1312ddSHannes Reinecke 117db1312ddSHannes Reinecke If unsure, say N. 118*0faa0fe6SDamien Le Moal 119*0faa0fe6SDamien Le Moalconfig NVME_TARGET_PCI_EPF 120*0faa0fe6SDamien Le Moal tristate "NVMe PCI Endpoint Function target support" 121*0faa0fe6SDamien Le Moal depends on NVME_TARGET && PCI_ENDPOINT 122*0faa0fe6SDamien Le Moal depends on NVME_CORE=y || NVME_CORE=NVME_TARGET 123*0faa0fe6SDamien Le Moal help 124*0faa0fe6SDamien Le Moal This enables the NVMe PCI Endpoint Function target driver support, 125*0faa0fe6SDamien Le Moal which allows creating a NVMe PCI controller using an endpoint mode 126*0faa0fe6SDamien Le Moal capable PCI controller. 127*0faa0fe6SDamien Le Moal 128*0faa0fe6SDamien Le Moal If unsure, say N. 129