79fc64035ee30f92d88bc826f43ba00f1a3e7ef7
[linux-2.6-block.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 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.