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