Go to file
Xiao Wang a3f8150eac net/ifcvf: add ifcvf vDPA driver
The IFCVF vDPA (vhost data path acceleration) driver provides support for
the Intel FPGA 100G VF (IFCVF). IFCVF's datapath is virtio ring compatible,
it works as a HW vhost backend which can send/receive packets to/from
virtio directly by DMA.

Different VF devices serve different virtio frontends which are in
different VMs, so each VF needs to have its own DMA address translation
service. During the driver probe a new container is created, with this
container vDPA driver can program DMA remapping table with the VM's memory
region information.

Key vDPA driver ops implemented:

- ifcvf_dev_config:
  Enable VF data path with virtio information provided by vhost lib,
  including IOMMU programming to enable VF DMA to VM's memory, VFIO
  interrupt setup to route HW interrupt to virtio driver, create notify
  relay thread to translate virtio driver's kick to a MMIO write onto HW,
  HW queues configuration.

- ifcvf_dev_close:
  Revoke all the setup in ifcvf_dev_config.

Live migration feature is supported by IFCVF and this driver enables
it. For the dirty page logging, VF helps to log for packet buffer write,
driver helps to make the used ring as dirty when device stops.

Because vDPA driver needs to set up MSI-X vector to interrupt the
guest, only vfio-pci is supported currently.

Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-04-27 15:54:55 +01:00
app app/pdump: remove unused socket path options 2018-04-26 18:19:29 +02:00
buildtools buildtools: output build failure reason to stderr 2018-02-08 22:25:37 +01:00
config net/ifcvf: add ifcvf vDPA driver 2018-04-27 15:54:55 +01:00
devtools crypto/ccp: add AMD ccp skeleton PMD 2018-04-23 18:19:43 +01:00
doc net/virtio: skip device probe in vDPA mode 2018-04-27 15:54:55 +01:00
drivers net/ifcvf: add ifcvf vDPA driver 2018-04-27 15:54:55 +01:00
examples service: remove experimental tags 2018-04-25 14:57:37 +02:00
kernel build: clean up building kernel modules using meson 2018-04-17 16:09:43 +02:00
lib vfio: add multi container support 2018-04-27 15:54:55 +01:00
license license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
mk net/ifcvf: add ifcvf vDPA driver 2018-04-27 15:54:55 +01:00
pkg version: 18.02.0 2018-02-14 19:11:02 +01:00
test test/mempool: fix autotest retry 2018-04-26 18:16:12 +02:00
usertools usertools: add Cavium TIM as an event device 2018-04-16 11:11:06 +02:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore devtools: add tags and cscope index generation 2017-04-30 12:57:04 +02:00
GNUmakefile move kernel modules directories 2018-03-21 23:04:21 +01:00
MAINTAINERS net/ifcvf: add ifcvf vDPA driver 2018-04-27 15:54:55 +01:00
Makefile license: use SPDX tag in root makefile 2018-01-04 22:41:38 +01:00
meson_options.txt net/mvpp2: add to meson build 2018-04-19 14:10:44 +02:00
meson.build move kernel modules directories 2018-03-21 23:04:21 +01:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org