diff options
-rw-r--r-- | build/external/packages/dpdk.mk | 4 | ||||
-rw-r--r-- | src/plugins/dpdk/device/format.c | 26 | ||||
-rw-r--r-- | src/plugins/dpdk/device/init.c | 4 | ||||
-rw-r--r-- | src/plugins/dpdk/ipsec/cli.c | 2 | ||||
-rw-r--r-- | src/plugins/dpdk/ipsec/esp_decrypt.c | 3 | ||||
-rw-r--r-- | src/plugins/dpdk/ipsec/esp_encrypt.c | 3 |
6 files changed, 30 insertions, 12 deletions
diff --git a/build/external/packages/dpdk.mk b/build/external/packages/dpdk.mk index 5b5f9eead59..c35ac84c27b 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 ?= 20.08 +dpdk_version ?= 20.11 dpdk_base_url ?= http://fast.dpdk.org/rel dpdk_tarball := dpdk-$(dpdk_version).tar.xz -dpdk_tarball_md5sum_20.08 := 64badd32cd6bc0761befc8f2402c2148 +dpdk_tarball_md5sum_20.11 := 13a990dc3b300635f685e268b36918a3 dpdk_tarball_md5sum := $(dpdk_tarball_md5sum_$(dpdk_version)) dpdk_url := $(dpdk_base_url)/$(dpdk_tarball) dpdk_tarball_strip_dirs := 1 diff --git a/src/plugins/dpdk/device/format.c b/src/plugins/dpdk/device/format.c index d43ab6b348f..1baf314acc9 100644 --- a/src/plugins/dpdk/device/format.c +++ b/src/plugins/dpdk/device/format.c @@ -56,8 +56,7 @@ _ (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") \ - _ (PKT_RX_TIMESTAMP, "Timestamp field is valid") + _ (PKT_RX_QINQ_STRIPPED, "RX packet QinQ tags stripped") #define foreach_dpdk_pkt_type \ _ (L2, ETHER, "Ethernet packet") \ @@ -110,6 +109,9 @@ foreach_dpdk_pkt_rx_offload_flag \ foreach_dpdk_pkt_tx_offload_flag +#define foreach_dpdk_pkt_dyn_rx_offload_flag \ + _ (RX_TIMESTAMP, 0, "Timestamp field is valid") + u8 * format_dpdk_device_name (u8 * s, va_list * args) { @@ -838,6 +840,8 @@ format_dpdk_pkt_offload_flags (u8 * s, va_list * va) { u64 *ol_flags = va_arg (*va, u64 *); u32 indent = format_get_indent (s) + 2; + u64 rx_dynflag; + int rx_dynflag_offset; if (!*ol_flags) return s; @@ -853,6 +857,22 @@ format_dpdk_pkt_offload_flags (u8 * s, va_list * va) foreach_dpdk_pkt_offload_flag #undef _ +#define _(F, P, S) \ + { \ + rx_dynflag_offset = rte_mbuf_dynflag_lookup(RTE_MBUF_DYNFLAG_##F##_NAME, \ + P); \ + if (rx_dynflag_offset >= 0) \ + { \ + rx_dynflag = (u64) 1 << rx_dynflag_offset; \ + if (*ol_flags & rx_dynflag) \ + { \ + s = format (s, "\n%U%s %s", format_white_space, indent, \ + #F, S); \ + } \ + } \ + } + foreach_dpdk_pkt_dyn_rx_offload_flag +#undef _ return s; } @@ -891,7 +911,7 @@ format_dpdk_rte_mbuf (u8 * s, va_list * va) mb->port, mb->nb_segs, mb->pkt_len, format_white_space, indent, mb->buf_len, mb->data_len, mb->ol_flags, mb->data_off, - mb->buf_physaddr, format_white_space, indent, mb->packet_type, + mb->buf_iova, format_white_space, indent, mb->packet_type, mb->l2_len, mb->l3_len, mb->outer_l2_len, mb->outer_l3_len, format_white_space, indent, mb->hash.rss, mb->hash.fdir.hi, mb->hash.fdir.lo); diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c index 2d2281e64a9..51adbc23c80 100644 --- a/src/plugins/dpdk/device/init.c +++ b/src/plugins/dpdk/device/init.c @@ -1452,7 +1452,7 @@ dpdk_config (vlib_main_t * vm, unformat_input_t * input) /* add DPDK EAL whitelist/blacklist entry */ if (num_whitelisted > 0 && devconf->is_blacklisted == 0) { - tmp = format (0, "-w%c", 0); + tmp = format (0, "-a%c", 0); vec_add1 (conf->eal_init_args, tmp); if (devconf->devargs) { @@ -1477,7 +1477,7 @@ dpdk_config (vlib_main_t * vm, unformat_input_t * input) #undef _ /* set master-lcore */ - tmp = format (0, "--master-lcore%c", 0); + tmp = format (0, "--main-lcore%c", 0); vec_add1 (conf->eal_init_args, tmp); tmp = format (0, "%u%c", tm->main_lcore, 0); vec_add1 (conf->eal_init_args, tmp); diff --git a/src/plugins/dpdk/ipsec/cli.c b/src/plugins/dpdk/ipsec/cli.c index fb98d2789c6..8fdda020a77 100644 --- a/src/plugins/dpdk/ipsec/cli.c +++ b/src/plugins/dpdk/ipsec/cli.c @@ -592,7 +592,7 @@ format_dpdk_mempool (u8 * s, va_list * args) count, mp->size - count, mp->size); s = format (s, "%Uphys_addr %p, flags %08x, nb_mem_chunks %u\n", format_white_space, indent + 2, - mp->mz->phys_addr, mp->flags, mp->nb_mem_chunks); + mp->mz->iova, mp->flags, mp->nb_mem_chunks); s = format (s, "%Uelt_size %4u, header_size %3u, trailer_size %u\n", format_white_space, indent + 2, mp->elt_size, mp->header_size, mp->trailer_size); diff --git a/src/plugins/dpdk/ipsec/esp_decrypt.c b/src/plugins/dpdk/ipsec/esp_decrypt.c index dcf7fda915c..4981de33457 100644 --- a/src/plugins/dpdk/ipsec/esp_decrypt.c +++ b/src/plugins/dpdk/ipsec/esp_decrypt.c @@ -308,8 +308,7 @@ dpdk_esp_decrypt_inline (vlib_main_t * vm, cipher_len = payload_len; u8 *digest = vlib_buffer_get_tail (b0) - trunc_size; - u64 digest_paddr = - mb0->buf_physaddr + digest - ((u8 *) mb0->buf_addr); + u64 digest_paddr = mb0->buf_iova + digest - ((u8 *) mb0->buf_addr); if (!is_aead && cipher_alg->alg == RTE_CRYPTO_CIPHER_AES_CBC) clib_memcpy_fast (icb, iv, 16); diff --git a/src/plugins/dpdk/ipsec/esp_encrypt.c b/src/plugins/dpdk/ipsec/esp_encrypt.c index 8becb820ff1..984bb64d1ef 100644 --- a/src/plugins/dpdk/ipsec/esp_encrypt.c +++ b/src/plugins/dpdk/ipsec/esp_encrypt.c @@ -514,8 +514,7 @@ dpdk_esp_encrypt_inline (vlib_main_t * vm, u32 *aad = NULL; u8 *digest = vlib_buffer_get_tail (b0) - trunc_size; - u64 digest_paddr = - mb0->buf_physaddr + digest - ((u8 *) mb0->buf_addr); + u64 digest_paddr = mb0->buf_iova + digest - ((u8 *) mb0->buf_addr); if (!is_aead && (cipher_alg->alg == RTE_CRYPTO_CIPHER_AES_CBC || cipher_alg->alg == RTE_CRYPTO_CIPHER_NULL)) |