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