2017-12-19 15:49:01 +00:00
|
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
# Copyright(c) 2010-2015 Intel Corporation
|
2015-05-15 15:56:46 +00:00
|
|
|
|
|
|
|
include $(RTE_SDK)/mk/rte.vars.mk
|
|
|
|
|
2017-04-06 17:05:09 +00:00
|
|
|
# set in mk/toolchain/xxx/rte.toolchain-compat.mk
|
|
|
|
ifeq ($(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD),d)
|
|
|
|
$(warning thunderx pmd is not supported by old compilers)
|
|
|
|
endif
|
|
|
|
|
2015-05-15 15:56:47 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET) += af_packet
|
2017-04-04 19:50:23 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark
|
2018-01-10 13:01:54 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_AVF_PMD) += avf
|
2017-03-28 11:53:56 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_AVP_PMD) += avp
|
2018-04-06 12:36:34 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe
|
2015-07-20 16:33:20 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x
|
2015-05-15 15:56:48 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += bonding
|
2015-06-29 23:28:35 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbe
|
2018-02-23 09:58:03 +00:00
|
|
|
ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
|
2017-09-28 12:29:43 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_DPAA_PMD) += dpaa
|
2018-02-23 09:58:03 +00:00
|
|
|
endif
|
|
|
|
ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)
|
2017-04-11 13:49:17 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2
|
2018-02-23 09:58:03 +00:00
|
|
|
endif
|
2015-05-15 15:56:49 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000
|
2016-03-17 14:31:18 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_ENA_PMD) += ena
|
2018-10-03 13:36:05 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_ENETC_PMD) += enetc
|
2015-05-15 15:56:50 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic
|
2017-07-18 12:48:14 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe
|
2015-05-15 15:56:51 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k
|
2015-05-18 11:05:12 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e
|
2015-05-15 15:56:53 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe
|
2017-03-25 06:24:12 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_LIO_PMD) += liquidio
|
2015-05-15 15:56:54 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4
|
2015-10-30 18:52:30 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5
|
2018-10-03 07:22:09 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_MVNETA_PMD) += mvneta
|
2018-03-26 14:38:50 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_MVPP2_PMD) += mvpp2
|
2018-07-13 17:06:43 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_NETVSC_PMD) += netvsc
|
2015-11-30 10:25:35 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_NFP_PMD) += nfp
|
2016-06-15 21:23:01 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += bnxt
|
2015-05-15 15:56:55 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL) += null
|
2017-10-08 12:44:05 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_OCTEONTX_PMD) += octeontx
|
2015-05-15 15:56:56 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_PMD_PCAP) += pcap
|
2016-04-27 14:18:38 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_QEDE_PMD) += qede
|
2015-05-15 15:56:57 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_PMD_RING) += ring
|
2016-11-29 16:18:33 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc
|
2015-11-10 14:18:13 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_PMD_SZEDATA2) += szedata2
|
2016-12-12 14:38:38 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_PMD_TAP) += tap
|
2016-06-17 13:29:35 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += thunderx
|
2018-01-18 13:51:42 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_VDEV_NETVSC_PMD) += vdev_netvsc
|
2015-05-15 15:56:58 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio
|
2015-05-15 15:56:59 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += vmxnet3
|
2015-05-15 15:56:46 +00:00
|
|
|
|
2017-02-17 13:42:38 +00:00
|
|
|
ifeq ($(CONFIG_RTE_LIBRTE_KNI),y)
|
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_PMD_KNI) += kni
|
|
|
|
endif
|
|
|
|
|
2017-10-10 10:18:14 +00:00
|
|
|
ifeq ($(CONFIG_RTE_LIBRTE_SCHED),y)
|
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_PMD_SOFTNIC) += softnic
|
|
|
|
endif # $(CONFIG_RTE_LIBRTE_SCHED)
|
|
|
|
|
vhost: add driver on top of the library
The patch introduces a new PMD. This PMD is implemented as thin wrapper
of librte_vhost. It means librte_vhost is also needed to compile the PMD.
The vhost messages will be handled only when a port is started. So start
a port first, then invoke QEMU.
The PMD has 2 parameters.
- iface: The parameter is used to specify a path to connect to a
virtio-net device.
- queues: The parameter is used to specify the number of the queues
virtio-net device has.
(Default: 1)
Here is an example.
$ ./testpmd -c f -n 4 --vdev 'eth_vhost0,iface=/tmp/sock0,queues=1' -- -i
To connect above testpmd, here is qemu command example.
$ qemu-system-x86_64 \
<snip>
-chardev socket,id=chr0,path=/tmp/sock0 \
-netdev vhost-user,id=net0,chardev=chr0,vhostforce,queues=1 \
-device virtio-net-pci,netdev=net0,mq=on
Signed-off-by: Tetsuya Mukawa <mukawa@igel.co.jp>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Acked-by: Rich Lane <rich.lane@bigswitch.com>
Tested-by: Rich Lane <rich.lane@bigswitch.com>
Update for queue state event name:
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
2016-03-21 05:45:08 +00:00
|
|
|
ifeq ($(CONFIG_RTE_LIBRTE_VHOST),y)
|
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_PMD_VHOST) += vhost
|
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-17 07:06:23 +00:00
|
|
|
ifeq ($(CONFIG_RTE_EAL_VFIO),y)
|
2018-06-13 11:32:45 +00:00
|
|
|
DIRS-$(CONFIG_RTE_LIBRTE_IFC_PMD) += ifc
|
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-17 07:06:23 +00:00
|
|
|
endif
|
vhost: add driver on top of the library
The patch introduces a new PMD. This PMD is implemented as thin wrapper
of librte_vhost. It means librte_vhost is also needed to compile the PMD.
The vhost messages will be handled only when a port is started. So start
a port first, then invoke QEMU.
The PMD has 2 parameters.
- iface: The parameter is used to specify a path to connect to a
virtio-net device.
- queues: The parameter is used to specify the number of the queues
virtio-net device has.
(Default: 1)
Here is an example.
$ ./testpmd -c f -n 4 --vdev 'eth_vhost0,iface=/tmp/sock0,queues=1' -- -i
To connect above testpmd, here is qemu command example.
$ qemu-system-x86_64 \
<snip>
-chardev socket,id=chr0,path=/tmp/sock0 \
-netdev vhost-user,id=net0,chardev=chr0,vhostforce,queues=1 \
-device virtio-net-pci,netdev=net0,mq=on
Signed-off-by: Tetsuya Mukawa <mukawa@igel.co.jp>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Acked-by: Rich Lane <rich.lane@bigswitch.com>
Tested-by: Rich Lane <rich.lane@bigswitch.com>
Update for queue state event name:
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
2016-03-21 05:45:08 +00:00
|
|
|
endif # $(CONFIG_RTE_LIBRTE_VHOST)
|
|
|
|
|
2018-03-26 14:38:50 +00:00
|
|
|
ifeq ($(CONFIG_RTE_LIBRTE_MVPP2_PMD),y)
|
2017-10-09 15:00:30 +00:00
|
|
|
ifeq ($(CONFIG_RTE_LIBRTE_CFGFILE),n)
|
|
|
|
$(error "RTE_LIBRTE_CFGFILE must be enabled in configuration!")
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
2015-05-15 15:56:46 +00:00
|
|
|
include $(RTE_SDK)/mk/rte.subdir.mk
|