@@ -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
@@ -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.*/
@@ -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