Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: GPL-2.0-only
2
3config NVME_TARGET
4 tristate "NVMe Target support"
5 depends on BLOCK
6 select CONFIGFS_FS
7 select NVME_KEYRING if NVME_TARGET_TCP_TLS
8 select KEYS if NVME_TARGET_TCP_TLS
9 select SGL_ALLOC
10 help
11 This enabled target side support for the NVMe protocol, that is
12 it allows the Linux kernel to implement NVMe subsystems and
13 controllers and export Linux block devices as NVMe namespaces.
14 You need to select at least one of the transports below to make this
15 functionality useful.
16
17 To configure the NVMe target you probably want to use the nvmetcli
18 tool from http://git.infradead.org/users/hch/nvmetcli.git.
19
20config NVME_TARGET_DEBUGFS
21 bool "NVMe Target debugfs support"
22 depends on NVME_TARGET
23 help
24 This enables debugfs support to display the connected controllers
25 to each subsystem
26
27 If unsure, say N.
28
29config NVME_TARGET_PASSTHRU
30 bool "NVMe Target Passthrough support"
31 depends on NVME_TARGET
32 depends on NVME_CORE=y || NVME_CORE=NVME_TARGET
33 help
34 This enables target side NVMe passthru controller support for the
35 NVMe Over Fabrics protocol. It allows for hosts to manage and
36 directly access an actual NVMe controller residing on the target
37 side, including executing Vendor Unique Commands.
38
39 If unsure, say N.
40
41config NVME_TARGET_LOOP
42 tristate "NVMe loopback device support"
43 depends on NVME_TARGET
44 select NVME_FABRICS
45 select SG_POOL
46 help
47 This enables the NVMe loopback device support, which can be useful
48 to test NVMe host and target side features.
49
50 If unsure, say N.
51
52config NVME_TARGET_RDMA
53 tristate "NVMe over Fabrics RDMA target support"
54 depends on INFINIBAND && INFINIBAND_ADDR_TRANS
55 depends on NVME_TARGET
56 select SGL_ALLOC
57 help
58 This enables the NVMe RDMA target support, which allows exporting NVMe
59 devices over RDMA.
60
61 If unsure, say N.
62
63config NVME_TARGET_FC
64 tristate "NVMe over Fabrics FC target driver"
65 depends on NVME_TARGET
66 depends on HAS_DMA
67 select SGL_ALLOC
68 help
69 This enables the NVMe FC target support, which allows exporting NVMe
70 devices over FC.
71
72 If unsure, say N.
73
74config NVME_TARGET_FCLOOP
75 tristate "NVMe over Fabrics FC Transport Loopback Test driver"
76 depends on NVME_TARGET
77 select NVME_FABRICS
78 select SG_POOL
79 depends on NVME_FC
80 depends on NVME_TARGET_FC
81 help
82 This enables the NVMe FC loopback test support, which can be useful
83 to test NVMe-FC transport interfaces.
84
85 If unsure, say N.
86
87config NVME_TARGET_TCP
88 tristate "NVMe over Fabrics TCP target support"
89 depends on INET
90 depends on NVME_TARGET
91 help
92 This enables the NVMe TCP target support, which allows exporting NVMe
93 devices over TCP.
94
95 If unsure, say N.
96
97config NVME_TARGET_TCP_TLS
98 bool "NVMe over Fabrics TCP target TLS encryption support"
99 depends on NVME_TARGET_TCP
100 select NET_HANDSHAKE
101 select TLS
102 help
103 Enables TLS encryption for the NVMe TCP target using the netlink handshake API.
104
105 The TLS handshake daemon is available at
106 https://github.com/oracle/ktls-utils.
107
108 If unsure, say N.
109
110config NVME_TARGET_AUTH
111 bool "NVMe over Fabrics In-band Authentication in target side"
112 depends on NVME_TARGET
113 select NVME_AUTH
114 help
115 This enables support for NVMe over Fabrics In-band Authentication in
116 target side.
117
118 If unsure, say N.
119
120config NVME_TARGET_PCI_EPF
121 tristate "NVMe PCI Endpoint Function target support"
122 depends on NVME_TARGET && PCI_ENDPOINT
123 depends on NVME_CORE=y || NVME_CORE=NVME_TARGET
124 help
125 This enables the NVMe PCI Endpoint Function target driver support,
126 which allows creating a NVMe PCI controller using an endpoint mode
127 capable PCI controller.
128
129 If unsure, say N.