Kconfig 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. config NVME_TARGET
  3. tristate "NVMe Target support"
  4. depends on BLOCK
  5. select CONFIGFS_FS
  6. select NVME_KEYRING if NVME_TARGET_TCP_TLS
  7. select KEYS if NVME_TARGET_TCP_TLS
  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. To configure the NVMe target you probably want to use the nvmetcli
  16. tool from http://git.infradead.org/users/hch/nvmetcli.git.
  17. config NVME_TARGET_DEBUGFS
  18. bool "NVMe Target debugfs support"
  19. depends on NVME_TARGET
  20. help
  21. This enables debugfs support to display the connected controllers
  22. to each subsystem
  23. If unsure, say N.
  24. config NVME_TARGET_PASSTHRU
  25. bool "NVMe Target Passthrough support"
  26. depends on NVME_TARGET
  27. depends on NVME_CORE=y || NVME_CORE=NVME_TARGET
  28. help
  29. This enables target side NVMe passthru controller support for the
  30. NVMe Over Fabrics protocol. It allows for hosts to manage and
  31. directly access an actual NVMe controller residing on the target
  32. side, including executing Vendor Unique Commands.
  33. If unsure, say N.
  34. config NVME_TARGET_LOOP
  35. tristate "NVMe loopback device support"
  36. depends on NVME_TARGET
  37. select NVME_FABRICS
  38. select SG_POOL
  39. help
  40. This enables the NVMe loopback device support, which can be useful
  41. to test NVMe host and target side features.
  42. If unsure, say N.
  43. config NVME_TARGET_RDMA
  44. tristate "NVMe over Fabrics RDMA target support"
  45. depends on INFINIBAND && INFINIBAND_ADDR_TRANS
  46. depends on NVME_TARGET
  47. select SGL_ALLOC
  48. help
  49. This enables the NVMe RDMA target support, which allows exporting NVMe
  50. devices over RDMA.
  51. If unsure, say N.
  52. config NVME_TARGET_FC
  53. tristate "NVMe over Fabrics FC target driver"
  54. depends on NVME_TARGET
  55. depends on HAS_DMA
  56. select SGL_ALLOC
  57. help
  58. This enables the NVMe FC target support, which allows exporting NVMe
  59. devices over FC.
  60. If unsure, say N.
  61. config NVME_TARGET_FCLOOP
  62. tristate "NVMe over Fabrics FC Transport Loopback Test driver"
  63. depends on NVME_TARGET
  64. select NVME_FABRICS
  65. select SG_POOL
  66. depends on NVME_FC
  67. depends on NVME_TARGET_FC
  68. help
  69. This enables the NVMe FC loopback test support, which can be useful
  70. to test NVMe-FC transport interfaces.
  71. If unsure, say N.
  72. config NVME_TARGET_TCP
  73. tristate "NVMe over Fabrics TCP target support"
  74. depends on INET
  75. depends on NVME_TARGET
  76. help
  77. This enables the NVMe TCP target support, which allows exporting NVMe
  78. devices over TCP.
  79. If unsure, say N.
  80. config NVME_TARGET_TCP_TLS
  81. bool "NVMe over Fabrics TCP target TLS encryption support"
  82. depends on NVME_TARGET_TCP
  83. select NET_HANDSHAKE
  84. select TLS
  85. help
  86. Enables TLS encryption for the NVMe TCP target using the netlink handshake API.
  87. The TLS handshake daemon is available at
  88. https://github.com/oracle/ktls-utils.
  89. If unsure, say N.
  90. config NVME_TARGET_AUTH
  91. bool "NVMe over Fabrics In-band Authentication in target side"
  92. depends on NVME_TARGET
  93. select NVME_AUTH
  94. help
  95. This enables support for NVMe over Fabrics In-band Authentication in
  96. target side.
  97. If unsure, say N.
  98. config NVME_TARGET_PCI_EPF
  99. tristate "NVMe PCI Endpoint Function target support"
  100. depends on NVME_TARGET && PCI_ENDPOINT
  101. depends on NVME_CORE=y || NVME_CORE=NVME_TARGET
  102. help
  103. This enables the NVMe PCI Endpoint Function target driver support,
  104. which allows creating a NVMe PCI controller using an endpoint mode
  105. capable PCI controller.
  106. If unsure, say N.