Kconfig 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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
  33. select VHOST_IOTLB
  34. select IOMMU_IOVA
  35. help
  36. With VDUSE it is possible to emulate a vDPA Device
  37. in a userspace program.
  38. config IFCVF
  39. tristate "Intel IFC VF vDPA driver"
  40. depends on PCI_MSI
  41. help
  42. This kernel module can drive Intel IFC VF NIC to offload
  43. virtio dataplane traffic to hardware.
  44. To compile this driver as a module, choose M here: the module will
  45. be called ifcvf.
  46. config MLX5_VDPA
  47. bool
  48. select VHOST_IOTLB
  49. help
  50. Support library for Mellanox VDPA drivers. Provides code that is
  51. common for all types of VDPA drivers. The following drivers are planned:
  52. net, block.
  53. config MLX5_VDPA_NET
  54. tristate "vDPA driver for ConnectX devices"
  55. select MLX5_VDPA
  56. select VHOST_RING
  57. depends on MLX5_CORE
  58. help
  59. VDPA network driver for ConnectX6 and newer. Provides offloading
  60. of virtio net datapath such that descriptors put on the ring will
  61. be executed by the hardware. It also supports a variety of stateless
  62. offloads depending on the actual device used and firmware version.
  63. config MLX5_VDPA_STEERING_DEBUG
  64. bool "expose steering counters on debugfs"
  65. select MLX5_VDPA
  66. help
  67. Expose RX steering counters in debugfs to aid in debugging. For each VLAN
  68. or non VLAN interface, two hardware counters are added to the RX flow
  69. table: one for unicast and one for multicast.
  70. The counters counts the number of packets and bytes and exposes them in
  71. debugfs. Once can read the counters using, e.g.:
  72. cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/ucast/packets
  73. cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/mcast/bytes
  74. config VP_VDPA
  75. tristate "Virtio PCI bridge vDPA driver"
  76. select VIRTIO_PCI_LIB
  77. depends on PCI_MSI
  78. help
  79. This kernel module bridges virtio PCI device to vDPA bus.
  80. config ALIBABA_ENI_VDPA
  81. tristate "vDPA driver for Alibaba ENI"
  82. select VIRTIO_PCI_LIB_LEGACY
  83. depends on PCI_MSI && X86
  84. help
  85. VDPA driver for Alibaba ENI (Elastic Network Interface) which is built upon
  86. virtio 0.9.5 specification.
  87. config SNET_VDPA
  88. tristate "SolidRun's vDPA driver for SolidNET"
  89. depends on PCI_MSI && PCI_IOV && (HWMON || HWMON=n)
  90. # This driver MAY create a HWMON device.
  91. # Depending on (HWMON || HWMON=n) ensures that:
  92. # If HWMON=n the driver can be compiled either as a module or built-in.
  93. # If HWMON=y the driver can be compiled either as a module or built-in.
  94. # If HWMON=m the driver is forced to be compiled as a module.
  95. # By doing so, IS_ENABLED can be used instead of IS_REACHABLE
  96. help
  97. vDPA driver for SolidNET DPU.
  98. With this driver, the VirtIO dataplane can be
  99. offloaded to a SolidNET DPU.
  100. This driver includes a HW monitor device that
  101. reads health values from the DPU.
  102. config PDS_VDPA
  103. tristate "vDPA driver for AMD/Pensando DSC devices"
  104. select VIRTIO_PCI_LIB
  105. depends on PCI_MSI
  106. depends on PDS_CORE
  107. help
  108. vDPA network driver for AMD/Pensando's PDS Core devices.
  109. With this driver, the VirtIO dataplane can be
  110. offloaded to an AMD/Pensando DSC device.
  111. config OCTEONEP_VDPA
  112. tristate "vDPA driver for Octeon DPU devices"
  113. depends on m
  114. depends on PCI_MSI
  115. help
  116. This is a vDPA driver designed for Marvell's Octeon DPU devices.
  117. This driver enables the offloading of the VirtIO dataplane to an
  118. Octeon DPU device.
  119. Please note that this driver must be built as a module and it
  120. cannot be loaded until the Octeon emulation software is running.
  121. endif # VDPA