0001 # SPDX-License-Identifier: GPL-2.0-only
0002 menuconfig VDPA
0003 tristate "vDPA drivers"
0004 depends on NET
0005 help
0006 Enable this module to support vDPA device that uses a
0007 datapath which complies with virtio specifications with
0008 vendor specific control path.
0009
0010 if VDPA
0011
0012 config VDPA_SIM
0013 tristate "vDPA device simulator core"
0014 depends on RUNTIME_TESTING_MENU && HAS_DMA
0015 select DMA_OPS
0016 select VHOST_RING
0017 select IOMMU_IOVA
0018 help
0019 Enable this module to support vDPA device simulators. These devices
0020 are used for testing, prototyping and development of vDPA.
0021
0022 config VDPA_SIM_NET
0023 tristate "vDPA simulator for networking device"
0024 depends on VDPA_SIM
0025 select GENERIC_NET_UTILS
0026 help
0027 vDPA networking device simulator which loops TX traffic back to RX.
0028
0029 config VDPA_SIM_BLOCK
0030 tristate "vDPA simulator for block device"
0031 depends on VDPA_SIM
0032 help
0033 vDPA block device simulator which terminates IO request in a
0034 memory buffer.
0035
0036 config VDPA_USER
0037 tristate "VDUSE (vDPA Device in Userspace) support"
0038 depends on EVENTFD && MMU && HAS_DMA
0039 select DMA_OPS
0040 select VHOST_IOTLB
0041 select IOMMU_IOVA
0042 help
0043 With VDUSE it is possible to emulate a vDPA Device
0044 in a userspace program.
0045
0046 config IFCVF
0047 tristate "Intel IFC VF vDPA driver"
0048 depends on PCI_MSI
0049 help
0050 This kernel module can drive Intel IFC VF NIC to offload
0051 virtio dataplane traffic to hardware.
0052 To compile this driver as a module, choose M here: the module will
0053 be called ifcvf.
0054
0055 config MLX5_VDPA
0056 bool
0057 select VHOST_IOTLB
0058 help
0059 Support library for Mellanox VDPA drivers. Provides code that is
0060 common for all types of VDPA drivers. The following drivers are planned:
0061 net, block.
0062
0063 config MLX5_VDPA_NET
0064 tristate "vDPA driver for ConnectX devices"
0065 select MLX5_VDPA
0066 select VHOST_RING
0067 depends on MLX5_CORE
0068 help
0069 VDPA network driver for ConnectX6 and newer. Provides offloading
0070 of virtio net datapath such that descriptors put on the ring will
0071 be executed by the hardware. It also supports a variety of stateless
0072 offloads depending on the actual device used and firmware version.
0073
0074 config VP_VDPA
0075 tristate "Virtio PCI bridge vDPA driver"
0076 select VIRTIO_PCI_LIB
0077 depends on PCI_MSI
0078 help
0079 This kernel module bridges virtio PCI device to vDPA bus.
0080
0081 config ALIBABA_ENI_VDPA
0082 tristate "vDPA driver for Alibaba ENI"
0083 select VIRTIO_PCI_LIB_LEGACY
0084 depends on PCI_MSI && X86
0085 help
0086 VDPA driver for Alibaba ENI (Elastic Network Interface) which is built upon
0087 virtio 0.9.5 specification.
0088
0089 endif # VDPA