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 depends on CONFIGFS_FS
7 select NVME_KEYRING if NVME_TARGET_TCP_TLS
8 select KEYS if NVME_TARGET_TCP_TLS
9 select BLK_DEV_INTEGRITY_T10 if BLK_DEV_INTEGRITY
10 select SGL_ALLOC
11 help
12 This enabled target side support for the NVMe protocol, that is
13 it allows the Linux kernel to implement NVMe subsystems and
14 controllers and export Linux block devices as NVMe namespaces.
15 You need to select at least one of the transports below to make this
16 functionality useful.
17
18 To configure the NVMe target you probably want to use the nvmetcli
19 tool from http://git.infradead.org/users/hch/nvmetcli.git.
20
21config NVME_TARGET_PASSTHRU
22 bool "NVMe Target Passthrough support"
23 depends on NVME_TARGET
24 depends on NVME_CORE=y || NVME_CORE=NVME_TARGET
25 help
26 This enables target side NVMe passthru controller support for the
27 NVMe Over Fabrics protocol. It allows for hosts to manage and
28 directly access an actual NVMe controller residing on the target
29 side, including executing Vendor Unique Commands.
30
31 If unsure, say N.
32
33config NVME_TARGET_LOOP
34 tristate "NVMe loopback device support"
35 depends on NVME_TARGET
36 select NVME_FABRICS
37 select SG_POOL
38 help
39 This enables the NVMe loopback device support, which can be useful
40 to test NVMe host and target side features.
41
42 If unsure, say N.
43
44config NVME_TARGET_RDMA
45 tristate "NVMe over Fabrics RDMA target support"
46 depends on INFINIBAND && INFINIBAND_ADDR_TRANS
47 depends on NVME_TARGET
48 select SGL_ALLOC
49 help
50 This enables the NVMe RDMA target support, which allows exporting NVMe
51 devices over RDMA.
52
53 If unsure, say N.
54
55config NVME_TARGET_FC
56 tristate "NVMe over Fabrics FC target driver"
57 depends on NVME_TARGET
58 depends on HAS_DMA
59 select SGL_ALLOC
60 help
61 This enables the NVMe FC target support, which allows exporting NVMe
62 devices over FC.
63
64 If unsure, say N.
65
66config NVME_TARGET_FCLOOP
67 tristate "NVMe over Fabrics FC Transport Loopback Test driver"
68 depends on NVME_TARGET
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
89config NVME_TARGET_TCP_TLS
90 bool "NVMe over Fabrics TCP target TLS encryption support"
91 depends on NVME_TARGET_TCP
92 select NET_HANDSHAKE
93 help
94 Enables TLS encryption for the NVMe TCP target using the netlink handshake API.
95
96 The TLS handshake daemon is available at
97 https://github.com/oracle/ktls-utils.
98
99 If unsure, say N.
100
101config NVME_TARGET_AUTH
102 bool "NVMe over Fabrics In-band Authentication in target side"
103 depends on NVME_TARGET
104 select NVME_AUTH
105 help
106 This enables support for NVMe over Fabrics In-band Authentication in
107 target side.
108
109 If unsure, say N.