GNU Linux-libre 5.19-rc6-gnu
[releases.git] / drivers / vdpa / Kconfig
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
10 if VDPA
11
12 config VDPA_SIM
13         tristate "vDPA device simulator core"
14         depends on RUNTIME_TESTING_MENU && HAS_DMA
15         select DMA_OPS
16         select VHOST_RING
17         select IOMMU_IOVA
18         help
19           Enable this module to support vDPA device simulators. These devices
20           are used for testing, prototyping and development of vDPA.
21
22 config VDPA_SIM_NET
23         tristate "vDPA simulator for networking device"
24         depends on VDPA_SIM
25         select GENERIC_NET_UTILS
26         help
27           vDPA networking device simulator which loops TX traffic back to RX.
28
29 config VDPA_SIM_BLOCK
30         tristate "vDPA simulator for block device"
31         depends on VDPA_SIM
32         help
33           vDPA block device simulator which terminates IO request in a
34           memory buffer.
35
36 config VDPA_USER
37         tristate "VDUSE (vDPA Device in Userspace) support"
38         depends on EVENTFD && MMU && HAS_DMA
39         select DMA_OPS
40         select VHOST_IOTLB
41         select IOMMU_IOVA
42         help
43           With VDUSE it is possible to emulate a vDPA Device
44           in a userspace program.
45
46 config IFCVF
47         tristate "Intel IFC VF vDPA driver"
48         depends on PCI_MSI
49         help
50           This kernel module can drive Intel IFC VF NIC to offload
51           virtio dataplane traffic to hardware.
52           To compile this driver as a module, choose M here: the module will
53           be called ifcvf.
54
55 config MLX5_VDPA
56         bool
57         select VHOST_IOTLB
58         help
59           Support library for Mellanox VDPA drivers. Provides code that is
60           common for all types of VDPA drivers. The following drivers are planned:
61           net, block.
62
63 config MLX5_VDPA_NET
64         tristate "vDPA driver for ConnectX devices"
65         select MLX5_VDPA
66         select VHOST_RING
67         depends on MLX5_CORE
68         help
69           VDPA network driver for ConnectX6 and newer. Provides offloading
70           of virtio net datapath such that descriptors put on the ring will
71           be executed by the hardware. It also supports a variety of stateless
72           offloads depending on the actual device used and firmware version.
73
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
81 config ALIBABA_ENI_VDPA
82         tristate "vDPA driver for Alibaba ENI"
83         select VIRTIO_PCI_LIB_LEGACY
84         depends on PCI_MSI && X86
85         help
86           VDPA driver for Alibaba ENI (Elastic Network Interface) which is built upon
87           virtio 0.9.5 specification.
88
89 endif # VDPA