aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/external/packages/dpdk.mk4
-rw-r--r--src/plugins/dpdk/device/format.c26
-rw-r--r--src/plugins/dpdk/device/init.c4
-rw-r--r--src/plugins/dpdk/ipsec/cli.c2
-rw-r--r--src/plugins/dpdk/ipsec/esp_decrypt.c3
-rw-r--r--src/plugins/dpdk/ipsec/esp_encrypt.c3
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))