diff --git a/DEPENDENCIES b/DEPENDENCIES
index a5266c9..f1f0edd 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 1fad8a9..bf8b499 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 53f703a..280f518 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
