summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authorXiao Wang <xiao.w.wang@intel.com>2018-04-17 15:06:23 +0800
committerFerruh Yigit <ferruh.yigit@intel.com>2018-04-27 15:54:55 +0100
commita3f8150eac6d43e1fbf3b2047c655f42ded8c88b (patch)
tree9f164a91bd482d71b9c1105fa0b66b8ee717335b /mk
parent440f03c2537806f296790fc9786e2e2f8775096a (diff)
downloaddpdk-a3f8150eac6d43e1fbf3b2047c655f42ded8c88b.zip
dpdk-a3f8150eac6d43e1fbf3b2047c655f42ded8c88b.tar.gz
dpdk-a3f8150eac6d43e1fbf3b2047c655f42ded8c88b.tar.xz
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>
Diffstat (limited to 'mk')
-rw-r--r--mk/rte.app.mk3
1 files changed, 3 insertions, 0 deletions
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index 1324f19..29a2a60 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -187,6 +187,9 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_VDEV_NETVSC_PMD) += -lrte_pmd_vdev_netvsc
_LDLIBS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += -lrte_pmd_virtio
ifeq ($(CONFIG_RTE_LIBRTE_VHOST),y)
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_VHOST) += -lrte_pmd_vhost
+ifeq ($(CONFIG_RTE_EAL_VFIO),y)
+_LDLIBS-$(CONFIG_RTE_LIBRTE_IFCVF_VDPA_PMD) += -lrte_ifcvf_vdpa
+endif # $(CONFIG_RTE_EAL_VFIO)
endif # $(CONFIG_RTE_LIBRTE_VHOST)
_LDLIBS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += -lrte_pmd_vmxnet3_uio