xref: /openbmc/linux/drivers/nvme/target/Kconfig (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
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