# SPDX-License-Identifier: GPL-2.0-only
menuconfig VDPA
	tristate "vDPA drivers"
	depends on NET
	help
	  Enable this module to support vDPA device that uses a
	  datapath which complies with virtio specifications with
	  vendor specific control path.

if VDPA

config VDPA_SIM
	tristate "vDPA device simulator core"
	depends on RUNTIME_TESTING_MENU && HAS_DMA
	select DMA_OPS
	select VHOST_RING
	select IOMMU_IOVA
	help
	  Enable this module to support vDPA device simulators. These devices
	  are used for testing, prototyping and development of vDPA.

config VDPA_SIM_NET
	tristate "vDPA simulator for networking device"
	depends on VDPA_SIM
	select GENERIC_NET_UTILS
	help
	  vDPA networking device simulator which loops TX traffic back to RX.

config VDPA_SIM_BLOCK
	tristate "vDPA simulator for block device"
	depends on VDPA_SIM
	help
	  vDPA block device simulator which terminates IO request in a
	  memory buffer.

config VDPA_USER
	tristate "VDUSE (vDPA Device in Userspace) support"
	depends on EVENTFD && MMU && HAS_DMA
	select DMA_OPS
	select VHOST_IOTLB
	select IOMMU_IOVA
	help
	  With VDUSE it is possible to emulate a vDPA Device
	  in a userspace program.

config IFCVF
	tristate "Intel IFC VF vDPA driver"
	depends on PCI_MSI
	help
	  This kernel module can drive Intel IFC VF NIC to offload
	  virtio dataplane traffic to hardware.
	  To compile this driver as a module, choose M here: the module will
	  be called ifcvf.

config MLX5_VDPA
	bool
	select VHOST_IOTLB
	help
	  Support library for Mellanox VDPA drivers. Provides code that is
	  common for all types of VDPA drivers. The following drivers are planned:
	  net, block.

config MLX5_VDPA_NET
	tristate "vDPA driver for ConnectX devices"
	select MLX5_VDPA
	select VHOST_RING
	depends on MLX5_CORE
	help
	  VDPA network driver for ConnectX6 and newer. Provides offloading
	  of virtio net datapath such that descriptors put on the ring will
	  be executed by the hardware. It also supports a variety of stateless
	  offloads depending on the actual device used and firmware version.

config MLX5_VDPA_STEERING_DEBUG
	bool "expose steering counters on debugfs"
	select MLX5_VDPA
	help
	  Expose RX steering counters in debugfs to aid in debugging. For each VLAN
	  or non VLAN interface, two hardware counters are added to the RX flow
	  table: one for unicast and one for multicast.
	  The counters counts the number of packets and bytes and exposes them in
	  debugfs. Once can read the counters using, e.g.:
	  cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/ucast/packets
	  cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/mcast/bytes

config VP_VDPA
	tristate "Virtio PCI bridge vDPA driver"
	select VIRTIO_PCI_LIB
	depends on PCI_MSI
	help
	  This kernel module bridges virtio PCI device to vDPA bus.

config ALIBABA_ENI_VDPA
	tristate "vDPA driver for Alibaba ENI"
	select VIRTIO_PCI_LIB_LEGACY
	depends on PCI_MSI && X86
	help
	  VDPA driver for Alibaba ENI (Elastic Network Interface) which is built upon
	  virtio 0.9.5 specification.

 config SNET_VDPA
	tristate "SolidRun's vDPA driver for SolidNET"
	depends on PCI_MSI && PCI_IOV && (HWMON || HWMON=n)

	# This driver MAY create a HWMON device.
	# Depending on (HWMON || HWMON=n) ensures that:
	# If HWMON=n the driver can be compiled either as a module or built-in.
	# If HWMON=y the driver can be compiled either as a module or built-in.
	# If HWMON=m the driver is forced to be compiled as a module.
	# By doing so, IS_ENABLED can be used instead of IS_REACHABLE

	help
	  vDPA driver for SolidNET DPU.
	  With this driver, the VirtIO dataplane can be
	  offloaded to a SolidNET DPU.
	  This driver includes a HW monitor device that
	  reads health values from the DPU.

config PDS_VDPA
	tristate "vDPA driver for AMD/Pensando DSC devices"
	select VIRTIO_PCI_LIB
	depends on PCI_MSI
	depends on PDS_CORE
	help
	  vDPA network driver for AMD/Pensando's PDS Core devices.
	  With this driver, the VirtIO dataplane can be
	  offloaded to an AMD/Pensando DSC device.

endif # VDPA
