xref: /linux/drivers/vdpa/Kconfig (revision 0a59975088d37f69815f656193c1e1e057feb494)
1# SPDX-License-Identifier: GPL-2.0-only
2menuconfig 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
10if VDPA
11
12config 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
22config 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
29config 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
36config 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
46config 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
55config 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
63config 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
74config MLX5_VDPA_STEERING_DEBUG
75	bool "expose steering counters on debugfs"
76	select MLX5_VDPA
77	help
78	  Expose RX steering counters in debugfs to aid in debugging. For each VLAN
79	  or non VLAN interface, two hardware counters are added to the RX flow
80	  table: one for unicast and one for multicast.
81	  The counters counts the number of packets and bytes and exposes them in
82	  debugfs. Once can read the counters using, e.g.:
83	  cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/ucast/packets
84	  cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/mcast/bytes
85
86config VP_VDPA
87	tristate "Virtio PCI bridge vDPA driver"
88	select VIRTIO_PCI_LIB
89	depends on PCI_MSI
90	help
91	  This kernel module bridges virtio PCI device to vDPA bus.
92
93config ALIBABA_ENI_VDPA
94	tristate "vDPA driver for Alibaba ENI"
95	select VIRTIO_PCI_LIB_LEGACY
96	depends on PCI_MSI && X86
97	help
98	  VDPA driver for Alibaba ENI (Elastic Network Interface) which is built upon
99	  virtio 0.9.5 specification.
100
101endif # VDPA
102