xref: /linux/drivers/nvme/target/Kconfig (revision 0b8061c340b643e01da431dd60c75a41bb1d31ec)
1# SPDX-License-Identifier: GPL-2.0-only
2
3config 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
19config 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
31config NVME_TARGET_LOOP
32	tristate "NVMe loopback device support"
33	depends on NVME_TARGET
34	select NVME_CORE
35	select NVME_FABRICS
36	select SG_POOL
37	help
38	  This enables the NVMe loopback device support, which can be useful
39	  to test NVMe host and target side features.
40
41	  If unsure, say N.
42
43config NVME_TARGET_RDMA
44	tristate "NVMe over Fabrics RDMA target support"
45	depends on INFINIBAND && INFINIBAND_ADDR_TRANS
46	depends on NVME_TARGET
47	select SGL_ALLOC
48	help
49	  This enables the NVMe RDMA target support, which allows exporting NVMe
50	  devices over RDMA.
51
52	  If unsure, say N.
53
54config NVME_TARGET_FC
55	tristate "NVMe over Fabrics FC target driver"
56	depends on NVME_TARGET
57	depends on HAS_DMA
58	select SGL_ALLOC
59	help
60	  This enables the NVMe FC target support, which allows exporting NVMe
61	  devices over FC.
62
63	  If unsure, say N.
64
65config NVME_TARGET_FCLOOP
66	tristate "NVMe over Fabrics FC Transport Loopback Test driver"
67	depends on NVME_TARGET
68	select NVME_CORE
69	select NVME_FABRICS
70	select SG_POOL
71	depends on NVME_FC
72	depends on NVME_TARGET_FC
73	help
74	  This enables the NVMe FC loopback test support, which can be useful
75	  to test NVMe-FC transport interfaces.
76
77	  If unsure, say N.
78
79config NVME_TARGET_TCP
80	tristate "NVMe over Fabrics TCP target support"
81	depends on INET
82	depends on NVME_TARGET
83	help
84	  This enables the NVMe TCP target support, which allows exporting NVMe
85	  devices over TCP.
86
87	  If unsure, say N.
88