| # SPDX-License-Identifier: GPL-2.0-only | |
| config NVME_TARGET | |
| tristate "NVMe Target support" | |
| depends on BLOCK | |
| select CONFIGFS_FS | |
| select NVME_KEYRING if NVME_TARGET_TCP_TLS | |
| select KEYS if NVME_TARGET_TCP_TLS | |
| select SGL_ALLOC | |
| help | |
| This enabled target side support for the NVMe protocol, that is | |
| it allows the Linux kernel to implement NVMe subsystems and | |
| controllers and export Linux block devices as NVMe namespaces. | |
| You need to select at least one of the transports below to make this | |
| functionality useful. | |
| To configure the NVMe target you probably want to use the nvmetcli | |
| tool from http://git.infradead.org/users/hch/nvmetcli.git. | |
| config NVME_TARGET_DEBUGFS | |
| bool "NVMe Target debugfs support" | |
| depends on NVME_TARGET | |
| help | |
| This enables debugfs support to display the connected controllers | |
| to each subsystem | |
| If unsure, say N. | |
| config NVME_TARGET_PASSTHRU | |
| bool "NVMe Target Passthrough support" | |
| depends on NVME_TARGET | |
| depends on NVME_CORE=y || NVME_CORE=NVME_TARGET | |
| help | |
| This enables target side NVMe passthru controller support for the | |
| NVMe Over Fabrics protocol. It allows for hosts to manage and | |
| directly access an actual NVMe controller residing on the target | |
| side, including executing Vendor Unique Commands. | |
| If unsure, say N. | |
| config NVME_TARGET_LOOP | |
| tristate "NVMe loopback device support" | |
| depends on NVME_TARGET | |
| select NVME_FABRICS | |
| select SG_POOL | |
| help | |
| This enables the NVMe loopback device support, which can be useful | |
| to test NVMe host and target side features. | |
| If unsure, say N. | |
| config NVME_TARGET_RDMA | |
| tristate "NVMe over Fabrics RDMA target support" | |
| depends on INFINIBAND && INFINIBAND_ADDR_TRANS | |
| depends on NVME_TARGET | |
| select SGL_ALLOC | |
| help | |
| This enables the NVMe RDMA target support, which allows exporting NVMe | |
| devices over RDMA. | |
| If unsure, say N. | |
| config NVME_TARGET_FC | |
| tristate "NVMe over Fabrics FC target driver" | |
| depends on NVME_TARGET | |
| depends on HAS_DMA | |
| select SGL_ALLOC | |
| help | |
| This enables the NVMe FC target support, which allows exporting NVMe | |
| devices over FC. | |
| If unsure, say N. | |
| config NVME_TARGET_FCLOOP | |
| tristate "NVMe over Fabrics FC Transport Loopback Test driver" | |
| depends on NVME_TARGET | |
| select NVME_FABRICS | |
| select SG_POOL | |
| depends on NVME_FC | |
| depends on NVME_TARGET_FC | |
| help | |
| This enables the NVMe FC loopback test support, which can be useful | |
| to test NVMe-FC transport interfaces. | |
| If unsure, say N. | |
| config NVME_TARGET_TCP | |
| tristate "NVMe over Fabrics TCP target support" | |
| depends on INET | |
| depends on NVME_TARGET | |
| help | |
| This enables the NVMe TCP target support, which allows exporting NVMe | |
| devices over TCP. | |
| If unsure, say N. | |
| config NVME_TARGET_TCP_TLS | |
| bool "NVMe over Fabrics TCP target TLS encryption support" | |
| depends on NVME_TARGET_TCP | |
| select NET_HANDSHAKE | |
| select TLS | |
| help | |
| Enables TLS encryption for the NVMe TCP target using the netlink handshake API. | |
| The TLS handshake daemon is available at | |
| https://github.com/oracle/ktls-utils. | |
| If unsure, say N. | |
| config NVME_TARGET_AUTH | |
| bool "NVMe over Fabrics In-band Authentication in target side" | |
| depends on NVME_TARGET | |
| select NVME_AUTH | |
| help | |
| This enables support for NVMe over Fabrics In-band Authentication in | |
| target side. | |
| If unsure, say N. | |
| config NVME_TARGET_AUTH_DEBUG | |
| bool "NVMe over Fabrics In-band Authentication debug messages" | |
| depends on NVME_TARGET_AUTH | |
| help | |
| This enables additional debug messages including the generated | |
| DH-HMAC-CHAP secrets to help debugging authentication failures. | |
| If unsure, say N. | |
| config NVME_TARGET_PCI_EPF | |
| tristate "NVMe PCI Endpoint Function target support" | |
| depends on NVME_TARGET && PCI_ENDPOINT | |
| depends on NVME_CORE=y || NVME_CORE=NVME_TARGET | |
| help | |
| This enables the NVMe PCI Endpoint Function target driver support, | |
| which allows creating a NVMe PCI controller using an endpoint mode | |
| capable PCI controller. | |
| If unsure, say N. |