162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci 362306a36Sopenharmony_ciconfig NVME_TARGET 462306a36Sopenharmony_ci tristate "NVMe Target support" 562306a36Sopenharmony_ci depends on BLOCK 662306a36Sopenharmony_ci depends on CONFIGFS_FS 762306a36Sopenharmony_ci select BLK_DEV_INTEGRITY_T10 if BLK_DEV_INTEGRITY 862306a36Sopenharmony_ci select SGL_ALLOC 962306a36Sopenharmony_ci help 1062306a36Sopenharmony_ci This enabled target side support for the NVMe protocol, that is 1162306a36Sopenharmony_ci it allows the Linux kernel to implement NVMe subsystems and 1262306a36Sopenharmony_ci controllers and export Linux block devices as NVMe namespaces. 1362306a36Sopenharmony_ci You need to select at least one of the transports below to make this 1462306a36Sopenharmony_ci functionality useful. 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci To configure the NVMe target you probably want to use the nvmetcli 1762306a36Sopenharmony_ci tool from http://git.infradead.org/users/hch/nvmetcli.git. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciconfig NVME_TARGET_PASSTHRU 2062306a36Sopenharmony_ci bool "NVMe Target Passthrough support" 2162306a36Sopenharmony_ci depends on NVME_TARGET 2262306a36Sopenharmony_ci depends on NVME_CORE=y || NVME_CORE=NVME_TARGET 2362306a36Sopenharmony_ci help 2462306a36Sopenharmony_ci This enables target side NVMe passthru controller support for the 2562306a36Sopenharmony_ci NVMe Over Fabrics protocol. It allows for hosts to manage and 2662306a36Sopenharmony_ci directly access an actual NVMe controller residing on the target 2762306a36Sopenharmony_ci side, including executing Vendor Unique Commands. 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci If unsure, say N. 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ciconfig NVME_TARGET_LOOP 3262306a36Sopenharmony_ci tristate "NVMe loopback device support" 3362306a36Sopenharmony_ci depends on NVME_TARGET 3462306a36Sopenharmony_ci select NVME_FABRICS 3562306a36Sopenharmony_ci select SG_POOL 3662306a36Sopenharmony_ci help 3762306a36Sopenharmony_ci This enables the NVMe loopback device support, which can be useful 3862306a36Sopenharmony_ci to test NVMe host and target side features. 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci If unsure, say N. 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ciconfig NVME_TARGET_RDMA 4362306a36Sopenharmony_ci tristate "NVMe over Fabrics RDMA target support" 4462306a36Sopenharmony_ci depends on INFINIBAND && INFINIBAND_ADDR_TRANS 4562306a36Sopenharmony_ci depends on NVME_TARGET 4662306a36Sopenharmony_ci select SGL_ALLOC 4762306a36Sopenharmony_ci help 4862306a36Sopenharmony_ci This enables the NVMe RDMA target support, which allows exporting NVMe 4962306a36Sopenharmony_ci devices over RDMA. 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci If unsure, say N. 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ciconfig NVME_TARGET_FC 5462306a36Sopenharmony_ci tristate "NVMe over Fabrics FC target driver" 5562306a36Sopenharmony_ci depends on NVME_TARGET 5662306a36Sopenharmony_ci depends on HAS_DMA 5762306a36Sopenharmony_ci select SGL_ALLOC 5862306a36Sopenharmony_ci help 5962306a36Sopenharmony_ci This enables the NVMe FC target support, which allows exporting NVMe 6062306a36Sopenharmony_ci devices over FC. 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci If unsure, say N. 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ciconfig NVME_TARGET_FCLOOP 6562306a36Sopenharmony_ci tristate "NVMe over Fabrics FC Transport Loopback Test driver" 6662306a36Sopenharmony_ci depends on NVME_TARGET 6762306a36Sopenharmony_ci select NVME_FABRICS 6862306a36Sopenharmony_ci select SG_POOL 6962306a36Sopenharmony_ci depends on NVME_FC 7062306a36Sopenharmony_ci depends on NVME_TARGET_FC 7162306a36Sopenharmony_ci help 7262306a36Sopenharmony_ci This enables the NVMe FC loopback test support, which can be useful 7362306a36Sopenharmony_ci to test NVMe-FC transport interfaces. 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci If unsure, say N. 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ciconfig NVME_TARGET_TCP 7862306a36Sopenharmony_ci tristate "NVMe over Fabrics TCP target support" 7962306a36Sopenharmony_ci depends on INET 8062306a36Sopenharmony_ci depends on NVME_TARGET 8162306a36Sopenharmony_ci help 8262306a36Sopenharmony_ci This enables the NVMe TCP target support, which allows exporting NVMe 8362306a36Sopenharmony_ci devices over TCP. 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci If unsure, say N. 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ciconfig NVME_TARGET_AUTH 8862306a36Sopenharmony_ci bool "NVMe over Fabrics In-band Authentication support" 8962306a36Sopenharmony_ci depends on NVME_TARGET 9062306a36Sopenharmony_ci select NVME_COMMON 9162306a36Sopenharmony_ci select CRYPTO 9262306a36Sopenharmony_ci select CRYPTO_HMAC 9362306a36Sopenharmony_ci select CRYPTO_SHA256 9462306a36Sopenharmony_ci select CRYPTO_SHA512 9562306a36Sopenharmony_ci select CRYPTO_DH 9662306a36Sopenharmony_ci select CRYPTO_DH_RFC7919_GROUPS 9762306a36Sopenharmony_ci help 9862306a36Sopenharmony_ci This enables support for NVMe over Fabrics In-band Authentication 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci If unsure, say N. 101