GNU Linux-libre 6.8.7-gnu
[releases.git] / drivers / nvme / target / Kconfig
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 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
21 config 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
33 config 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
44 config 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
55 config 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
66 config 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
79 config 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
89 config 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
101 config 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.