From 9303b10897324d5af1645ed3069303328221dd93 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Thu, 27 May 2021 13:24:52 +0100 Subject: [PATCH] dpdk: bump to 21.05 Type: feature This patch bumps DPDK version to 21.05 and updated VPP to accomodate the changes in DPDK latest version. Signed-off-by: Fan Zhang Change-Id: If217441f70c9ab531196dca7ec7a486ec9931cff --- build/external/packages/dpdk.mk | 6 ++--- .../dpdk/cryptodev/cryptodev_raw_data_path.c | 13 ++++++++++ src/plugins/dpdk/device/format.c | 28 ++++++++++++---------- 3 files changed, 32 insertions(+), 15 deletions(-) diff --git a/build/external/packages/dpdk.mk b/build/external/packages/dpdk.mk index c7eb0fc3fe1..70ff5c90eb9 100644 --- a/build/external/packages/dpdk.mk +++ b/build/external/packages/dpdk.mk @@ -22,10 +22,10 @@ DPDK_FAILSAFE_PMD ?= n DPDK_MACHINE ?= default DPDK_MLX_IBV_LINK ?= static -dpdk_version ?= 21.02 +dpdk_version ?= 21.05 dpdk_base_url ?= http://fast.dpdk.org/rel dpdk_tarball := dpdk-$(dpdk_version).tar.xz -dpdk_tarball_md5sum_21.02 := 2c3e4800b04495ad7fa8656a7e1a3ec1 +dpdk_tarball_md5sum_21.05 := a78bba290b11d9717d1272cc6bfaf7c3 dpdk_tarball_md5sum := $(dpdk_tarball_md5sum_$(dpdk_version)) dpdk_url := $(dpdk_base_url)/$(dpdk_tarball) dpdk_tarball_strip_dirs := 1 @@ -64,7 +64,7 @@ DPDK_DRIVERS_DISABLED := baseband/\*, \ net/softnic, \ net/thunderx, \ raw/ifpga, \ - net/af_xdp + net/af_xdp DPDK_LIBS_DISABLED := acl, \ bbdev, \ diff --git a/src/plugins/dpdk/cryptodev/cryptodev_raw_data_path.c b/src/plugins/dpdk/cryptodev/cryptodev_raw_data_path.c index 40e020f0b37..c045d78ecb1 100644 --- a/src/plugins/dpdk/cryptodev/cryptodev_raw_data_path.c +++ b/src/plugins/dpdk/cryptodev/cryptodev_raw_data_path.c @@ -514,9 +514,16 @@ cryptodev_raw_dequeue (vlib_main_t *vm, u32 *nb_elts_processed, if (!inflight || no_job_to_deq || !n_room_left) goto end_deq; +#if RTE_VERSION >= RTE_VERSION_NUM(21, 5, 0, 0) + n_deq = rte_cryptodev_raw_dequeue_burst ( + cet->ctx, cryptodev_get_frame_n_elts, 0, cryptodev_post_dequeue, + (void **) &frame, 0, &n_success, &dequeue_status); +#else n_deq = rte_cryptodev_raw_dequeue_burst ( cet->ctx, cryptodev_get_frame_n_elts, cryptodev_post_dequeue, (void **) &frame, 0, &n_success, &dequeue_status); +#endif + if (!n_deq) goto end_deq; @@ -541,9 +548,15 @@ cryptodev_raw_dequeue (vlib_main_t *vm, u32 *nb_elts_processed, /* see if we can dequeue more */ while (inflight && n_room_left && !no_job_to_deq) { +#if RTE_VERSION >= RTE_VERSION_NUM(21, 5, 0, 0) + n_deq = rte_cryptodev_raw_dequeue_burst ( + cet->ctx, cryptodev_get_frame_n_elts, 0, cryptodev_post_dequeue, + (void **) &frame, 0, &n_success, &dequeue_status); +#else n_deq = rte_cryptodev_raw_dequeue_burst ( cet->ctx, cryptodev_get_frame_n_elts, cryptodev_post_dequeue, (void **) &frame, 0, &n_success, &dequeue_status); +#endif if (!n_deq) break; inflight -= n_deq; diff --git a/src/plugins/dpdk/device/format.c b/src/plugins/dpdk/device/format.c index 1baf314acc9..c4b2ae77626 100644 --- a/src/plugins/dpdk/device/format.c +++ b/src/plugins/dpdk/device/format.c @@ -44,18 +44,22 @@ _ (tx_bytes_ok, q_obytes) \ _ (rx_errors, q_errors) -#define foreach_dpdk_pkt_rx_offload_flag \ - _ (PKT_RX_VLAN, "RX packet is a 802.1q VLAN packet") \ - _ (PKT_RX_RSS_HASH, "RX packet with RSS hash result") \ - _ (PKT_RX_FDIR, "RX packet with FDIR infos") \ - _ (PKT_RX_L4_CKSUM_BAD, "L4 cksum of RX pkt. is not OK") \ - _ (PKT_RX_IP_CKSUM_BAD, "IP cksum of RX pkt. is not OK") \ - _ (PKT_RX_EIP_CKSUM_BAD, "External IP header checksum error") \ - _ (PKT_RX_VLAN_STRIPPED, "RX packet VLAN tag stripped") \ - _ (PKT_RX_IP_CKSUM_GOOD, "IP cksum of RX pkt. is valid") \ - _ (PKT_RX_L4_CKSUM_GOOD, "L4 cksum of RX pkt. is valid") \ - _ (PKT_RX_IEEE1588_PTP, "RX IEEE1588 L2 Ethernet PT Packet") \ - _ (PKT_RX_IEEE1588_TMST, "RX IEEE1588 L2/L4 timestamped packet") \ +#if RTE_VERSION < RTE_VERSION_NUM(21, 5, 0, 0) +#define PKT_RX_OUTER_IP_CKSUM_BAD PKT_RX_EIP_CKSUM_BAD +#endif + +#define foreach_dpdk_pkt_rx_offload_flag \ + _ (PKT_RX_VLAN, "RX packet is a 802.1q VLAN packet") \ + _ (PKT_RX_RSS_HASH, "RX packet with RSS hash result") \ + _ (PKT_RX_FDIR, "RX packet with FDIR infos") \ + _ (PKT_RX_L4_CKSUM_BAD, "L4 cksum of RX pkt. is not OK") \ + _ (PKT_RX_IP_CKSUM_BAD, "IP cksum of RX pkt. is not OK") \ + _ (PKT_RX_OUTER_IP_CKSUM_BAD, "External IP header checksum error") \ + _ (PKT_RX_VLAN_STRIPPED, "RX packet VLAN tag stripped") \ + _ (PKT_RX_IP_CKSUM_GOOD, "IP cksum of RX pkt. is valid") \ + _ (PKT_RX_L4_CKSUM_GOOD, "L4 cksum of RX pkt. is valid") \ + _ (PKT_RX_IEEE1588_PTP, "RX IEEE1588 L2 Ethernet PT Packet") \ + _ (PKT_RX_IEEE1588_TMST, "RX IEEE1588 L2/L4 timestamped packet") \ _ (PKT_RX_QINQ_STRIPPED, "RX packet QinQ tags stripped") #define foreach_dpdk_pkt_type \ -- 2.16.6