diff options
author | Matias Elo <matias.elo@nokia.com> | 2016-08-17 12:59:20 +0300 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2016-08-19 20:28:46 +0300 |
commit | 99b5da310aded4ed933c848c11e00046c8aed766 (patch) | |
tree | c17c5127aed8ecebea20fea1e905e47b65b8fe03 | |
parent | 7528454aaab5c21356631515faf63117dbb9a66b (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-- | DEPENDENCIES | 4 | ||||
-rw-r--r-- | platform/linux-generic/pktio/dpdk.c | 38 | ||||
-rwxr-xr-x | scripts/build-pktio-dpdk | 3 |
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 |