DPDK_DOWNLOAD_DIR ?= $(HOME)/Downloads
DPDK_DEBUG ?= n
DPDK_CRYPTO_SW_PMD ?= n
+DPDK_MLX4_PMD ?= n
DPDK_MLX5_PMD ?= n
B := $(DPDK_BUILD_DIR)
I := $(DPDK_INSTALL_DIR)
-DPDK_VERSION ?= 17.02
-PKG_SUFFIX ?= vpp3
+DPDK_VERSION ?= 17.05
+PKG_SUFFIX ?= vpp1
DPDK_BASE_URL ?= http://fast.dpdk.org/rel
DPDK_TARBALL := dpdk-$(DPDK_VERSION).tar.xz
DPDK_TAR_URL := $(DPDK_BASE_URL)/$(DPDK_TARBALL)
-DPDK_16.11_TARBALL_MD5_CKSUM := 06c1c577795360719d0b4fafaeee21e9
DPDK_17.02_TARBALL_MD5_CKSUM := 6b9f7387c35641f4e8dbba3e528f2376
+DPDK_17.05_TARBALL_MD5_CKSUM := 0a68c31cd6a6cabeed0a4331073e4c05
DPDK_SOURCE := $(B)/dpdk-$(DPDK_VERSION)
ifeq ($(DPDK_CRYPTO_SW_PMD),y)
$(call set,RTE_LIBRTE_PMD_QAT,y)
$(call set,RTE_LIBRTE_PMD_AESNI_MB,$(DPDK_CRYPTO_SW_PMD))
$(call set,RTE_LIBRTE_PMD_AESNI_GCM,$(DPDK_CRYPTO_SW_PMD))
+ $(call set,RTE_LIBRTE_MLX4_PMD,$(DPDK_MLX4_PMD))
$(call set,RTE_LIBRTE_MLX5_PMD,$(DPDK_MLX5_PMD))
@# not needed
$(call set,RTE_LIBRTE_TIMER,n)
$(call set,RTE_LIBRTE_ACL,n)
$(call set,RTE_LIBRTE_POWER,n)
$(call set,RTE_LIBRTE_DISTRIBUTOR,n)
- $(call set,RTE_LIBRTE_REORDER,n)
$(call set,RTE_LIBRTE_PORT,n)
$(call set,RTE_LIBRTE_TABLE,n)
$(call set,RTE_LIBRTE_PIPELINE,n)
&tx_vector[tx_tail], tx_head - tx_tail);
rv = rte_ring_sp_enqueue_burst (hqos->swq,
(void **) &tx_vector[tx_tail],
+#if RTE_VERSION >= RTE_VERSION_NUM(17, 5, 0, 0)
+ (uint16_t) (tx_head - tx_tail), 0);
+#else
(uint16_t) (tx_head - tx_tail));
+#endif
}
else if (PREDICT_TRUE (xd->flags & DPDK_DEVICE_FLAG_PMD))
{
extern vnet_device_class_t dpdk_device_class;
extern vlib_node_registration_t dpdk_input_node;
-#if RTE_VERSION >= RTE_VERSION_NUM(17, 2, 0, 0)
#define foreach_dpdk_pmd \
_ ("net_thunderx", THUNDERX) \
_ ("net_e1000_em", E1000EM) \
_ ("net_mlx4", MLX4) \
_ ("net_mlx5", MLX5) \
_ ("net_dpaa2", DPAA2)
-#else
-#define foreach_dpdk_pmd \
- _ ("net_thunderx", THUNDERX) \
- _ ("net_e1000_em", E1000EM) \
- _ ("net_e1000_igb", IGB) \
- _ ("net_e1000_igb_vf", IGBVF) \
- _ ("net_ixgbe", IXGBE) \
- _ ("net_ixgbe_vf", IXGBEVF) \
- _ ("net_i40e", I40E) \
- _ ("net_i40e_vf", I40EVF) \
- _ ("net_virtio", VIRTIO) \
- _ ("net_enic", ENIC) \
- _ ("net_vmxnet3", VMXNET3) \
- _ ("AF_PACKET PMD", AF_PACKET) \
- _ ("rte_bond_pmd", BOND) \
- _ ("net_fm10k", FM10K) \
- _ ("net_cxgbe", CXGBE) \
- _ ("net_mlx4", MLX4) \
- _ ("net_mlx5", MLX5) \
- _ ("net_dpaa2", DPAA2)
-#endif
typedef enum
{
log_level = (CLIB_DEBUG > 0) ? RTE_LOG_DEBUG : RTE_LOG_NOTICE;
+#if RTE_VERSION >= RTE_VERSION_NUM(17, 5, 0, 0)
+ rte_log_set_global_level (log_level);
+#else
rte_set_log_level (log_level);
+#endif
vm = vlib_get_main ();
pkts_enq_len += rte_ring_sc_dequeue_burst (swq,
(void **)
&pkts_enq[pkts_enq_len],
+#if RTE_VERSION >= RTE_VERSION_NUM(17, 5, 0, 0)
+ hqos->hqos_burst_enq, 0);
+#else
hqos->hqos_burst_enq);
+#endif
/* Get next SWQ for this device */
swq_pos++;
pkts_enq_len += rte_ring_sc_dequeue_burst (swq,
(void **)
&pkts_enq[pkts_enq_len],
+#if RTE_VERSION >= RTE_VERSION_NUM(17, 5, 0, 0)
+ hqos->hqos_burst_enq, 0);
+#else
hqos->hqos_burst_enq);
+#endif
/* Get next SWQ for this device */
swq_pos++;