Kconfig 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. menuconfig VDPA
  3. tristate "vDPA drivers"
  4. depends on NET
  5. help
  6. Enable this module to support vDPA device that uses a
  7. datapath which complies with virtio specifications with
  8. vendor specific control path.
  9. if VDPA
  10. config VDPA_SIM
  11. tristate "vDPA device simulator core"
  12. depends on RUNTIME_TESTING_MENU
  13. select VHOST_RING
  14. select IOMMU_IOVA
  15. help
  16. Enable this module to support vDPA device simulators. These devices
  17. are used for testing, prototyping and development of vDPA.
  18. config VDPA_SIM_NET
  19. tristate "vDPA simulator for networking device"
  20. depends on VDPA_SIM
  21. select GENERIC_NET_UTILS
  22. help
  23. vDPA networking device simulator which loops TX traffic back to RX.
  24. config VDPA_SIM_BLOCK
  25. tristate "vDPA simulator for block device"
  26. depends on VDPA_SIM
  27. help
  28. vDPA block device simulator which terminates IO request in a
  29. memory buffer.
  30. config VDPA_USER
  31. tristate "VDUSE (vDPA Device in Userspace) support"
  32. depends on EVENTFD && MMU && HAS_DMA
  33. #
  34. # This driver incorrectly tries to override the dma_ops. It should
  35. # never have done that, but for now keep it working on architectures
  36. # that use dma ops
  37. #
  38. depends on ARCH_HAS_DMA_OPS
  39. select VHOST_IOTLB
  40. select IOMMU_IOVA
  41. help
  42. With VDUSE it is possible to emulate a vDPA Device
  43. in a userspace program.
  44. config IFCVF
  45. tristate "Intel IFC VF vDPA driver"
  46. depends on PCI_MSI
  47. help
  48. This kernel module can drive Intel IFC VF NIC to offload
  49. virtio dataplane traffic to hardware.
  50. To compile this driver as a module, choose M here: the module will
  51. be called ifcvf.
  52. config MLX5_VDPA
  53. bool
  54. select VHOST_IOTLB
  55. help
  56. Support library for Mellanox VDPA drivers. Provides code that is
  57. common for all types of VDPA drivers. The following drivers are planned:
  58. net, block.
  59. config MLX5_VDPA_NET
  60. tristate "vDPA driver for ConnectX devices"
  61. select MLX5_VDPA
  62. select VHOST_RING
  63. depends on MLX5_CORE
  64. help
  65. VDPA network driver for ConnectX6 and newer. Provides offloading
  66. of virtio net datapath such that descriptors put on the ring will
  67. be executed by the hardware. It also supports a variety of stateless
  68. offloads depending on the actual device used and firmware version.
  69. config MLX5_VDPA_STEERING_DEBUG
  70. bool "expose steering counters on debugfs"
  71. select MLX5_VDPA
  72. help
  73. Expose RX steering counters in debugfs to aid in debugging. For each VLAN
  74. or non VLAN interface, two hardware counters are added to the RX flow
  75. table: one for unicast and one for multicast.
  76. The counters counts the number of packets and bytes and exposes them in
  77. debugfs. Once can read the counters using, e.g.:
  78. cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/ucast/packets
  79. cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/mcast/bytes
  80. config VP_VDPA
  81. tristate "Virtio PCI bridge vDPA driver"
  82. select VIRTIO_PCI_LIB
  83. depends on PCI_MSI
  84. help
  85. This kernel module bridges virtio PCI device to vDPA bus.
  86. config ALIBABA_ENI_VDPA
  87. tristate "vDPA driver for Alibaba ENI"
  88. select VIRTIO_PCI_LIB_LEGACY
  89. depends on PCI_MSI && X86
  90. help
  91. VDPA driver for Alibaba ENI (Elastic Network Interface) which is built upon
  92. virtio 0.9.5 specification.
  93. config SNET_VDPA
  94. tristate "SolidRun's vDPA driver for SolidNET"
  95. depends on PCI_MSI && PCI_IOV && (HWMON || HWMON=n)
  96. # This driver MAY create a HWMON device.
  97. # Depending on (HWMON || HWMON=n) ensures that:
  98. # If HWMON=n the driver can be compiled either as a module or built-in.
  99. # If HWMON=y the driver can be compiled either as a module or built-in.
  100. # If HWMON=m the driver is forced to be compiled as a module.
  101. # By doing so, IS_ENABLED can be used instead of IS_REACHABLE
  102. help
  103. vDPA driver for SolidNET DPU.
  104. With this driver, the VirtIO dataplane can be
  105. offloaded to a SolidNET DPU.
  106. This driver includes a HW monitor device that
  107. reads health values from the DPU.
  108. config PDS_VDPA
  109. tristate "vDPA driver for AMD/Pensando DSC devices"
  110. select VIRTIO_PCI_LIB
  111. depends on PCI_MSI
  112. depends on PDS_CORE
  113. help
  114. vDPA network driver for AMD/Pensando's PDS Core devices.
  115. With this driver, the VirtIO dataplane can be
  116. offloaded to an AMD/Pensando DSC device.
  117. config OCTEONEP_VDPA
  118. tristate "vDPA driver for Octeon DPU devices"
  119. depends on m
  120. depends on PCI_MSI
  121. help
  122. This is a vDPA driver designed for Marvell's Octeon DPU devices.
  123. This driver enables the offloading of the VirtIO dataplane to an
  124. Octeon DPU device.
  125. Please note that this driver must be built as a module and it
  126. cannot be loaded until the Octeon emulation software is running.
  127. endif # VDPA