aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatias Elo <matias.elo@nokia.com>2016-08-17 12:59:20 +0300
committerMaxim Uvarov <maxim.uvarov@linaro.org>2016-08-19 20:28:46 +0300
commit99b5da310aded4ed933c848c11e00046c8aed766 (patch)
treec17c5127aed8ecebea20fea1e905e47b65b8fe03
parent7528454aaab5c21356631515faf63117dbb9a66b (diff)
linux-gen: dpdk: bump target dpdk version to 16.07
Change target dpdk version to 16.07 and add init functions for the new drivers. Update dpdk build script. Signed-off-by: Matias Elo <matias.elo@nokia.com> Signed-off-by: Zoltan Kiss <zoltan.kiss@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
-rw-r--r--DEPENDENCIES4
-rw-r--r--platform/linux-generic/pktio/dpdk.c38
-rwxr-xr-xscripts/build-pktio-dpdk3
3 files changed, 40 insertions, 5 deletions
diff --git a/DEPENDENCIES b/DEPENDENCIES
index a5266c9e4..f1f0edd16 100644
--- a/DEPENDENCIES
+++ b/DEPENDENCIES
@@ -165,7 +165,7 @@ Prerequisites for building the OpenDataPlane (ODP) API
3.4.1 Building DPDK and ODP with DPDK pktio support
- DPDK packet I/O has been tested to work with DPDK v16.04.
+ DPDK packet I/O has been tested to work with DPDK v16.07.
Follow steps in ./scripts/build-pktio-dpdk
@@ -179,7 +179,7 @@ Prerequisites for building the OpenDataPlane (ODP) API
Reserve and mount hugepages and bind supported interfaces to DPDK modules
following the DPDK documentation. ODP DPDK packet I/O has been tested with
512 x 2MB hugepages. All this can be done with the DPDK setup script
- (<dpdk-dir>/tools/setup.sh).
+ (<dpdk-dir>/tools/dpdk-setup.sh).
3.4.3 Running ODP with DPDK pktio
diff --git a/platform/linux-generic/pktio/dpdk.c b/platform/linux-generic/pktio/dpdk.c
index 1fad8a92e..bf8b499cf 100644
--- a/platform/linux-generic/pktio/dpdk.c
+++ b/platform/linux-generic/pktio/dpdk.c
@@ -36,12 +36,14 @@ extern void devinitfn_##drv(void)
PMD_EXT(aesni_gcm_pmd_drv);
PMD_EXT(cryptodev_aesni_mb_pmd_drv);
+PMD_EXT(cryptodev_kasumi_pmd_drv);
PMD_EXT(cryptodev_null_pmd_drv);
PMD_EXT(cryptodev_snow3g_pmd_drv);
PMD_EXT(pmd_qat_drv);
PMD_EXT(pmd_af_packet_drv);
PMD_EXT(rte_bnx2x_driver);
PMD_EXT(rte_bnx2xvf_driver);
+PMD_EXT(bnxt_pmd_drv);
PMD_EXT(bond_drv);
PMD_EXT(rte_cxgbe_driver);
PMD_EXT(em_pmd_drv);
@@ -61,17 +63,30 @@ PMD_EXT(pmd_mpipe_gbe_drv);
PMD_EXT(rte_nfp_net_driver);
PMD_EXT(pmd_null_drv);
PMD_EXT(pmd_pcap_drv);
+PMD_EXT(rte_qede_driver);
+PMD_EXT(rte_qedevf_driver);
PMD_EXT(pmd_ring_drv);
PMD_EXT(pmd_szedata2_drv);
+PMD_EXT(rte_nicvf_driver);
PMD_EXT(pmd_vhost_drv);
PMD_EXT(rte_virtio_driver);
+PMD_EXT(virtio_user_driver);
PMD_EXT(rte_vmxnet3_driver);
PMD_EXT(pmd_xenvirt_drv);
+#define MEMPOOL_OPS(hdl) \
+extern void mp_hdlr_init_##hdl(void)
+
+MEMPOOL_OPS(ops_mp_mc);
+MEMPOOL_OPS(ops_sp_sc);
+MEMPOOL_OPS(ops_mp_sc);
+MEMPOOL_OPS(ops_sp_mc);
+MEMPOOL_OPS(ops_stack);
+
/*
* This function is not called from anywhere, it's only purpose is to make sure
* that if ODP and DPDK are statically linked to an application, the GCC
- * constuctors of the PMDs are linked as well. Otherwise the linker would omit
+ * constructors of the PMDs are linked as well. Otherwise the linker would omit
* them. It's not an issue with dynamic linking. */
void refer_constructors(void);
void refer_constructors(void)
@@ -82,6 +97,9 @@ void refer_constructors(void)
#ifdef RTE_LIBRTE_PMD_AESNI_MB
devinitfn_cryptodev_aesni_mb_pmd_drv();
#endif
+#ifdef RTE_LIBRTE_PMD_KASUMI
+ devinitfn_cryptodev_kasumi_pmd_drv();
+#endif
#ifdef RTE_LIBRTE_PMD_NULL_CRYPTO
devinitfn_cryptodev_null_pmd_drv();
#endif
@@ -98,6 +116,9 @@ void refer_constructors(void)
devinitfn_rte_bnx2x_driver();
devinitfn_rte_bnx2xvf_driver();
#endif
+#ifdef RTE_LIBRTE_BNXT_PMD
+ devinitfn_bnxt_pmd_drv();
+#endif
#ifdef RTE_LIBRTE_PMD_BOND
devinitfn_bond_drv();
#endif
@@ -147,24 +168,39 @@ void refer_constructors(void)
#ifdef RTE_LIBRTE_PMD_PCAP
devinitfn_pmd_pcap_drv();
#endif
+#ifdef RTE_LIBRTE_QEDE_PMD
+ devinitfn_rte_qede_driver();
+ devinitfn_rte_qedevf_driver();
+#endif
#ifdef RTE_LIBRTE_PMD_RING
devinitfn_pmd_ring_drv();
#endif
#ifdef RTE_LIBRTE_PMD_SZEDATA2
devinitfn_pmd_szedata2_drv();
#endif
+#ifdef RTE_LIBRTE_THUNDERX_NICVF_PMD
+ devinitfn_rte_nicvf_driver();
+#endif
#ifdef RTE_LIBRTE_PMD_VHOST
devinitfn_pmd_vhost_drv();
#endif
#ifdef RTE_LIBRTE_VIRTIO_PMD
devinitfn_rte_virtio_driver();
#endif
+#ifdef RTE_VIRTIO_USER
+ devinitfn_rte_virtio_driver();
+#endif
#ifdef RTE_LIBRTE_VMXNET3_PMD
devinitfn_rte_vmxnet3_driver();
#endif
#ifdef RTE_LIBRTE_PMD_XENVIRT
devinitfn_pmd_xenvirt_drv();
#endif
+ mp_hdlr_init_ops_mp_mc();
+ mp_hdlr_init_ops_sp_sc();
+ mp_hdlr_init_ops_mp_sc();
+ mp_hdlr_init_ops_sp_mc();
+ mp_hdlr_init_ops_stack();
}
/* Test if s has only digits or not. Dpdk pktio uses only digits.*/
diff --git a/scripts/build-pktio-dpdk b/scripts/build-pktio-dpdk
index 53f703a83..280f5185d 100755
--- a/scripts/build-pktio-dpdk
+++ b/scripts/build-pktio-dpdk
@@ -12,12 +12,11 @@ fi
git clone http://dpdk.org/git/dpdk dpdk
pushd dpdk
-git checkout -b bv16.04 v16.04
+git checkout -b bv16.07 v16.07
#Make and edit DPDK configuration
make config T=${TARGET} O=${TARGET}
pushd ${TARGET}
-sed -ri 's,(CONFIG_RTE_BUILD_COMBINE_LIBS=).*,\1y,' .config
#To use I/O without DPDK supported NIC's enable pcap pmd:
sed -ri 's,(CONFIG_RTE_LIBRTE_PMD_PCAP=).*,\1y,' .config
popd