patches for DPDK stable branches
 help / color / mirror / Atom feed
* [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6
@ 2019-12-11 21:25 Kevin Traynor
  2019-12-11 21:25 ` [dpdk-stable] patch 'net/qede: fix setting VLAN strip mode' " Kevin Traynor
                   ` (68 more replies)
  0 siblings, 69 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:25 UTC (permalink / raw)
  To: Shahed Shaikh; +Cc: Rasesh Mody, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/9e72106d516ab1d4c5372ef71afb1c0398dfeba5

Thanks.

Kevin.

---
From 9e72106d516ab1d4c5372ef71afb1c0398dfeba5 Mon Sep 17 00:00:00 2001
From: Shahed Shaikh <shshaikh@marvell.com>
Date: Sat, 19 Oct 2019 22:20:50 -0700
Subject: [PATCH] net/qede: fix setting MTU

[ upstream commit 29bb154ff047d7fd7b0d4f08ce3ca25f1abfd1fe ]

New MTU value is not propagated to vport in HW when MTU update request
is sent while ports are stopped.

This patch fixes the logic error for above mentioned condition.

Fixes: d121a6b5f781 ("net/qede: fix VF MTU update")

Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
Reviewed-by: Rasesh Mody <rmody@marvell.com>
---
 drivers/net/qede/qede_ethdev.c | 8 +++++---
 drivers/net/qede/qede_ethdev.h | 1 +
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index 97d991cad..acb61cc21 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -1021,7 +1021,9 @@ static int qede_dev_start(struct rte_eth_dev *eth_dev)
 
 	/* Update MTU only if it has changed */
-	if (eth_dev->data->mtu != qdev->mtu) {
-		if (qede_update_mtu(eth_dev, qdev->mtu))
+	if (qdev->new_mtu && qdev->new_mtu != qdev->mtu) {
+		if (qede_update_mtu(eth_dev, qdev->new_mtu))
 			goto err;
+		qdev->mtu = qdev->new_mtu;
+		qdev->new_mtu = 0;
 	}
 
@@ -2207,5 +2209,5 @@ static int qede_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
 	}
 	rte_delay_ms(1000);
-	qdev->mtu = mtu;
+	qdev->new_mtu = mtu;
 
 	/* Fix up RX buf size for all queues of the port */
diff --git a/drivers/net/qede/qede_ethdev.h b/drivers/net/qede/qede_ethdev.h
index 735dfdb66..1a426cf00 100644
--- a/drivers/net/qede/qede_ethdev.h
+++ b/drivers/net/qede/qede_ethdev.h
@@ -218,4 +218,5 @@ struct qede_dev {
 	struct qede_fastpath_cmt *fp_array_cmt;
 	uint16_t mtu;
+	uint16_t new_mtu;
 	bool enable_tx_switching;
 	bool rss_enable;
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:12.810348176 +0000
+++ 0001-net-qede-fix-setting-MTU.patch	2019-12-11 21:24:12.506654545 +0000
@@ -1 +1 @@
-From 29bb154ff047d7fd7b0d4f08ce3ca25f1abfd1fe Mon Sep 17 00:00:00 2001
+From 9e72106d516ab1d4c5372ef71afb1c0398dfeba5 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 29bb154ff047d7fd7b0d4f08ce3ca25f1abfd1fe ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 53fdfde9a..42e2b5083 100644
+index 97d991cad..acb61cc21 100644
@@ -25 +26 @@
-@@ -1039,7 +1039,9 @@ static int qede_dev_start(struct rte_eth_dev *eth_dev)
+@@ -1021,7 +1021,9 @@ static int qede_dev_start(struct rte_eth_dev *eth_dev)
@@ -37 +38 @@
-@@ -2249,5 +2251,5 @@ static int qede_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
+@@ -2207,5 +2209,5 @@ static int qede_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
@@ -45 +46 @@
-index 21115a077..b988a73f2 100644
+index 735dfdb66..1a426cf00 100644
@@ -48 +49 @@
-@@ -226,4 +226,5 @@ struct qede_dev {
+@@ -218,4 +218,5 @@ struct qede_dev {


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/qede: fix setting VLAN strip mode' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
@ 2019-12-11 21:25 ` Kevin Traynor
  2019-12-11 21:25 ` [dpdk-stable] patch 'net/ixgbe: support packet type with NEON' " Kevin Traynor
                   ` (67 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:25 UTC (permalink / raw)
  To: Shahed Shaikh; +Cc: Rasesh Mody, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/efad91870035967ef1ff6878d73ecbb2f10ba0c8

Thanks.

Kevin.

---
From efad91870035967ef1ff6878d73ecbb2f10ba0c8 Mon Sep 17 00:00:00 2001
From: Shahed Shaikh <shshaikh@marvell.com>
Date: Sat, 19 Oct 2019 22:20:51 -0700
Subject: [PATCH] net/qede: fix setting VLAN strip mode

[ upstream commit 30b170b4a56f313f1668d4f583d9572ce48823c7 ]

Commit 9a6d30ae6d46 ("net/qede: refactoring vport handling code")
deleted the code as part of refactoring which sets vlan strip mode.
Revert it back and fix vlan strip feature.

Fixes: 9a6d30ae6d46 ("net/qede: refactoring vport handling code")

Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
Reviewed-by: Rasesh Mody <rmody@marvell.com>
---
 drivers/net/qede/qede_ethdev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index acb61cc21..8dced1899 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -816,4 +816,6 @@ static int qede_vlan_stripping(struct rte_eth_dev *eth_dev, bool flg)
 	}
 
+	qdev->vlan_strip_flg = flg;
+
 	DP_INFO(edev, "VLAN stripping %s\n", flg ? "enabled" : "disabled");
 	return 0;
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:12.891399224 +0000
+++ 0002-net-qede-fix-setting-VLAN-strip-mode.patch	2019-12-11 21:24:12.511654441 +0000
@@ -1 +1 @@
-From 30b170b4a56f313f1668d4f583d9572ce48823c7 Mon Sep 17 00:00:00 2001
+From efad91870035967ef1ff6878d73ecbb2f10ba0c8 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 30b170b4a56f313f1668d4f583d9572ce48823c7 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 42e2b5083..575982fd0 100644
+index acb61cc21..8dced1899 100644
@@ -23 +24 @@
-@@ -834,4 +834,6 @@ static int qede_vlan_stripping(struct rte_eth_dev *eth_dev, bool flg)
+@@ -816,4 +816,6 @@ static int qede_vlan_stripping(struct rte_eth_dev *eth_dev, bool flg)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/ixgbe: support packet type with NEON' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
  2019-12-11 21:25 ` [dpdk-stable] patch 'net/qede: fix setting VLAN strip mode' " Kevin Traynor
@ 2019-12-11 21:25 ` Kevin Traynor
  2019-12-11 21:25 ` [dpdk-stable] patch 'net/ixgbe: fix MACsec setting' " Kevin Traynor
                   ` (66 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:25 UTC (permalink / raw)
  To: Ruifeng Wang; +Cc: Gavin Hu, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/295b2079b0cd80810dbad09c5e154b2590015065

Thanks.

Kevin.

---
From 295b2079b0cd80810dbad09c5e154b2590015065 Mon Sep 17 00:00:00 2001
From: Ruifeng Wang <ruifeng.wang@arm.com>
Date: Thu, 24 Oct 2019 10:58:02 +0800
Subject: [PATCH] net/ixgbe: support packet type with NEON

[ upstream commit 41fdc03e72c55ac7f28f0d52f3c1935a19015180 ]

Ptype parse is missing in aarch64 vector PMD. It makes packet type info
provided by NIC get lost, thus requires extra CPU cycles to do this.
Add the parse process to utilize NIC hardware capability.

In test with l3fwd (removed port conf DEV_RX_OFFLOAD_CHECKSUM),
observed over 3% performance gain.

Fixes: b20971b6cca0 ("net/ixgbe: implement vector driver for ARM")

Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c        |  2 +-
 drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c | 64 +++++++++++++++++++++++++
 2 files changed, 65 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 5492f5f5f..74de2ff4e 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -3882,5 +3882,5 @@ ixgbe_dev_supported_ptypes_get(struct rte_eth_dev *dev)
 		return ptypes;
 
-#if defined(RTE_ARCH_X86)
+#if defined(RTE_ARCH_X86) || defined(RTE_MACHINE_CPUFLAG_NEON)
 	if (dev->rx_pkt_burst == ixgbe_recv_pkts_vec ||
 	    dev->rx_pkt_burst == ixgbe_recv_scattered_pkts_vec)
diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c b/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
index 07f2fafe7..fa73d1e45 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
@@ -146,4 +146,66 @@ desc_to_olflags_v(uint8x16x2_t sterr_tmp1, uint8x16x2_t sterr_tmp2,
 #define IXGBE_VPMD_DESC_EOP_MASK	0x02020202
 
+static inline uint32_t
+get_packet_type(uint32_t pkt_info,
+		uint32_t etqf_check,
+		uint32_t tunnel_check)
+{
+	if (etqf_check)
+		return RTE_PTYPE_UNKNOWN;
+
+	if (tunnel_check) {
+		pkt_info &= IXGBE_PACKET_TYPE_MASK_TUNNEL;
+		return ptype_table_tn[pkt_info];
+	}
+
+	pkt_info &= IXGBE_PACKET_TYPE_MASK_82599;
+	return ptype_table[pkt_info];
+}
+
+static inline void
+desc_to_ptype_v(uint64x2_t descs[4], uint16_t pkt_type_mask,
+		struct rte_mbuf **rx_pkts)
+{
+	uint32x4_t etqf_check, tunnel_check;
+	uint32x4_t etqf_mask = vdupq_n_u32(0x8000);
+	uint32x4_t tunnel_mask = vdupq_n_u32(0x10000);
+	uint32x4_t ptype_mask = vdupq_n_u32((uint32_t)pkt_type_mask);
+	uint32x4_t ptype0 = vzipq_u32(vreinterpretq_u32_u64(descs[0]),
+				vreinterpretq_u32_u64(descs[2])).val[0];
+	uint32x4_t ptype1 = vzipq_u32(vreinterpretq_u32_u64(descs[1]),
+				vreinterpretq_u32_u64(descs[3])).val[0];
+
+	/* interleave low 32 bits,
+	 * now we have 4 ptypes in a NEON register
+	 */
+	ptype0 = vzipq_u32(ptype0, ptype1).val[0];
+
+	/* mask etqf bits */
+	etqf_check = vandq_u32(ptype0, etqf_mask);
+	/* mask tunnel bits */
+	tunnel_check = vandq_u32(ptype0, tunnel_mask);
+
+	/* shift right by IXGBE_PACKET_TYPE_SHIFT, and apply ptype mask */
+	ptype0 = vandq_u32(vshrq_n_u32(ptype0, IXGBE_PACKET_TYPE_SHIFT),
+			ptype_mask);
+
+	rx_pkts[0]->packet_type =
+		get_packet_type(vgetq_lane_u32(ptype0, 0),
+				vgetq_lane_u32(etqf_check, 0),
+				vgetq_lane_u32(tunnel_check, 0));
+	rx_pkts[1]->packet_type =
+		get_packet_type(vgetq_lane_u32(ptype0, 1),
+				vgetq_lane_u32(etqf_check, 1),
+				vgetq_lane_u32(tunnel_check, 1));
+	rx_pkts[2]->packet_type =
+		get_packet_type(vgetq_lane_u32(ptype0, 2),
+				vgetq_lane_u32(etqf_check, 2),
+				vgetq_lane_u32(tunnel_check, 2));
+	rx_pkts[3]->packet_type =
+		get_packet_type(vgetq_lane_u32(ptype0, 3),
+				vgetq_lane_u32(etqf_check, 3),
+				vgetq_lane_u32(tunnel_check, 3));
+}
+
 static inline uint16_t
 _recv_raw_pkts_vec(struct ixgbe_rx_queue *rxq, struct rte_mbuf **rx_pkts,
@@ -297,4 +359,6 @@ _recv_raw_pkts_vec(struct ixgbe_rx_queue *rxq, struct rte_mbuf **rx_pkts,
 			 pkt_mb1);
 
+		desc_to_ptype_v(descs, rxq->pkt_type_mask, &rx_pkts[pos]);
+
 		stat &= IXGBE_VPMD_DESC_DD_MASK;
 
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:12.966873767 +0000
+++ 0003-net-ixgbe-support-packet-type-with-NEON.patch	2019-12-11 21:24:12.535653945 +0000
@@ -1 +1 @@
-From 41fdc03e72c55ac7f28f0d52f3c1935a19015180 Mon Sep 17 00:00:00 2001
+From 295b2079b0cd80810dbad09c5e154b2590015065 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 41fdc03e72c55ac7f28f0d52f3c1935a19015180 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
-index dbce7a80e..3c7624f3a 100644
+index 5492f5f5f..74de2ff4e 100644
@@ -28 +29 @@
-@@ -3909,5 +3909,5 @@ ixgbe_dev_supported_ptypes_get(struct rte_eth_dev *dev)
+@@ -3882,5 +3882,5 @@ ixgbe_dev_supported_ptypes_get(struct rte_eth_dev *dev)
@@ -36 +37 @@
-index 26c0ef5ae..ee11fab96 100644
+index 07f2fafe7..fa73d1e45 100644
@@ -39,2 +40,2 @@
-@@ -147,4 +147,66 @@ desc_to_olflags_v(uint8x16x2_t sterr_tmp1, uint8x16x2_t sterr_tmp2,
- #define IXGBE_UINT8_BIT			(CHAR_BIT * sizeof(uint8_t))
+@@ -146,4 +146,66 @@ desc_to_olflags_v(uint8x16x2_t sterr_tmp1, uint8x16x2_t sterr_tmp2,
+ #define IXGBE_VPMD_DESC_EOP_MASK	0x02020202
@@ -106 +107 @@
-@@ -304,4 +366,6 @@ _recv_raw_pkts_vec(struct ixgbe_rx_queue *rxq, struct rte_mbuf **rx_pkts,
+@@ -297,4 +359,6 @@ _recv_raw_pkts_vec(struct ixgbe_rx_queue *rxq, struct rte_mbuf **rx_pkts,
@@ -111,2 +112,2 @@
- 		/* C.5 calc available number of desc */
- 		if (unlikely(stat == 0)) {
+ 		stat &= IXGBE_VPMD_DESC_DD_MASK;
+ 


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/ixgbe: fix MACsec setting' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
  2019-12-11 21:25 ` [dpdk-stable] patch 'net/qede: fix setting VLAN strip mode' " Kevin Traynor
  2019-12-11 21:25 ` [dpdk-stable] patch 'net/ixgbe: support packet type with NEON' " Kevin Traynor
@ 2019-12-11 21:25 ` Kevin Traynor
  2019-12-12  2:42   ` Sun, GuinanX
  2019-12-11 21:25 ` [dpdk-stable] patch 'net/ixgbe: fix performance drop caused by MACsec' " Kevin Traynor
                   ` (65 subsequent siblings)
  68 siblings, 1 reply; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:25 UTC (permalink / raw)
  To: Guinan Sun; +Cc: Xiaolong Ye, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/7137dc35798febc3ab6738921eab092ca5c4ac0e

Thanks.

Kevin.

---
From 7137dc35798febc3ab6738921eab092ca5c4ac0e Mon Sep 17 00:00:00 2001
From: Guinan Sun <guinanx.sun@intel.com>
Date: Thu, 31 Oct 2019 11:31:52 +0000
Subject: [PATCH] net/ixgbe: fix MACsec setting

[ upstream commit 50556c88104cbc0096e90f454dc137258be2099f ]

MACsec setting is not valid when port is stopped.
In order to make it valid, the patch changes the setting
to where port is started.

Fixes: 597f9fafe13b ("app/testpmd: convert to new Tx offloads API")

Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c  | 149 ++++++++++++++++++++++++++++++
 drivers/net/ixgbe/ixgbe_ethdev.h  |  19 ++++
 drivers/net/ixgbe/rte_pmd_ixgbe.c | 125 ++-----------------------
 3 files changed, 175 insertions(+), 118 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 74de2ff4e..1336236ba 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -2591,4 +2591,6 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
 	struct ixgbe_tm_conf *tm_conf =
 		IXGBE_DEV_PRIVATE_TO_TM_CONF(dev->data->dev_private);
+	struct ixgbe_macsec_setting *macsec_ctrl =
+		IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(dev->data->dev_private);
 
 	PMD_INIT_FUNC_TRACE();
@@ -2831,4 +2833,7 @@ skip_link_setup:
 	ixgbe_dev_link_update(dev, 0);
 
+	/* setup the macsec ctrl register */
+	ixgbe_dev_macsec_register_enable(dev, macsec_ctrl);
+
 	return 0;
 
@@ -2859,4 +2864,7 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
 	PMD_INIT_FUNC_TRACE();
 
+	/* disable mecsec register */
+	ixgbe_dev_macsec_register_disable(dev);
+
 	rte_eal_alarm_cancel(ixgbe_dev_setup_link_alarm_handler, dev);
 
@@ -8679,4 +8687,145 @@ ixgbe_clear_all_l2_tn_filter(struct rte_eth_dev *dev)
 }
 
+void
+ixgbe_dev_macsec_setting_save(struct rte_eth_dev *dev,
+				struct ixgbe_macsec_setting *macsec_setting)
+{
+	struct ixgbe_macsec_setting *macsec =
+		IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(dev->data->dev_private);
+
+	macsec->encrypt_en = macsec_setting->encrypt_en;
+	macsec->replayprotect_en = macsec_setting->replayprotect_en;
+}
+
+void
+ixgbe_dev_macsec_setting_reset(struct rte_eth_dev *dev)
+{
+	struct ixgbe_macsec_setting *macsec =
+		IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(dev->data->dev_private);
+
+	macsec->encrypt_en = 0;
+	macsec->replayprotect_en = 0;
+}
+
+void
+ixgbe_dev_macsec_register_enable(struct rte_eth_dev *dev,
+				struct ixgbe_macsec_setting *macsec_setting)
+{
+	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	uint32_t ctrl;
+	uint8_t en = macsec_setting->encrypt_en;
+	uint8_t rp = macsec_setting->replayprotect_en;
+
+	/**
+	 * Workaround:
+	 * As no ixgbe_disable_sec_rx_path equivalent is
+	 * implemented for tx in the base code, and we are
+	 * not allowed to modify the base code in DPDK, so
+	 * just call the hand-written one directly for now.
+	 * The hardware support has been checked by
+	 * ixgbe_disable_sec_rx_path().
+	 */
+	ixgbe_disable_sec_tx_path_generic(hw);
+
+	/* Enable Ethernet CRC (required by MACsec offload) */
+	ctrl = IXGBE_READ_REG(hw, IXGBE_HLREG0);
+	ctrl |= IXGBE_HLREG0_TXCRCEN | IXGBE_HLREG0_RXCRCSTRP;
+	IXGBE_WRITE_REG(hw, IXGBE_HLREG0, ctrl);
+
+	/* Enable the TX and RX crypto engines */
+	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXCTRL);
+	ctrl &= ~IXGBE_SECTXCTRL_SECTX_DIS;
+	IXGBE_WRITE_REG(hw, IXGBE_SECTXCTRL, ctrl);
+
+	ctrl = IXGBE_READ_REG(hw, IXGBE_SECRXCTRL);
+	ctrl &= ~IXGBE_SECRXCTRL_SECRX_DIS;
+	IXGBE_WRITE_REG(hw, IXGBE_SECRXCTRL, ctrl);
+
+	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXMINIFG);
+	ctrl &= ~IXGBE_SECTX_MINSECIFG_MASK;
+	ctrl |= 0x3;
+	IXGBE_WRITE_REG(hw, IXGBE_SECTXMINIFG, ctrl);
+
+	/* Enable SA lookup */
+	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECTXCTRL);
+	ctrl &= ~IXGBE_LSECTXCTRL_EN_MASK;
+	ctrl |= en ? IXGBE_LSECTXCTRL_AUTH_ENCRYPT :
+		     IXGBE_LSECTXCTRL_AUTH;
+	ctrl |= IXGBE_LSECTXCTRL_AISCI;
+	ctrl &= ~IXGBE_LSECTXCTRL_PNTHRSH_MASK;
+	ctrl |= IXGBE_MACSEC_PNTHRSH & IXGBE_LSECTXCTRL_PNTHRSH_MASK;
+	IXGBE_WRITE_REG(hw, IXGBE_LSECTXCTRL, ctrl);
+
+	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECRXCTRL);
+	ctrl &= ~IXGBE_LSECRXCTRL_EN_MASK;
+	ctrl |= IXGBE_LSECRXCTRL_STRICT << IXGBE_LSECRXCTRL_EN_SHIFT;
+	ctrl &= ~IXGBE_LSECRXCTRL_PLSH;
+	if (rp)
+		ctrl |= IXGBE_LSECRXCTRL_RP;
+	else
+		ctrl &= ~IXGBE_LSECRXCTRL_RP;
+	IXGBE_WRITE_REG(hw, IXGBE_LSECRXCTRL, ctrl);
+
+	/* Start the data paths */
+	ixgbe_enable_sec_rx_path(hw);
+	/**
+	 * Workaround:
+	 * As no ixgbe_enable_sec_rx_path equivalent is
+	 * implemented for tx in the base code, and we are
+	 * not allowed to modify the base code in DPDK, so
+	 * just call the hand-written one directly for now.
+	 */
+	ixgbe_enable_sec_tx_path_generic(hw);
+}
+
+void
+ixgbe_dev_macsec_register_disable(struct rte_eth_dev *dev)
+{
+	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	uint32_t ctrl;
+
+	/**
+	 * Workaround:
+	 * As no ixgbe_disable_sec_rx_path equivalent is
+	 * implemented for tx in the base code, and we are
+	 * not allowed to modify the base code in DPDK, so
+	 * just call the hand-written one directly for now.
+	 * The hardware support has been checked by
+	 * ixgbe_disable_sec_rx_path().
+	 */
+	ixgbe_disable_sec_tx_path_generic(hw);
+
+	/* Disable the TX and RX crypto engines */
+	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXCTRL);
+	ctrl |= IXGBE_SECTXCTRL_SECTX_DIS;
+	IXGBE_WRITE_REG(hw, IXGBE_SECTXCTRL, ctrl);
+
+	ctrl = IXGBE_READ_REG(hw, IXGBE_SECRXCTRL);
+	ctrl |= IXGBE_SECRXCTRL_SECRX_DIS;
+	IXGBE_WRITE_REG(hw, IXGBE_SECRXCTRL, ctrl);
+
+	/* Disable SA lookup */
+	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECTXCTRL);
+	ctrl &= ~IXGBE_LSECTXCTRL_EN_MASK;
+	ctrl |= IXGBE_LSECTXCTRL_DISABLE;
+	IXGBE_WRITE_REG(hw, IXGBE_LSECTXCTRL, ctrl);
+
+	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECRXCTRL);
+	ctrl &= ~IXGBE_LSECRXCTRL_EN_MASK;
+	ctrl |= IXGBE_LSECRXCTRL_DISABLE << IXGBE_LSECRXCTRL_EN_SHIFT;
+	IXGBE_WRITE_REG(hw, IXGBE_LSECRXCTRL, ctrl);
+
+	/* Start the data paths */
+	ixgbe_enable_sec_rx_path(hw);
+	/**
+	 * Workaround:
+	 * As no ixgbe_enable_sec_rx_path equivalent is
+	 * implemented for tx in the base code, and we are
+	 * not allowed to modify the base code in DPDK, so
+	 * just call the hand-written one directly for now.
+	 */
+	ixgbe_enable_sec_tx_path_generic(hw);
+}
+
 RTE_PMD_REGISTER_PCI(net_ixgbe, rte_ixgbe_pmd);
 RTE_PMD_REGISTER_PCI_TABLE(net_ixgbe, pci_id_ixgbe_map);
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h
index 5023fa13f..418adfa3d 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.h
+++ b/drivers/net/ixgbe/ixgbe_ethdev.h
@@ -361,4 +361,9 @@ struct rte_flow {
 };
 
+struct ixgbe_macsec_setting {
+	uint8_t encrypt_en;
+	uint8_t replayprotect_en;
+};
+
 /*
  * Statistics counters collected by the MACsec
@@ -467,4 +472,5 @@ struct ixgbe_adapter {
 	struct ixgbe_hw_stats       stats;
 	struct ixgbe_macsec_stats   macsec_stats;
+	struct ixgbe_macsec_setting	macsec_setting;
 	struct ixgbe_hw_fdir_info   fdir;
 	struct ixgbe_interrupt      intr;
@@ -519,4 +525,7 @@ int ixgbe_vf_representor_uninit(struct rte_eth_dev *ethdev);
 	(&((struct ixgbe_adapter *)adapter)->macsec_stats)
 
+#define IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(adapter) \
+	(&((struct ixgbe_adapter *)adapter)->macsec_setting)
+
 #define IXGBE_DEV_PRIVATE_TO_INTR(adapter) \
 	(&((struct ixgbe_adapter *)adapter)->intr)
@@ -737,4 +746,14 @@ int ixgbe_config_rss_filter(struct rte_eth_dev *dev,
 		struct ixgbe_rte_flow_rss_conf *conf, bool add);
 
+void ixgbe_dev_macsec_register_enable(struct rte_eth_dev *dev,
+		struct ixgbe_macsec_setting *macsec_setting);
+
+void ixgbe_dev_macsec_register_disable(struct rte_eth_dev *dev);
+
+void ixgbe_dev_macsec_setting_save(struct rte_eth_dev *dev,
+		struct ixgbe_macsec_setting *macsec_setting);
+
+void ixgbe_dev_macsec_setting_reset(struct rte_eth_dev *dev);
+
 static inline int
 ixgbe_ethertype_filter_lookup(struct ixgbe_filter_info *filter_info,
diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe.c b/drivers/net/ixgbe/rte_pmd_ixgbe.c
index 3a874f9a9..49d538ef1 100644
--- a/drivers/net/ixgbe/rte_pmd_ixgbe.c
+++ b/drivers/net/ixgbe/rte_pmd_ixgbe.c
@@ -515,7 +515,6 @@ int
 rte_pmd_ixgbe_macsec_enable(uint16_t port, uint8_t en, uint8_t rp)
 {
-	struct ixgbe_hw *hw;
 	struct rte_eth_dev *dev;
-	uint32_t ctrl;
+	struct ixgbe_macsec_setting macsec_setting;
 
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
@@ -523,72 +522,10 @@ rte_pmd_ixgbe_macsec_enable(uint16_t port, uint8_t en, uint8_t rp)
 	dev = &rte_eth_devices[port];
 
-	if (!is_ixgbe_supported(dev))
-		return -ENOTSUP;
+	macsec_setting.encrypt_en = en;
+	macsec_setting.replayprotect_en = rp;
 
-	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	ixgbe_dev_macsec_setting_save(dev, &macsec_setting);
 
-	/* Stop the data paths */
-	if (ixgbe_disable_sec_rx_path(hw) != IXGBE_SUCCESS)
-		return -ENOTSUP;
-	/**
-	 * Workaround:
-	 * As no ixgbe_disable_sec_rx_path equivalent is
-	 * implemented for tx in the base code, and we are
-	 * not allowed to modify the base code in DPDK, so
-	 * just call the hand-written one directly for now.
-	 * The hardware support has been checked by
-	 * ixgbe_disable_sec_rx_path().
-	 */
-	ixgbe_disable_sec_tx_path_generic(hw);
-
-	/* Enable Ethernet CRC (required by MACsec offload) */
-	ctrl = IXGBE_READ_REG(hw, IXGBE_HLREG0);
-	ctrl |= IXGBE_HLREG0_TXCRCEN | IXGBE_HLREG0_RXCRCSTRP;
-	IXGBE_WRITE_REG(hw, IXGBE_HLREG0, ctrl);
-
-	/* Enable the TX and RX crypto engines */
-	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXCTRL);
-	ctrl &= ~IXGBE_SECTXCTRL_SECTX_DIS;
-	IXGBE_WRITE_REG(hw, IXGBE_SECTXCTRL, ctrl);
-
-	ctrl = IXGBE_READ_REG(hw, IXGBE_SECRXCTRL);
-	ctrl &= ~IXGBE_SECRXCTRL_SECRX_DIS;
-	IXGBE_WRITE_REG(hw, IXGBE_SECRXCTRL, ctrl);
-
-	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXMINIFG);
-	ctrl &= ~IXGBE_SECTX_MINSECIFG_MASK;
-	ctrl |= 0x3;
-	IXGBE_WRITE_REG(hw, IXGBE_SECTXMINIFG, ctrl);
-
-	/* Enable SA lookup */
-	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECTXCTRL);
-	ctrl &= ~IXGBE_LSECTXCTRL_EN_MASK;
-	ctrl |= en ? IXGBE_LSECTXCTRL_AUTH_ENCRYPT :
-		     IXGBE_LSECTXCTRL_AUTH;
-	ctrl |= IXGBE_LSECTXCTRL_AISCI;
-	ctrl &= ~IXGBE_LSECTXCTRL_PNTHRSH_MASK;
-	ctrl |= IXGBE_MACSEC_PNTHRSH & IXGBE_LSECTXCTRL_PNTHRSH_MASK;
-	IXGBE_WRITE_REG(hw, IXGBE_LSECTXCTRL, ctrl);
-
-	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECRXCTRL);
-	ctrl &= ~IXGBE_LSECRXCTRL_EN_MASK;
-	ctrl |= IXGBE_LSECRXCTRL_STRICT << IXGBE_LSECRXCTRL_EN_SHIFT;
-	ctrl &= ~IXGBE_LSECRXCTRL_PLSH;
-	if (rp)
-		ctrl |= IXGBE_LSECRXCTRL_RP;
-	else
-		ctrl &= ~IXGBE_LSECRXCTRL_RP;
-	IXGBE_WRITE_REG(hw, IXGBE_LSECRXCTRL, ctrl);
-
-	/* Start the data paths */
-	ixgbe_enable_sec_rx_path(hw);
-	/**
-	 * Workaround:
-	 * As no ixgbe_enable_sec_rx_path equivalent is
-	 * implemented for tx in the base code, and we are
-	 * not allowed to modify the base code in DPDK, so
-	 * just call the hand-written one directly for now.
-	 */
-	ixgbe_enable_sec_tx_path_generic(hw);
+	ixgbe_dev_macsec_register_enable(dev, &macsec_setting);
 
 	return 0;
@@ -598,7 +535,5 @@ int
 rte_pmd_ixgbe_macsec_disable(uint16_t port)
 {
-	struct ixgbe_hw *hw;
 	struct rte_eth_dev *dev;
-	uint32_t ctrl;
 
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
@@ -606,53 +541,7 @@ rte_pmd_ixgbe_macsec_disable(uint16_t port)
 	dev = &rte_eth_devices[port];
 
-	if (!is_ixgbe_supported(dev))
-		return -ENOTSUP;
+	ixgbe_dev_macsec_setting_reset(dev);
 
-	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-
-	/* Stop the data paths */
-	if (ixgbe_disable_sec_rx_path(hw) != IXGBE_SUCCESS)
-		return -ENOTSUP;
-	/**
-	 * Workaround:
-	 * As no ixgbe_disable_sec_rx_path equivalent is
-	 * implemented for tx in the base code, and we are
-	 * not allowed to modify the base code in DPDK, so
-	 * just call the hand-written one directly for now.
-	 * The hardware support has been checked by
-	 * ixgbe_disable_sec_rx_path().
-	 */
-	ixgbe_disable_sec_tx_path_generic(hw);
-
-	/* Disable the TX and RX crypto engines */
-	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXCTRL);
-	ctrl |= IXGBE_SECTXCTRL_SECTX_DIS;
-	IXGBE_WRITE_REG(hw, IXGBE_SECTXCTRL, ctrl);
-
-	ctrl = IXGBE_READ_REG(hw, IXGBE_SECRXCTRL);
-	ctrl |= IXGBE_SECRXCTRL_SECRX_DIS;
-	IXGBE_WRITE_REG(hw, IXGBE_SECRXCTRL, ctrl);
-
-	/* Disable SA lookup */
-	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECTXCTRL);
-	ctrl &= ~IXGBE_LSECTXCTRL_EN_MASK;
-	ctrl |= IXGBE_LSECTXCTRL_DISABLE;
-	IXGBE_WRITE_REG(hw, IXGBE_LSECTXCTRL, ctrl);
-
-	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECRXCTRL);
-	ctrl &= ~IXGBE_LSECRXCTRL_EN_MASK;
-	ctrl |= IXGBE_LSECRXCTRL_DISABLE << IXGBE_LSECRXCTRL_EN_SHIFT;
-	IXGBE_WRITE_REG(hw, IXGBE_LSECRXCTRL, ctrl);
-
-	/* Start the data paths */
-	ixgbe_enable_sec_rx_path(hw);
-	/**
-	 * Workaround:
-	 * As no ixgbe_enable_sec_rx_path equivalent is
-	 * implemented for tx in the base code, and we are
-	 * not allowed to modify the base code in DPDK, so
-	 * just call the hand-written one directly for now.
-	 */
-	ixgbe_enable_sec_tx_path_generic(hw);
+	ixgbe_dev_macsec_register_disable(dev);
 
 	return 0;
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:13.077637869 +0000
+++ 0004-net-ixgbe-fix-MACsec-setting.patch	2019-12-11 21:24:12.552653594 +0000
@@ -1 +1 @@
-From 50556c88104cbc0096e90f454dc137258be2099f Mon Sep 17 00:00:00 2001
+From 7137dc35798febc3ab6738921eab092ca5c4ac0e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 50556c88104cbc0096e90f454dc137258be2099f ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 3c7624f3a..06414d110 100644
+index 74de2ff4e..1336236ba 100644
@@ -25 +26 @@
-@@ -2543,4 +2543,6 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
+@@ -2591,4 +2591,6 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
@@ -32 +33 @@
-@@ -2795,4 +2797,7 @@ skip_link_setup:
+@@ -2831,4 +2833,7 @@ skip_link_setup:
@@ -40 +41 @@
-@@ -2826,4 +2831,7 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
+@@ -2859,4 +2864,7 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
@@ -48 +49 @@
-@@ -8817,4 +8825,145 @@ ixgbe_clear_all_l2_tn_filter(struct rte_eth_dev *dev)
+@@ -8679,4 +8687,145 @@ ixgbe_clear_all_l2_tn_filter(struct rte_eth_dev *dev)
@@ -195 +196 @@
-index 6e9ed2e10..5da6923a1 100644
+index 5023fa13f..418adfa3d 100644
@@ -198 +199 @@
-@@ -366,4 +366,9 @@ struct rte_flow {
+@@ -361,4 +361,9 @@ struct rte_flow {
@@ -208 +209 @@
-@@ -472,4 +477,5 @@ struct ixgbe_adapter {
+@@ -467,4 +472,5 @@ struct ixgbe_adapter {
@@ -214 +215 @@
-@@ -524,4 +530,7 @@ int ixgbe_vf_representor_uninit(struct rte_eth_dev *ethdev);
+@@ -519,4 +525,7 @@ int ixgbe_vf_representor_uninit(struct rte_eth_dev *ethdev);
@@ -222 +223 @@
-@@ -742,4 +751,14 @@ int ixgbe_config_rss_filter(struct rte_eth_dev *dev,
+@@ -737,4 +746,14 @@ int ixgbe_config_rss_filter(struct rte_eth_dev *dev,
@@ -238 +239 @@
-index 9514f2cf5..073fe1e23 100644
+index 3a874f9a9..49d538ef1 100644
@@ -241 +242 @@
-@@ -516,7 +516,6 @@ int
+@@ -515,7 +515,6 @@ int
@@ -250 +251 @@
-@@ -524,72 +523,10 @@ rte_pmd_ixgbe_macsec_enable(uint16_t port, uint8_t en, uint8_t rp)
+@@ -523,72 +522,10 @@ rte_pmd_ixgbe_macsec_enable(uint16_t port, uint8_t en, uint8_t rp)
@@ -327 +328 @@
-@@ -599,7 +536,5 @@ int
+@@ -598,7 +535,5 @@ int
@@ -335 +336 @@
-@@ -607,53 +542,7 @@ rte_pmd_ixgbe_macsec_disable(uint16_t port)
+@@ -606,53 +541,7 @@ rte_pmd_ixgbe_macsec_disable(uint16_t port)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/ixgbe: fix performance drop caused by MACsec' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (2 preceding siblings ...)
  2019-12-11 21:25 ` [dpdk-stable] patch 'net/ixgbe: fix MACsec setting' " Kevin Traynor
@ 2019-12-11 21:25 ` Kevin Traynor
  2019-12-11 21:25 ` [dpdk-stable] patch 'net/ixgbe: fix link status' " Kevin Traynor
                   ` (64 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:25 UTC (permalink / raw)
  To: Shougang Wang; +Cc: Xiaolong Ye, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/f4d7ffe6e960c5edafc4073d724f6ad5d3247800

Thanks.

Kevin.

---
From f4d7ffe6e960c5edafc4073d724f6ad5d3247800 Mon Sep 17 00:00:00 2001
From: Shougang Wang <shougangx.wang@intel.com>
Date: Thu, 21 Nov 2019 07:32:05 +0000
Subject: [PATCH] net/ixgbe: fix performance drop caused by MACsec

[ upstream commit 54aedfe1c02119337485388263c2782d6d39541d ]

Currently macsec offload will be enabled every time when device starts.
It will cause QoS sample application performance drop issue. This patch
adds check in dev_start ops to make sure macsec is only enabled when
required explicitly.

Fixes: 50556c88104c ("net/ixgbe: fix MACsec setting")

Signed-off-by: Shougang Wang <shougangx.wang@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c  | 14 ++++++++------
 drivers/net/ixgbe/ixgbe_ethdev.h  |  1 +
 drivers/net/ixgbe/rte_pmd_ixgbe.c |  1 +
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 1336236ba..3d4e62b5a 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -1079,4 +1079,6 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
 	PMD_INIT_FUNC_TRACE();
 
+	ixgbe_dev_macsec_setting_reset(eth_dev);
+
 	eth_dev->dev_ops = &ixgbe_eth_dev_ops;
 	eth_dev->rx_pkt_burst = &ixgbe_recv_pkts;
@@ -2591,5 +2593,5 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
 	struct ixgbe_tm_conf *tm_conf =
 		IXGBE_DEV_PRIVATE_TO_TM_CONF(dev->data->dev_private);
-	struct ixgbe_macsec_setting *macsec_ctrl =
+	struct ixgbe_macsec_setting *macsec_setting =
 		IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(dev->data->dev_private);
 
@@ -2833,6 +2835,7 @@ skip_link_setup:
 	ixgbe_dev_link_update(dev, 0);
 
-	/* setup the macsec ctrl register */
-	ixgbe_dev_macsec_register_enable(dev, macsec_ctrl);
+	/* setup the macsec setting register */
+	if (macsec_setting->offload_en)
+		ixgbe_dev_macsec_register_enable(dev, macsec_setting);
 
 	return 0;
@@ -2864,7 +2867,4 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
 	PMD_INIT_FUNC_TRACE();
 
-	/* disable mecsec register */
-	ixgbe_dev_macsec_register_disable(dev);
-
 	rte_eal_alarm_cancel(ixgbe_dev_setup_link_alarm_handler, dev);
 
@@ -8694,4 +8694,5 @@ ixgbe_dev_macsec_setting_save(struct rte_eth_dev *dev,
 		IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(dev->data->dev_private);
 
+	macsec->offload_en = macsec_setting->offload_en;
 	macsec->encrypt_en = macsec_setting->encrypt_en;
 	macsec->replayprotect_en = macsec_setting->replayprotect_en;
@@ -8704,4 +8705,5 @@ ixgbe_dev_macsec_setting_reset(struct rte_eth_dev *dev)
 		IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(dev->data->dev_private);
 
+	macsec->offload_en = 0;
 	macsec->encrypt_en = 0;
 	macsec->replayprotect_en = 0;
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h
index 418adfa3d..752d7981e 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.h
+++ b/drivers/net/ixgbe/ixgbe_ethdev.h
@@ -362,4 +362,5 @@ struct rte_flow {
 
 struct ixgbe_macsec_setting {
+	uint8_t offload_en;
 	uint8_t encrypt_en;
 	uint8_t replayprotect_en;
diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe.c b/drivers/net/ixgbe/rte_pmd_ixgbe.c
index 49d538ef1..b946808bc 100644
--- a/drivers/net/ixgbe/rte_pmd_ixgbe.c
+++ b/drivers/net/ixgbe/rte_pmd_ixgbe.c
@@ -522,4 +522,5 @@ rte_pmd_ixgbe_macsec_enable(uint16_t port, uint8_t en, uint8_t rp)
 	dev = &rte_eth_devices[port];
 
+	macsec_setting.offload_en = 1;
 	macsec_setting.encrypt_en = en;
 	macsec_setting.replayprotect_en = rp;
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:13.174219947 +0000
+++ 0005-net-ixgbe-fix-performance-drop-caused-by-MACsec.patch	2019-12-11 21:24:12.568653263 +0000
@@ -1 +1 @@
-From 54aedfe1c02119337485388263c2782d6d39541d Mon Sep 17 00:00:00 2001
+From f4d7ffe6e960c5edafc4073d724f6ad5d3247800 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 54aedfe1c02119337485388263c2782d6d39541d ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index 0084c3335..118bc7475 100644
+index 1336236ba..3d4e62b5a 100644
@@ -26 +27 @@
-@@ -1096,4 +1096,6 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
+@@ -1079,4 +1079,6 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
@@ -33 +34 @@
-@@ -2549,5 +2551,5 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
+@@ -2591,5 +2593,5 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
@@ -40 +41 @@
-@@ -2803,6 +2805,7 @@ skip_link_setup:
+@@ -2833,6 +2835,7 @@ skip_link_setup:
@@ -50 +51 @@
-@@ -2837,7 +2840,4 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
+@@ -2864,7 +2867,4 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
@@ -58 +59 @@
-@@ -8848,4 +8848,5 @@ ixgbe_dev_macsec_setting_save(struct rte_eth_dev *dev,
+@@ -8694,4 +8694,5 @@ ixgbe_dev_macsec_setting_save(struct rte_eth_dev *dev,
@@ -64 +65 @@
-@@ -8858,4 +8859,5 @@ ixgbe_dev_macsec_setting_reset(struct rte_eth_dev *dev)
+@@ -8704,4 +8705,5 @@ ixgbe_dev_macsec_setting_reset(struct rte_eth_dev *dev)
@@ -71 +72 @@
-index 5da6923a1..76a1b9d18 100644
+index 418adfa3d..752d7981e 100644
@@ -74 +75 @@
-@@ -367,4 +367,5 @@ struct rte_flow {
+@@ -362,4 +362,5 @@ struct rte_flow {
@@ -81 +82 @@
-index 073fe1e23..8bcaded6e 100644
+index 49d538ef1..b946808bc 100644
@@ -84 +85 @@
-@@ -523,4 +523,5 @@ rte_pmd_ixgbe_macsec_enable(uint16_t port, uint8_t en, uint8_t rp)
+@@ -522,4 +522,5 @@ rte_pmd_ixgbe_macsec_enable(uint16_t port, uint8_t en, uint8_t rp)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/ixgbe: fix link status' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (3 preceding siblings ...)
  2019-12-11 21:25 ` [dpdk-stable] patch 'net/ixgbe: fix performance drop caused by MACsec' " Kevin Traynor
@ 2019-12-11 21:25 ` Kevin Traynor
  2019-12-11 21:25 ` [dpdk-stable] patch 'net/bnxt: fix debug log level' " Kevin Traynor
                   ` (63 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:25 UTC (permalink / raw)
  To: Xiao Zhang; +Cc: Wei Zhao, Xiaolong Ye, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/c904c37a6c43bab8f874706aefbbd5bc3a42a4a4

Thanks.

Kevin.

---
From c904c37a6c43bab8f874706aefbbd5bc3a42a4a4 Mon Sep 17 00:00:00 2001
From: Xiao Zhang <xiao.zhang@intel.com>
Date: Tue, 29 Oct 2019 13:33:23 +0800
Subject: [PATCH] net/ixgbe: fix link status

[ upstream commit 1ca05831b9be946001ebabba2b3fdb0456684d9a ]

The link status for 82599eb got from link status register was not
correct, check the enable/disable flag of tx laser when getting the link
status, set the link status down if tx laser disabled since the tx laser
flag could be set correctly when up/down the link status.

Fixes: dc66e5fd01b9 ("net/ixgbe: improve link state check on VF")

Signed-off-by: Xiao Zhang <xiao.zhang@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 3d4e62b5a..d099bc120 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -2944,4 +2944,5 @@ ixgbe_dev_set_link_up(struct rte_eth_dev *dev)
 		/* Turn on the laser */
 		ixgbe_enable_tx_laser(hw);
+		ixgbe_dev_link_update(dev, 0);
 	}
 
@@ -2974,4 +2975,5 @@ ixgbe_dev_set_link_down(struct rte_eth_dev *dev)
 		/* Turn off the laser */
 		ixgbe_disable_tx_laser(hw);
+		ixgbe_dev_link_update(dev, 0);
 	}
 
@@ -4087,4 +4089,5 @@ ixgbe_dev_link_update_share(struct rte_eth_dev *dev,
 	int diag;
 	int wait = 1;
+	u32 esdp_reg;
 
 	memset(&link, 0, sizeof(link));
@@ -4114,4 +4117,8 @@ ixgbe_dev_link_update_share(struct rte_eth_dev *dev,
 	}
 
+	esdp_reg = IXGBE_READ_REG(hw, IXGBE_ESDP);
+	if ((esdp_reg & IXGBE_ESDP_SDP3))
+		link_up = 0;
+
 	if (link_up == 0) {
 		if (ixgbe_get_media_type(hw) == ixgbe_media_type_fiber) {
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:13.261655241 +0000
+++ 0006-net-ixgbe-fix-link-status.patch	2019-12-11 21:24:12.579653036 +0000
@@ -1 +1 @@
-From 1ca05831b9be946001ebabba2b3fdb0456684d9a Mon Sep 17 00:00:00 2001
+From c904c37a6c43bab8f874706aefbbd5bc3a42a4a4 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1ca05831b9be946001ebabba2b3fdb0456684d9a ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 9c386f5c9..30c0379d4 100644
+index 3d4e62b5a..d099bc120 100644
@@ -25 +26 @@
-@@ -2913,4 +2913,5 @@ ixgbe_dev_set_link_up(struct rte_eth_dev *dev)
+@@ -2944,4 +2944,5 @@ ixgbe_dev_set_link_up(struct rte_eth_dev *dev)
@@ -31 +32 @@
-@@ -2943,4 +2944,5 @@ ixgbe_dev_set_link_down(struct rte_eth_dev *dev)
+@@ -2974,4 +2975,5 @@ ixgbe_dev_set_link_down(struct rte_eth_dev *dev)
@@ -37 +38 @@
-@@ -4117,4 +4119,5 @@ ixgbe_dev_link_update_share(struct rte_eth_dev *dev,
+@@ -4087,4 +4089,5 @@ ixgbe_dev_link_update_share(struct rte_eth_dev *dev,
@@ -43 +44 @@
-@@ -4144,4 +4147,8 @@ ixgbe_dev_link_update_share(struct rte_eth_dev *dev,
+@@ -4114,4 +4117,8 @@ ixgbe_dev_link_update_share(struct rte_eth_dev *dev,


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix debug log level' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (4 preceding siblings ...)
  2019-12-11 21:25 ` [dpdk-stable] patch 'net/ixgbe: fix link status' " Kevin Traynor
@ 2019-12-11 21:25 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/bnxt: fix L4 checksum indication in non-vector Rx' " Kevin Traynor
                   ` (62 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:25 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/aa9967488c5e0540895f13da64cd50b90d2e8a3d

Thanks.

Kevin.

---
From aa9967488c5e0540895f13da64cd50b90d2e8a3d Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Mon, 28 Oct 2019 09:53:39 -0700
Subject: [PATCH] net/bnxt: fix debug log level

[ upstream commit e0b7e8205cfc3f53210e68bd47feb4da9cec0628 ]

Creating a flow is a normal event; should not be logged at error level.

Fixes: 5c1171c97216 ("net/bnxt: refactor filter/flow")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_flow.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/bnxt/bnxt_flow.c b/drivers/net/bnxt/bnxt_flow.c
index e4fd0d935..1df1890cf 100644
--- a/drivers/net/bnxt/bnxt_flow.c
+++ b/drivers/net/bnxt/bnxt_flow.c
@@ -1075,5 +1075,5 @@ bnxt_flow_create(struct rte_eth_dev *dev,
 			goto free_flow;
 		}
-		PMD_DRV_LOG(ERR, "Successfully created flow.\n");
+		PMD_DRV_LOG(DEBUG, "Successfully created flow.\n");
 		STAILQ_INSERT_TAIL(&vnic->flow_list, flow, next);
 		return flow;
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:13.341744586 +0000
+++ 0007-net-bnxt-fix-debug-log-level.patch	2019-12-11 21:24:12.581652994 +0000
@@ -1 +1 @@
-From e0b7e8205cfc3f53210e68bd47feb4da9cec0628 Mon Sep 17 00:00:00 2001
+From aa9967488c5e0540895f13da64cd50b90d2e8a3d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e0b7e8205cfc3f53210e68bd47feb4da9cec0628 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index cad232aba..8f386cdf1 100644
+index e4fd0d935..1df1890cf 100644
@@ -21,3 +22,3 @@
-@@ -1759,5 +1759,5 @@ done:
- 
- 		STAILQ_INSERT_TAIL(&vnic->filter, filter, next);
+@@ -1075,5 +1075,5 @@ bnxt_flow_create(struct rte_eth_dev *dev,
+ 			goto free_flow;
+ 		}
@@ -27 +28 @@
- 		bnxt_release_flow_lock(bp);
+ 		return flow;


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix L4 checksum indication in non-vector Rx' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (5 preceding siblings ...)
  2019-12-11 21:25 ` [dpdk-stable] patch 'net/bnxt: fix debug log level' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/bnxt: fix IP checksum error indication' " Kevin Traynor
                   ` (61 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Kalesh AP; +Cc: Somnath Kotur, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/1ff0885e9f3cb255ff14bbd24400228a042ab487

Thanks.

Kevin.

---
From 1ff0885e9f3cb255ff14bbd24400228a042ab487 Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Mon, 4 Nov 2019 15:32:36 +0530
Subject: [PATCH] net/bnxt: fix L4 checksum indication in non-vector Rx

[ upstream commit b875339622a3765a27b73065ac783bc463cd5bce ]

Update "mbuf->ol_flags" correctly for inner and ourter ip checksum
errors in case of tunnel and non-tunnel packets.

Fixes: 65ee636872eb ("net/bnxt: fix Rx checksum flags")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_rxr.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c
index 918a7ae87..8dd7cc09e 100644
--- a/drivers/net/bnxt/bnxt_rxr.c
+++ b/drivers/net/bnxt/bnxt_rxr.c
@@ -448,13 +448,17 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
 	flags2_f = flags2_0xf(rxcmp1);
 	/* IP Checksum */
-	if (unlikely(((IS_IP_NONTUNNEL_PKT(flags2_f)) &&
-		      (RX_CMP_IP_CS_ERROR(rxcmp1))) ||
-		     (IS_IP_TUNNEL_PKT(flags2_f) &&
-		      (RX_CMP_IP_OUTER_CS_ERROR(rxcmp1))))) {
-		mbuf->ol_flags |= PKT_RX_IP_CKSUM_BAD;
+	if (likely(IS_IP_NONTUNNEL_PKT(flags2_f))) {
+		if (unlikely(RX_CMP_IP_CS_ERROR(rxcmp1)))
+			mbuf->ol_flags |= PKT_RX_IP_CKSUM_BAD;
+		else
+			mbuf->ol_flags |= PKT_RX_IP_CKSUM_GOOD;
+	} else if (IS_IP_TUNNEL_PKT(flags2_f)) {
+		if (unlikely(RX_CMP_IP_OUTER_CS_ERROR(rxcmp1) ||
+			     RX_CMP_IP_CS_ERROR(rxcmp1)))
+			mbuf->ol_flags |= PKT_RX_IP_CKSUM_BAD;
+		else
+			mbuf->ol_flags |= PKT_RX_IP_CKSUM_GOOD;
 	} else if (unlikely(RX_CMP_IP_CS_UNKNOWN(rxcmp1))) {
 		mbuf->ol_flags |= PKT_RX_IP_CKSUM_UNKNOWN;
-	} else {
-		mbuf->ol_flags |= PKT_RX_IP_CKSUM_GOOD;
 	}
 
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:13.423216012 +0000
+++ 0008-net-bnxt-fix-L4-checksum-indication-in-non-vector-Rx.patch	2019-12-11 21:24:12.583652953 +0000
@@ -1 +1 @@
-From b875339622a3765a27b73065ac783bc463cd5bce Mon Sep 17 00:00:00 2001
+From 1ff0885e9f3cb255ff14bbd24400228a042ab487 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit b875339622a3765a27b73065ac783bc463cd5bce ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index ee1444c1d..c35bc1afd 100644
+index 918a7ae87..8dd7cc09e 100644
@@ -23 +24 @@
-@@ -513,13 +513,17 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
+@@ -448,13 +448,17 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix IP checksum error indication' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (6 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/bnxt: fix L4 checksum indication in non-vector Rx' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'vhost: do not limit packed ring size' " Kevin Traynor
                   ` (60 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Kalesh AP; +Cc: Somnath Kotur, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/426e829013f34d4d43ba1d5475a2a38df0799a66

Thanks.

Kevin.

---
From 426e829013f34d4d43ba1d5475a2a38df0799a66 Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Fri, 15 Nov 2019 10:20:28 +0530
Subject: [PATCH] net/bnxt: fix IP checksum error indication

[ upstream commit 1bcec6ee08b4a2b7276da86323eb40da002ab421 ]

Update "mbuf->ol_flags" correctly for 'Checksum Unknown' errors
for both tunneled and non-tunneled IP packets.

Fixes: b875339622a3 ("net/bnxt: fix L4 checksum indication in non-vector Rx")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
---
 drivers/net/bnxt/bnxt_rxr.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c
index 8dd7cc09e..6e7ca1158 100644
--- a/drivers/net/bnxt/bnxt_rxr.c
+++ b/drivers/net/bnxt/bnxt_rxr.c
@@ -451,4 +451,6 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
 		if (unlikely(RX_CMP_IP_CS_ERROR(rxcmp1)))
 			mbuf->ol_flags |= PKT_RX_IP_CKSUM_BAD;
+		else if (unlikely(RX_CMP_IP_CS_UNKNOWN(rxcmp1)))
+			mbuf->ol_flags |= PKT_RX_IP_CKSUM_UNKNOWN;
 		else
 			mbuf->ol_flags |= PKT_RX_IP_CKSUM_GOOD;
@@ -457,8 +459,8 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
 			     RX_CMP_IP_CS_ERROR(rxcmp1)))
 			mbuf->ol_flags |= PKT_RX_IP_CKSUM_BAD;
+		else if (unlikely(RX_CMP_IP_CS_UNKNOWN(rxcmp1)))
+			mbuf->ol_flags |= PKT_RX_IP_CKSUM_UNKNOWN;
 		else
 			mbuf->ol_flags |= PKT_RX_IP_CKSUM_GOOD;
-	} else if (unlikely(RX_CMP_IP_CS_UNKNOWN(rxcmp1))) {
-		mbuf->ol_flags |= PKT_RX_IP_CKSUM_UNKNOWN;
 	}
 
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:13.490898956 +0000
+++ 0009-net-bnxt-fix-IP-checksum-error-indication.patch	2019-12-11 21:24:12.585652912 +0000
@@ -1 +1 @@
-From 1bcec6ee08b4a2b7276da86323eb40da002ab421 Mon Sep 17 00:00:00 2001
+From 426e829013f34d4d43ba1d5475a2a38df0799a66 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1bcec6ee08b4a2b7276da86323eb40da002ab421 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index c35bc1afd..3b713c242 100644
+index 8dd7cc09e..6e7ca1158 100644
@@ -22 +23 @@
-@@ -516,4 +516,6 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
+@@ -451,4 +451,6 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
@@ -29 +30 @@
-@@ -522,8 +524,8 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
+@@ -457,8 +459,8 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'vhost: do not limit packed ring size' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (7 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/bnxt: fix IP checksum error indication' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'vhost: fix build dependency on hash lib' " Kevin Traynor
                   ` (59 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Marvin Liu; +Cc: Tiwei Bie, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/8b66c5008ebaeec8509d56c42957f1e0c9d54cd6

Thanks.

Kevin.

---
From 8b66c5008ebaeec8509d56c42957f1e0c9d54cd6 Mon Sep 17 00:00:00 2001
From: Marvin Liu <yong.liu@intel.com>
Date: Wed, 30 Oct 2019 17:24:21 +0800
Subject: [PATCH] vhost: do not limit packed ring size

[ upstream commit 3939255eeda47d9f70d5d54729ef94a27ae8b803 ]

Virtio spec only set rule that packed ring maximum size is up to 2^15
entries. Should not limit packed ring size to power of two.

Fixes: 708e14d8b9ac ("vhost: advertize packed ring layout support")

Signed-off-by: Marvin Liu <yong.liu@intel.com>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 lib/librte_vhost/vhost_user.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
index b5de73b4f..23a6bf892 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
@@ -385,6 +385,18 @@ vhost_user_set_vring_num(struct virtio_net **pdev,
 	 *   Queue Size value is always a power of 2. The maximum Queue Size
 	 *   value is 32768.
+	 *
+	 * VIRTIO 1.1 2.7 Virtqueues says:
+	 *
+	 *   Packed virtqueues support up to 2^15 entries each.
 	 */
-	if ((vq->size & (vq->size - 1)) || vq->size > 32768) {
+	if (!vq_is_packed(dev)) {
+		if (vq->size & (vq->size - 1)) {
+			RTE_LOG(ERR, VHOST_CONFIG,
+				"invalid virtqueue size %u\n", vq->size);
+			return VH_RESULT_ERR;
+		}
+	}
+
+	if (vq->size > 32768) {
 		RTE_LOG(ERR, VHOST_CONFIG,
 			"invalid virtqueue size %u\n", vq->size);
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:13.564721484 +0000
+++ 0010-vhost-do-not-limit-packed-ring-size.patch	2019-12-11 21:24:12.589652829 +0000
@@ -1 +1 @@
-From 3939255eeda47d9f70d5d54729ef94a27ae8b803 Mon Sep 17 00:00:00 2001
+From 8b66c5008ebaeec8509d56c42957f1e0c9d54cd6 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3939255eeda47d9f70d5d54729ef94a27ae8b803 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 2a9fa7c6c..3f649c802 100644
+index b5de73b4f..23a6bf892 100644
@@ -23 +24 @@
-@@ -364,6 +364,18 @@ vhost_user_set_vring_num(struct virtio_net **pdev,
+@@ -385,6 +385,18 @@ vhost_user_set_vring_num(struct virtio_net **pdev,
@@ -36 +37 @@
-+			return RTE_VHOST_MSG_RESULT_ERR;
++			return VH_RESULT_ERR;


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'vhost: fix build dependency on hash lib' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (8 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'vhost: do not limit packed ring size' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/virtio-user: fix setting filters' " Kevin Traynor
                   ` (58 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Jin Yu; +Cc: Tiwei Bie, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/a9d08364c645c4d3408e447e4a4aa9614b594f0b

Thanks.

Kevin.

---
From a9d08364c645c4d3408e447e4a4aa9614b594f0b Mon Sep 17 00:00:00 2001
From: Jin Yu <jin.yu@intel.com>
Date: Wed, 30 Oct 2019 17:40:55 +0800
Subject: [PATCH] vhost: fix build dependency on hash lib

[ upstream commit 201e7482674551aeee27d0ff28e7bbd3fbfbbcf2 ]

Compile librte_vhost/vhost_crypto.c needs the rte_hash.h
So we need the librte_hash to be compiled before vhost.
Add the DEPDIRs to make sure this.

Bugzilla ID: 356
Fixes: 939066d96563 ("vhost/crypto: add public function implementation")

Signed-off-by: Jin Yu <jin.yu@intel.com>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 lib/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/Makefile b/lib/Makefile
index b7370ef97..ccb845f52 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -46,5 +46,5 @@ DEPDIRS-librte_rawdev := librte_eal librte_ethdev
 DIRS-$(CONFIG_RTE_LIBRTE_VHOST) += librte_vhost
 DEPDIRS-librte_vhost := librte_eal librte_mempool librte_mbuf librte_ethdev \
-			librte_net
+			librte_net librte_hash librte_cryptodev
 DIRS-$(CONFIG_RTE_LIBRTE_HASH) += librte_hash
 DEPDIRS-librte_hash := librte_eal librte_ring
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:13.646794194 +0000
+++ 0011-vhost-fix-build-dependency-on-hash-lib.patch	2019-12-11 21:24:12.590652809 +0000
@@ -1 +1 @@
-From 201e7482674551aeee27d0ff28e7bbd3fbfbbcf2 Mon Sep 17 00:00:00 2001
+From a9d08364c645c4d3408e447e4a4aa9614b594f0b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 201e7482674551aeee27d0ff28e7bbd3fbfbbcf2 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 1ff00ba8c..46b91ae1a 100644
+index b7370ef97..ccb845f52 100644
@@ -25 +26 @@
-@@ -47,5 +47,5 @@ DEPDIRS-librte_rawdev := librte_eal librte_ethdev
+@@ -46,5 +46,5 @@ DEPDIRS-librte_rawdev := librte_eal librte_ethdev


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/virtio-user: fix setting filters' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (9 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'vhost: fix build dependency on hash lib' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/mlx5: allow pattern start from IP' " Kevin Traynor
                   ` (57 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Marvin Liu; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/71ae3517754aa162257988e6c34746ffc20d78aa

Thanks.

Kevin.

---
From 71ae3517754aa162257988e6c34746ffc20d78aa Mon Sep 17 00:00:00 2001
From: Marvin Liu <yong.liu@intel.com>
Date: Wed, 6 Nov 2019 17:02:50 +0800
Subject: [PATCH] net/virtio-user: fix setting filters

[ upstream commit a76552d48f17a990662592ff5e13a6e83b62025c ]

As doc mentioned, Rx/Mac/vlan filters are all supported by best effort.
These control commands should return success.

Fixes: f9b9d1a55775 ("net/virtio-user: add multiple queues in device emulation")

Signed-off-by: Marvin Liu <yong.liu@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/virtio/virtio_user/virtio_user_dev.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c b/drivers/net/virtio/virtio_user/virtio_user_dev.c
index f0051f887..8e8adf6bb 100644
--- a/drivers/net/virtio/virtio_user/virtio_user_dev.c
+++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c
@@ -601,4 +601,8 @@ virtio_user_handle_ctrl_msg(struct virtio_user_dev *dev, struct vring *vring,
 		queues = *(uint16_t *)(uintptr_t)vring->desc[idx_data].addr;
 		status = virtio_user_handle_mq(dev, queues);
+	} else if (hdr->class == VIRTIO_NET_CTRL_RX  ||
+		   hdr->class == VIRTIO_NET_CTRL_MAC ||
+		   hdr->class == VIRTIO_NET_CTRL_VLAN) {
+		status = 0;
 	}
 
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:13.726213233 +0000
+++ 0012-net-virtio-user-fix-setting-filters.patch	2019-12-11 21:24:12.591652788 +0000
@@ -1 +1 @@
-From a76552d48f17a990662592ff5e13a6e83b62025c Mon Sep 17 00:00:00 2001
+From 71ae3517754aa162257988e6c34746ffc20d78aa Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a76552d48f17a990662592ff5e13a6e83b62025c ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -15,2 +16,2 @@
- drivers/net/virtio/virtio_user/virtio_user_dev.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
+ drivers/net/virtio/virtio_user/virtio_user_dev.c | 4 ++++
+ 1 file changed, 4 insertions(+)
@@ -19 +20 @@
-index 1c575d0cd..a4400e772 100644
+index f0051f887..8e8adf6bb 100644
@@ -22 +23 @@
-@@ -614,4 +614,8 @@ virtio_user_handle_ctrl_msg(struct virtio_user_dev *dev, struct vring *vring,
+@@ -601,4 +601,8 @@ virtio_user_handle_ctrl_msg(struct virtio_user_dev *dev, struct vring *vring,
@@ -24,9 +24,0 @@
- 		status = virtio_user_handle_mq(dev, queues);
-+	} else if (hdr->class == VIRTIO_NET_CTRL_RX  ||
-+		   hdr->class == VIRTIO_NET_CTRL_MAC ||
-+		   hdr->class == VIRTIO_NET_CTRL_VLAN) {
-+		status = 0;
- 	}
- 
-@@ -665,4 +669,8 @@ virtio_user_handle_ctrl_msg_packed(struct virtio_user_dev *dev,
- 				vring->desc[idx_data].addr;


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/mlx5: allow pattern start from IP' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (10 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/virtio-user: fix setting filters' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'ethdev: fix expand RSS flows' " Kevin Traynor
                   ` (56 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Xiaoyu Min; +Cc: Ori Kam, Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/7ee4881da1851b7dce7ad9e2cc041f14a9ab7130

Thanks.

Kevin.

---
From 7ee4881da1851b7dce7ad9e2cc041f14a9ab7130 Mon Sep 17 00:00:00 2001
From: Xiaoyu Min <jackmin@mellanox.com>
Date: Tue, 5 Nov 2019 10:03:09 +0200
Subject: [PATCH] net/mlx5: allow pattern start from IP

[ upstream commit 0be2fba2f07d91aa7436fcf452aaff05ff5c6a62 ]

Some applications, i.e. OVS, have rule like:

[1] pattern ipv4 / end actions ...

which intends to match ipv4 only on non-vlan ethernet and MLX5 NIC
supports this.

So PMD should accept this.

Fixes: 906a2efae8da ("net/mlx5: validate flow rule item order")

Signed-off-by: Xiaoyu Min <jackmin@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
---
 drivers/net/mlx5/mlx5_flow.c | 28 ++++++++++------------------
 1 file changed, 10 insertions(+), 18 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index cf9cdcfe3..2bf535213 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -1069,9 +1069,15 @@ mlx5_flow_validate_item_eth(const struct rte_flow_item *item,
 					  RTE_FLOW_ERROR_TYPE_ITEM, item,
 					  "multiple L2 layers not supported");
-	if (tunnel && (item_flags & MLX5_FLOW_LAYER_INNER_L3))
+	if ((!tunnel && (item_flags & MLX5_FLOW_LAYER_OUTER_L3)) ||
+	    (tunnel && (item_flags & MLX5_FLOW_LAYER_INNER_L3)))
 		return rte_flow_error_set(error, EINVAL,
 					  RTE_FLOW_ERROR_TYPE_ITEM, item,
-					  "inner L2 layer should not "
-					  "follow inner L3 layers");
+					  "L2 layer should not follow "
+					  "L3 layers");
+	if ((!tunnel && (item_flags & MLX5_FLOW_LAYER_OUTER_VLAN)) ||
+	    (tunnel && (item_flags & MLX5_FLOW_LAYER_INNER_VLAN)))
+		return rte_flow_error_set(error, EINVAL,
+					  RTE_FLOW_ERROR_TYPE_ITEM, item,
+					  "L2 layer should not follow VLAN");
 	if (!mask)
 		mask = &rte_flow_item_eth_mask;
@@ -1117,6 +1123,4 @@ mlx5_flow_validate_item_vlan(const struct rte_flow_item *item,
 					MLX5_FLOW_LAYER_OUTER_VLAN;
 
-	const uint64_t l2m = tunnel ? MLX5_FLOW_LAYER_INNER_L2 :
-				      MLX5_FLOW_LAYER_OUTER_L2;
 	if (item_flags & vlanm)
 		return rte_flow_error_set(error, EINVAL,
@@ -1126,9 +1130,5 @@ mlx5_flow_validate_item_vlan(const struct rte_flow_item *item,
 		return rte_flow_error_set(error, EINVAL,
 					  RTE_FLOW_ERROR_TYPE_ITEM, item,
-					  "L2 layer cannot follow L3/L4 layer");
-	else if ((item_flags & l2m) == 0)
-		return rte_flow_error_set(error, EINVAL,
-					  RTE_FLOW_ERROR_TYPE_ITEM, item,
-					  "no L2 layer before VLAN");
+					  "VLAN cannot follow L3/L4 layer");
 	if (!mask)
 		mask = &rte_flow_item_vlan_mask;
@@ -1197,8 +1197,4 @@ mlx5_flow_validate_item_ipv4(const struct rte_flow_item *item,
 					  RTE_FLOW_ERROR_TYPE_ITEM, item,
 					  "L3 cannot follow an L4 layer.");
-	else if (!tunnel && !(item_flags & MLX5_FLOW_LAYER_OUTER_L2))
-		return rte_flow_error_set(error, EINVAL,
-					  RTE_FLOW_ERROR_TYPE_ITEM, item,
-					  "no L2 layer before IPV4");
 	if (!mask)
 		mask = &rte_flow_item_ipv4_mask;
@@ -1265,8 +1261,4 @@ mlx5_flow_validate_item_ipv6(const struct rte_flow_item *item,
 					  RTE_FLOW_ERROR_TYPE_ITEM, item,
 					  "L3 cannot follow an L4 layer.");
-	else if (!tunnel && !(item_flags & MLX5_FLOW_LAYER_OUTER_L2))
-		return rte_flow_error_set(error, EINVAL,
-					  RTE_FLOW_ERROR_TYPE_ITEM, item,
-					  "no L2 layer before IPV6");
 	if (!mask)
 		mask = &rte_flow_item_ipv6_mask;
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:13.796624458 +0000
+++ 0013-net-mlx5-allow-pattern-start-from-IP.patch	2019-12-11 21:24:12.594652726 +0000
@@ -1 +1 @@
-From 0be2fba2f07d91aa7436fcf452aaff05ff5c6a62 Mon Sep 17 00:00:00 2001
+From 7ee4881da1851b7dce7ad9e2cc041f14a9ab7130 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0be2fba2f07d91aa7436fcf452aaff05ff5c6a62 ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -26 +27 @@
-index 54f4cfe04..e90301ccd 100644
+index cf9cdcfe3..2bf535213 100644
@@ -29 +30 @@
-@@ -1277,9 +1277,15 @@ mlx5_flow_validate_item_eth(const struct rte_flow_item *item,
+@@ -1069,9 +1069,15 @@ mlx5_flow_validate_item_eth(const struct rte_flow_item *item,
@@ -48 +49 @@
-@@ -1328,6 +1334,4 @@ mlx5_flow_validate_item_vlan(const struct rte_flow_item *item,
+@@ -1117,6 +1123,4 @@ mlx5_flow_validate_item_vlan(const struct rte_flow_item *item,
@@ -55 +56 @@
-@@ -1337,9 +1341,5 @@ mlx5_flow_validate_item_vlan(const struct rte_flow_item *item,
+@@ -1126,9 +1130,5 @@ mlx5_flow_validate_item_vlan(const struct rte_flow_item *item,
@@ -66 +67 @@
-@@ -1465,8 +1465,4 @@ mlx5_flow_validate_item_ipv4(const struct rte_flow_item *item,
+@@ -1197,8 +1197,4 @@ mlx5_flow_validate_item_ipv4(const struct rte_flow_item *item,
@@ -68 +69 @@
- 					  "L3 cannot follow an NVGRE layer.");
+ 					  "L3 cannot follow an L4 layer.");
@@ -75 +76 @@
-@@ -1571,8 +1567,4 @@ mlx5_flow_validate_item_ipv6(const struct rte_flow_item *item,
+@@ -1265,8 +1261,4 @@ mlx5_flow_validate_item_ipv6(const struct rte_flow_item *item,
@@ -77 +78 @@
- 					  "L3 cannot follow an NVGRE layer.");
+ 					  "L3 cannot follow an L4 layer.");


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'ethdev: fix expand RSS flows' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (11 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/mlx5: allow pattern start from IP' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'ethdev: fix item expansion for RSS flow' " Kevin Traynor
                   ` (55 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Xiaoyu Min; +Cc: Ori Kam, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/5136c9fb9075bdb2e9215dadebc388cb3875df35

Thanks.

Kevin.

---
From 5136c9fb9075bdb2e9215dadebc388cb3875df35 Mon Sep 17 00:00:00 2001
From: Xiaoyu Min <jackmin@mellanox.com>
Date: Tue, 5 Nov 2019 15:42:43 +0200
Subject: [PATCH] ethdev: fix expand RSS flows

[ upstream commit fc2dd8dd492fade39a4c4de037ff3c869daff47d ]

rte_flow_expand_rss expands rte_flow item list based on the RSS
types. In another word, some additional rules are added if the user
specified items are not complete enough according to the RSS type,
for example:

  ... pattern eth / end actions rss type tcp end ...

User only provides item eth but want to do RSS on tcp traffic.
The pattern is not complete enough to filter TCP traffic only.
This will be a problem for some HWs.
So some PMDs use rte_flow_expand_rss to expand above user provided
flow to:

  ... pattern eth / end actions rss types tcp
  ... pattern eth / ipv4 / tcp / end actions rss types tcp ...
  ... pattern eth / ipv6 / tcp / end actions rss types tcp ...

in order to filter TCP traffic only and do RSS correctly.

However the current expansion cannot handle pattern as below, which
provides ethertype or ip next proto instead of providing an item:

  ... pattern eth type is 0x86DD / end actions rss types tcp ...

rte_flow_expand_rss will expand above flow to:

  ... pattern eth type is 0x86DD / ipv4 / tcp end ...

which has conflicting values: 0x86DD vs. ipv4 and some HWs will refuse
to create flow.

This patch will fix above by checking the last item's spec and to
expand RSS flows correctly.

Currently only support to complete item list based on ether type or ip
next proto.

Fixes: 4ed05fcd441b ("ethdev: add flow API to expand RSS flows")

Signed-off-by: Xiaoyu Min <jackmin@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
---
 lib/librte_ethdev/rte_flow.c | 132 +++++++++++++++++++++++++++++++++--
 1 file changed, 127 insertions(+), 5 deletions(-)

diff --git a/lib/librte_ethdev/rte_flow.c b/lib/librte_ethdev/rte_flow.c
index 3277be1ed..d545b15f5 100644
--- a/lib/librte_ethdev/rte_flow.c
+++ b/lib/librte_ethdev/rte_flow.c
@@ -158,4 +158,65 @@ flow_err(uint16_t port_id, int ret, struct rte_flow_error *error)
 }
 
+static enum rte_flow_item_type
+rte_flow_expand_rss_item_complete(const struct rte_flow_item *item)
+{
+	enum rte_flow_item_type ret = RTE_FLOW_ITEM_TYPE_VOID;
+	uint16_t ether_type = 0;
+	uint8_t ip_next_proto = 0;
+
+	if (item == NULL || item->spec == NULL)
+		return ret;
+	switch (item->type) {
+	case RTE_FLOW_ITEM_TYPE_ETH:
+		ether_type = ((const struct rte_flow_item_eth *)
+				(item->spec))->type;
+		if (rte_be_to_cpu_16(ether_type) == ETHER_TYPE_IPv4)
+			ret = RTE_FLOW_ITEM_TYPE_IPV4;
+		else if (rte_be_to_cpu_16(ether_type) == ETHER_TYPE_IPv6)
+			ret = RTE_FLOW_ITEM_TYPE_IPV6;
+		else if (rte_be_to_cpu_16(ether_type) == ETHER_TYPE_VLAN)
+			ret = RTE_FLOW_ITEM_TYPE_VLAN;
+		break;
+	case RTE_FLOW_ITEM_TYPE_VLAN:
+		ether_type = ((const struct rte_flow_item_vlan *)
+				(item->spec))->inner_type;
+		if (rte_be_to_cpu_16(ether_type) == ETHER_TYPE_IPv4)
+			ret = RTE_FLOW_ITEM_TYPE_IPV4;
+		else if (rte_be_to_cpu_16(ether_type) == ETHER_TYPE_IPv6)
+			ret = RTE_FLOW_ITEM_TYPE_IPV6;
+		else if (rte_be_to_cpu_16(ether_type) == ETHER_TYPE_VLAN)
+			ret = RTE_FLOW_ITEM_TYPE_VLAN;
+		break;
+	case RTE_FLOW_ITEM_TYPE_IPV4:
+		ip_next_proto = ((const struct rte_flow_item_ipv4 *)
+				(item->spec))->hdr.next_proto_id;
+		if (ip_next_proto == IPPROTO_UDP)
+			ret = RTE_FLOW_ITEM_TYPE_UDP;
+		else if (ip_next_proto == IPPROTO_TCP)
+			ret = RTE_FLOW_ITEM_TYPE_TCP;
+		else if (ip_next_proto == IPPROTO_IP)
+			ret = RTE_FLOW_ITEM_TYPE_IPV4;
+		else if (ip_next_proto == IPPROTO_IPV6)
+			ret = RTE_FLOW_ITEM_TYPE_IPV6;
+		break;
+	case RTE_FLOW_ITEM_TYPE_IPV6:
+		ip_next_proto = ((const struct rte_flow_item_ipv6 *)
+				(item->spec))->hdr.proto;
+		if (ip_next_proto == IPPROTO_UDP)
+			ret = RTE_FLOW_ITEM_TYPE_UDP;
+		else if (ip_next_proto == IPPROTO_TCP)
+			ret = RTE_FLOW_ITEM_TYPE_TCP;
+		else if (ip_next_proto == IPPROTO_IP)
+			ret = RTE_FLOW_ITEM_TYPE_IPV4;
+		else if (ip_next_proto == IPPROTO_IPV6)
+			ret = RTE_FLOW_ITEM_TYPE_IPV6;
+		break;
+	default:
+		ret = RTE_FLOW_ITEM_TYPE_VOID;
+		break;
+	}
+	return ret;
+}
+
 /* Get generic flow operations structure from a port. */
 const struct rte_flow_ops *
@@ -917,4 +978,9 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
 	size_t user_pattern_size = 0;
 	void *addr = NULL;
+	const struct rte_flow_expand_node *next = NULL;
+	struct rte_flow_item missed_item;
+	int missed = 0;
+	int elt = 0;
+	const struct rte_flow_item *last_item = NULL;
 
 	lsize = offsetof(struct rte_flow_expand_rss, entry) +
@@ -927,6 +993,6 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
 	}
 	for (item = pattern; item->type != RTE_FLOW_ITEM_TYPE_END; item++) {
-		const struct rte_flow_expand_node *next = NULL;
-
+		if (item->type != RTE_FLOW_ITEM_TYPE_VOID)
+			last_item = item;
 		for (i = 0; node->next && node->next[i]; ++i) {
 			next = &graph[node->next[i]];
@@ -949,4 +1015,39 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
 	memset(flow_items, 0, sizeof(flow_items));
 	user_pattern_size -= sizeof(*item);
+	/*
+	 * Check if the last valid item has spec set
+	 * and need complete pattern.
+	 */
+	missed_item.type = rte_flow_expand_rss_item_complete(last_item);
+	if (missed_item.type != RTE_FLOW_ITEM_TYPE_VOID) {
+		next = NULL;
+		missed = 1;
+		for (i = 0; node->next && node->next[i]; ++i) {
+			next = &graph[node->next[i]];
+			if (next->type == missed_item.type) {
+				flow_items[0].type = missed_item.type;
+				flow_items[1].type = RTE_FLOW_ITEM_TYPE_END;
+				break;
+			}
+			next = NULL;
+		}
+	}
+	if (next && missed) {
+		elt = 2; /* missed item + item end. */
+		node = next;
+		lsize += elt * sizeof(*item) + user_pattern_size;
+		if ((node->rss_types & types) && lsize <= size) {
+			buf->entry[buf->entries].priority = 1;
+			buf->entry[buf->entries].pattern = addr;
+			buf->entries++;
+			rte_memcpy(addr, buf->entry[0].pattern,
+				   user_pattern_size);
+			addr = (void *)(((uintptr_t)addr) + user_pattern_size);
+			rte_memcpy(addr, flow_items, elt * sizeof(*item));
+			addr = (void *)(((uintptr_t)addr) +
+					elt * sizeof(*item));
+		}
+	}
+	memset(flow_items, 0, sizeof(flow_items));
 	next_node = node->next;
 	stack[stack_pos] = next_node;
@@ -961,6 +1062,5 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
 			 * plus the addition END item.
 			 */
-			int elt = stack_pos + 2;
-
+			elt = stack_pos + 2;
 			flow_items[stack_pos + 1].type = RTE_FLOW_ITEM_TYPE_END;
 			lsize += elt * sizeof(*item) + user_pattern_size;
@@ -969,5 +1069,5 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
 
 				buf->entry[buf->entries].priority =
-					stack_pos + 1;
+					stack_pos + 1 + missed;
 				buf->entry[buf->entries].pattern = addr;
 				buf->entries++;
@@ -976,4 +1076,8 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
 				addr = (void *)(((uintptr_t)addr) +
 						user_pattern_size);
+				rte_memcpy(addr, &missed_item,
+					   missed * sizeof(*item));
+				addr = (void *)(((uintptr_t)addr) +
+					missed * sizeof(*item));
 				rte_memcpy(addr, flow_items, n);
 				addr = (void *)(((uintptr_t)addr) + n);
@@ -1000,4 +1104,22 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
 		node = *next_node ? &graph[*next_node] : NULL;
 	};
+	/* no expanded flows but we have missed item, create one rule for it */
+	if (buf->entries == 1 && missed != 0) {
+		elt = 2;
+		lsize += elt * sizeof(*item) + user_pattern_size;
+		if (lsize <= size) {
+			buf->entry[buf->entries].priority = 1;
+			buf->entry[buf->entries].pattern = addr;
+			buf->entries++;
+			flow_items[0].type = missed_item.type;
+			flow_items[1].type = RTE_FLOW_ITEM_TYPE_END;
+			rte_memcpy(addr, buf->entry[0].pattern,
+				   user_pattern_size);
+			addr = (void *)(((uintptr_t)addr) + user_pattern_size);
+			rte_memcpy(addr, flow_items, elt * sizeof(*item));
+			addr = (void *)(((uintptr_t)addr) +
+					elt * sizeof(*item));
+		}
+	}
 	return lsize;
 }
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:13.897111509 +0000
+++ 0014-ethdev-fix-expand-RSS-flows.patch	2019-12-11 21:24:12.596652685 +0000
@@ -1 +1 @@
-From fc2dd8dd492fade39a4c4de037ff3c869daff47d Mon Sep 17 00:00:00 2001
+From 5136c9fb9075bdb2e9215dadebc388cb3875df35 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit fc2dd8dd492fade39a4c4de037ff3c869daff47d ]
+
@@ -44 +45,0 @@
-Cc: stable@dpdk.org
@@ -53 +54 @@
-index 33e30111a..8ec9c90cd 100644
+index 3277be1ed..d545b15f5 100644
@@ -56 +57 @@
-@@ -214,4 +214,65 @@ flow_err(uint16_t port_id, int ret, struct rte_flow_error *error)
+@@ -158,4 +158,65 @@ flow_err(uint16_t port_id, int ret, struct rte_flow_error *error)
@@ -72 +73 @@
-+		if (rte_be_to_cpu_16(ether_type) == RTE_ETHER_TYPE_IPV4)
++		if (rte_be_to_cpu_16(ether_type) == ETHER_TYPE_IPv4)
@@ -74 +75 @@
-+		else if (rte_be_to_cpu_16(ether_type) == RTE_ETHER_TYPE_IPV6)
++		else if (rte_be_to_cpu_16(ether_type) == ETHER_TYPE_IPv6)
@@ -76 +77 @@
-+		else if (rte_be_to_cpu_16(ether_type) == RTE_ETHER_TYPE_VLAN)
++		else if (rte_be_to_cpu_16(ether_type) == ETHER_TYPE_VLAN)
@@ -82 +83 @@
-+		if (rte_be_to_cpu_16(ether_type) == RTE_ETHER_TYPE_IPV4)
++		if (rte_be_to_cpu_16(ether_type) == ETHER_TYPE_IPv4)
@@ -84 +85 @@
-+		else if (rte_be_to_cpu_16(ether_type) == RTE_ETHER_TYPE_IPV6)
++		else if (rte_be_to_cpu_16(ether_type) == ETHER_TYPE_IPv6)
@@ -86 +87 @@
-+		else if (rte_be_to_cpu_16(ether_type) == RTE_ETHER_TYPE_VLAN)
++		else if (rte_be_to_cpu_16(ether_type) == ETHER_TYPE_VLAN)
@@ -122 +123 @@
-@@ -973,4 +1034,9 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
+@@ -917,4 +978,9 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
@@ -132 +133 @@
-@@ -983,6 +1049,6 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
+@@ -927,6 +993,6 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
@@ -141 +142 @@
-@@ -1005,4 +1071,39 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
+@@ -949,4 +1015,39 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
@@ -181 +182 @@
-@@ -1017,6 +1118,5 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
+@@ -961,6 +1062,5 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
@@ -189 +190 @@
-@@ -1025,5 +1125,5 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
+@@ -969,5 +1069,5 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
@@ -196 +197 @@
-@@ -1032,4 +1132,8 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
+@@ -976,4 +1076,8 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
@@ -205 +206 @@
-@@ -1056,4 +1160,22 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
+@@ -1000,4 +1104,22 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'ethdev: fix item expansion for RSS flow' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (12 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'ethdev: fix expand RSS flows' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'ethdev: fix last item detection on RSS flow expand' " Kevin Traynor
                   ` (54 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Matan Azrad; +Cc: Ori Kam, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/a9228f7067852d691a4425d3237cab77af5d34fa

Thanks.

Kevin.

---
From a9228f7067852d691a4425d3237cab77af5d34fa Mon Sep 17 00:00:00 2001
From: Matan Azrad <matan@mellanox.com>
Date: Tue, 26 Nov 2019 09:04:10 +0000
Subject: [PATCH] ethdev: fix item expansion for RSS flow

[ upstream commit 64edb05e29c82260a0bd1000a20023d20c123e41 ]

When the last item in flow pattern includes "next protocol" field which
is relevant for RSS flow expansion, a new item is added to the pattern
according to the "next protocol" field. This field is called missed
field.

The missed field wrongly was not initialized what caused to some of the
flow item fields to contain garbage values.

As a result, the PMDs internal flow engine may crash.

For example, the spec value may include garbage pointer and to cause
crash.

Initialize the missed field with zeroes.

Fixes: fc2dd8dd492f ("ethdev: fix expand RSS flows")

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
---
 lib/librte_ethdev/rte_flow.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/librte_ethdev/rte_flow.c b/lib/librte_ethdev/rte_flow.c
index d545b15f5..5725aceda 100644
--- a/lib/librte_ethdev/rte_flow.c
+++ b/lib/librte_ethdev/rte_flow.c
@@ -984,4 +984,5 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
 	const struct rte_flow_item *last_item = NULL;
 
+	memset(&missed_item, 0, sizeof(missed_item));
 	lsize = offsetof(struct rte_flow_expand_rss, entry) +
 		elt_n * sizeof(buf->entry[0]);
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:13.971759304 +0000
+++ 0015-ethdev-fix-item-expansion-for-RSS-flow.patch	2019-12-11 21:24:12.598652643 +0000
@@ -1 +1 @@
-From 64edb05e29c82260a0bd1000a20023d20c123e41 Mon Sep 17 00:00:00 2001
+From a9228f7067852d691a4425d3237cab77af5d34fa Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 64edb05e29c82260a0bd1000a20023d20c123e41 ]
+
@@ -22 +23,0 @@
-Cc: stable@dpdk.org
@@ -31 +32 @@
-index d7f29e532..87a3e8c4c 100644
+index d545b15f5..5725aceda 100644
@@ -34 +35 @@
-@@ -1072,4 +1072,5 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
+@@ -984,4 +984,5 @@ rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'ethdev: fix last item detection on RSS flow expand' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (13 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'ethdev: fix item expansion for RSS flow' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'eal: add ack interrupt API' " Kevin Traynor
                   ` (53 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Matan Azrad; +Cc: Xiaoyu Min, Ori Kam, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/97a8a6723d88bdb4ff221f40d7391c7a32625bd3

Thanks.

Kevin.

---
From 97a8a6723d88bdb4ff221f40d7391c7a32625bd3 Mon Sep 17 00:00:00 2001
From: Matan Azrad <matan@mellanox.com>
Date: Mon, 11 Nov 2019 10:42:05 +0000
Subject: [PATCH] ethdev: fix last item detection on RSS flow expand

[ upstream commit eccc5d3237fc549ba647654a7f74f8b9e9dcaf6d ]

There is a rte_flow API which expands a RSS flow pattern to multiple
patterns according to the RSS hash types in the RSS action
configuration.

As part of the expansion, detection of the last item of the flow uses
the "next proto" field of the last configured item in the pattern list.
Wrongly, the mask of this field was not considered in order to validate
the field.

Ignore "next proto" fields when their corresponded masks invalidate them.

Fixes: fc2dd8dd492f ("ethdev: fix expand RSS flows")

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Xiaoyu Min <jackmin@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
---
 lib/librte_ethdev/rte_flow.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/lib/librte_ethdev/rte_flow.c b/lib/librte_ethdev/rte_flow.c
index 5725aceda..7bfc06db7 100644
--- a/lib/librte_ethdev/rte_flow.c
+++ b/lib/librte_ethdev/rte_flow.c
@@ -163,5 +163,7 @@ rte_flow_expand_rss_item_complete(const struct rte_flow_item *item)
 	enum rte_flow_item_type ret = RTE_FLOW_ITEM_TYPE_VOID;
 	uint16_t ether_type = 0;
+	uint16_t ether_type_m;
 	uint8_t ip_next_proto = 0;
+	uint8_t ip_next_proto_m;
 
 	if (item == NULL || item->spec == NULL)
@@ -169,4 +171,11 @@ rte_flow_expand_rss_item_complete(const struct rte_flow_item *item)
 	switch (item->type) {
 	case RTE_FLOW_ITEM_TYPE_ETH:
+		if (item->mask)
+			ether_type_m = ((const struct rte_flow_item_eth *)
+						(item->mask))->type;
+		else
+			ether_type_m = rte_flow_item_eth_mask.type;
+		if (ether_type_m != RTE_BE16(0xFFFF))
+			break;
 		ether_type = ((const struct rte_flow_item_eth *)
 				(item->spec))->type;
@@ -179,4 +188,11 @@ rte_flow_expand_rss_item_complete(const struct rte_flow_item *item)
 		break;
 	case RTE_FLOW_ITEM_TYPE_VLAN:
+		if (item->mask)
+			ether_type_m = ((const struct rte_flow_item_vlan *)
+						(item->mask))->inner_type;
+		else
+			ether_type_m = rte_flow_item_vlan_mask.inner_type;
+		if (ether_type_m != RTE_BE16(0xFFFF))
+			break;
 		ether_type = ((const struct rte_flow_item_vlan *)
 				(item->spec))->inner_type;
@@ -189,4 +205,12 @@ rte_flow_expand_rss_item_complete(const struct rte_flow_item *item)
 		break;
 	case RTE_FLOW_ITEM_TYPE_IPV4:
+		if (item->mask)
+			ip_next_proto_m = ((const struct rte_flow_item_ipv4 *)
+					(item->mask))->hdr.next_proto_id;
+		else
+			ip_next_proto_m =
+				rte_flow_item_ipv4_mask.hdr.next_proto_id;
+		if (ip_next_proto_m != 0xFF)
+			break;
 		ip_next_proto = ((const struct rte_flow_item_ipv4 *)
 				(item->spec))->hdr.next_proto_id;
@@ -201,4 +225,12 @@ rte_flow_expand_rss_item_complete(const struct rte_flow_item *item)
 		break;
 	case RTE_FLOW_ITEM_TYPE_IPV6:
+		if (item->mask)
+			ip_next_proto_m = ((const struct rte_flow_item_ipv6 *)
+						(item->mask))->hdr.proto;
+		else
+			ip_next_proto_m =
+				rte_flow_item_ipv6_mask.hdr.proto;
+		if (ip_next_proto_m != 0xFF)
+			break;
 		ip_next_proto = ((const struct rte_flow_item_ipv6 *)
 				(item->spec))->hdr.proto;
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:14.047572816 +0000
+++ 0016-ethdev-fix-last-item-detection-on-RSS-flow-expand.patch	2019-12-11 21:24:12.599652623 +0000
@@ -1 +1 @@
-From eccc5d3237fc549ba647654a7f74f8b9e9dcaf6d Mon Sep 17 00:00:00 2001
+From 97a8a6723d88bdb4ff221f40d7391c7a32625bd3 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit eccc5d3237fc549ba647654a7f74f8b9e9dcaf6d ]
+
@@ -18 +19,0 @@
-Cc: stable@dpdk.org
@@ -28 +29 @@
-index 8ec9c90cd..d7f29e532 100644
+index 5725aceda..7bfc06db7 100644
@@ -31 +32 @@
-@@ -219,5 +219,7 @@ rte_flow_expand_rss_item_complete(const struct rte_flow_item *item)
+@@ -163,5 +163,7 @@ rte_flow_expand_rss_item_complete(const struct rte_flow_item *item)
@@ -39 +40 @@
-@@ -225,4 +227,11 @@ rte_flow_expand_rss_item_complete(const struct rte_flow_item *item)
+@@ -169,4 +171,11 @@ rte_flow_expand_rss_item_complete(const struct rte_flow_item *item)
@@ -51 +52 @@
-@@ -235,4 +244,11 @@ rte_flow_expand_rss_item_complete(const struct rte_flow_item *item)
+@@ -179,4 +188,11 @@ rte_flow_expand_rss_item_complete(const struct rte_flow_item *item)
@@ -63 +64 @@
-@@ -245,4 +261,12 @@ rte_flow_expand_rss_item_complete(const struct rte_flow_item *item)
+@@ -189,4 +205,12 @@ rte_flow_expand_rss_item_complete(const struct rte_flow_item *item)
@@ -76 +77 @@
-@@ -257,4 +281,12 @@ rte_flow_expand_rss_item_complete(const struct rte_flow_item *item)
+@@ -201,4 +225,12 @@ rte_flow_expand_rss_item_complete(const struct rte_flow_item *item)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'eal: add ack interrupt API' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (14 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'ethdev: fix last item detection on RSS flow expand' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/qede: use ack in interrupt handlers' " Kevin Traynor
                   ` (52 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Nithin Dabilpuram; +Cc: Jerin Jacob, Shahed Shaikh, David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/3e41c8bc75845ff157a00581797431bf5fb35770

Thanks.

Kevin.

---
From 3e41c8bc75845ff157a00581797431bf5fb35770 Mon Sep 17 00:00:00 2001
From: Nithin Dabilpuram <ndabilpuram@marvell.com>
Date: Tue, 23 Jul 2019 10:04:18 +0200
Subject: [PATCH] eal: add ack interrupt API

[upstream commit a159730c2f3ae3fdabc52c20565470a9d8abd98a]

Add new ack interrupt API to avoid using
VFIO_IRQ_SET_ACTION_TRIGGER(rte_intr_enable()) for
acking interrupt purpose for VFIO based interrupt handlers.
This implementation is specific to Linux.

Using rte_intr_enable() for acking interrupt has below issues

 * Time consuming to do for every interrupt received as it will
   free_irq() followed by request_irq() and all other initializations
 * A race condition because of a window between free_irq() and
   request_irq() with packet reception still on and device still
   enabled and would throw warning messages like below.
   [158764.159833] do_IRQ: 9.34 No irq handler for vector

In this patch, rte_intr_ack() is a no-op for VFIO_MSIX/VFIO_MSI interrupts
as they are edge triggered and kernel would not mask the interrupt before
delivering the event to userspace and we don't need to ack.

Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Tested-by: Shahed Shaikh <shshaikh@marvell.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
(cherry picked from commit a159730c2f3ae3fdabc52c20565470a9d8abd98a)
---
 lib/librte_eal/bsdapp/eal/eal_interrupts.c    |  9 ++
 .../common/include/rte_interrupts.h           | 21 +++++
 lib/librte_eal/linuxapp/eal/eal_interrupts.c  | 82 +++++++++++++++++++
 lib/librte_eal/rte_eal_version.map            |  1 +
 4 files changed, 113 insertions(+)

diff --git a/lib/librte_eal/bsdapp/eal/eal_interrupts.c b/lib/librte_eal/bsdapp/eal/eal_interrupts.c
index 2feee2d52..9aa9178d5 100644
--- a/lib/librte_eal/bsdapp/eal/eal_interrupts.c
+++ b/lib/librte_eal/bsdapp/eal/eal_interrupts.c
@@ -328,4 +328,13 @@ rte_intr_disable(const struct rte_intr_handle *intr_handle)
 }
 
+int
+rte_intr_ack(const struct rte_intr_handle *intr_handle)
+{
+	if (intr_handle && intr_handle->type == RTE_INTR_HANDLE_VDEV)
+		return 0;
+
+	return -1;
+}
+
 static void
 eal_intr_process_interrupts(struct kevent *events, int nfds)
diff --git a/lib/librte_eal/common/include/rte_interrupts.h b/lib/librte_eal/common/include/rte_interrupts.h
index bcd935805..9d9bda171 100644
--- a/lib/librte_eal/common/include/rte_interrupts.h
+++ b/lib/librte_eal/common/include/rte_interrupts.h
@@ -7,4 +7,5 @@
 
 #include <rte_common.h>
+#include <rte_compat.h>
 
 /**
@@ -86,4 +87,24 @@ int rte_intr_enable(const struct rte_intr_handle *intr_handle);
 int rte_intr_disable(const struct rte_intr_handle *intr_handle);
 
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change without prior notice
+ *
+ * It acknowledges an interrupt raised for the specified handle.
+ *
+ * This function should be called at the end of each interrupt handler either
+ * from application or driver, so that currently raised interrupt is acked and
+ * further new interrupts are raised.
+ *
+ * @param intr_handle
+ *  pointer to the interrupt handle.
+ *
+ * @return
+ *  - On success, zero.
+ *  - On failure, a negative value.
+ */
+__rte_experimental
+int rte_intr_ack(const struct rte_intr_handle *intr_handle);
+
 #ifdef __cplusplus
 }
diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
index cbac451e1..102a9549e 100644
--- a/lib/librte_eal/linuxapp/eal/eal_interrupts.c
+++ b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
@@ -196,4 +196,26 @@ vfio_disable_intx(const struct rte_intr_handle *intr_handle) {
 }
 
+/* unmask/ack legacy (INTx) interrupts */
+static int
+vfio_ack_intx(const struct rte_intr_handle *intr_handle)
+{
+	struct vfio_irq_set irq_set;
+
+	/* unmask INTx */
+	memset(&irq_set, 0, sizeof(irq_set));
+	irq_set.argsz = sizeof(irq_set);
+	irq_set.count = 1;
+	irq_set.flags = VFIO_IRQ_SET_DATA_NONE | VFIO_IRQ_SET_ACTION_UNMASK;
+	irq_set.index = VFIO_PCI_INTX_IRQ_INDEX;
+	irq_set.start = 0;
+
+	if (ioctl(intr_handle->vfio_dev_fd, VFIO_DEVICE_SET_IRQS, &irq_set)) {
+		RTE_LOG(ERR, EAL, "Error unmasking INTx interrupts for fd %d\n",
+			intr_handle->fd);
+		return -1;
+	}
+	return 0;
+}
+
 /* enable MSI interrupts */
 static int
@@ -639,4 +661,64 @@ rte_intr_enable(const struct rte_intr_handle *intr_handle)
 }
 
+/**
+ * PMD generally calls this function at the end of its IRQ callback.
+ * Internally, it unmasks the interrupt if possible.
+ *
+ * For INTx, unmasking is required as the interrupt is auto-masked prior to
+ * invoking callback.
+ *
+ * For MSI/MSI-X, unmasking is typically not needed as the interrupt is not
+ * auto-masked. In fact, for interrupt handle types VFIO_MSIX and VFIO_MSI,
+ * this function is no-op.
+ */
+int
+rte_intr_ack(const struct rte_intr_handle *intr_handle)
+{
+	if (intr_handle && intr_handle->type == RTE_INTR_HANDLE_VDEV)
+		return 0;
+
+	if (!intr_handle || intr_handle->fd < 0 || intr_handle->uio_cfg_fd < 0)
+		return -1;
+
+	switch (intr_handle->type) {
+	/* Both acking and enabling are same for UIO */
+	case RTE_INTR_HANDLE_UIO:
+		if (uio_intr_enable(intr_handle))
+			return -1;
+		break;
+	case RTE_INTR_HANDLE_UIO_INTX:
+		if (uio_intx_intr_enable(intr_handle))
+			return -1;
+		break;
+	/* not used at this moment */
+	case RTE_INTR_HANDLE_ALARM:
+		return -1;
+#ifdef VFIO_PRESENT
+	/* VFIO MSI* is implicitly acked unlike INTx, nothing to do */
+	case RTE_INTR_HANDLE_VFIO_MSIX:
+	case RTE_INTR_HANDLE_VFIO_MSI:
+		return 0;
+	case RTE_INTR_HANDLE_VFIO_LEGACY:
+		if (vfio_ack_intx(intr_handle))
+			return -1;
+		break;
+#ifdef HAVE_VFIO_DEV_REQ_INTERFACE
+	case RTE_INTR_HANDLE_VFIO_REQ:
+		return -1;
+#endif
+#endif
+	/* not used at this moment */
+	case RTE_INTR_HANDLE_DEV_EVENT:
+		return -1;
+	/* unknown handle type */
+	default:
+		RTE_LOG(ERR, EAL, "Unknown handle type of fd %d\n",
+			intr_handle->fd);
+		return -1;
+	}
+
+	return 0;
+}
+
 int
 rte_intr_disable(const struct rte_intr_handle *intr_handle)
diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map
index 3fe78260d..f39c18f4d 100644
--- a/lib/librte_eal/rte_eal_version.map
+++ b/lib/librte_eal/rte_eal_version.map
@@ -319,4 +319,5 @@ EXPERIMENTAL {
 	rte_fbarray_set_free;
 	rte_fbarray_set_used;
+	rte_intr_ack;
 	rte_log_register_type_and_pick_level;
 	rte_malloc_dump_heaps;
-- 
2.21.0


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/qede: use ack in interrupt handlers' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (15 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'eal: add ack interrupt API' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/enic: re-enable link status change interrupt' " Kevin Traynor
                   ` (51 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Nithin Dabilpuram
  Cc: Jerin Jacob, Shahed Shaikh, David Marchand, Kevin Traynor, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/9b30de5d63f0166e3b77bee7ad5c62d3fc4aaaca

Thanks.

Kevin.

---
From 9b30de5d63f0166e3b77bee7ad5c62d3fc4aaaca Mon Sep 17 00:00:00 2001
From: Nithin Dabilpuram <ndabilpuram@marvell.com>
Date: Wed, 11 Dec 2019 15:50:57 +0000
Subject: [PATCH] net/qede: use ack in interrupt handlers

This is a partial pick of below commit from master. At this point
only qede is updated as it addresses an observed issue.

commit 6bee9d5f456a61a427384c815f6827aad83e3c06
Author: Nithin Dabilpuram <ndabilpuram@marvell.com>
Date:   Tue Jul 23 10:04:19 2019 +0200

    drivers/net: use ack in interrupt handlers

    Replace rte_intr_enable() with rte_intr_ack() API
    for acking an interrupt in interrupt handlers and
    rx_queue_intr_enable() callbacks of PMD's.

    This is inline with original intent of this change in PMDs
    to ack interrupts after handling is completed if
    device is backed by UIO, IGB_UIO or VFIO(with INTx).

    Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
    Signed-off-by: Jerin Jacob <jerinj@marvell.com>
    Acked-by: Shahed Shaikh <shshaikh@marvell.com>
    Tested-by: Shahed Shaikh <shshaikh@marvell.com>
    Signed-off-by: David Marchand <david.marchand@redhat.com>

Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
---
 drivers/net/qede/Makefile      | 1 +
 drivers/net/qede/meson.build   | 2 ++
 drivers/net/qede/qede_ethdev.c | 8 ++++----
 3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/net/qede/Makefile b/drivers/net/qede/Makefile
index 2ecbd8d20..a11d5946a 100644
--- a/drivers/net/qede/Makefile
+++ b/drivers/net/qede/Makefile
@@ -13,4 +13,5 @@ LIB = librte_pmd_qede.a
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
diff --git a/drivers/net/qede/meson.build b/drivers/net/qede/meson.build
index 12388a680..1755719f0 100644
--- a/drivers/net/qede/meson.build
+++ b/drivers/net/qede/meson.build
@@ -2,4 +2,6 @@
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
 
+allow_experimental_apis = true
+
 subdir('base')
 objs = [base_objs]
diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index 8dced1899..c8291839c 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -249,6 +249,6 @@ qede_interrupt_handler_intx(void *param)
 		qede_interrupt_action(ECORE_LEADING_HWFN(edev));
 
-		if (rte_intr_enable(eth_dev->intr_handle))
-			DP_ERR(edev, "rte_intr_enable failed\n");
+		if (rte_intr_ack(eth_dev->intr_handle))
+			DP_ERR(edev, "rte_intr_ack failed\n");
 	}
 }
@@ -262,6 +262,6 @@ qede_interrupt_handler(void *param)
 
 	qede_interrupt_action(ECORE_LEADING_HWFN(edev));
-	if (rte_intr_enable(eth_dev->intr_handle))
-		DP_ERR(edev, "rte_intr_enable failed\n");
+	if (rte_intr_ack(eth_dev->intr_handle))
+		DP_ERR(edev, "rte_intr_ack failed\n");
 }
 
-- 
2.21.0


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/enic: re-enable link status change interrupt' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (16 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/qede: use ack in interrupt handlers' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/sfc: fix adapter lock usage on rule creation' " Kevin Traynor
                   ` (50 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Hyong Youb Kim; +Cc: John Daley, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/759a205e118e731dc5e3cb209f3716fd4f8a45d3

Thanks.

Kevin.

---
From 759a205e118e731dc5e3cb209f3716fd4f8a45d3 Mon Sep 17 00:00:00 2001
From: Hyong Youb Kim <hyonkim@cisco.com>
Date: Thu, 7 Nov 2019 06:42:24 -0800
Subject: [PATCH] net/enic: re-enable link status change interrupt

[ upstream commit 8bac78f8262e2c4d8d72bf7e77c2d55b62b844f2 ]

When INTx is used, the interrupt handler needs to explicitly re-enable
interrupt in order to receive another one in future. The LSC interrupt
handler currently does not, and the link state never gets updated when
INTx is used (e.g. uio_pci_generic). Call rte_intr_ack() at the end of
the handler, to re-enable INTx.

Fixes: fefed3d1e62c ("enic: new driver")

Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
---
 drivers/net/enic/Makefile    | 2 ++
 drivers/net/enic/enic_main.c | 2 ++
 drivers/net/enic/meson.build | 2 ++
 3 files changed, 6 insertions(+)

diff --git a/drivers/net/enic/Makefile b/drivers/net/enic/Makefile
index e39e47631..a101d0fe0 100644
--- a/drivers/net/enic/Makefile
+++ b/drivers/net/enic/Makefile
@@ -14,4 +14,6 @@ EXPORT_MAP := rte_pmd_enic_version.map
 LIBABIVER := 1
 
+# Experimental APIs used: rte_intr_ack
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -I$(SRCDIR)/base/
 CFLAGS += -I$(SRCDIR)
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index c3dc3dee1..6b3b0867d 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -442,4 +442,6 @@ enic_intr_handler(void *arg)
 	_rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_LSC, NULL);
 	enic_log_q_error(enic);
+	/* Re-enable irq in case of INTx */
+	rte_intr_ack(&enic->pdev->intr_handle);
 }
 
diff --git a/drivers/net/enic/meson.build b/drivers/net/enic/meson.build
index 9e9a567ae..4a4d2d654 100644
--- a/drivers/net/enic/meson.build
+++ b/drivers/net/enic/meson.build
@@ -2,4 +2,6 @@
 # Copyright(c) 2018 Cisco Systems, Inc.
 
+# Experimental APIs used: rte_intr_ack
+cflags += ['-DALLOW_EXPERIMENTAL_API']
 sources = files(
 	'base/vnic_cq.c',
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:14.253917793 +0000
+++ 0019-net-enic-re-enable-link-status-change-interrupt.patch	2019-12-11 21:24:12.610652395 +0000
@@ -1 +1 @@
-From 8bac78f8262e2c4d8d72bf7e77c2d55b62b844f2 Mon Sep 17 00:00:00 2001
+From 759a205e118e731dc5e3cb209f3716fd4f8a45d3 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 8bac78f8262e2c4d8d72bf7e77c2d55b62b844f2 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index 10736a567..4e0c83da5 100644
+index e39e47631..a101d0fe0 100644
@@ -35 +36 @@
-index f5b9b0dcb..57574a5f7 100644
+index c3dc3dee1..6b3b0867d 100644
@@ -38 +39 @@
-@@ -449,4 +449,6 @@ enic_intr_handler(void *arg)
+@@ -442,4 +442,6 @@ enic_intr_handler(void *arg)
@@ -46 +47 @@
-index 1bd7cc7e1..e5eeb5667 100644
+index 9e9a567ae..4a4d2d654 100644


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/sfc: fix adapter lock usage on rule creation' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (17 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/enic: re-enable link status change interrupt' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'app/testpmd: block xstats for hidden ports' " Kevin Traynor
                   ` (49 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Ivan Malov; +Cc: Andrew Rybchenko, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/0f527b4d01518354f03662fcdcb53c85b783c0d6

Thanks.

Kevin.

---
From 0f527b4d01518354f03662fcdcb53c85b783c0d6 Mon Sep 17 00:00:00 2001
From: Ivan Malov <ivan.malov@oktetlabs.ru>
Date: Sun, 3 Nov 2019 13:33:09 +0300
Subject: [PATCH] net/sfc: fix adapter lock usage on rule creation

[ upstream commit 653b285ff11380c44c96a92bedf08fe1614a2fdc ]

The point is that adapter lock has to be held on
list accesses, as well as when talking to the HW.

Fixes: a9825ccf5bb8 ("net/sfc: support flow API filters")

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
 drivers/net/sfc/sfc_flow.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/sfc/sfc_flow.c b/drivers/net/sfc/sfc_flow.c
index 371648b0e..1811852fc 100644
--- a/drivers/net/sfc/sfc_flow.c
+++ b/drivers/net/sfc/sfc_flow.c
@@ -2315,8 +2315,8 @@ sfc_flow_create(struct rte_eth_dev *dev,
 		goto fail_bad_value;
 
+	sfc_adapter_lock(sa);
+
 	TAILQ_INSERT_TAIL(&sa->filter.flow_list, flow, entries);
 
-	sfc_adapter_lock(sa);
-
 	if (sa->state == SFC_ADAPTER_STARTED) {
 		rc = sfc_flow_filter_insert(sa, flow);
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:14.324704421 +0000
+++ 0020-net-sfc-fix-adapter-lock-usage-on-rule-creation.patch	2019-12-11 21:24:12.613652333 +0000
@@ -1 +1 @@
-From 653b285ff11380c44c96a92bedf08fe1614a2fdc Mon Sep 17 00:00:00 2001
+From 0f527b4d01518354f03662fcdcb53c85b783c0d6 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 653b285ff11380c44c96a92bedf08fe1614a2fdc ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index e4a9ba0ff..8d636f692 100644
+index 371648b0e..1811852fc 100644
@@ -22 +23 @@
-@@ -2316,8 +2316,8 @@ sfc_flow_create(struct rte_eth_dev *dev,
+@@ -2315,8 +2315,8 @@ sfc_flow_create(struct rte_eth_dev *dev,


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'app/testpmd: block xstats for hidden ports' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (18 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/sfc: fix adapter lock usage on rule creation' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/dpaa2: fix Rx offload flags on jumbo MTU set' " Kevin Traynor
                   ` (48 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Bernard Iremonger, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/43349d39036bfca5c0217484c97629d75c730534

Thanks.

Kevin.

---
From 43349d39036bfca5c0217484c97629d75c730534 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Fri, 1 Nov 2019 13:12:55 -0700
Subject: [PATCH] app/testpmd: block xstats for hidden ports

[ upstream commit bd67b6772492cdd9f7249bdff7163e9698bdcc16 ]

All the other testpmd commands block access to devices that
are owned. Looks like xstat got overlooked.

Fixes: bfd5051b43b5 ("app/testpmd: new command to get extended statistics")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
---
 app/test-pmd/config.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 1f61e4c2d..6798f7697 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -220,4 +220,8 @@ nic_xstats_display(portid_t port_id)
 	struct rte_eth_xstat_name *xstats_names;
 
+	if (port_id_is_invalid(port_id, ENABLED_WARN)) {
+		print_valid_ports();
+		return;
+	}
 	printf("###### NIC extended statistics for port %-2d\n", port_id);
 	if (!rte_eth_dev_is_valid_port(port_id)) {
@@ -275,4 +279,8 @@ void
 nic_xstats_clear(portid_t port_id)
 {
+	if (port_id_is_invalid(port_id, ENABLED_WARN)) {
+		print_valid_ports();
+		return;
+	}
 	rte_eth_xstats_reset(port_id);
 }
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:14.399049135 +0000
+++ 0021-app-testpmd-block-xstats-for-hidden-ports.patch	2019-12-11 21:24:12.620652189 +0000
@@ -1 +1 @@
-From bd67b6772492cdd9f7249bdff7163e9698bdcc16 Mon Sep 17 00:00:00 2001
+From 43349d39036bfca5c0217484c97629d75c730534 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit bd67b6772492cdd9f7249bdff7163e9698bdcc16 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index b6039749c..2a51d9664 100644
+index 1f61e4c2d..6798f7697 100644
@@ -22 +23 @@
-@@ -239,4 +239,8 @@ nic_xstats_display(portid_t port_id)
+@@ -220,4 +220,8 @@ nic_xstats_display(portid_t port_id)
@@ -31,3 +32,3 @@
-@@ -296,4 +300,8 @@ nic_xstats_clear(portid_t port_id)
- 	int ret;
- 
+@@ -275,4 +279,8 @@ void
+ nic_xstats_clear(portid_t port_id)
+ {
@@ -38,2 +39,2 @@
- 	ret = rte_eth_xstats_reset(port_id);
- 	if (ret != 0) {
+ 	rte_eth_xstats_reset(port_id);
+ }


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/dpaa2: fix Rx offload flags on jumbo MTU set' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (19 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'app/testpmd: block xstats for hidden ports' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'examples/vm_power: fix OOB frequency oscillations' " Kevin Traynor
                   ` (47 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Sachin Saxena; +Cc: Gagandeep Singh, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/624517908e39e36b4ea15b07d6bf4b0906395a19

Thanks.

Kevin.

---
From 624517908e39e36b4ea15b07d6bf4b0906395a19 Mon Sep 17 00:00:00 2001
From: Sachin Saxena <sachin.saxena@nxp.com>
Date: Mon, 11 Nov 2019 21:38:57 +0530
Subject: [PATCH] net/dpaa2: fix Rx offload flags on jumbo MTU set

[ upstream commit 0d20cda8a935d0df3c6e483422151705200907d0 ]

The JUMBO frame handling in dpaa2_dev_mtu_set api was not correct.
When frame_size is greater than RTE_ETHER_MAX_LEN, the
intention is to add JUMBO flag in rx offload while it was resetting
all other flags other than JUMBO as AND operator was used instead of OR.

Fixes: 0ebce6129bc6 ("net/dpaa2: support new ethdev offload APIs")

Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
Reviewed-by: Gagandeep Singh <g.singh@nxp.com>
---
 drivers/net/dpaa2/dpaa2_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index e3266085a..e50467285 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -1031,5 +1031,5 @@ dpaa2_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
 
 	if (frame_size > ETHER_MAX_LEN)
-		dev->data->dev_conf.rxmode.offloads &=
+		dev->data->dev_conf.rxmode.offloads |=
 						DEV_RX_OFFLOAD_JUMBO_FRAME;
 	else
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:14.478023350 +0000
+++ 0022-net-dpaa2-fix-Rx-offload-flags-on-jumbo-MTU-set.patch	2019-12-11 21:24:12.622652147 +0000
@@ -1 +1 @@
-From 0d20cda8a935d0df3c6e483422151705200907d0 Mon Sep 17 00:00:00 2001
+From 624517908e39e36b4ea15b07d6bf4b0906395a19 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0d20cda8a935d0df3c6e483422151705200907d0 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index eea31f254..2cde55e7c 100644
+index e3266085a..e50467285 100644
@@ -24 +25 @@
-@@ -1290,5 +1290,5 @@ dpaa2_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
+@@ -1031,5 +1031,5 @@ dpaa2_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
@@ -26 +27 @@
- 	if (frame_size > RTE_ETHER_MAX_LEN)
+ 	if (frame_size > ETHER_MAX_LEN)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'examples/vm_power: fix OOB frequency oscillations' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (20 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/dpaa2: fix Rx offload flags on jumbo MTU set' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'bus/pci: align next mapping address on page boundary' " Kevin Traynor
                   ` (46 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: David Hunt; +Cc: Anatoly Burakov, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/823157fedf327cc98327636691cc74f95fb27de6

Thanks.

Kevin.

---
From 823157fedf327cc98327636691cc74f95fb27de6 Mon Sep 17 00:00:00 2001
From: David Hunt <david.hunt@intel.com>
Date: Wed, 24 Jul 2019 14:18:03 +0100
Subject: [PATCH] examples/vm_power: fix OOB frequency oscillations

[ upstream commit 31c9a66465ad623258c4449fea54c0b42a2deae1 ]

The branch ratio algorithm in the vm_power_manager sample application
can be very sensitive at patricular loads in a workload, causing
oscillations between min and max frequency. For example, if a
workload is at 50%, scaling up may change the ratio
enough that it immediately thinks it needs to scale down again.

This patch introduces a sliding window recording the scale up/down
direction for the last 32 samples, and scales up if any samples indicate
we should scale up, otherwise scale down. Each core has it's own window.

Fixes: 4b1a631b8a8a ("examples/vm_power: add oob monitoring functions")

Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 examples/vm_power_manager/oob_monitor_x86.c | 34 +++++++++++++++++++--
 examples/vm_power_manager/power_manager.c   |  3 +-
 examples/vm_power_manager/power_manager.h   | 12 ++++++++
 3 files changed, 44 insertions(+), 5 deletions(-)

diff --git a/examples/vm_power_manager/oob_monitor_x86.c b/examples/vm_power_manager/oob_monitor_x86.c
index ebd96b205..aecfcb2eb 100644
--- a/examples/vm_power_manager/oob_monitor_x86.c
+++ b/examples/vm_power_manager/oob_monitor_x86.c
@@ -40,4 +40,5 @@ apply_policy(int core)
 	float ratio;
 	int ret;
+	int freq_window_idx, up_count = 0, i;
 
 	g_active = 0;
@@ -102,8 +103,35 @@ apply_policy(int core)
 	ratio = (float)miss_diff * (float)100 / (float)hits_diff;
 
-	if (ratio < ci->branch_ratio_threshold)
-		power_manager_scale_core_min(core);
+	/*
+	 * Store the last few directions that the ratio indicates
+	 * we should take. If there's on 'up', then we scale up
+	 * quickly. If all indicate 'down', only then do we scale
+	 * down. Each core_details struct has it's own array.
+	 */
+	freq_window_idx = ci->cd[core].freq_window_idx;
+	if (ratio > ci->branch_ratio_threshold)
+		ci->cd[core].freq_directions[freq_window_idx] = 1;
 	else
-		power_manager_scale_core_max(core);
+		ci->cd[core].freq_directions[freq_window_idx] = 0;
+
+	freq_window_idx++;
+	freq_window_idx = freq_window_idx & (FREQ_WINDOW_SIZE-1);
+	ci->cd[core].freq_window_idx = freq_window_idx;
+
+	up_count = 0;
+	for (i = 0; i < FREQ_WINDOW_SIZE; i++)
+		up_count +=  ci->cd[core].freq_directions[i];
+
+	if (up_count == 0) {
+		if (ci->cd[core].freq_state != FREQ_MIN) {
+			power_manager_scale_core_min(core);
+			ci->cd[core].freq_state = FREQ_MIN;
+		}
+	} else {
+		if (ci->cd[core].freq_state != FREQ_MAX) {
+			power_manager_scale_core_max(core);
+			ci->cd[core].freq_state = FREQ_MAX;
+		}
+	}
 
 	g_active = 1;
diff --git a/examples/vm_power_manager/power_manager.c b/examples/vm_power_manager/power_manager.c
index 318fb0255..a7e98cf40 100644
--- a/examples/vm_power_manager/power_manager.c
+++ b/examples/vm_power_manager/power_manager.c
@@ -77,4 +77,5 @@ core_info_init(void)
 	ci->branch_ratio_threshold = BRANCH_RATIO_THRESHOLD;
 	ci->cd = malloc(ci->core_count * sizeof(struct core_details));
+	memset(ci->cd, 0, ci->core_count * sizeof(struct core_details));
 	if (!ci->cd) {
 		RTE_LOG(ERR, POWER_MANAGER, "Failed to allocate memory for core info.");
@@ -83,6 +84,4 @@ core_info_init(void)
 	for (i = 0; i < ci->core_count; i++) {
 		ci->cd[i].global_enabled_cpus = 1;
-		ci->cd[i].oob_enabled = 0;
-		ci->cd[i].msr_fd = 0;
 	}
 	printf("%d cores in system\n", ci->core_count);
diff --git a/examples/vm_power_manager/power_manager.h b/examples/vm_power_manager/power_manager.h
index 605b3c8f6..3de2f7aa0 100644
--- a/examples/vm_power_manager/power_manager.h
+++ b/examples/vm_power_manager/power_manager.h
@@ -9,4 +9,13 @@
 extern "C" {
 #endif
+
+#define FREQ_WINDOW_SIZE 32
+
+enum {
+	FREQ_UNKNOWN,
+	FREQ_MIN,
+	FREQ_MAX
+};
+
 struct core_details {
 	uint64_t last_branches;
@@ -15,4 +24,7 @@ struct core_details {
 	uint16_t oob_enabled;
 	int msr_fd;
+	uint16_t freq_directions[FREQ_WINDOW_SIZE];
+	uint16_t freq_window_idx;
+	uint16_t freq_state;
 };
 
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:14.554673866 +0000
+++ 0023-examples-vm_power-fix-OOB-frequency-oscillations.patch	2019-12-11 21:24:12.624652106 +0000
@@ -1 +1 @@
-From 31c9a66465ad623258c4449fea54c0b42a2deae1 Mon Sep 17 00:00:00 2001
+From 823157fedf327cc98327636691cc74f95fb27de6 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 31c9a66465ad623258c4449fea54c0b42a2deae1 ]
+
@@ -17 +18,0 @@
-Cc: stable@dpdk.org
@@ -77 +78 @@
-index 9d4e587b0..7b4f4b3c4 100644
+index 318fb0255..a7e98cf40 100644
@@ -80 +81 @@
-@@ -63,4 +63,5 @@ core_info_init(void)
+@@ -77,4 +77,5 @@ core_info_init(void)
@@ -86 +87 @@
-@@ -69,6 +70,4 @@ core_info_init(void)
+@@ -83,6 +84,4 @@ core_info_init(void)
@@ -94 +95 @@
-index e81a60ae5..e324766b6 100644
+index 605b3c8f6..3de2f7aa0 100644


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'bus/pci: align next mapping address on page boundary' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (21 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'examples/vm_power: fix OOB frequency oscillations' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'test: optimise fd closing in forks' " Kevin Traynor
                   ` (45 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Wangyu (Eric)
  Cc: Xiaofeng Deng, Wei Hu, Min Hu, Anatoly Burakov, Gavin Hu, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/db07de20e0cc19a34f7621c0282ecaa78b2d164b

Thanks.

Kevin.

---
From db07de20e0cc19a34f7621c0282ecaa78b2d164b Mon Sep 17 00:00:00 2001
From: "Wangyu (Eric)" <seven.wangyu@huawei.com>
Date: Wed, 13 Nov 2019 07:17:30 +0000
Subject: [PATCH] bus/pci: align next mapping address on page boundary

[ upstream commit d25ab4b7f128610cb5310b424c1f608686173f13 ]

Currently, the next address picked by PCI mapping infrastructure
may be page-unaligned due to BAR length being smaller than page size.
This leads to a situation where the requested map address is invalid,
resulting in mmap() call returning an arbitrary address,
which will later interfere with device BAR mapping in secondary processes.

Fix it by always aligning the next requested address on page boundary.

Fixes: c752998b5e2e ("pci: introduce library and driver")

Signed-off-by: Xiaofeng Deng <dengxiaofeng@huawei.com>
Signed-off-by: Wangyu (Eric) <seven.wangyu@huawei.com>
Acked-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Acked-by: Min Hu (Connor) <humin29@huawei.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Gavin Hu <gavin.hu@arm.com>
---
 drivers/bus/pci/linux/pci_uio.c  | 2 ++
 drivers/bus/pci/linux/pci_vfio.c | 3 +++
 2 files changed, 5 insertions(+)

diff --git a/drivers/bus/pci/linux/pci_uio.c b/drivers/bus/pci/linux/pci_uio.c
index 0d1b9aa34..eb3941e43 100644
--- a/drivers/bus/pci/linux/pci_uio.c
+++ b/drivers/bus/pci/linux/pci_uio.c
@@ -352,4 +352,6 @@ pci_uio_map_resource_by_index(struct rte_pci_device *dev, int res_idx,
 			(size_t)dev->mem_resource[res_idx].len);
 
+	pci_map_addr = RTE_PTR_ALIGN(pci_map_addr, sysconf(_SC_PAGE_SIZE));
+
 	maps[map_idx].phaddr = dev->mem_resource[res_idx].phys_addr;
 	maps[map_idx].size = dev->mem_resource[res_idx].len;
diff --git a/drivers/bus/pci/linux/pci_vfio.c b/drivers/bus/pci/linux/pci_vfio.c
index a3635cfe1..366d2ab2f 100644
--- a/drivers/bus/pci/linux/pci_vfio.c
+++ b/drivers/bus/pci/linux/pci_vfio.c
@@ -734,4 +734,7 @@ pci_vfio_map_resource_primary(struct rte_pci_device *dev)
 		pci_map_addr = RTE_PTR_ADD(bar_addr, (size_t) reg->size);
 
+		pci_map_addr = RTE_PTR_ALIGN(pci_map_addr,
+					sysconf(_SC_PAGE_SIZE));
+
 		maps[i].addr = bar_addr;
 		maps[i].offset = reg->offset;
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:14.628877991 +0000
+++ 0024-bus-pci-align-next-mapping-address-on-page-boundary.patch	2019-12-11 21:24:12.626652065 +0000
@@ -1 +1 @@
-From d25ab4b7f128610cb5310b424c1f608686173f13 Mon Sep 17 00:00:00 2001
+From db07de20e0cc19a34f7621c0282ecaa78b2d164b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d25ab4b7f128610cb5310b424c1f608686173f13 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -29 +30 @@
-index 6dca05a98..097dc1922 100644
+index 0d1b9aa34..eb3941e43 100644
@@ -40 +41 @@
-index b8faa23f8..64cd84a68 100644
+index a3635cfe1..366d2ab2f 100644
@@ -43 +44 @@
-@@ -751,4 +751,7 @@ pci_vfio_map_resource_primary(struct rte_pci_device *dev)
+@@ -734,4 +734,7 @@ pci_vfio_map_resource_primary(struct rte_pci_device *dev)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'test: optimise fd closing in forks' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (22 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'bus/pci: align next mapping address on page boundary' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'doc: fix internal links for older releases' " Kevin Traynor
                   ` (44 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Krzysztof Kanas; +Cc: David Marchand, Kevin Traynor, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/c8d8fad706afba896dd43f38f41caa1923e7d977

Thanks.

Kevin.

---
From c8d8fad706afba896dd43f38f41caa1923e7d977 Mon Sep 17 00:00:00 2001
From: Krzysztof Kanas <kkanas@marvell.com>
Date: Tue, 12 Nov 2019 21:31:02 +0100
Subject: [PATCH] test: optimise fd closing in forks

[ upstream commit 18562261abadfbdf7e19006c381bcb1d6fd6c2fe ]

Caught while investigating timeouts on a ARM64 server.

Stracing a test process running the eal_flags_autotest, we can see that
the fork helper is checking all possible file descriptors from
getdtablesize() to 2, and close the existing ones.
We can do better by inspecting this forked process /proc/self/fd
directory.

Besides, checking file descriptors via /proc/self/fd only makes sense for
Linux. This code was a noop on FreeBSD.

Fixes: af75078fece3 ("first public release")

Signed-off-by: Krzysztof Kanas <kkanas@marvell.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
Tested-by: Krzysztof Kanas <kkanas@marvell.com>
Acked-by: Kevin Traynor <ktraynor@redhat.com>
---
 test/test/process.h | 51 ++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 44 insertions(+), 7 deletions(-)

diff --git a/test/test/process.h b/test/test/process.h
index ba3a18502..f87ff6e72 100644
--- a/test/test/process.h
+++ b/test/test/process.h
@@ -10,4 +10,5 @@
 #include <stdlib.h> /* NULL */
 #include <unistd.h> /* readlink */
+#include <dirent.h>
 
 #ifdef RTE_EXEC_ENV_BSDAPP
@@ -30,6 +31,5 @@ process_dup(const char *const argv[], int numargs, const char *env_value)
 	int num;
 	char *argv_cpy[numargs + 1];
-	int i, fd, status;
-	char path[32];
+	int i, status;
 
 	pid_t pid = fork();
@@ -43,11 +43,48 @@ process_dup(const char *const argv[], int numargs, const char *env_value)
 		num = numargs;
 
-		/* close all open file descriptors, check /proc/self/fd to only
-		 * call close on open fds. Exclude fds 0, 1 and 2*/
-		for (fd = getdtablesize(); fd > 2; fd-- ) {
-			snprintf(path, sizeof(path), "/proc/" exe "/fd/%d", fd);
-			if (access(path, F_OK) == 0)
+#ifdef RTE_EXEC_ENV_LINUX
+		{
+			const char *procdir = "/proc/" self "/fd/";
+			struct dirent *dirent;
+			char *endptr;
+			int fd, fdir;
+			DIR *dir;
+
+			/* close all open file descriptors, check /proc/self/fd
+			 * to only call close on open fds. Exclude fds 0, 1 and
+			 * 2
+			 */
+			dir = opendir(procdir);
+			if (dir == NULL) {
+				rte_panic("Error opening %s: %s\n", procdir,
+						strerror(errno));
+			}
+
+			fdir = dirfd(dir);
+			if (fdir < 0) {
+				status = errno;
+				closedir(dir);
+				rte_panic("Error %d obtaining fd for dir %s: %s\n",
+						fdir, procdir,
+						strerror(status));
+			}
+
+			while ((dirent = readdir(dir)) != NULL) {
+				errno = 0;
+				fd = strtol(dirent->d_name, &endptr, 10);
+				if (errno != 0 || endptr[0] != '\0') {
+					printf("Error converting name fd %d %s:\n",
+						fd, dirent->d_name);
+					continue;
+				}
+
+				if (fd == fdir || fd <= 2)
+					continue;
+
 				close(fd);
+			}
+			closedir(dir);
 		}
+#endif
 		printf("Running binary with argv[]:");
 		for (i = 0; i < num; i++)
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:14.704348768 +0000
+++ 0025-test-optimise-fd-closing-in-forks.patch	2019-12-11 21:24:12.627652044 +0000
@@ -1 +1 @@
-From 18562261abadfbdf7e19006c381bcb1d6fd6c2fe Mon Sep 17 00:00:00 2001
+From c8d8fad706afba896dd43f38f41caa1923e7d977 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 18562261abadfbdf7e19006c381bcb1d6fd6c2fe ]
+
@@ -18 +19,0 @@
-Cc: stable@dpdk.org
@@ -25,2 +26,2 @@
- app/test/process.h | 50 ++++++++++++++++++++++++++++++++++++++++------
- 1 file changed, 44 insertions(+), 6 deletions(-)
+ test/test/process.h | 51 ++++++++++++++++++++++++++++++++++++++-------
+ 1 file changed, 44 insertions(+), 7 deletions(-)
@@ -28,6 +29,6 @@
-diff --git a/app/test/process.h b/app/test/process.h
-index 128ce4121..191d2796a 100644
---- a/app/test/process.h
-+++ b/app/test/process.h
-@@ -12,4 +12,5 @@
- #include <string.h> /* strerror */
+diff --git a/test/test/process.h b/test/test/process.h
+index ba3a18502..f87ff6e72 100644
+--- a/test/test/process.h
++++ b/test/test/process.h
+@@ -10,4 +10,5 @@
+ #include <stdlib.h> /* NULL */
@@ -36 +36,0 @@
- #include <sys/wait.h>
@@ -38 +38,2 @@
-@@ -41,5 +42,5 @@ process_dup(const char *const argv[], int numargs, const char *env_value)
+ #ifdef RTE_EXEC_ENV_BSDAPP
+@@ -30,6 +31,5 @@ process_dup(const char *const argv[], int numargs, const char *env_value)
@@ -41,0 +43 @@
+-	char path[32];
@@ -43,3 +45,3 @@
- 	char path[32];
- #ifdef RTE_LIBRTE_PDUMP
-@@ -57,11 +58,48 @@ process_dup(const char *const argv[], int numargs, const char *env_value)
+ 
+ 	pid_t pid = fork();
+@@ -43,11 +43,48 @@ process_dup(const char *const argv[], int numargs, const char *env_value)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'doc: fix internal links for older releases' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (23 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'test: optimise fd closing in forks' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'doc: fix link to AESNI mb external library' " Kevin Traynor
                   ` (43 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: David Marchand; +Cc: Stephen Hemminger, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/5db3670442320ec560752157ac37e8336a9dee44

Thanks.

Kevin.

---
From 5db3670442320ec560752157ac37e8336a9dee44 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Tue, 8 Oct 2019 11:47:36 +0200
Subject: [PATCH] doc: fix internal links for older releases

[ upstream commit 43628b3df237069558ee5e6be417ae410b8ef6e1 ]

Using external explicit references to http://doc.dpdk.org makes older
releases documentation point to the current master documentation pages.
Switch to internal references.

Fixes: 59ad25fe2184 ("doc: add overview of qat guide")
Fixes: 30e7fbd62839 ("doc: add event timer adapter guide")
Fixes: b7f859c9a9a5 ("doc: add switch representation documentation")
Fixes: f714a18885a6 ("app/testbbdev: add test application for bbdev")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
---
 doc/guides/cryptodevs/qat.rst                   | 4 ++--
 doc/guides/prog_guide/event_timer_adapter.rst   | 5 ++---
 doc/guides/prog_guide/switch_representation.rst | 6 ++----
 doc/guides/tools/testbbdev.rst                  | 3 +--
 4 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/doc/guides/cryptodevs/qat.rst b/doc/guides/cryptodevs/qat.rst
index 3ca70bc05..837ed280e 100644
--- a/doc/guides/cryptodevs/qat.rst
+++ b/doc/guides/cryptodevs/qat.rst
@@ -8,5 +8,5 @@ QAT documentation consists of three parts:
 
 * Details of the symmetric crypto service below.
-* Details of the `compression service <http://doc.dpdk.org/guides/compressdevs/qat_comp.html>`_
+* Details of the :doc:`compression service <../compressdevs/qat_comp>`
   in the compressdev drivers section.
 * Details of building the common QAT infrastructure and the PMDs to support the
@@ -124,5 +124,5 @@ Configuring and Building the DPDK QAT PMDs
 
 Further information on configuring, building and installing DPDK is described
-`here <http://doc.dpdk.org/guides/linux_gsg/build_dpdk.html>`_.
+:doc:`here <../linux_gsg/build_dpdk>`.
 
 
diff --git a/doc/guides/prog_guide/event_timer_adapter.rst b/doc/guides/prog_guide/event_timer_adapter.rst
index 3b4446ee9..07f9fde88 100644
--- a/doc/guides/prog_guide/event_timer_adapter.rst
+++ b/doc/guides/prog_guide/event_timer_adapter.rst
@@ -5,6 +5,5 @@ Event Timer Adapter Library
 ===========================
 
-The DPDK
-`Event Device library <http://doc.dpdk.org/guides/prog_guide/eventdev.html>`_
+The DPDK :doc:`Event Device library <eventdev>`
 introduces an event driven programming model which presents applications with
 an alternative to the polling model traditionally used in DPDK
@@ -22,5 +21,5 @@ software implementations of the timer mechanism; it will query an eventdev PMD
 to determine which implementation should be used.  The default software
 implementation manages timers using the DPDK
-`Timer library <http://doc.dpdk.org/guides/prog_guide/timer_lib.html>`_.
+:doc:`Timer library <timer_lib>`.
 
 Examples of using the API are presented in the `API Overview`_ and
diff --git a/doc/guides/prog_guide/switch_representation.rst b/doc/guides/prog_guide/switch_representation.rst
index e5c78c234..cc1d0d756 100644
--- a/doc/guides/prog_guide/switch_representation.rst
+++ b/doc/guides/prog_guide/switch_representation.rst
@@ -349,6 +349,5 @@ interconnection without introducing new concepts and whole new API to
 implement them. This is described in `flow API (rte_flow)`_.
 
-.. [6] `Generic flow API (rte_flow)
-       <http://doc.dpdk.org/guides/prog_guide/rte_flow.html>`_
+.. [6] :doc:`Generic flow API (rte_flow) <rte_flow>`
 
 Flow API (rte_flow)
@@ -737,6 +736,5 @@ Examples in subsequent sections apply to hypervisor applications only and
 are based on port representors **A**, **B** and **C**.
 
-.. [2] `Flow syntax
-    <http://doc.dpdk.org/guides/testpmd_app_ug/testpmd_funcs.html#flow-syntax>`_
+.. [2] :ref:`Flow syntax <testpmd_rte_flow>`
 
 Associating VF 1 with Physical Port 0
diff --git a/doc/guides/tools/testbbdev.rst b/doc/guides/tools/testbbdev.rst
index a8cb6fbbe..793ed5537 100644
--- a/doc/guides/tools/testbbdev.rst
+++ b/doc/guides/tools/testbbdev.rst
@@ -63,6 +63,5 @@ The following are the command-line options:
 ``-e EAL_PARAMS, --eal_params EAL_PARAMS``
  Specifies EAL arguments which are passed to the test app. For more details,
- refer to DPDK documentation at
- http://doc.dpdk.org/guides/linux_gsg/linux_eal_parameters.html.
+ refer to DPDK documentation at :doc:`../linux_gsg/linux_eal_parameters`.
 
 ``-t TIMEOUT, --timeout TIMEOUT``
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:14.775399535 +0000
+++ 0026-doc-fix-internal-links-for-older-releases.patch	2019-12-11 21:24:12.631651961 +0000
@@ -1 +1 @@
-From 43628b3df237069558ee5e6be417ae410b8ef6e1 Mon Sep 17 00:00:00 2001
+From 5db3670442320ec560752157ac37e8336a9dee44 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 43628b3df237069558ee5e6be417ae410b8ef6e1 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -26 +27 @@
-index 8630e2713..6197875fe 100644
+index 3ca70bc05..837ed280e 100644
@@ -31 +32 @@
- * Details of the symmetric and asymmetric crypto services below.
+ * Details of the symmetric crypto service below.
@@ -36 +37 @@
-@@ -159,5 +159,5 @@ Configuring and Building the DPDK QAT PMDs
+@@ -124,5 +124,5 @@ Configuring and Building the DPDK QAT PMDs
@@ -44 +45 @@
-index eb195ebd4..a95efbe0d 100644
+index 3b4446ee9..07f9fde88 100644
@@ -83 +84 @@
-index 7e6a4db2e..7e9569660 100644
+index a8cb6fbbe..793ed5537 100644


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'doc: fix link to AESNI mb external library' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (24 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'doc: fix internal links for older releases' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'doc/guides: clean repeated words' " Kevin Traynor
                   ` (42 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: David Marchand; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/105f8dbca7d65dbdc45524bad5640300009f538c

Thanks.

Kevin.

---
From 105f8dbca7d65dbdc45524bad5640300009f538c Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Tue, 12 Nov 2019 20:31:03 +0100
Subject: [PATCH] doc: fix link to AESNI mb external library

[ upstream commit a0eb7f2be8e525c5c4cdd8b751945187de2cf9e5 ]

Add missing _.

Fixes: 2977a13657ab ("doc: fix AESNI_MB guide")

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 doc/guides/cryptodevs/aesni_mb.rst | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/guides/cryptodevs/aesni_mb.rst b/doc/guides/cryptodevs/aesni_mb.rst
index ccfc137f1..2c8ccc3d4 100644
--- a/doc/guides/cryptodevs/aesni_mb.rst
+++ b/doc/guides/cryptodevs/aesni_mb.rst
@@ -63,5 +63,5 @@ library from `here <https://github.com/01org/intel-ipsec-mb>`_
 and compile it on their user system before building DPDK.
 The latest version of the library supported by this PMD is v0.51, which
-can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.51.zip>`.
+can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.51.zip>`_.
 
 .. code-block:: console
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:14.861904659 +0000
+++ 0027-doc-fix-link-to-AESNI-mb-external-library.patch	2019-12-11 21:24:12.631651961 +0000
@@ -1 +1 @@
-From a0eb7f2be8e525c5c4cdd8b751945187de2cf9e5 Mon Sep 17 00:00:00 2001
+From 105f8dbca7d65dbdc45524bad5640300009f538c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a0eb7f2be8e525c5c4cdd8b751945187de2cf9e5 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -17 +18 @@
-index 318fcfb61..5d8fb46ef 100644
+index ccfc137f1..2c8ccc3d4 100644
@@ -20 +21 @@
-@@ -66,5 +66,5 @@ library from `here <https://github.com/01org/intel-ipsec-mb>`_
+@@ -63,5 +63,5 @@ library from `here <https://github.com/01org/intel-ipsec-mb>`_
@@ -22,3 +23,3 @@
- The latest version of the library supported by this PMD is v0.53, which
--can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.53.zip>`.
-+can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.53.zip>`_.
+ The latest version of the library supported by this PMD is v0.51, which
+-can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.51.zip>`.
++can be downloaded from `<https://github.com/01org/intel-ipsec-mb/archive/v0.51.zip>`_.


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'doc/guides: clean repeated words' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (25 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'doc: fix link to AESNI mb external library' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'mempool: use actual IOVA addresses when populating' " Kevin Traynor
                   ` (41 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: David Marchand; +Cc: Kevin Traynor, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/98e4dae7d0a00b2ccbc809983b3f0866f748044a

Thanks.

Kevin.

---
From 98e4dae7d0a00b2ccbc809983b3f0866f748044a Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Tue, 12 Nov 2019 20:33:41 +0100
Subject: [PATCH] doc/guides: clean repeated words

[ upstream commit f43d3dbbd90c9e195d26d18ac7da9ca2854c3f1e ]

Shoot repeated words in all our guides.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Kevin Traynor <ktraynor@redhat.com>
---
 doc/guides/contributing/coding_style.rst                  | 8 ++++----
 doc/guides/cryptodevs/zuc.rst                             | 2 +-
 doc/guides/linux_gsg/nic_perf_intel_platform.rst          | 2 +-
 doc/guides/nics/fm10k.rst                                 | 2 +-
 doc/guides/prog_guide/env_abstraction_layer.rst           | 2 +-
 .../prog_guide/generic_segmentation_offload_lib.rst       | 2 +-
 doc/guides/prog_guide/kernel_nic_interface.rst            | 2 +-
 doc/guides/prog_guide/packet_classif_access_ctrl.rst      | 4 ++--
 doc/guides/prog_guide/rte_flow.rst                        | 2 +-
 doc/guides/prog_guide/rte_security.rst                    | 4 ++--
 doc/guides/rel_notes/release_17_11.rst                    | 2 +-
 doc/guides/rel_notes/release_18_02.rst                    | 2 +-
 doc/guides/sample_app_ug/ethtool.rst                      | 2 +-
 doc/guides/sample_app_ug/performance_thread.rst           | 2 +-
 doc/guides/testpmd_app_ug/testpmd_funcs.rst               | 4 ++--
 15 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/doc/guides/contributing/coding_style.rst b/doc/guides/contributing/coding_style.rst
index 656563dde..b848be5fb 100644
--- a/doc/guides/contributing/coding_style.rst
+++ b/doc/guides/contributing/coding_style.rst
@@ -632,8 +632,8 @@ In the DPDK environment, use the logging interface provided:
  /* log in debug level */
  rte_log_set_global_level(RTE_LOG_DEBUG);
- RTE_LOG(DEBUG, my_logtype1, "this is is a debug level message\n");
- RTE_LOG(INFO, my_logtype1, "this is is a info level message\n");
- RTE_LOG(WARNING, my_logtype1, "this is is a warning level message\n");
- RTE_LOG(WARNING, my_logtype2, "this is is a debug level message (not displayed)\n");
+ RTE_LOG(DEBUG, my_logtype1, "this is a debug level message\n");
+ RTE_LOG(INFO, my_logtype1, "this is a info level message\n");
+ RTE_LOG(WARNING, my_logtype1, "this is a warning level message\n");
+ RTE_LOG(WARNING, my_logtype2, "this is a debug level message (not displayed)\n");
 
  /* log in info level */
diff --git a/doc/guides/cryptodevs/zuc.rst b/doc/guides/cryptodevs/zuc.rst
index e38989968..dcd3ab0a5 100644
--- a/doc/guides/cryptodevs/zuc.rst
+++ b/doc/guides/cryptodevs/zuc.rst
@@ -29,5 +29,5 @@ Limitations
 * ZUC (EEA3) supported only if cipher length, cipher offset fields are byte-aligned.
 * ZUC PMD cannot be built as a shared library, due to limitations in
-  in the underlying library.
+  the underlying library.
 
 
diff --git a/doc/guides/linux_gsg/nic_perf_intel_platform.rst b/doc/guides/linux_gsg/nic_perf_intel_platform.rst
index cf5c9e0db..4e9afbdbc 100644
--- a/doc/guides/linux_gsg/nic_perf_intel_platform.rst
+++ b/doc/guides/linux_gsg/nic_perf_intel_platform.rst
@@ -153,5 +153,5 @@ Configurations before running DPDK
       mount -t hugetlbfs nodev /mnt/huge
 
-2. Check the CPU layout using using the DPDK ``cpu_layout`` utility:
+2. Check the CPU layout using the DPDK ``cpu_layout`` utility:
 
    .. code-block:: console
diff --git a/doc/guides/nics/fm10k.rst b/doc/guides/nics/fm10k.rst
index 20a1cde53..4e178c2cc 100644
--- a/doc/guides/nics/fm10k.rst
+++ b/doc/guides/nics/fm10k.rst
@@ -120,5 +120,5 @@ Switch manager
 The Intel FM10000 family of NICs integrate a hardware switch and multiple host
 interfaces. The FM10000 PMD driver only manages host interfaces. For the
-switch component another switch driver has to be loaded prior to to the
+switch component another switch driver has to be loaded prior to the
 FM10000 PMD driver. The switch driver can be acquired from Intel support.
 Only Testpoint is validated with DPDK, the latest version that has been
diff --git a/doc/guides/prog_guide/env_abstraction_layer.rst b/doc/guides/prog_guide/env_abstraction_layer.rst
index 2bb77b019..a7536a80e 100644
--- a/doc/guides/prog_guide/env_abstraction_layer.rst
+++ b/doc/guides/prog_guide/env_abstraction_layer.rst
@@ -221,5 +221,5 @@ matter of supplying the correct socket ID to DPDK allocator, either directly
 structure-specific allocation API's such as ``rte_ring_create``).
 
-Since there is no way DPDK can verify whether memory are is available or valid,
+Since there is no way DPDK can verify whether memory is available or valid,
 this responsibility falls on the shoulders of the user. All multiprocess
 synchronization is also user's responsibility, as well as ensuring  that all
diff --git a/doc/guides/prog_guide/generic_segmentation_offload_lib.rst b/doc/guides/prog_guide/generic_segmentation_offload_lib.rst
index 0cfc1198c..73e768740 100644
--- a/doc/guides/prog_guide/generic_segmentation_offload_lib.rst
+++ b/doc/guides/prog_guide/generic_segmentation_offload_lib.rst
@@ -207,5 +207,5 @@ To segment an outgoing packet, an application must:
 
    - The GSO library use the value of an mbuf's ``ol_flags`` attribute to
-     to determine how a packet should be segmented. It is the application's
+     determine how a packet should be segmented. It is the application's
      responsibility to ensure that these flags are set.
 
diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst b/doc/guides/prog_guide/kernel_nic_interface.rst
index 9c1483adc..ccf03a41d 100644
--- a/doc/guides/prog_guide/kernel_nic_interface.rst
+++ b/doc/guides/prog_guide/kernel_nic_interface.rst
@@ -244,5 +244,5 @@ to create a separate thread or secondary process to periodically call
 The KNI interfaces can be deleted by a DPDK application with
 ``rte_kni_release()``.  All KNI interfaces not explicitly deleted will be
-deleted when the the ``/dev/kni`` device is closed, either explicitly with
+deleted when the ``/dev/kni`` device is closed, either explicitly with
 ``rte_kni_close()`` or when the DPDK application is closed.
 
diff --git a/doc/guides/prog_guide/packet_classif_access_ctrl.rst b/doc/guides/prog_guide/packet_classif_access_ctrl.rst
index 395b3ec47..9e08a8e3f 100644
--- a/doc/guides/prog_guide/packet_classif_access_ctrl.rst
+++ b/doc/guides/prog_guide/packet_classif_access_ctrl.rst
@@ -155,5 +155,5 @@ To define classification for the IPv6 2-tuple: <protocol, IPv6 source address> o
 .. code-block:: c
 
-    struct struct ipv6_hdr {
+    struct ipv6_hdr {
         uint32_t vtc_flow;     /* IP version, traffic class & flow label. */
         uint16_t payload_len;  /* IP packet length - includes sizeof(ip_header). */
@@ -168,5 +168,5 @@ The following array of field definitions can be used:
 .. code-block:: c
 
-    struct struct rte_acl_field_def ipv6_2tuple_defs[5] = {
+    struct rte_acl_field_def ipv6_2tuple_defs[5] = {
         {
             .type = RTE_ACL_FIELD_TYPE_BITMASK,
diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst
index 9c6fc5e82..cbfeee870 100644
--- a/doc/guides/prog_guide/rte_flow.rst
+++ b/doc/guides/prog_guide/rte_flow.rst
@@ -1525,5 +1525,5 @@ The shared flag indicates whether the counter is unique to the flow rule the
 action is specified with, or whether it is a shared counter.
 
-For a count action with the shared flag set, then then a global device
+For a count action with the shared flag set, then a global device
 namespace is assumed for the counter id, so that any matched flow rules using
 a count action with the same counter id on the same port will contribute to
diff --git a/doc/guides/prog_guide/rte_security.rst b/doc/guides/prog_guide/rte_security.rst
index 7d0734a37..f77fb89dc 100644
--- a/doc/guides/prog_guide/rte_security.rst
+++ b/doc/guides/prog_guide/rte_security.rst
@@ -52,5 +52,5 @@ packet. e.g. In case of IPsec, the IPsec tunnel headers (if any),
 ESP/AH headers will remain in the packet but the received packet
 contains the decrypted data where the encrypted data was when the packet
-arrived. The driver Rx path check the descriptors and and based on the
+arrived. The driver Rx path check the descriptors and based on the
 crypto status sets additional flags in the rte_mbuf.ol_flags field.
 
@@ -66,5 +66,5 @@ relevant security protocol headers. Only the data will not be
 encrypted by the software. The driver will accordingly configure the
 tx descriptors. The hardware device will encrypt the data before sending the
-the packet out.
+packet out.
 
 .. note::
diff --git a/doc/guides/rel_notes/release_17_11.rst b/doc/guides/rel_notes/release_17_11.rst
index 6448b6cb1..1f3b45ef6 100644
--- a/doc/guides/rel_notes/release_17_11.rst
+++ b/doc/guides/rel_notes/release_17_11.rst
@@ -476,5 +476,5 @@ API Changes
 
   Two ``mbuf`` flags have been added to indicate that the VLAN
-  identifier has been saved in in the ``mbuf`` structure. For instance:
+  identifier has been saved in the ``mbuf`` structure. For instance:
 
   - If VLAN is not stripped and TCI is saved: ``PKT_RX_VLAN``
diff --git a/doc/guides/rel_notes/release_18_02.rst b/doc/guides/rel_notes/release_18_02.rst
index 8e403118a..3523ea7fd 100644
--- a/doc/guides/rel_notes/release_18_02.rst
+++ b/doc/guides/rel_notes/release_18_02.rst
@@ -211,5 +211,5 @@ New Features
   operations by allowing applications to interact with device using opaque
   structures/buffers. Also, southbound APIs provide a means of integrating devices
-  either as as part of a physical bus (PCI, FSLMC etc) or through ``vdev``.
+  either as part of a physical bus (PCI, FSLMC etc) or through ``vdev``.
 
   See the :doc:`../prog_guide/rawdev` programmer's guide for more details.
diff --git a/doc/guides/sample_app_ug/ethtool.rst b/doc/guides/sample_app_ug/ethtool.rst
index 47e09f6ed..8f7fc6ca6 100644
--- a/doc/guides/sample_app_ug/ethtool.rst
+++ b/doc/guides/sample_app_ug/ethtool.rst
@@ -41,5 +41,5 @@ The application is console-driven using the cmdline DPDK interface:
 
 From this interface the available commands and descriptions of what
-they do as as follows:
+they do as follows:
 
 * ``drvinfo``: Print driver info
diff --git a/doc/guides/sample_app_ug/performance_thread.rst b/doc/guides/sample_app_ug/performance_thread.rst
index 96f0fc6fd..a0ff18ffd 100644
--- a/doc/guides/sample_app_ug/performance_thread.rst
+++ b/doc/guides/sample_app_ug/performance_thread.rst
@@ -281,5 +281,5 @@ interconnected via software rings.
 
 On initialization an L-thread scheduler is started on every EAL thread. On all
-but the master EAL thread only a a dummy L-thread is initially started.
+but the master EAL thread only a dummy L-thread is initially started.
 The L-thread started on the master EAL thread then spawns other L-threads on
 different L-thread schedulers according the command line parameters.
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index 37d5d876b..c327d1f4d 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -34,5 +34,5 @@ If you type a partial command and hit ``<TAB>`` you get a list of the available
 .. note::
 
-   Some examples in this document are too long to fit on one line are are shown wrapped at `"\\"` for display purposes::
+   Some examples in this document are too long to fit on one line are shown wrapped at `"\\"` for display purposes::
 
       testpmd> set flow_ctrl rx (on|off) tx (on|off) (high_water) (low_water) \
@@ -2575,5 +2575,5 @@ Traffic Management
 
 The following section shows functions for configuring traffic management on
-on the ethernet device through the use of generic TM API.
+the ethernet device through the use of generic TM API.
 
 show port traffic management capability
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:14.940436094 +0000
+++ 0028-doc-guides-clean-repeated-words.patch	2019-12-11 21:24:12.654651486 +0000
@@ -1 +1 @@
-From f43d3dbbd90c9e195d26d18ac7da9ca2854c3f1e Mon Sep 17 00:00:00 2001
+From 98e4dae7d0a00b2ccbc809983b3f0866f748044a Mon Sep 17 00:00:00 2001
@@ -6 +6 @@
-Shoot repeated words in all our guides.
+[ upstream commit f43d3dbbd90c9e195d26d18ac7da9ca2854c3f1e ]
@@ -8 +8 @@
-Cc: stable@dpdk.org
+Shoot repeated words in all our guides.
@@ -17,2 +16,0 @@
- doc/guides/prog_guide/bbdev.rst                           | 2 +-
- doc/guides/prog_guide/cryptodev_lib.rst                   | 4 ++--
@@ -27,2 +24,0 @@
- doc/guides/rel_notes/release_19_02.rst                    | 4 ++--
- doc/guides/rel_notes/release_19_11.rst                    | 2 +-
@@ -30,2 +25,0 @@
- doc/guides/sample_app_ug/ipsec_secgw.rst                  | 2 +-
- doc/guides/sample_app_ug/ntb.rst                          | 2 +-
@@ -34,2 +28 @@
- doc/guides/tools/proc_info.rst                            | 2 +-
- 22 files changed, 30 insertions(+), 30 deletions(-)
+ 15 files changed, 21 insertions(+), 21 deletions(-)
@@ -38 +31 @@
-index e95a1a2be..a6843de5a 100644
+index 656563dde..b848be5fb 100644
@@ -55 +48 @@
-index 69a5218b1..002e986da 100644
+index e38989968..dcd3ab0a5 100644
@@ -66 +59 @@
-index 0c25ec03d..c554c2159 100644
+index cf5c9e0db..4e9afbdbc 100644
@@ -69 +62 @@
-@@ -151,5 +151,5 @@ Configurations before running DPDK
+@@ -153,5 +153,5 @@ Configurations before running DPDK
@@ -87,29 +79,0 @@
-diff --git a/doc/guides/prog_guide/bbdev.rst b/doc/guides/prog_guide/bbdev.rst
-index d49184967..d39167af1 100644
---- a/doc/guides/prog_guide/bbdev.rst
-+++ b/doc/guides/prog_guide/bbdev.rst
-@@ -1070,5 +1070,5 @@ the code block size ``K``.
- 
- The first CB Virtual Circular Buffer (VCB) index is given by ``r`` but the
--the number of the remaining CB VCBs is calculated automatically by BBDEV
-+number of the remaining CB VCBs is calculated automatically by BBDEV
- and passed down to the driver.
- 
-diff --git a/doc/guides/prog_guide/cryptodev_lib.rst b/doc/guides/prog_guide/cryptodev_lib.rst
-index bf0ee79f8..ac1643774 100644
---- a/doc/guides/prog_guide/cryptodev_lib.rst
-+++ b/doc/guides/prog_guide/cryptodev_lib.rst
-@@ -499,5 +499,5 @@ operations such as cipher encrypt and authentication generate, the next pointer
- allows transform to be chained together. Crypto devices which support chaining
- must publish the chaining of symmetric Crypto operations feature flag. Allocation of the
--xform structure is in the the application domain. To allow future API extensions in a
-+xform structure is in the application domain. To allow future API extensions in a
- backwardly compatible manner, e.g. addition of a new parameter, the application should
- zero the full xform struct before populating it.
-@@ -894,5 +894,5 @@ to specify the details of the asymmetric Crypto operation. Next pointer within
- xform allows transform to be chained together. Also it is important to note that
- the order in which the transforms are passed indicates the order of the chaining. Allocation
--of the xform structure is in the the application domain. To allow future API extensions in a
-+of the xform structure is in the application domain. To allow future API extensions in a
- backwardly compatible manner, e.g. addition of a new parameter, the application should
- zero the full xform struct before populating it.
@@ -117 +81 @@
-index 6e59faeea..cd8e3003e 100644
+index 2bb77b019..a7536a80e 100644
@@ -120,2 +84,2 @@
-@@ -250,5 +250,5 @@ manual memory management.
- + Using heap API's for externally allocated memory
+@@ -221,5 +221,5 @@ matter of supplying the correct socket ID to DPDK allocator, either directly
+ structure-specific allocation API's such as ``rte_ring_create``).
@@ -123,4 +87,4 @@
--Using using a set of malloc heap API's is the recommended way to use externally
-+Using a set of malloc heap API's is the recommended way to use externally
- allocated memory in DPDK. In this way, support for externally allocated memory
- is implemented through overloading the socket ID - externally allocated heaps
+-Since there is no way DPDK can verify whether memory are is available or valid,
++Since there is no way DPDK can verify whether memory is available or valid,
+ this responsibility falls on the shoulders of the user. All multiprocess
+ synchronization is also user's responsibility, as well as ensuring  that all
@@ -139 +103 @@
-index 2fd58e117..e12634ddc 100644
+index 9c1483adc..ccf03a41d 100644
@@ -142 +106 @@
-@@ -255,5 +255,5 @@ to create a separate thread or secondary process to periodically call
+@@ -244,5 +244,5 @@ to create a separate thread or secondary process to periodically call
@@ -150 +114 @@
-index c16b11af4..2945eacf5 100644
+index 395b3ec47..9e08a8e3f 100644
@@ -156,2 +120,2 @@
--    struct struct rte_ipv6_hdr {
-+    struct rte_ipv6_hdr {
+-    struct struct ipv6_hdr {
++    struct ipv6_hdr {
@@ -168 +132 @@
-index ac0020e44..a254c81ef 100644
+index 9c6fc5e82..cbfeee870 100644
@@ -171 +135 @@
-@@ -1651,5 +1651,5 @@ The shared flag indicates whether the counter is unique to the flow rule the
+@@ -1525,5 +1525,5 @@ The shared flag indicates whether the counter is unique to the flow rule the
@@ -218,27 +181,0 @@
-diff --git a/doc/guides/rel_notes/release_19_02.rst b/doc/guides/rel_notes/release_19_02.rst
-index b353620b7..ace1534ef 100644
---- a/doc/guides/rel_notes/release_19_02.rst
-+++ b/doc/guides/rel_notes/release_19_02.rst
-@@ -266,9 +266,9 @@ ABI Changes
-   to include the following fields: ``queue ID``, ``traffic class``, ``color``.
- 
--* cryptodev: as shown in the the 18.11 deprecation notice, the structure
-+* cryptodev: as shown in the 18.11 deprecation notice, the structure
-   ``rte_cryptodev_qp_conf`` has added two parameters for symmetric session
-   mempool and symmetric session private data mempool.
- 
--* cryptodev: as shown in the the 18.11 deprecation notice, the structure
-+* cryptodev: as shown in the 18.11 deprecation notice, the structure
-   ``rte_cryptodev_sym_session`` has been updated to contain more information
-   to ensure safely accessing the session and session private data.
-diff --git a/doc/guides/rel_notes/release_19_11.rst b/doc/guides/rel_notes/release_19_11.rst
-index 682c1bdf3..c0045a91f 100644
---- a/doc/guides/rel_notes/release_19_11.rst
-+++ b/doc/guides/rel_notes/release_19_11.rst
-@@ -98,5 +98,5 @@ New Features
- 
-   * Added new API ``rte_eth_dev_set_ptypes`` that allows an application to
--    inform PMD about about reduced range of packet types to handle.
-+    inform PMD about reduced range of packet types to handle.
-   * This scheme will allow PMDs to avoid lookup to internal ptype table on Rx
-     and thereby improve Rx performance if application wishes do so.
@@ -256,22 +192,0 @@
-diff --git a/doc/guides/sample_app_ug/ipsec_secgw.rst b/doc/guides/sample_app_ug/ipsec_secgw.rst
-index ae8cce235..d6d8d4468 100644
---- a/doc/guides/sample_app_ug/ipsec_secgw.rst
-+++ b/doc/guides/sample_app_ug/ipsec_secgw.rst
-@@ -159,5 +159,5 @@ Where:
-     will be discarded. Fragment lifetime should be decreased when
-     there is a high fragmented traffic loss in high bandwidth networks.
--    Should be lower for for low number of reassembly buckets.
-+    Should be lower for low number of reassembly buckets.
-     Valid values: from 1 ns to 10 s. Default value: 10000000 (10 s).
- 
-diff --git a/doc/guides/sample_app_ug/ntb.rst b/doc/guides/sample_app_ug/ntb.rst
-index df16af86c..93fb752f2 100644
---- a/doc/guides/sample_app_ug/ntb.rst
-+++ b/doc/guides/sample_app_ug/ntb.rst
-@@ -83,5 +83,5 @@ The application is console-driven using the cmdline DPDK interface:
- 
- From this interface the available commands and descriptions of what
--they do as as follows:
-+they do as follows:
- 
- * ``send [filepath]``: Send file to the peer host. Need to be in
@@ -279 +194 @@
-index ac6ee8ac2..5fed46465 100644
+index 96f0fc6fd..a0ff18ffd 100644
@@ -290 +205 @@
-index 48473d8e2..6779822e1 100644
+index 37d5d876b..c327d1f4d 100644
@@ -300 +215 @@
-@@ -2761,5 +2761,5 @@ Traffic Management
+@@ -2575,5 +2575,5 @@ Traffic Management
@@ -307,11 +221,0 @@
-diff --git a/doc/guides/tools/proc_info.rst b/doc/guides/tools/proc_info.rst
-index 2ea1b59c2..0390b9c58 100644
---- a/doc/guides/tools/proc_info.rst
-+++ b/doc/guides/tools/proc_info.rst
-@@ -64,5 +64,5 @@ ring. For invalid or no ring name, whole list is dump.
- The show-mempool parameter display current allocation of all mempool
- debug information. Specifying the name allows to display details for specific
--specific mempool. For invalid or no mempool name, whole list is dump.
-+mempool. For invalid or no mempool name, whole list is dump.
- 
- **--iter-mempool=name**


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'mempool: use actual IOVA addresses when populating' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (26 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'doc/guides: clean repeated words' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'build: remove unneeded meson option' " Kevin Traynor
                   ` (40 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Anatoly Burakov; +Cc: Olivier Matz, Bo Chen, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/9bf2561cb325022e0591a1fbebcc59867025d596

Thanks.

Kevin.

---
From 9bf2561cb325022e0591a1fbebcc59867025d596 Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Thu, 14 Nov 2019 13:58:20 +0000
Subject: [PATCH] mempool: use actual IOVA addresses when populating

[ upstream commit 2a7fd3ef38da19b2805fecd29c527456364ae618 ]

Currently, when mempool is being populated, we get IOVA address
of every segment using rte_mem_virt2iova(). This works for internal
memory, but does not really work for external memory, and does not
work on platforms which return RTE_BAD_IOVA as a result of this
call (such as FreeBSD). Moreover, even when it works, the function
in question will do unnecessary pagewalks in IOVA as PA mode, as
it falls back to rte_mem_virt2phy() instead of just doing a lookup in
internal memseg table.

To fix it, replace the call to first attempt to look through the
internal memseg table (this takes care of internal and external memory),
and fall back to rte_mem_virt2iova() when unable to perform VA->IOVA
translation via memseg table.

Fixes: 66cc45e293ed ("mem: replace memseg with memseg lists")

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Tested-by: Bo Chen <box.c.chen@intel.com>
---
 lib/librte_mempool/rte_mempool.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c
index 683b216f9..99530a595 100644
--- a/lib/librte_mempool/rte_mempool.c
+++ b/lib/librte_mempool/rte_mempool.c
@@ -356,4 +356,17 @@ fail:
 }
 
+static rte_iova_t
+get_iova(void *addr)
+{
+	struct rte_memseg *ms;
+
+	/* try registered memory first */
+	ms = rte_mem_virt2memseg(addr, NULL);
+	if (ms == NULL || ms->iova == RTE_BAD_IOVA)
+		/* fall back to actual physical address */
+		return rte_mem_virt2iova(addr);
+	return ms->iova + RTE_PTR_DIFF(addr, ms->addr);
+}
+
 /* Populate the mempool with a virtual area. Return the number of
  * objects added, or a negative value on error.
@@ -381,5 +394,5 @@ rte_mempool_populate_virt(struct rte_mempool *mp, char *addr,
 		     mp->populated_size < mp->size; off += phys_len) {
 
-		iova = rte_mem_virt2iova(addr + off);
+		iova = get_iova(addr + off);
 
 		if (iova == RTE_BAD_IOVA && rte_eal_has_hugepages()) {
@@ -392,5 +405,5 @@ rte_mempool_populate_virt(struct rte_mempool *mp, char *addr,
 			rte_iova_t iova_tmp;
 
-			iova_tmp = rte_mem_virt2iova(addr + off + phys_len);
+			iova_tmp = get_iova(addr + off + phys_len);
 
 			if (iova_tmp != iova + phys_len)
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:15.049815276 +0000
+++ 0029-mempool-use-actual-IOVA-addresses-when-populating.patch	2019-12-11 21:24:12.657651424 +0000
@@ -1 +1 @@
-From 2a7fd3ef38da19b2805fecd29c527456364ae618 Mon Sep 17 00:00:00 2001
+From 9bf2561cb325022e0591a1fbebcc59867025d596 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 2a7fd3ef38da19b2805fecd29c527456364ae618 ]
+
@@ -21 +22,0 @@
-Cc: stable@dpdk.org
@@ -31 +32 @@
-index 40cae3eb6..8da2e471c 100644
+index 683b216f9..99530a595 100644
@@ -34 +35 @@
-@@ -357,4 +357,17 @@ fail:
+@@ -356,4 +356,17 @@ fail:
@@ -52 +53 @@
-@@ -376,5 +389,5 @@ rte_mempool_populate_virt(struct rte_mempool *mp, char *addr,
+@@ -381,5 +394,5 @@ rte_mempool_populate_virt(struct rte_mempool *mp, char *addr,
@@ -65 +66 @@
- 			if (iova_tmp == RTE_BAD_IOVA ||
+ 			if (iova_tmp != iova + phys_len)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'build: remove unneeded meson option' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (27 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'mempool: use actual IOVA addresses when populating' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'lib: fix log typos' " Kevin Traynor
                   ` (39 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: David Marchand; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/02c22bcda42a57a49b432bd7a20c08d9997958e4

Thanks.

Kevin.

---
From 02c22bcda42a57a49b432bd7a20c08d9997958e4 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Tue, 19 Nov 2019 13:59:23 +0100
Subject: [PATCH] build: remove unneeded meson option

[ upstream commit 8980d7da64693e5115324cbd9880b94012064d6b ]

The meson option has been missed when removing this code.

Fixes: 8e35792c5325 ("eal: remove dead code on NUMA node detection")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 meson_options.txt | 2 --
 1 file changed, 2 deletions(-)

diff --git a/meson_options.txt b/meson_options.txt
index 91b0449a1..379e5b8d2 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,4 +1,2 @@
-option('allow_invalid_socket_id', type: 'boolean', value: false,
-	description: 'allow out-of-range NUMA socket id\'s for platforms that don\'t report the value correctly')
 option('drivers_install_subdir', type: 'string', value: 'dpdk/pmds-<VERSION>',
 	description: 'Subdirectory of libdir where to install PMDs. Defaults to using a versioned subdirectory.')
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:15.126004792 +0000
+++ 0030-build-remove-unneeded-meson-option.patch	2019-12-11 21:24:12.657651424 +0000
@@ -1 +1 @@
-From 8980d7da64693e5115324cbd9880b94012064d6b Mon Sep 17 00:00:00 2001
+From 02c22bcda42a57a49b432bd7a20c08d9997958e4 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 8980d7da64693e5115324cbd9880b94012064d6b ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index 89650b0e9..e6fcb884b 100644
+index 91b0449a1..379e5b8d2 100644
@@ -21,3 +22 @@
-@@ -1,6 +1,4 @@
- # Please keep these options sorted alphabetically.
- 
+@@ -1,4 +1,2 @@
@@ -26,2 +25,2 @@
- option('disable_drivers', type: 'string', value: '',
- 	description: 'Comma-separated list of drivers to explicitly disable.')
+ option('drivers_install_subdir', type: 'string', value: 'dpdk/pmds-<VERSION>',
+ 	description: 'Subdirectory of libdir where to install PMDs. Defaults to using a versioned subdirectory.')


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'lib: fix log typos' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (28 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'build: remove unneeded meson option' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'lib: fix doxygen " Kevin Traynor
                   ` (38 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Kevin Traynor; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/e62ce0a96ac0121554d84ffbdd9f5baea17c7925

Thanks.

Kevin.

---
From e62ce0a96ac0121554d84ffbdd9f5baea17c7925 Mon Sep 17 00:00:00 2001
From: Kevin Traynor <ktraynor@redhat.com>
Date: Wed, 13 Nov 2019 16:10:14 +0000
Subject: [PATCH] lib: fix log typos

[ upstream commit 0411d61fa96093e6c3a2a817ca68ca7ac3019a1d ]

Fix these as they are user visible. Found with codespell.

Fixes: bacaa2754017 ("eal: add channel for multi-process communication")
Fixes: f05e26051c15 ("eal: add IPC asynchronous request")
Fixes: 0cbce3a167f1 ("vfio: skip DMA map failure if already mapped")
Fixes: 445c6528b55f ("power: common interface for guest and host")
Fixes: e6c6dc0f96c8 ("power: add p-state driver compatibility")
Fixes: 8f972312b8f4 ("vhost: support vhost-user")

Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
---
 lib/librte_eal/common/eal_common_proc.c | 4 ++--
 lib/librte_power/power_acpi_cpufreq.c   | 4 ++--
 lib/librte_vhost/socket.c               | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/lib/librte_eal/common/eal_common_proc.c b/lib/librte_eal/common/eal_common_proc.c
index 852e52e02..35e574393 100644
--- a/lib/librte_eal/common/eal_common_proc.c
+++ b/lib/librte_eal/common/eal_common_proc.c
@@ -273,5 +273,5 @@ read_msg(struct mp_msg_internal *m, struct sockaddr_un *s)
 
 	if (msglen != buflen || (msgh.msg_flags & (MSG_TRUNC | MSG_CTRUNC))) {
-		RTE_LOG(ERR, EAL, "truncted msg\n");
+		RTE_LOG(ERR, EAL, "truncated msg\n");
 		return -1;
 	}
@@ -1052,5 +1052,5 @@ rte_mp_request_async(struct rte_mp_msg *req, const struct timespec *ts,
 
 	if (gettimeofday(&now, NULL) < 0) {
-		RTE_LOG(ERR, EAL, "Faile to get current time\n");
+		RTE_LOG(ERR, EAL, "Failed to get current time\n");
 		rte_errno = errno;
 		return -1;
diff --git a/lib/librte_power/power_acpi_cpufreq.c b/lib/librte_power/power_acpi_cpufreq.c
index f7d3f9ca9..6051e02d9 100644
--- a/lib/librte_power/power_acpi_cpufreq.c
+++ b/lib/librte_power/power_acpi_cpufreq.c
@@ -30,5 +30,5 @@
 #define FOPEN_OR_ERR_RET(f, retval) do { \
 		if ((f) == NULL) { \
-			RTE_LOG(ERR, POWER, "File not openned\n"); \
+			RTE_LOG(ERR, POWER, "File not opened\n"); \
 			return retval; \
 		} \
@@ -109,5 +109,5 @@ set_freq_internal(struct rte_power_info *pi, uint32_t idx)
 		return 0;
 
-	POWER_DEBUG_TRACE("Freqency[%u] %u to be set for lcore %u\n",
+	POWER_DEBUG_TRACE("Frequency[%u] %u to be set for lcore %u\n",
 			idx, pi->freqs[idx], pi->lcore_id);
 	if (fseek(pi->f, 0, SEEK_SET) < 0) {
diff --git a/lib/librte_vhost/socket.c b/lib/librte_vhost/socket.c
index 9a674956f..5e422335c 100644
--- a/lib/librte_vhost/socket.c
+++ b/lib/librte_vhost/socket.c
@@ -131,5 +131,5 @@ read_fd_message(int sockfd, char *buf, int buflen, int *fds, int max_fds,
 
 	if (msgh.msg_flags & (MSG_TRUNC | MSG_CTRUNC)) {
-		RTE_LOG(ERR, VHOST_CONFIG, "truncted msg\n");
+		RTE_LOG(ERR, VHOST_CONFIG, "truncated msg\n");
 		return -1;
 	}
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:15.196356929 +0000
+++ 0031-lib-fix-log-typos.patch	2019-12-11 21:24:12.660651362 +0000
@@ -1 +1 @@
-From 0411d61fa96093e6c3a2a817ca68ca7ac3019a1d Mon Sep 17 00:00:00 2001
+From e62ce0a96ac0121554d84ffbdd9f5baea17c7925 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0411d61fa96093e6c3a2a817ca68ca7ac3019a1d ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -20 +20,0 @@
- lib/librte_eal/linux/eal/eal_vfio.c     | 4 ++--
@@ -22 +21,0 @@
- lib/librte_power/power_pstate_cpufreq.c | 6 +++---
@@ -24 +23 @@
- 5 files changed, 10 insertions(+), 10 deletions(-)
+ 3 files changed, 5 insertions(+), 5 deletions(-)
@@ -27 +26 @@
-index cbe8d10fc..935e8fefe 100644
+index 852e52e02..35e574393 100644
@@ -30 +29 @@
-@@ -284,5 +284,5 @@ read_msg(struct mp_msg_internal *m, struct sockaddr_un *s)
+@@ -273,5 +273,5 @@ read_msg(struct mp_msg_internal *m, struct sockaddr_un *s)
@@ -37 +36 @@
-@@ -1072,5 +1072,5 @@ rte_mp_request_async(struct rte_mp_msg *req, const struct timespec *ts,
+@@ -1052,5 +1052,5 @@ rte_mp_request_async(struct rte_mp_msg *req, const struct timespec *ts,
@@ -44,18 +42,0 @@
-diff --git a/lib/librte_eal/linux/eal/eal_vfio.c b/lib/librte_eal/linux/eal/eal_vfio.c
-index 28e10cdc4..95f615c2e 100644
---- a/lib/librte_eal/linux/eal/eal_vfio.c
-+++ b/lib/librte_eal/linux/eal/eal_vfio.c
-@@ -1295,5 +1295,5 @@ vfio_type1_dma_mem_map(int vfio_container_fd, uint64_t vaddr, uint64_t iova,
- 			if (errno == EEXIST) {
- 				RTE_LOG(DEBUG, EAL,
--					" Memory segment is allready mapped,"
-+					" Memory segment is already mapped,"
- 					" skipping");
- 			} else {
-@@ -1380,5 +1380,5 @@ vfio_spapr_dma_do_map(int vfio_container_fd, uint64_t vaddr, uint64_t iova,
- 			if (errno == EBUSY) {
- 				RTE_LOG(DEBUG, EAL,
--					" Memory segment is allready mapped,"
-+					" Memory segment is already mapped,"
- 					" skipping");
- 			} else {
@@ -63 +44 @@
-index 7c386f891..22989244a 100644
+index f7d3f9ca9..6051e02d9 100644
@@ -66 +47 @@
-@@ -31,5 +31,5 @@
+@@ -30,5 +30,5 @@
@@ -73 +54 @@
-@@ -110,5 +110,5 @@ set_freq_internal(struct rte_power_info *pi, uint32_t idx)
+@@ -109,5 +109,5 @@ set_freq_internal(struct rte_power_info *pi, uint32_t idx)
@@ -80,25 +60,0 @@
-diff --git a/lib/librte_power/power_pstate_cpufreq.c b/lib/librte_power/power_pstate_cpufreq.c
-index ecbcb3ac9..8f095e0ab 100644
---- a/lib/librte_power/power_pstate_cpufreq.c
-+++ b/lib/librte_power/power_pstate_cpufreq.c
-@@ -34,5 +34,5 @@
- #define FOPEN_OR_ERR_RET(f, retval) do { \
- 		if ((f) == NULL) { \
--			RTE_LOG(ERR, POWER, "File not openned\n"); \
-+			RTE_LOG(ERR, POWER, "File not opened\n"); \
- 			return retval; \
- 		} \
-@@ -288,5 +288,5 @@ set_freq_internal(struct pstate_power_info *pi, uint32_t idx)
- 		}
- 
--		POWER_DEBUG_TRACE("Freqency '%u' to be set for lcore %u\n",
-+		POWER_DEBUG_TRACE("Frequency '%u' to be set for lcore %u\n",
- 				  target_freq, pi->lcore_id);
- 
-@@ -311,5 +311,5 @@ set_freq_internal(struct pstate_power_info *pi, uint32_t idx)
- 		}
- 
--		POWER_DEBUG_TRACE("Freqency '%u' to be set for lcore %u\n",
-+		POWER_DEBUG_TRACE("Frequency '%u' to be set for lcore %u\n",
- 				  target_freq, pi->lcore_id);
- 
@@ -106 +62 @@
-index a34bc7f9a..ebb2ff6c2 100644
+index 9a674956f..5e422335c 100644
@@ -109 +65 @@
-@@ -133,5 +133,5 @@ read_fd_message(int sockfd, char *buf, int buflen, int *fds, int max_fds,
+@@ -131,5 +131,5 @@ read_fd_message(int sockfd, char *buf, int buflen, int *fds, int max_fds,


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'lib: fix doxygen typos' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (29 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'lib: fix log typos' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'malloc: fix realloc copy size' " Kevin Traynor
                   ` (37 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Kevin Traynor; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/35e995e2fa8d604cf2533661abd66a9ef91c68cd

Thanks.

Kevin.

---
From 35e995e2fa8d604cf2533661abd66a9ef91c68cd Mon Sep 17 00:00:00 2001
From: Kevin Traynor <ktraynor@redhat.com>
Date: Wed, 13 Nov 2019 16:10:15 +0000
Subject: [PATCH] lib: fix doxygen typos

[ upstream commit baf023a8edfa70122c96eefa59a8bbd940d034bc ]

Fix these as they are user visible. Found with codespell.

Fixes: af75078fece3 ("first public release")
Fixes: c2361bab70c5 ("eal: compute IOVA mode based on PA availability")
Fixes: 0880c40113ef ("drivers: advertise kmod dependencies in pmdinfo")
Fixes: 56b6ef874f80 ("efd: new Elastic Flow Distributor library")
Fixes: 5a5f3178d4a8 ("power: return error when environment already set")

Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
---
 lib/librte_eal/common/eal_common_log.c  | 2 +-
 lib/librte_eal/common/eal_hugepages.h   | 2 +-
 lib/librte_eal/common/include/rte_dev.h | 2 +-
 lib/librte_efd/rte_efd.c                | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/librte_eal/common/eal_common_log.c b/lib/librte_eal/common/eal_common_log.c
index c714a4bd2..2c1200310 100644
--- a/lib/librte_eal/common/eal_common_log.c
+++ b/lib/librte_eal/common/eal_common_log.c
@@ -46,5 +46,5 @@ static FILE *default_log_stream;
 
 /**
- * This global structure stores some informations about the message
+ * This global structure stores some information about the message
  * that is currently being processed by one lcore
  */
diff --git a/lib/librte_eal/common/eal_hugepages.h b/lib/librte_eal/common/eal_hugepages.h
index 4582f19cf..1b560d337 100644
--- a/lib/librte_eal/common/eal_hugepages.h
+++ b/lib/librte_eal/common/eal_hugepages.h
@@ -13,5 +13,5 @@
 
 /**
- * Structure used to store informations about hugepages that we mapped
+ * Structure used to store information about hugepages that we mapped
  * through the files in hugetlbfs.
  */
diff --git a/lib/librte_eal/common/include/rte_dev.h b/lib/librte_eal/common/include/rte_dev.h
index 0bfb2487c..24e637d27 100644
--- a/lib/librte_eal/common/include/rte_dev.h
+++ b/lib/librte_eal/common/include/rte_dev.h
@@ -287,5 +287,5 @@ __attribute__((used)) = str
  *                           whose vendor id is 0x8086.
  *
- * The format of the kernel modules list is a parenthesed expression
+ * The format of the kernel modules list is a parenthesized expression
  * containing logical-and (&) and logical-or (|).
  *
diff --git a/lib/librte_efd/rte_efd.c b/lib/librte_efd/rte_efd.c
index 1a97ece05..a07b48475 100644
--- a/lib/librte_efd/rte_efd.c
+++ b/lib/librte_efd/rte_efd.c
@@ -180,5 +180,5 @@ struct efd_offline_group_rules {
 
 	uint8_t bin_id[EFD_MAX_GROUP_NUM_RULES];
-	/**< Stores the bin for each correspending key to
+	/**< Stores the bin for each corresponding key to
 	 * avoid having to recompute it
 	 */
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:15.275706966 +0000
+++ 0032-lib-fix-doxygen-typos.patch	2019-12-11 21:24:12.664651279 +0000
@@ -1 +1 @@
-From baf023a8edfa70122c96eefa59a8bbd940d034bc Mon Sep 17 00:00:00 2001
+From 35e995e2fa8d604cf2533661abd66a9ef91c68cd Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit baf023a8edfa70122c96eefa59a8bbd940d034bc ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -20 +20,0 @@
- lib/librte_eal/common/include/rte_bus.h | 2 +-
@@ -23,2 +23 @@
- lib/librte_power/rte_power.h            | 2 +-
- 6 files changed, 6 insertions(+), 6 deletions(-)
+ 4 files changed, 4 insertions(+), 4 deletions(-)
@@ -27 +26 @@
-index e0a7bef03..c0efd5214 100644
+index c714a4bd2..2c1200310 100644
@@ -48,11 +46,0 @@
-diff --git a/lib/librte_eal/common/include/rte_bus.h b/lib/librte_eal/common/include/rte_bus.h
-index d6a2494f6..d3034d0ed 100644
---- a/lib/librte_eal/common/include/rte_bus.h
-+++ b/lib/librte_eal/common/include/rte_bus.h
-@@ -365,5 +365,5 @@ struct rte_bus *rte_bus_find_by_name(const char *busname);
- /**
-  * Get the common iommu class of devices bound on to buses available in the
-- * system. RTE_IOVA_DC means that no preferrence has been expressed.
-+ * system. RTE_IOVA_DC means that no preference has been expressed.
-  *
-  * @return
@@ -60 +48 @@
-index c25e09e3d..a5c35f00c 100644
+index 0bfb2487c..24e637d27 100644
@@ -63 +51 @@
-@@ -231,5 +231,5 @@ __attribute__((used)) = str
+@@ -287,5 +287,5 @@ __attribute__((used)) = str
@@ -71 +59 @@
-index d3d019578..4deeb1792 100644
+index 1a97ece05..a07b48475 100644
@@ -74 +62 @@
-@@ -182,5 +182,5 @@ struct efd_offline_group_rules {
+@@ -180,5 +180,5 @@ struct efd_offline_group_rules {
@@ -81,11 +68,0 @@
-diff --git a/lib/librte_power/rte_power.h b/lib/librte_power/rte_power.h
-index 01f88588b..427058b81 100644
---- a/lib/librte_power/rte_power.h
-+++ b/lib/librte_power/rte_power.h
-@@ -27,5 +27,5 @@ enum power_management_env {PM_ENV_NOT_SET, PM_ENV_ACPI_CPUFREQ, PM_ENV_KVM_VM,
-  * Set the default power management implementation. If this is not called prior
-  * to rte_power_init(), then auto-detect of the environment will take place.
-- * It is thread safe. New env can be set only in unitialized state
-+ * It is thread safe. New env can be set only in uninitialized state
-  * (thus rte_power_unset_env must be called if different env was already set).
-  *


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'malloc: fix realloc copy size' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (30 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'lib: fix doxygen " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'malloc: fix realloc padded element " Kevin Traynor
                   ` (36 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Xueming Li; +Cc: Anatoly Burakov, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/23419ce110eab670d3e8978187ec1a5d2ea5ff87

Thanks.

Kevin.

---
From 23419ce110eab670d3e8978187ec1a5d2ea5ff87 Mon Sep 17 00:00:00 2001
From: Xueming Li <xuemingl@mellanox.com>
Date: Tue, 12 Nov 2019 14:50:27 +0000
Subject: [PATCH] malloc: fix realloc copy size

[ upstream commit a029a060369f74f42394301f87489aeb391220ef ]

In rte_realloc, if the old element has pad and need to allocate a new
memory, the padding size was not deducted, so more data was copied to
new data area.

Fixes: af75078fece3 ("first public release")

Signed-off-by: Xueming Li <xuemingl@mellanox.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 lib/librte_eal/common/rte_malloc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/rte_malloc.c b/lib/librte_eal/common/rte_malloc.c
index 47c2bec72..59b130bed 100644
--- a/lib/librte_eal/common/rte_malloc.c
+++ b/lib/librte_eal/common/rte_malloc.c
@@ -131,5 +131,6 @@ rte_realloc(void *ptr, size_t size, unsigned align)
 	if (new_ptr == NULL)
 		return NULL;
-	const unsigned old_size = elem->size - MALLOC_ELEM_OVERHEAD;
+	/* elem: |pad|data_elem|data|trailer| */
+	const size_t old_size = elem->size - elem->pad - MALLOC_ELEM_OVERHEAD;
 	rte_memcpy(new_ptr, ptr, old_size < size ? old_size : size);
 	rte_free(ptr);
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:15.344727745 +0000
+++ 0033-malloc-fix-realloc-copy-size.patch	2019-12-11 21:24:12.665651259 +0000
@@ -1 +1 @@
-From a029a060369f74f42394301f87489aeb391220ef Mon Sep 17 00:00:00 2001
+From 23419ce110eab670d3e8978187ec1a5d2ea5ff87 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a029a060369f74f42394301f87489aeb391220ef ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 413e4aa00..d6026a2b1 100644
+index 47c2bec72..59b130bed 100644
@@ -23 +24 @@
-@@ -151,5 +151,6 @@ rte_realloc_socket(void *ptr, size_t size, unsigned int align, int socket)
+@@ -131,5 +131,6 @@ rte_realloc(void *ptr, size_t size, unsigned align)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'malloc: fix realloc padded element size' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (31 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'malloc: fix realloc copy size' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'examples/ipsec-secgw: fix default configuration' " Kevin Traynor
                   ` (35 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Xueming Li; +Cc: Anatoly Burakov, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/8b828c9a108cd894620aeb6b9ea6041cafbcc2cb

Thanks.

Kevin.

---
From 8b828c9a108cd894620aeb6b9ea6041cafbcc2cb Mon Sep 17 00:00:00 2001
From: Xueming Li <xuemingl@mellanox.com>
Date: Tue, 12 Nov 2019 14:50:28 +0000
Subject: [PATCH] malloc: fix realloc padded element size

[ upstream commit 90f538b8630b2782460aae46f346ddb4fc102011 ]

When resize a memory with next element, the original element size grows.
If the orginal element has padding, the real inner element size didn't
grow as well and this causes trailer verification failure when malloc
debug enabled.

Fixes: af75078fece3 ("first public release")

Signed-off-by: Xueming Li <xuemingl@mellanox.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 lib/librte_eal/common/malloc_elem.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/lib/librte_eal/common/malloc_elem.c b/lib/librte_eal/common/malloc_elem.c
index 052aeeb7b..c92dc0ab6 100644
--- a/lib/librte_eal/common/malloc_elem.c
+++ b/lib/librte_eal/common/malloc_elem.c
@@ -293,4 +293,9 @@ split_elem(struct malloc_elem *elem, struct malloc_elem *split_pt)
 	elem->size = old_elem_size;
 	set_trailer(elem);
+	if (elem->pad) {
+		/* Update inner padding inner element size. */
+		elem = RTE_PTR_ADD(elem, elem->pad);
+		elem->size = old_elem_size - elem->pad;
+	}
 }
 
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:15.411481735 +0000
+++ 0034-malloc-fix-realloc-padded-element-size.patch	2019-12-11 21:24:12.667651217 +0000
@@ -1 +1 @@
-From 90f538b8630b2782460aae46f346ddb4fc102011 Mon Sep 17 00:00:00 2001
+From 8b828c9a108cd894620aeb6b9ea6041cafbcc2cb Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 90f538b8630b2782460aae46f346ddb4fc102011 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 658c9b5b7..afacb1813 100644
+index 052aeeb7b..c92dc0ab6 100644
@@ -24 +25 @@
-@@ -308,4 +308,9 @@ split_elem(struct malloc_elem *elem, struct malloc_elem *split_pt)
+@@ -293,4 +293,9 @@ split_elem(struct malloc_elem *elem, struct malloc_elem *split_pt)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'examples/ipsec-secgw: fix default configuration' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (32 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'malloc: fix realloc padded element " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'examples/fips_validation: fix auth verify' " Kevin Traynor
                   ` (34 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Lukasz Bartosik; +Cc: Anoob Joseph, Akhil Goyal, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/0b467aef91528961d45c61dcb6b30b82f4eb24b8

Thanks.

Kevin.

---
From 0b467aef91528961d45c61dcb6b30b82f4eb24b8 Mon Sep 17 00:00:00 2001
From: Lukasz Bartosik <lbartosik@marvell.com>
Date: Wed, 6 Nov 2019 16:48:14 +0100
Subject: [PATCH] examples/ipsec-secgw: fix default configuration

[ upstream commit 742be57872bed881106ed93f4dadc645d32e1996 ]

Update default configuration of ipsec-secgw:
1.In ep0.cfg change SPI value used by two inbound IPv6 security
policies from 15 to 115 and 16 to 116 to point to existing inbound
SAs. There are no inbound SAs with SPI value 15, 16.
- In ep1.cfg change SPI value used by two outbound IPv6 security
policies from 15 to 115 and 16 to 116 to point to existing outbound
SAs. There are no outbound SAs with SPI value 15, 16. Add missing
priority parameter in two inbound IPv4 security policies.

Fixes: 60a94afefc84 ("examples/ipsec-secgw: add sample configuration files")

Signed-off-by: Lukasz Bartosik <lbartosik@marvell.com>
Acked-by: Anoob Joseph <anoobj@marvell.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
---
 examples/ipsec-secgw/ep0.cfg |  8 ++++----
 examples/ipsec-secgw/ep1.cfg | 12 ++++++------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/examples/ipsec-secgw/ep0.cfg b/examples/ipsec-secgw/ep0.cfg
index 299aa9e06..dfd4aca7d 100644
--- a/examples/ipsec-secgw/ep0.cfg
+++ b/examples/ipsec-secgw/ep0.cfg
@@ -50,12 +50,12 @@ sp ipv6 out esp protect 26 pri 1 dst 0000:0000:0000:0000:bbbb:bbbb:0000:0000/96
 sport 0:65535 dport 0:65535
 
-sp ipv6 in esp protect 15 pri 1 dst ffff:0000:0000:0000:5555:5555:0000:0000/96 \
-sport 0:65535 dport 0:65535
-sp ipv6 in esp protect 16 pri 1 dst ffff:0000:0000:0000:6666:6666:0000:0000/96 \
-sport 0:65535 dport 0:65535
 sp ipv6 in esp protect 110 pri 1 dst ffff:0000:1111:1111:0000:0000:0000:0000/96 \
 sport 0:65535 dport 0:65535
 sp ipv6 in esp protect 111 pri 1 dst ffff:0000:1111:1111:1111:1111:0000:0000/96 \
 sport 0:65535 dport 0:65535
+sp ipv6 in esp protect 115 pri 1 dst ffff:0000:0000:0000:5555:5555:0000:0000/96 \
+sport 0:65535 dport 0:65535
+sp ipv6 in esp protect 116 pri 1 dst ffff:0000:0000:0000:6666:6666:0000:0000/96 \
+sport 0:65535 dport 0:65535
 sp ipv6 in esp protect 125 pri 1 dst ffff:0000:0000:0000:aaaa:aaaa:0000:0000/96 \
 sport 0:65535 dport 0:65535
diff --git a/examples/ipsec-secgw/ep1.cfg b/examples/ipsec-secgw/ep1.cfg
index 3f6ff8111..19bdc68ea 100644
--- a/examples/ipsec-secgw/ep1.cfg
+++ b/examples/ipsec-secgw/ep1.cfg
@@ -20,6 +20,6 @@ sp ipv4 in esp protect 16 pri 1 dst 192.168.201.0/24 sport 0:65535 dport 0:65535
 sp ipv4 in esp protect 25 pri 1 dst 192.168.55.0/24 sport 0:65535 dport 0:65535
 sp ipv4 in esp protect 26 pri 1 dst 192.168.56.0/24 sport 0:65535 dport 0:65535
-sp ipv4 in esp bypass dst 192.168.240.0/24 sport 0:65535 dport 0:65535
-sp ipv4 in esp bypass dst 192.168.241.0/24 sport 0:65535 dport 0:65535
+sp ipv4 in esp bypass pri 1 dst 192.168.240.0/24 sport 0:65535 dport 0:65535
+sp ipv4 in esp bypass pri 1 dst 192.168.241.0/24 sport 0:65535 dport 0:65535
 
 sp ipv4 out esp protect 105 pri 1 dst 192.168.115.0/24 sport 0:65535 dport 0:65535
@@ -50,12 +50,12 @@ sp ipv6 in esp protect 26 pri 1 dst 0000:0000:0000:0000:bbbb:bbbb:0000:0000/96 \
 sport 0:65535 dport 0:65535
 
-sp ipv6 out esp protect 15 pri 1 dst ffff:0000:0000:0000:5555:5555:0000:0000/96 \
-sport 0:65535 dport 0:65535
-sp ipv6 out esp protect 16 pri 1 dst ffff:0000:0000:0000:6666:6666:0000:0000/96 \
-sport 0:65535 dport 0:65535
 sp ipv6 out esp protect 110 pri 1 dst ffff:0000:1111:1111:0000:0000:0000:0000/96 \
 sport 0:65535 dport 0:65535
 sp ipv6 out esp protect 111 pri 1 dst ffff:0000:1111:1111:1111:1111:0000:0000/96 \
 sport 0:65535 dport 0:65535
+sp ipv6 out esp protect 115 pri 1 dst ffff:0000:0000:0000:5555:5555:0000:0000/96 \
+sport 0:65535 dport 0:65535
+sp ipv6 out esp protect 116 pri 1 dst ffff:0000:0000:0000:6666:6666:0000:0000/96 \
+sport 0:65535 dport 0:65535
 sp ipv6 out esp protect 125 pri 1 dst ffff:0000:0000:0000:aaaa:aaaa:0000:0000/96 \
 sport 0:65535 dport 0:65535
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:15.496258779 +0000
+++ 0035-examples-ipsec-secgw-fix-default-configuration.patch	2019-12-11 21:24:12.667651217 +0000
@@ -1 +1 @@
-From 742be57872bed881106ed93f4dadc645d32e1996 Mon Sep 17 00:00:00 2001
+From 0b467aef91528961d45c61dcb6b30b82f4eb24b8 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 742be57872bed881106ed93f4dadc645d32e1996 ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'examples/fips_validation: fix auth verify' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (33 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'examples/ipsec-secgw: fix default configuration' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/mlx5: fix check of RSS queue index' " Kevin Traynor
                   ` (33 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Fan Zhang; +Cc: Marko Kovacevic, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/6cd900d65c6cfd3d6d9c0f5cfb46be0353401c13

Thanks.

Kevin.

---
From 6cd900d65c6cfd3d6d9c0f5cfb46be0353401c13 Mon Sep 17 00:00:00 2001
From: Fan Zhang <roy.fan.zhang@intel.com>
Date: Wed, 6 Nov 2019 10:54:25 +0000
Subject: [PATCH] examples/fips_validation: fix auth verify

[ upstream commit 82cfb9c24f66084e6c7933e6c00bca409bcc00e2 ]

Fixes: f64adb6714e0 ("examples/fips_validation: support HMAC parsing")

This patch fixes the incorrect mbuf write and digest memory leak in
fips_validation authentication verify.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
---
 examples/fips_validation/main.c | 60 ++++++++++-----------------------
 1 file changed, 17 insertions(+), 43 deletions(-)

diff --git a/examples/fips_validation/main.c b/examples/fips_validation/main.c
index 40785decb..27558baa4 100644
--- a/examples/fips_validation/main.c
+++ b/examples/fips_validation/main.c
@@ -405,4 +405,5 @@ prepare_auth_op(void)
 {
 	struct rte_crypto_sym_op *sym = env.op->sym;
+	uint8_t *pt;
 
 	__rte_crypto_op_reset(env.op, RTE_CRYPTO_OP_TYPE_SYMMETRIC);
@@ -412,51 +413,24 @@ prepare_auth_op(void)
 	sym->auth.data.offset = 0;
 
-	if (info.op == FIPS_TEST_ENC_AUTH_GEN) {
-		uint8_t *pt;
+	pt = (uint8_t *)rte_pktmbuf_append(env.mbuf, vec.pt.len +
+			vec.cipher_auth.digest.len);
 
-		if (vec.pt.len > RTE_MBUF_MAX_NB_SEGS) {
-			RTE_LOG(ERR, USER1, "PT len %u\n", vec.pt.len);
-			return -EPERM;
-		}
+	if (!pt) {
+		RTE_LOG(ERR, USER1, "Error %i: MBUF too small\n",
+				-ENOMEM);
+		return -ENOMEM;
+	}
 
-		pt = (uint8_t *)rte_pktmbuf_append(env.mbuf, vec.pt.len +
+	sym->auth.data.length = vec.pt.len;
+	sym->auth.digest.data = pt + vec.pt.len;
+	sym->auth.digest.phys_addr = rte_pktmbuf_mtophys_offset(
+			env.mbuf, vec.pt.len);
+
+	memcpy(pt, vec.pt.val, vec.pt.len);
+
+	if (info.op == FIPS_TEST_DEC_AUTH_VERIF)
+		memcpy(pt + vec.pt.len, vec.cipher_auth.digest.val,
 				vec.cipher_auth.digest.len);
 
-		if (!pt) {
-			RTE_LOG(ERR, USER1, "Error %i: MBUF too small\n",
-					-ENOMEM);
-			return -ENOMEM;
-		}
-
-		memcpy(pt, vec.pt.val, vec.pt.len);
-		sym->auth.data.length = vec.pt.len;
-		sym->auth.digest.data = pt + vec.pt.len;
-		sym->auth.digest.phys_addr = rte_pktmbuf_mtophys_offset(
-				env.mbuf, vec.pt.len);
-
-	} else {
-		uint8_t *ct;
-
-		if (vec.ct.len > RTE_MBUF_MAX_NB_SEGS) {
-			RTE_LOG(ERR, USER1, "CT len %u\n", vec.ct.len);
-			return -EPERM;
-		}
-
-		ct = (uint8_t *)rte_pktmbuf_append(env.mbuf,
-				vec.ct.len + vec.cipher_auth.digest.len);
-
-		if (!ct) {
-			RTE_LOG(ERR, USER1, "Error %i: MBUF too small\n",
-					-ENOMEM);
-			return -ENOMEM;
-		}
-
-		memcpy(ct, vec.ct.val, vec.ct.len);
-		sym->auth.data.length = vec.ct.len;
-		sym->auth.digest.data = vec.cipher_auth.digest.val;
-		sym->auth.digest.phys_addr = rte_malloc_virt2iova(
-				sym->auth.digest.data);
-	}
-
 	rte_crypto_op_attach_sym_session(env.op, env.sess);
 
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:15.564071375 +0000
+++ 0036-examples-fips_validation-fix-auth-verify.patch	2019-12-11 21:24:12.669651176 +0000
@@ -1 +1 @@
-From 82cfb9c24f66084e6c7933e6c00bca409bcc00e2 Mon Sep 17 00:00:00 2001
+From 6cd900d65c6cfd3d6d9c0f5cfb46be0353401c13 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 82cfb9c24f66084e6c7933e6c00bca409bcc00e2 ]
+
@@ -7 +8,0 @@
-Cc: stable@dpdk.org
@@ -15,2 +16,2 @@
- examples/fips_validation/main.c | 62 ++++++++++-----------------------
- 1 file changed, 18 insertions(+), 44 deletions(-)
+ examples/fips_validation/main.c | 60 ++++++++++-----------------------
+ 1 file changed, 17 insertions(+), 43 deletions(-)
@@ -19 +20 @@
-index f8694ef96..9a2c8da61 100644
+index 40785decb..27558baa4 100644
@@ -22 +23 @@
-@@ -513,4 +513,5 @@ prepare_auth_op(void)
+@@ -405,4 +405,5 @@ prepare_auth_op(void)
@@ -28 +29 @@
-@@ -520,51 +521,24 @@ prepare_auth_op(void)
+@@ -412,51 +413,24 @@ prepare_auth_op(void)
@@ -40 +41,6 @@
--
++	if (!pt) {
++		RTE_LOG(ERR, USER1, "Error %i: MBUF too small\n",
++				-ENOMEM);
++		return -ENOMEM;
++	}
+ 
@@ -42,2 +48,11 @@
--				vec.cipher_auth.digest.len);
--
++	sym->auth.data.length = vec.pt.len;
++	sym->auth.digest.data = pt + vec.pt.len;
++	sym->auth.digest.phys_addr = rte_pktmbuf_mtophys_offset(
++			env.mbuf, vec.pt.len);
++
++	memcpy(pt, vec.pt.val, vec.pt.len);
++
++	if (info.op == FIPS_TEST_DEC_AUTH_VERIF)
++		memcpy(pt + vec.pt.len, vec.cipher_auth.digest.val,
+ 				vec.cipher_auth.digest.len);
+ 
@@ -78,17 +93,2 @@
-+	if (!pt) {
-+		RTE_LOG(ERR, USER1, "Error %i: MBUF too small\n",
-+				-ENOMEM);
-+		return -ENOMEM;
- 	}
- 
-+	sym->auth.data.length = vec.pt.len;
-+	sym->auth.digest.data = pt + vec.pt.len;
-+	sym->auth.digest.phys_addr = rte_pktmbuf_mtophys_offset(
-+			env.mbuf, vec.pt.len);
-+
-+	memcpy(pt, vec.pt.val, vec.pt.len);
-+
-+	if (info.op == FIPS_TEST_DEC_AUTH_VERIF)
-+		memcpy(pt + vec.pt.len, vec.cipher_auth.digest.val,
-+				vec.cipher_auth.digest.len);
-+
+-	}
+-


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/mlx5: fix check of RSS queue index' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (34 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'examples/fips_validation: fix auth verify' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/bnxt: fix crash in xstats get' " Kevin Traynor
                   ` (32 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Dekel Peled; +Cc: Matan Azrad, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/cba8f82b30a751c9e201065fee0abde9810788f0

Thanks.

Kevin.

---
From cba8f82b30a751c9e201065fee0abde9810788f0 Mon Sep 17 00:00:00 2001
From: Dekel Peled <dekelp@mellanox.com>
Date: Mon, 11 Nov 2019 16:32:31 +0200
Subject: [PATCH] net/mlx5: fix check of RSS queue index

[ upstream commit 97127d429876b6ac817de65c6e3c1c2d17851bfe ]

RSS action validation function checks the queues included in RSS
to make sure they are valid.
A Queue is considered valid if the pointer to the queue (item at
location queue-index of RxQ array) is not a null value.
The queue indices are not checked. If a large value is entered as
queue index, using it as an index in RxQ array will result in a
pointer to memory out of array bounds. If this memory contains a
value which is not null, this queue will be wrongly considered valid.

This patch updates function mlx5_flow_validate_action_rss() with
check of the input queue indices, as done in function
mlx5_flow_validate_action_queue().

Fixes: 23c1d42c7138 ("net/mlx5: split flow validation to dedicated function")

Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
---
 drivers/net/mlx5/mlx5_flow.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 2bf535213..467af73a5 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -945,4 +945,9 @@ mlx5_flow_validate_action_rss(const struct rte_flow_action *action,
 					  " supported");
 	for (i = 0; i != rss->queue_num; ++i) {
+		if (rss->queue[i] >= priv->rxqs_n)
+			return rte_flow_error_set
+				(error, EINVAL,
+				 RTE_FLOW_ERROR_TYPE_ACTION_CONF,
+				 &rss->queue[i], "queue index out of range");
 		if (!(*priv->rxqs)[rss->queue[i]])
 			return rte_flow_error_set
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:15.637335946 +0000
+++ 0037-net-mlx5-fix-check-of-RSS-queue-index.patch	2019-12-11 21:24:12.672651114 +0000
@@ -1 +1 @@
-From 97127d429876b6ac817de65c6e3c1c2d17851bfe Mon Sep 17 00:00:00 2001
+From cba8f82b30a751c9e201065fee0abde9810788f0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 97127d429876b6ac817de65c6e3c1c2d17851bfe ]
+
@@ -20 +21,0 @@
-Cc: stable@dpdk.org
@@ -29 +30 @@
-index 092f7b4c4..14a89e2e3 100644
+index 2bf535213..467af73a5 100644
@@ -32,2 +33,2 @@
-@@ -1152,4 +1152,9 @@ mlx5_flow_validate_action_rss(const struct rte_flow_action *action,
- 					  NULL, "No queues configured");
+@@ -945,4 +945,9 @@ mlx5_flow_validate_action_rss(const struct rte_flow_action *action,
+ 					  " supported");


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix crash in xstats get' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (35 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/mlx5: fix check of RSS queue index' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/bonding: fix selection logic' " Kevin Traynor
                   ` (31 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Ajit Khaparde; +Cc: Andy Gospodarek, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/48d9b60c0ad1c25e0c36b7bfc4075580b10bc88d

Thanks.

Kevin.

---
From 48d9b60c0ad1c25e0c36b7bfc4075580b10bc88d Mon Sep 17 00:00:00 2001
From: Ajit Khaparde <ajit.khaparde@broadcom.com>
Date: Wed, 13 Nov 2019 13:59:43 +0530
Subject: [PATCH] net/bnxt: fix crash in xstats get

[ upstream commit 063e59ddd28e3a147107366ddba9fb8baeeebc31 ]

We would hit a segfault in bnxt_dev_xstats_get_op() if xstats argument
is NULL, Check if the argument is NULL and return appropriately.

Fixes: bfb9c2260be2 ("net/bnxt: support xstats get/reset")

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Andy Gospodarek <gospo@broadcom.com>
---
 drivers/net/bnxt/bnxt_stats.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/bnxt/bnxt_stats.c b/drivers/net/bnxt/bnxt_stats.c
index ad88fbfe7..252a0a6fc 100644
--- a/drivers/net/bnxt/bnxt_stats.c
+++ b/drivers/net/bnxt/bnxt_stats.c
@@ -454,4 +454,7 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev,
 	unsigned int stat_count;
 
+	if (xstats == NULL)
+		return 0;
+
 	memset(xstats, 0, sizeof(*xstats));
 
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:15.711237173 +0000
+++ 0038-net-bnxt-fix-crash-in-xstats-get.patch	2019-12-11 21:24:12.673651093 +0000
@@ -1 +1 @@
-From 063e59ddd28e3a147107366ddba9fb8baeeebc31 Mon Sep 17 00:00:00 2001
+From 48d9b60c0ad1c25e0c36b7bfc4075580b10bc88d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 063e59ddd28e3a147107366ddba9fb8baeeebc31 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 40b496ac0..14d355fd0 100644
+index ad88fbfe7..252a0a6fc 100644
@@ -22,2 +23,2 @@
-@@ -469,4 +469,7 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev,
- 		return rc;
+@@ -454,4 +454,7 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev,
+ 	unsigned int stat_count;


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/bonding: fix selection logic' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (36 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/bnxt: fix crash in xstats get' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'ethdev: avoid undefined behaviour on configuration copy' " Kevin Traynor
                   ` (30 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Krzysztof Kanas; +Cc: Chas Williams, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/f64b3144cef8e9d14d85a303d8f7590f219e7108

Thanks.

Kevin.

---
From f64b3144cef8e9d14d85a303d8f7590f219e7108 Mon Sep 17 00:00:00 2001
From: Krzysztof Kanas <kkanas@marvell.com>
Date: Wed, 13 Nov 2019 09:22:24 +0100
Subject: [PATCH] net/bonding: fix selection logic

[ upstream commit 8d75f49e61c11bff2ecf48818f7acf4520329848 ]

Arrays agg_count and agg_bandwidth should be indexed by slave_id not by
aggregator port_id.

The new_agg_id should be chosen as slave_id from slaves table in
different selection modes.

Fixes: 6d72657ce379 ("net/bonding: add other aggregator modes")

Signed-off-by: Krzysztof Kanas <kkanas@marvell.com>
Acked-by: Chas Williams <chas3@att.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/bonding/rte_eth_bond_8023ad.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c
index def27c9f1..0beea19c4 100644
--- a/drivers/net/bonding/rte_eth_bond_8023ad.c
+++ b/drivers/net/bonding/rte_eth_bond_8023ad.c
@@ -673,7 +673,6 @@ selection_logic(struct bond_dev_private *internals, uint16_t slave_id)
 	uint64_t agg_count[RTE_MAX_ETHPORTS] = {0};
 	uint16_t default_slave = 0;
-	uint16_t mode_count_id;
-	uint16_t mode_band_id;
 	struct rte_eth_link link_info;
+	uint16_t agg_new_idx = 0;
 
 	slaves = internals->active_slaves;
@@ -688,7 +687,7 @@ selection_logic(struct bond_dev_private *internals, uint16_t slave_id)
 			continue;
 
-		agg_count[agg->aggregator_port_id] += 1;
+		agg_count[i] += 1;
 		rte_eth_link_get_nowait(slaves[i], &link_info);
-		agg_bandwidth[agg->aggregator_port_id] += link_info.link_speed;
+		agg_bandwidth[i] += link_info.link_speed;
 
 		/* Actors system ID is not checked since all slave device have the same
@@ -710,14 +709,14 @@ selection_logic(struct bond_dev_private *internals, uint16_t slave_id)
 	switch (internals->mode4.agg_selection) {
 	case AGG_COUNT:
-		mode_count_id = max_index(agg_count, slaves_count);
-		new_agg_id = mode_count_id;
+		agg_new_idx = max_index(agg_count, slaves_count);
+		new_agg_id = slaves[agg_new_idx];
 		break;
 	case AGG_BANDWIDTH:
-		mode_band_id = max_index(agg_bandwidth, slaves_count);
-		new_agg_id = mode_band_id;
+		agg_new_idx = max_index(agg_bandwidth, slaves_count);
+		new_agg_id = slaves[agg_new_idx];
 		break;
 	case AGG_STABLE:
 		if (default_slave == slaves_count)
-			new_agg_id = slave_id;
+			new_agg_id = slaves[slave_id];
 		else
 			new_agg_id = slaves[default_slave];
@@ -725,5 +724,5 @@ selection_logic(struct bond_dev_private *internals, uint16_t slave_id)
 	default:
 		if (default_slave == slaves_count)
-			new_agg_id = slave_id;
+			new_agg_id = slaves[slave_id];
 		else
 			new_agg_id = slaves[default_slave];
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:15.802475506 +0000
+++ 0039-net-bonding-fix-selection-logic.patch	2019-12-11 21:24:12.675651052 +0000
@@ -1 +1 @@
-From 8d75f49e61c11bff2ecf48818f7acf4520329848 Mon Sep 17 00:00:00 2001
+From f64b3144cef8e9d14d85a303d8f7590f219e7108 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 8d75f49e61c11bff2ecf48818f7acf4520329848 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index 05b3004c4..b77a37ddb 100644
+index def27c9f1..0beea19c4 100644
@@ -26 +27 @@
-@@ -674,7 +674,6 @@ selection_logic(struct bond_dev_private *internals, uint16_t slave_id)
+@@ -673,7 +673,6 @@ selection_logic(struct bond_dev_private *internals, uint16_t slave_id)
@@ -33 +33,0 @@
- 	int ret;
@@ -35 +35,2 @@
-@@ -697,6 +696,6 @@ selection_logic(struct bond_dev_private *internals, uint16_t slave_id)
+ 	slaves = internals->active_slaves;
+@@ -688,7 +687,7 @@ selection_logic(struct bond_dev_private *internals, uint16_t slave_id)
@@ -37 +38 @@
- 		}
+ 
@@ -39 +39,0 @@
--		agg_bandwidth[agg->aggregator_port_id] += link_info.link_speed;
@@ -40,0 +41,2 @@
+ 		rte_eth_link_get_nowait(slaves[i], &link_info);
+-		agg_bandwidth[agg->aggregator_port_id] += link_info.link_speed;
@@ -44 +46 @@
-@@ -719,14 +718,14 @@ selection_logic(struct bond_dev_private *internals, uint16_t slave_id)
+@@ -710,14 +709,14 @@ selection_logic(struct bond_dev_private *internals, uint16_t slave_id)
@@ -64 +66 @@
-@@ -734,5 +733,5 @@ selection_logic(struct bond_dev_private *internals, uint16_t slave_id)
+@@ -725,5 +724,5 @@ selection_logic(struct bond_dev_private *internals, uint16_t slave_id)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'ethdev: avoid undefined behaviour on configuration copy' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (37 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/bonding: fix selection logic' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/bnxt: fix resource qcaps with older FW' " Kevin Traynor
                   ` (29 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Andrew Rybchenko; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/b451f20f6f56c90872d9cd4a7cd6572c4ecb35b0

Thanks.

Kevin.

---
From b451f20f6f56c90872d9cd4a7cd6572c4ecb35b0 Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <arybchenko@solarflare.com>
Date: Tue, 19 Nov 2019 08:22:50 +0000
Subject: [PATCH] ethdev: avoid undefined behaviour on configuration copy

[ upstream commit 6e18704b7e19855a0744cf4b291f1d1fe874d710 ]

memcpy() source and destination areas must not overlap and equal
pointers is the case which is really met, so handle it.

Fixes: 68b931bff287 ("ethdev: eliminate interim variable")

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 lib/librte_ethdev/rte_ethdev.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index b3fce9b08..16e6a5d38 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -1115,5 +1115,7 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
 	 * rte_eth_dev_info_get() requires dev_conf, copy it before dev_info get
 	 */
-	memcpy(&dev->data->dev_conf, dev_conf, sizeof(dev->data->dev_conf));
+	if (dev_conf != &dev->data->dev_conf)
+		memcpy(&dev->data->dev_conf, dev_conf,
+		       sizeof(dev->data->dev_conf));
 
 	rte_eth_dev_info_get(port_id, &dev_info);
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:15.876874697 +0000
+++ 0040-ethdev-avoid-undefined-behaviour-on-configuration-co.patch	2019-12-11 21:24:12.681650928 +0000
@@ -1 +1 @@
-From 6e18704b7e19855a0744cf4b291f1d1fe874d710 Mon Sep 17 00:00:00 2001
+From b451f20f6f56c90872d9cd4a7cd6572c4ecb35b0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6e18704b7e19855a0744cf4b291f1d1fe874d710 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 8f48e8d65..8d2ce31a8 100644
+index b3fce9b08..16e6a5d38 100644
@@ -22 +23 @@
-@@ -1246,5 +1246,7 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
+@@ -1115,5 +1115,7 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
@@ -30 +31 @@
- 	ret = rte_eth_dev_info_get(port_id, &dev_info);
+ 	rte_eth_dev_info_get(port_id, &dev_info);


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix resource qcaps with older FW' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (38 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'ethdev: avoid undefined behaviour on configuration copy' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'app/testpmd: report invalid command line parameter' " Kevin Traynor
                   ` (28 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Ajit Khaparde; +Cc: Somnath Kotur, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/65bcaa3d86eb230bb9b9f53762db52d5e847d00b

Thanks.

Kevin.

---
From 65bcaa3d86eb230bb9b9f53762db52d5e847d00b Mon Sep 17 00:00:00 2001
From: Ajit Khaparde <ajit.khaparde@broadcom.com>
Date: Mon, 18 Nov 2019 14:23:45 -0800
Subject: [PATCH] net/bnxt: fix resource qcaps with older FW

[ upstream commit 89a0deb866dc42ead92b79e6e7159622e1ab8490 ]

On some old versions of FW, bnxt_hwrm_func_resc_qcaps can return an
error. This is because the command was not implemented completely
in FW till the subsequent version. Ignore the error and continue with
the driver initialization.

Fixes: edafb57ba4a1 ("net/bnxt: fix VF resource allocation")

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
---
 drivers/net/bnxt/bnxt_hwrm.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 614cd47c5..1f26fb499 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -612,5 +612,10 @@ int bnxt_hwrm_func_qcaps(struct bnxt *bp)
 	}
 
-	return rc;
+	/* On older FW,
+	 * bnxt_hwrm_func_resc_qcaps can fail and cause init failure.
+	 * But the error can be ignored. Return success.
+	 */
+
+	return 0;
 }
 
@@ -765,5 +770,5 @@ int bnxt_hwrm_func_resc_qcaps(struct bnxt *bp)
 	rc = bnxt_hwrm_send_message(bp, &req, sizeof(req), BNXT_USE_CHIMP_MB);
 
-	HWRM_CHECK_RESULT();
+	HWRM_CHECK_RESULT_SILENT();
 
 	if (BNXT_VF(bp)) {
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:15.961935588 +0000
+++ 0041-net-bnxt-fix-resource-qcaps-with-older-FW.patch	2019-12-11 21:24:12.690650742 +0000
@@ -1 +1 @@
-From 89a0deb866dc42ead92b79e6e7159622e1ab8490 Mon Sep 17 00:00:00 2001
+From 65bcaa3d86eb230bb9b9f53762db52d5e847d00b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 89a0deb866dc42ead92b79e6e7159622e1ab8490 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 2cba007ea..1d3732eee 100644
+index 614cd47c5..1f26fb499 100644
@@ -24 +25 @@
-@@ -693,5 +693,10 @@ int bnxt_hwrm_func_qcaps(struct bnxt *bp)
+@@ -612,5 +612,10 @@ int bnxt_hwrm_func_qcaps(struct bnxt *bp)
@@ -36 +37 @@
-@@ -902,5 +907,5 @@ int bnxt_hwrm_func_resc_qcaps(struct bnxt *bp)
+@@ -765,5 +770,5 @@ int bnxt_hwrm_func_resc_qcaps(struct bnxt *bp)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'app/testpmd: report invalid command line parameter' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (39 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/bnxt: fix resource qcaps with older FW' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'examples: hide error for missing pkg-config path flag' " Kevin Traynor
                   ` (27 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: David Marchand; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/6abcaabc8dc56fe7c6c0480a739f63672576e50d

Thanks.

Kevin.

---
From 6abcaabc8dc56fe7c6c0480a739f63672576e50d Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Mon, 18 Nov 2019 16:37:14 +0100
Subject: [PATCH] app/testpmd: report invalid command line parameter

[ upstream commit 8fad2e5ab2c54ae12db0c3255b69d0c4f44a5194 ]

We currently do not check that a non option string has been passed to
testpmd.

Example:
$ ./master/app/testpmd --no-huge -m 512 --vdev net_null0 \
	--vdev net_null1 -- -i nb-cores=2 --total-num-mbuf 2048
[...]
testpmd> show config fwd
io packet forwarding - ports=2 - cores=1 - streams=2 - NUMA support
enabled, MP allocation mode: native
Logical Core 1 (socket 0) forwards packets on 2 streams:
  RX P=0/Q=0 (socket 0) -> TX P=1/Q=0 (socket 0) peer=02:00:00:00:00:01
  RX P=1/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00

Here nb-cores=2 is just ignored, while the (probably sleepy) user did not
notice this.

Validate that all strings passed to testpmd are part of a known option.

After this patch:
$ ./master/app/testpmd --no-huge -m 512 --vdev net_null0 \
	--vdev net_null1 -- -i nb-cores=2 --total-num-mbuf 2048
[...]
Invalid parameter: nb-cores=2
EAL: Error - exiting with code: 1
  Cause: Command line incorrect

While at it, when passing an unknown option, print the string that gets
refused by getopt_long to help the user.

Fixes: af75078fece3 ("first public release")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 app/test-pmd/parameters.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c
index bfb5834f4..4d5e28970 100644
--- a/app/test-pmd/parameters.c
+++ b/app/test-pmd/parameters.c
@@ -1246,4 +1246,5 @@ launch_args_parse(int argc, char** argv)
 		default:
 			usage(argv[0]);
+			printf("Invalid option: %s\n", argv[optind]);
 			rte_exit(EXIT_FAILURE,
 				 "Command line is incomplete or incorrect\n");
@@ -1252,4 +1253,10 @@ launch_args_parse(int argc, char** argv)
 	}
 
+	if (optind != argc) {
+		usage(argv[0]);
+		printf("Invalid parameter: %s\n", argv[optind]);
+		rte_exit(EXIT_FAILURE, "Command line is incorrect\n");
+	}
+
 	/* Set offload configuration from command line parameters. */
 	rx_mode.offloads = rx_offloads;
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:16.041470581 +0000
+++ 0042-app-testpmd-report-invalid-command-line-parameter.patch	2019-12-11 21:24:12.691650722 +0000
@@ -1 +1 @@
-From 8fad2e5ab2c54ae12db0c3255b69d0c4f44a5194 Mon Sep 17 00:00:00 2001
+From 6abcaabc8dc56fe7c6c0480a739f63672576e50d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 8fad2e5ab2c54ae12db0c3255b69d0c4f44a5194 ]
+
@@ -37 +38,0 @@
-Cc: stable@dpdk.org
@@ -46 +47 @@
-index deca7a682..2e7a50441 100644
+index bfb5834f4..4d5e28970 100644
@@ -49 +50 @@
-@@ -1364,4 +1364,5 @@ launch_args_parse(int argc, char** argv)
+@@ -1246,4 +1246,5 @@ launch_args_parse(int argc, char** argv)
@@ -55 +56 @@
-@@ -1370,4 +1371,10 @@ launch_args_parse(int argc, char** argv)
+@@ -1252,4 +1253,10 @@ launch_args_parse(int argc, char** argv)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'examples: hide error for missing pkg-config path flag' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (40 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'app/testpmd: report invalid command line parameter' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'common/octeontx: add missing public symbol' " Kevin Traynor
                   ` (26 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/859c2be3c7744e02edb9bc59d76c1a3c11f5b268

Thanks.

Kevin.

---
From 859c2be3c7744e02edb9bc59d76c1a3c11f5b268 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Fri, 15 Nov 2019 15:17:00 +0000
Subject: [PATCH] examples: hide error for missing pkg-config path flag

[ upstream commit 69b1bb49ed82a4e96b67046f4916eecc14c6ad55 ]

Some versions of pkg-config don't support the --path flag, which is not a
fatal error when building the apps. Without the flag, the makefile just
cannot track the .pc file of DPDK as a dependency of the build. Therefore,
we can ignore the error and suppress it by redirecting to /dev/null the
stderr from that call to pkg-config.

Fixes: 22119c4591a0 ("examples: use pkg-config in makefiles")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 examples/bbdev_app/Makefile             | 10 ++++++----
 examples/bond/Makefile                  | 10 ++++++----
 examples/cmdline/Makefile               | 10 ++++++----
 examples/distributor/Makefile           | 10 ++++++----
 examples/eventdev_pipeline/Makefile     | 10 ++++++----
 examples/exception_path/Makefile        | 10 ++++++----
 examples/fips_validation/Makefile       | 10 ++++++----
 examples/flow_classify/Makefile         | 10 ++++++----
 examples/flow_filtering/Makefile        | 10 ++++++----
 examples/helloworld/Makefile            | 10 ++++++----
 examples/ip_fragmentation/Makefile      | 10 ++++++----
 examples/ip_pipeline/Makefile           | 10 ++++++----
 examples/ip_reassembly/Makefile         | 10 ++++++----
 examples/ipsec-secgw/Makefile           | 10 ++++++----
 examples/ipv4_multicast/Makefile        | 10 ++++++----
 examples/kni/Makefile                   | 10 ++++++----
 examples/l2fwd-cat/Makefile             | 10 ++++++----
 examples/l2fwd-crypto/Makefile          | 10 ++++++----
 examples/l2fwd-jobstats/Makefile        | 10 ++++++----
 examples/l2fwd-keepalive/Makefile       | 10 ++++++----
 examples/l2fwd/Makefile                 | 10 ++++++----
 examples/l3fwd-acl/Makefile             | 10 ++++++----
 examples/l3fwd-power/Makefile           | 10 ++++++----
 examples/l3fwd-vf/Makefile              | 10 ++++++----
 examples/l3fwd/Makefile                 | 10 ++++++----
 examples/link_status_interrupt/Makefile | 10 ++++++----
 examples/load_balancer/Makefile         | 10 ++++++----
 examples/packet_ordering/Makefile       | 10 ++++++----
 examples/ptpclient/Makefile             | 10 ++++++----
 examples/qos_meter/Makefile             | 10 ++++++----
 examples/qos_sched/Makefile             | 10 ++++++----
 examples/rxtx_callbacks/Makefile        | 10 ++++++----
 examples/service_cores/Makefile         | 10 ++++++----
 examples/skeleton/Makefile              | 10 ++++++----
 examples/tep_termination/Makefile       | 10 ++++++----
 examples/timer/Makefile                 | 10 ++++++----
 examples/vhost/Makefile                 | 10 ++++++----
 examples/vhost_scsi/Makefile            |  8 ++++----
 examples/vmdq/Makefile                  | 10 ++++++----
 examples/vmdq_dcb/Makefile              | 10 ++++++----
 40 files changed, 238 insertions(+), 160 deletions(-)

diff --git a/examples/bbdev_app/Makefile b/examples/bbdev_app/Makefile
index 378b4cb54..3e759dc6e 100644
--- a/examples/bbdev_app/Makefile
+++ b/examples/bbdev_app/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 CFLAGS += -DALLOW_EXPERIMENTAL_API
diff --git a/examples/bond/Makefile b/examples/bond/Makefile
index 665fcf6a3..ebff5719f 100644
--- a/examples/bond/Makefile
+++ b/examples/bond/Makefile
@@ -20,8 +20,10 @@ static: build/$(APP)-static
 LDFLAGS += -lrte_pmd_bond
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 CFLAGS += -DALLOW_EXPERIMENTAL_API
diff --git a/examples/cmdline/Makefile b/examples/cmdline/Makefile
index fbe521c39..890346b04 100644
--- a/examples/cmdline/Makefile
+++ b/examples/cmdline/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/distributor/Makefile b/examples/distributor/Makefile
index 372446f9c..f4500d546 100644
--- a/examples/distributor/Makefile
+++ b/examples/distributor/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/eventdev_pipeline/Makefile b/examples/eventdev_pipeline/Makefile
index cab4d4050..881f0ceac 100644
--- a/examples/eventdev_pipeline/Makefile
+++ b/examples/eventdev_pipeline/Makefile
@@ -20,8 +20,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 CFLAGS += -DALLOW_EXPERIMENTAL_API
diff --git a/examples/exception_path/Makefile b/examples/exception_path/Makefile
index 013ae1cbe..ce97c7d67 100644
--- a/examples/exception_path/Makefile
+++ b/examples/exception_path/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/fips_validation/Makefile b/examples/fips_validation/Makefile
index 5fb64e4d9..2573436b2 100644
--- a/examples/fips_validation/Makefile
+++ b/examples/fips_validation/Makefile
@@ -25,8 +25,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/flow_classify/Makefile b/examples/flow_classify/Makefile
index 5c0f7fc57..29c563398 100644
--- a/examples/flow_classify/Makefile
+++ b/examples/flow_classify/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 CFLAGS += -DALLOW_EXPERIMENTAL_API
diff --git a/examples/flow_filtering/Makefile b/examples/flow_filtering/Makefile
index 5140f5079..ffa6e93da 100644
--- a/examples/flow_filtering/Makefile
+++ b/examples/flow_filtering/Makefile
@@ -16,8 +16,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/helloworld/Makefile b/examples/helloworld/Makefile
index 970c9ea80..b9024cec1 100644
--- a/examples/helloworld/Makefile
+++ b/examples/helloworld/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/ip_fragmentation/Makefile b/examples/ip_fragmentation/Makefile
index 84e66f239..7865aeb14 100644
--- a/examples/ip_fragmentation/Makefile
+++ b/examples/ip_fragmentation/Makefile
@@ -19,8 +19,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/ip_pipeline/Makefile b/examples/ip_pipeline/Makefile
index d667af811..bf57bf52d 100644
--- a/examples/ip_pipeline/Makefile
+++ b/examples/ip_pipeline/Makefile
@@ -31,8 +31,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 CFLAGS += -I.
diff --git a/examples/ip_reassembly/Makefile b/examples/ip_reassembly/Makefile
index ad7e5feae..87dc7d3ba 100644
--- a/examples/ip_reassembly/Makefile
+++ b/examples/ip_reassembly/Makefile
@@ -19,8 +19,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/ipsec-secgw/Makefile b/examples/ipsec-secgw/Makefile
index 3fd2079df..9a7131c14 100644
--- a/examples/ipsec-secgw/Makefile
+++ b/examples/ipsec-secgw/Makefile
@@ -28,8 +28,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 CFLAGS += -DALLOW_EXPERIMENTAL_API
diff --git a/examples/ipv4_multicast/Makefile b/examples/ipv4_multicast/Makefile
index 83a21feba..afc6d8dbe 100644
--- a/examples/ipv4_multicast/Makefile
+++ b/examples/ipv4_multicast/Makefile
@@ -19,8 +19,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/kni/Makefile b/examples/kni/Makefile
index 6c3e30396..b3d39a577 100644
--- a/examples/kni/Makefile
+++ b/examples/kni/Makefile
@@ -18,9 +18,11 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
 CFLAGS += -DALLOW_EXPERIMENTAL_API
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/l2fwd-cat/Makefile b/examples/l2fwd-cat/Makefile
index 3c39ed6db..5059d39c0 100644
--- a/examples/l2fwd-cat/Makefile
+++ b/examples/l2fwd-cat/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 LDFLAGS += -lpqos
diff --git a/examples/l2fwd-crypto/Makefile b/examples/l2fwd-crypto/Makefile
index 21fd8eeae..08881ff18 100644
--- a/examples/l2fwd-crypto/Makefile
+++ b/examples/l2fwd-crypto/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/l2fwd-jobstats/Makefile b/examples/l2fwd-jobstats/Makefile
index aec35390e..ec5f589f0 100644
--- a/examples/l2fwd-jobstats/Makefile
+++ b/examples/l2fwd-jobstats/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/l2fwd-keepalive/Makefile b/examples/l2fwd-keepalive/Makefile
index 5c7eb85cd..85dd6462e 100644
--- a/examples/l2fwd-keepalive/Makefile
+++ b/examples/l2fwd-keepalive/Makefile
@@ -20,8 +20,10 @@ static: build/$(APP)-static
 LDFLAGS += -pthread -lrt
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/l2fwd/Makefile b/examples/l2fwd/Makefile
index 42b2234af..c1e614366 100644
--- a/examples/l2fwd/Makefile
+++ b/examples/l2fwd/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/l3fwd-acl/Makefile b/examples/l3fwd-acl/Makefile
index 8f01f7550..1d49df9ff 100644
--- a/examples/l3fwd-acl/Makefile
+++ b/examples/l3fwd-acl/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/l3fwd-power/Makefile b/examples/l3fwd-power/Makefile
index 53aaaca48..f037b7858 100644
--- a/examples/l3fwd-power/Makefile
+++ b/examples/l3fwd-power/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 CFLAGS += -DALLOW_EXPERIMENTAL_API
diff --git a/examples/l3fwd-vf/Makefile b/examples/l3fwd-vf/Makefile
index c51117768..646096b01 100644
--- a/examples/l3fwd-vf/Makefile
+++ b/examples/l3fwd-vf/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/l3fwd/Makefile b/examples/l3fwd/Makefile
index 4357ddb79..9f3493aa4 100644
--- a/examples/l3fwd/Makefile
+++ b/examples/l3fwd/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/link_status_interrupt/Makefile b/examples/link_status_interrupt/Makefile
index de11a17f0..67ac6fefa 100644
--- a/examples/link_status_interrupt/Makefile
+++ b/examples/link_status_interrupt/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/load_balancer/Makefile b/examples/load_balancer/Makefile
index 9261ce4ef..696c8f007 100644
--- a/examples/load_balancer/Makefile
+++ b/examples/load_balancer/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/packet_ordering/Makefile b/examples/packet_ordering/Makefile
index 27b82b6ea..b91adec48 100644
--- a/examples/packet_ordering/Makefile
+++ b/examples/packet_ordering/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/ptpclient/Makefile b/examples/ptpclient/Makefile
index 3eec3dc19..b2625785d 100644
--- a/examples/ptpclient/Makefile
+++ b/examples/ptpclient/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/qos_meter/Makefile b/examples/qos_meter/Makefile
index 95bd1b148..7ecf06450 100644
--- a/examples/qos_meter/Makefile
+++ b/examples/qos_meter/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 CFLAGS += -DALLOW_EXPERIMENTAL_API
diff --git a/examples/qos_sched/Makefile b/examples/qos_sched/Makefile
index 2cdd5fa3d..b1fb1c69b 100644
--- a/examples/qos_sched/Makefile
+++ b/examples/qos_sched/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/rxtx_callbacks/Makefile b/examples/rxtx_callbacks/Makefile
index 2873f7995..a5f5dfe68 100644
--- a/examples/rxtx_callbacks/Makefile
+++ b/examples/rxtx_callbacks/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/service_cores/Makefile b/examples/service_cores/Makefile
index 49e2a5878..7ff06899f 100644
--- a/examples/service_cores/Makefile
+++ b/examples/service_cores/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/skeleton/Makefile b/examples/skeleton/Makefile
index f58c8903d..3ad8fb215 100644
--- a/examples/skeleton/Makefile
+++ b/examples/skeleton/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/tep_termination/Makefile b/examples/tep_termination/Makefile
index 5f76a97ef..2ace3103c 100644
--- a/examples/tep_termination/Makefile
+++ b/examples/tep_termination/Makefile
@@ -20,8 +20,10 @@ static: build/$(APP)-static
 LDFLAGS += -pthread
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 CFLAGS += -DALLOW_EXPERIMENTAL_API
diff --git a/examples/timer/Makefile b/examples/timer/Makefile
index 3e8a14261..635e47d1d 100644
--- a/examples/timer/Makefile
+++ b/examples/timer/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/vhost/Makefile b/examples/vhost/Makefile
index a8a8aba95..e43ae7793 100644
--- a/examples/vhost/Makefile
+++ b/examples/vhost/Makefile
@@ -20,8 +20,10 @@ static: build/$(APP)-static
 LDFLAGS += -pthread
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 CFLAGS += -DALLOW_EXPERIMENTAL_API
diff --git a/examples/vhost_scsi/Makefile b/examples/vhost_scsi/Makefile
index 69e102de5..2911acf27 100644
--- a/examples/vhost_scsi/Makefile
+++ b/examples/vhost_scsi/Makefile
@@ -21,8 +21,8 @@ CFLAGS += -D_FILE_OFFSET_BITS=64
 LDFLAGS += -pthread
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/vmdq/Makefile b/examples/vmdq/Makefile
index a9983a184..e4315ac2b 100644
--- a/examples/vmdq/Makefile
+++ b/examples/vmdq/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
diff --git a/examples/vmdq_dcb/Makefile b/examples/vmdq_dcb/Makefile
index 5a8934c84..937002976 100644
--- a/examples/vmdq_dcb/Makefile
+++ b/examples/vmdq_dcb/Makefile
@@ -18,8 +18,10 @@ static: build/$(APP)-static
 	ln -sf $(APP)-static build/$(APP)
 
-PC_FILE := $(shell pkg-config --path libdpdk)
-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
+PKGCONF ?= pkg-config
+
+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
+CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
+LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
 
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:16.119089668 +0000
+++ 0043-examples-hide-error-for-missing-pkg-config-path-flag.patch	2019-12-11 21:24:12.700650535 +0000
@@ -1 +1 @@
-From 69b1bb49ed82a4e96b67046f4916eecc14c6ad55 Mon Sep 17 00:00:00 2001
+From 859c2be3c7744e02edb9bc59d76c1a3c11f5b268 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 69b1bb49ed82a4e96b67046f4916eecc14c6ad55 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -18,43 +19,41 @@
- examples/bbdev_app/Makefile             | 2 +-
- examples/bond/Makefile                  | 2 +-
- examples/cmdline/Makefile               | 2 +-
- examples/distributor/Makefile           | 2 +-
- examples/eventdev_pipeline/Makefile     | 2 +-
- examples/fips_validation/Makefile       | 2 +-
- examples/flow_classify/Makefile         | 2 +-
- examples/flow_filtering/Makefile        | 2 +-
- examples/helloworld/Makefile            | 2 +-
- examples/ioat/Makefile                  | 2 +-
- examples/ip_fragmentation/Makefile      | 2 +-
- examples/ip_pipeline/Makefile           | 2 +-
- examples/ip_reassembly/Makefile         | 2 +-
- examples/ipsec-secgw/Makefile           | 2 +-
- examples/ipv4_multicast/Makefile        | 2 +-
- examples/kni/Makefile                   | 2 +-
- examples/l2fwd-cat/Makefile             | 2 +-
- examples/l2fwd-crypto/Makefile          | 2 +-
- examples/l2fwd-event/Makefile           | 2 +-
- examples/l2fwd-jobstats/Makefile        | 2 +-
- examples/l2fwd-keepalive/Makefile       | 2 +-
- examples/l2fwd/Makefile                 | 2 +-
- examples/l3fwd-acl/Makefile             | 2 +-
- examples/l3fwd-power/Makefile           | 2 +-
- examples/l3fwd/Makefile                 | 2 +-
- examples/link_status_interrupt/Makefile | 2 +-
- examples/ntb/Makefile                   | 2 +-
- examples/packet_ordering/Makefile       | 2 +-
- examples/ptpclient/Makefile             | 2 +-
- examples/qos_meter/Makefile             | 2 +-
- examples/qos_sched/Makefile             | 2 +-
- examples/rxtx_callbacks/Makefile        | 2 +-
- examples/service_cores/Makefile         | 2 +-
- examples/skeleton/Makefile              | 2 +-
- examples/tep_termination/Makefile       | 2 +-
- examples/timer/Makefile                 | 2 +-
- examples/vdpa/Makefile                  | 2 +-
- examples/vhost/Makefile                 | 2 +-
- examples/vhost_blk/Makefile             | 2 +-
- examples/vhost_crypto/Makefile          | 2 +-
- examples/vmdq/Makefile                  | 2 +-
- examples/vmdq_dcb/Makefile              | 2 +-
- 42 files changed, 42 insertions(+), 42 deletions(-)
+ examples/bbdev_app/Makefile             | 10 ++++++----
+ examples/bond/Makefile                  | 10 ++++++----
+ examples/cmdline/Makefile               | 10 ++++++----
+ examples/distributor/Makefile           | 10 ++++++----
+ examples/eventdev_pipeline/Makefile     | 10 ++++++----
+ examples/exception_path/Makefile        | 10 ++++++----
+ examples/fips_validation/Makefile       | 10 ++++++----
+ examples/flow_classify/Makefile         | 10 ++++++----
+ examples/flow_filtering/Makefile        | 10 ++++++----
+ examples/helloworld/Makefile            | 10 ++++++----
+ examples/ip_fragmentation/Makefile      | 10 ++++++----
+ examples/ip_pipeline/Makefile           | 10 ++++++----
+ examples/ip_reassembly/Makefile         | 10 ++++++----
+ examples/ipsec-secgw/Makefile           | 10 ++++++----
+ examples/ipv4_multicast/Makefile        | 10 ++++++----
+ examples/kni/Makefile                   | 10 ++++++----
+ examples/l2fwd-cat/Makefile             | 10 ++++++----
+ examples/l2fwd-crypto/Makefile          | 10 ++++++----
+ examples/l2fwd-jobstats/Makefile        | 10 ++++++----
+ examples/l2fwd-keepalive/Makefile       | 10 ++++++----
+ examples/l2fwd/Makefile                 | 10 ++++++----
+ examples/l3fwd-acl/Makefile             | 10 ++++++----
+ examples/l3fwd-power/Makefile           | 10 ++++++----
+ examples/l3fwd-vf/Makefile              | 10 ++++++----
+ examples/l3fwd/Makefile                 | 10 ++++++----
+ examples/link_status_interrupt/Makefile | 10 ++++++----
+ examples/load_balancer/Makefile         | 10 ++++++----
+ examples/packet_ordering/Makefile       | 10 ++++++----
+ examples/ptpclient/Makefile             | 10 ++++++----
+ examples/qos_meter/Makefile             | 10 ++++++----
+ examples/qos_sched/Makefile             | 10 ++++++----
+ examples/rxtx_callbacks/Makefile        | 10 ++++++----
+ examples/service_cores/Makefile         | 10 ++++++----
+ examples/skeleton/Makefile              | 10 ++++++----
+ examples/tep_termination/Makefile       | 10 ++++++----
+ examples/timer/Makefile                 | 10 ++++++----
+ examples/vhost/Makefile                 | 10 ++++++----
+ examples/vhost_scsi/Makefile            |  8 ++++----
+ examples/vmdq/Makefile                  | 10 ++++++----
+ examples/vmdq_dcb/Makefile              | 10 ++++++----
+ 40 files changed, 238 insertions(+), 160 deletions(-)
@@ -63 +62 @@
-index 033f5aada..ead3f016b 100644
+index 378b4cb54..3e759dc6e 100644
@@ -66,2 +65,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -69,4 +68,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ CFLAGS += -DALLOW_EXPERIMENTAL_API
@@ -74 +81 @@
-index 3f1ae1b6f..2030ca410 100644
+index 665fcf6a3..ebff5719f 100644
@@ -77,2 +84,2 @@
-@@ -22,5 +22,5 @@ LDFLAGS += -lrte_pmd_bond
- PKGCONF ?= pkg-config
+@@ -20,8 +20,10 @@ static: build/$(APP)-static
+ LDFLAGS += -lrte_pmd_bond
@@ -80,4 +87,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ CFLAGS += -DALLOW_EXPERIMENTAL_API
@@ -85 +100 @@
-index f362a2afb..0b6b54540 100644
+index fbe521c39..890346b04 100644
@@ -88,2 +103,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -91,4 +106,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -96 +119 @@
-index ac804da34..4192d8a4a 100644
+index 372446f9c..f4500d546 100644
@@ -99,2 +122,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -102,4 +125,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -107 +138 @@
-index 9a6250b85..96cd24437 100644
+index cab4d4050..881f0ceac 100644
@@ -110,2 +141,2 @@
-@@ -22,5 +22,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -20,8 +20,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -113,4 +144,31 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ CFLAGS += -DALLOW_EXPERIMENTAL_API
+diff --git a/examples/exception_path/Makefile b/examples/exception_path/Makefile
+index 013ae1cbe..ce97c7d67 100644
+--- a/examples/exception_path/Makefile
++++ b/examples/exception_path/Makefile
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
+ 
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -118 +176 @@
-index da5c8f6e7..1385e8cc8 100644
+index 5fb64e4d9..2573436b2 100644
@@ -121,2 +179,2 @@
-@@ -29,5 +29,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -25,8 +25,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -124,4 +182,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -129 +195 @@
-index 0b41ac4eb..6864941b3 100644
+index 5c0f7fc57..29c563398 100644
@@ -132,2 +198,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -135,4 +201,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ CFLAGS += -DALLOW_EXPERIMENTAL_API
@@ -140 +214 @@
-index 1d5ab739c..6c51c0b7a 100644
+index 5140f5079..ffa6e93da 100644
@@ -143,2 +217,2 @@
-@@ -18,5 +18,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -16,8 +16,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -146,4 +220,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -151 +233 @@
-index 267f90b4e..16d82b02f 100644
+index 970c9ea80..b9024cec1 100644
@@ -154,2 +236,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -157,10 +239,10 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
-diff --git a/examples/ioat/Makefile b/examples/ioat/Makefile
-index ad4c63e31..ef63f5d68 100644
---- a/examples/ioat/Makefile
-+++ b/examples/ioat/Makefile
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
@@ -168,4 +250 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -173 +252 @@
-index 1d1396211..ede0c4f02 100644
+index 84e66f239..7865aeb14 100644
@@ -176,2 +255,2 @@
-@@ -21,5 +21,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -19,8 +19,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -179,4 +258,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -184 +271 @@
-index 77d37cc40..3a0193818 100644
+index d667af811..bf57bf52d 100644
@@ -187,2 +274,2 @@
-@@ -33,5 +33,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -31,8 +31,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -190,4 +277,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ CFLAGS += -I.
@@ -195 +290 @@
-index 3d7fac195..3f2888b33 100644
+index ad7e5feae..87dc7d3ba 100644
@@ -198,2 +293,2 @@
-@@ -21,5 +21,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -19,8 +19,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -201,4 +296,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -206 +309 @@
-index 1c2b944d6..a4977f61f 100644
+index 3fd2079df..9a7131c14 100644
@@ -209,2 +312,2 @@
-@@ -31,5 +31,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -28,8 +28,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -212,4 +315,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ CFLAGS += -DALLOW_EXPERIMENTAL_API
@@ -217 +328 @@
-index 5f9d73881..92d3db0f4 100644
+index 83a21feba..afc6d8dbe 100644
@@ -220,2 +331,2 @@
-@@ -21,5 +21,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -19,8 +19,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -223,4 +334,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -228 +347 @@
-index fbe0097cf..c7ca96d8a 100644
+index 6c3e30396..b3d39a577 100644
@@ -231,2 +350,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,9 +18,11 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -234 +353,4 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
++PKGCONF ?= pkg-config
++
@@ -236 +358 @@
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
@@ -237,0 +360,6 @@
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -239 +367 @@
-index 86e56a1e7..b0e53c37e 100644
+index 3c39ed6db..5059d39c0 100644
@@ -242,2 +370,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -245,4 +373,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ LDFLAGS += -lpqos
@@ -250 +386 @@
-index ecfbab1f5..2f1405a72 100644
+index 21fd8eeae..08881ff18 100644
@@ -253,2 +389,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -256,10 +392,10 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
-diff --git a/examples/l2fwd-event/Makefile b/examples/l2fwd-event/Makefile
-index 04e6796a6..4cdae36f1 100644
---- a/examples/l2fwd-event/Makefile
-+++ b/examples/l2fwd-event/Makefile
-@@ -26,5 +26,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
@@ -267,4 +403 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -272 +405 @@
-index 0882c2697..73c91faa8 100644
+index aec35390e..ec5f589f0 100644
@@ -275,2 +408,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -278,4 +411,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -283 +424 @@
-index 68e467426..94d1e58bb 100644
+index 5c7eb85cd..85dd6462e 100644
@@ -286,2 +427,2 @@
-@@ -22,5 +22,5 @@ LDFLAGS += -pthread -lrt
- PKGCONF ?= pkg-config
+@@ -20,8 +20,10 @@ static: build/$(APP)-static
+ LDFLAGS += -pthread -lrt
@@ -289,4 +430,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -294 +443 @@
-index 97af55a50..8b7b26cb9 100644
+index 42b2234af..c1e614366 100644
@@ -297,2 +446,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -300,4 +449,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- # Add flag to allow experimental API as l2fwd uses rte_ethdev_set_ptype API
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -305 +462 @@
-index 7fcf1e7a6..d9909584b 100644
+index 8f01f7550..1d49df9ff 100644
@@ -308,2 +465,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -311,4 +468,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -316 +481 @@
-index de5d15cb7..729d49639 100644
+index 53aaaca48..f037b7858 100644
@@ -319,2 +484,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -322,4 +487,31 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ CFLAGS += -DALLOW_EXPERIMENTAL_API
+diff --git a/examples/l3fwd-vf/Makefile b/examples/l3fwd-vf/Makefile
+index c51117768..646096b01 100644
+--- a/examples/l3fwd-vf/Makefile
++++ b/examples/l3fwd-vf/Makefile
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
+ 
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -327 +519 @@
-index 042eae92b..b2dbf2607 100644
+index 4357ddb79..9f3493aa4 100644
@@ -330,2 +522,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -333,4 +525,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -338 +538 @@
-index 3d55aa1ac..4f02a8901 100644
+index de11a17f0..67ac6fefa 100644
@@ -341,2 +541,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -344,10 +544,29 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
-diff --git a/examples/ntb/Makefile b/examples/ntb/Makefile
-index 7927f44ac..baeba11e8 100644
---- a/examples/ntb/Makefile
-+++ b/examples/ntb/Makefile
-@@ -24,5 +24,5 @@ CFLAGS += -D_FILE_OFFSET_BITS=64
- LDFLAGS += -pthread
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
+diff --git a/examples/load_balancer/Makefile b/examples/load_balancer/Makefile
+index 9261ce4ef..696c8f007 100644
+--- a/examples/load_balancer/Makefile
++++ b/examples/load_balancer/Makefile
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
+ 
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
@@ -355,4 +574 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -360 +576 @@
-index b04a39399..261b7f06a 100644
+index 27b82b6ea..b91adec48 100644
@@ -363,2 +579,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -366,4 +582,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -371 +595 @@
-index 0f8390b68..82d72b3e3 100644
+index 3eec3dc19..b2625785d 100644
@@ -374,2 +598,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -377,4 +601,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -382 +614 @@
-index 4a9b628b8..7c2bf88a9 100644
+index 95bd1b148..7ecf06450 100644
@@ -385,2 +617,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -388,4 +620,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ CFLAGS += -DALLOW_EXPERIMENTAL_API
@@ -393 +633 @@
-index 5737ad652..525061ca0 100644
+index 2cdd5fa3d..b1fb1c69b 100644
@@ -396,2 +636,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -399,4 +639,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -404 +652 @@
-index 0f126692a..584b9fafb 100644
+index 2873f7995..a5f5dfe68 100644
@@ -407,2 +655,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -410,4 +658,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -415 +671 @@
-index 6fecedc54..c47055813 100644
+index 49e2a5878..7ff06899f 100644
@@ -418,2 +674,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -421,4 +677,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -426 +690 @@
-index fdc458c91..2c29004d7 100644
+index f58c8903d..3ad8fb215 100644
@@ -429,2 +693,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -432,4 +696,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -437 +709 @@
-index 57af4e7cc..645112498 100644
+index 5f76a97ef..2ace3103c 100644
@@ -440,2 +712,2 @@
-@@ -22,5 +22,5 @@ LDFLAGS += -pthread
- PKGCONF ?= pkg-config
+@@ -20,8 +20,10 @@ static: build/$(APP)-static
+ LDFLAGS += -pthread
@@ -443,4 +715,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ CFLAGS += -DALLOW_EXPERIMENTAL_API
@@ -448 +728 @@
-index 21f05918c..bf86339ab 100644
+index 3e8a14261..635e47d1d 100644
@@ -451,2 +731,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -454,10 +734,10 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
-diff --git a/examples/vdpa/Makefile b/examples/vdpa/Makefile
-index 68d088f22..6a25497cd 100644
---- a/examples/vdpa/Makefile
-+++ b/examples/vdpa/Makefile
-@@ -21,5 +21,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
@@ -465,4 +745 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -470 +747 @@
-index fcb864d0e..f2b161541 100644
+index a8a8aba95..e43ae7793 100644
@@ -473,2 +750,2 @@
-@@ -22,5 +22,5 @@ LDFLAGS += -pthread
- PKGCONF ?= pkg-config
+@@ -20,8 +20,10 @@ static: build/$(APP)-static
+ LDFLAGS += -pthread
@@ -476,9 +753,17 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
-diff --git a/examples/vhost_blk/Makefile b/examples/vhost_blk/Makefile
-index af2a3f87b..39244320d 100644
---- a/examples/vhost_blk/Makefile
-+++ b/examples/vhost_blk/Makefile
-@@ -23,5 +23,5 @@ PKGCONF ?= pkg-config
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ CFLAGS += -DALLOW_EXPERIMENTAL_API
+diff --git a/examples/vhost_scsi/Makefile b/examples/vhost_scsi/Makefile
+index 69e102de5..2911acf27 100644
+--- a/examples/vhost_scsi/Makefile
++++ b/examples/vhost_scsi/Makefile
+@@ -21,8 +21,8 @@ CFLAGS += -D_FILE_OFFSET_BITS=64
@@ -487,10 +772,8 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
-diff --git a/examples/vhost_crypto/Makefile b/examples/vhost_crypto/Makefile
-index 43e2e3244..ae8cb81f8 100644
---- a/examples/vhost_crypto/Makefile
-+++ b/examples/vhost_crypto/Makefile
-@@ -21,5 +21,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
@@ -498,4 +781 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -503 +783 @@
-index e0f1e4c40..0767c715a 100644
+index a9983a184..e4315ac2b 100644
@@ -506,2 +786,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -509,4 +789,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
@@ -514 +802 @@
-index def515872..2a9b04143 100644
+index 5a8934c84..937002976 100644
@@ -517,2 +805,2 @@
-@@ -20,5 +20,5 @@ static: build/$(APP)-static
- PKGCONF ?= pkg-config
+@@ -18,8 +18,10 @@ static: build/$(APP)-static
+ 	ln -sf $(APP)-static build/$(APP)
@@ -520,4 +808,12 @@
--PC_FILE := $(shell $(PKGCONF) --path libdpdk)
-+PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
- CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
- LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+-PC_FILE := $(shell pkg-config --path libdpdk)
+-CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
+-LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
+-LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
++PKGCONF ?= pkg-config
++
++PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
++CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
++LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
++LDFLAGS_STATIC = -Wl,-Bstatic $(shell $(PKGCONF) --static --libs libdpdk)
+ 
+ build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'common/octeontx: add missing public symbol' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (41 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'examples: hide error for missing pkg-config path flag' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'app/testpmd: fix invalid port detaching' " Kevin Traynor
                   ` (25 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Anatoly Burakov; +Cc: Bruce Richardson, Thomas Monjalon, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/bd979fff652326e042c21aaaf3df1f515ffdff6e

Thanks.

Kevin.

---
From bd979fff652326e042c21aaaf3df1f515ffdff6e Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Wed, 20 Nov 2019 17:23:37 +0000
Subject: [PATCH] common/octeontx: add missing public symbol

[ upstream commit ea8483728e884454ed877e0b6b745d007a896b6a ]

The logtype symbol was missing from the .map file. Add it.

Fixes: d8dd31652cf4 ("common/octeontx: move mbox to common folder")

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
---
 drivers/common/octeontx/rte_common_octeontx_version.map | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/common/octeontx/rte_common_octeontx_version.map b/drivers/common/octeontx/rte_common_octeontx_version.map
index f04b3b7f8..a9b3cff9b 100644
--- a/drivers/common/octeontx/rte_common_octeontx_version.map
+++ b/drivers/common/octeontx/rte_common_octeontx_version.map
@@ -2,4 +2,5 @@ DPDK_18.05 {
 	global:
 
+	octeontx_logtype_mbox;
 	octeontx_mbox_set_ram_mbox_base;
 	octeontx_mbox_set_reg;
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:16.211078058 +0000
+++ 0044-common-octeontx-add-missing-public-symbol.patch	2019-12-11 21:24:12.700650535 +0000
@@ -1 +1 @@
-From ea8483728e884454ed877e0b6b745d007a896b6a Mon Sep 17 00:00:00 2001
+From bd979fff652326e042c21aaaf3df1f515ffdff6e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ea8483728e884454ed877e0b6b745d007a896b6a ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'app/testpmd: fix invalid port detaching' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (42 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'common/octeontx: add missing public symbol' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'power: handle frequency increase with turbo disabled' " Kevin Traynor
                   ` (24 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Matan Azrad; +Cc: Bernard Iremonger, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/df025f644116d26700756b3cc5381b33a305f31a

Thanks.

Kevin.

---
From df025f644116d26700756b3cc5381b33a305f31a Mon Sep 17 00:00:00 2001
From: Matan Azrad <matan@mellanox.com>
Date: Tue, 12 Nov 2019 08:47:39 +0000
Subject: [PATCH] app/testpmd: fix invalid port detaching

[ upstream commit 43d0e304980a1527bcac92dc679057b189e2545a ]

The port was not validated before detaching.

Ignore port detach operation when the port is not valid.

Fixes: f8e5baa2662d ("app/testpmd: check not detaching device twice")

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
---
 app/test-pmd/testpmd.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 81f6d4f96..98fe2f8f7 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -2351,4 +2351,7 @@ detach_port_device(portid_t port_id)
 	printf("Removing a device...\n");
 
+	if (port_id_is_invalid(port_id, ENABLED_WARN))
+		return;
+
 	dev = rte_eth_devices[port_id].device;
 	if (dev == NULL) {
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:16.282476537 +0000
+++ 0045-app-testpmd-fix-invalid-port-detaching.patch	2019-12-11 21:24:12.704650453 +0000
@@ -1 +1 @@
-From 43d0e304980a1527bcac92dc679057b189e2545a Mon Sep 17 00:00:00 2001
+From df025f644116d26700756b3cc5381b33a305f31a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 43d0e304980a1527bcac92dc679057b189e2545a ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 446da3623..73ebf37aa 100644
+index 81f6d4f96..98fe2f8f7 100644
@@ -23 +24 @@
-@@ -2558,4 +2558,7 @@ detach_port_device(portid_t port_id)
+@@ -2351,4 +2351,7 @@ detach_port_device(portid_t port_id)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'power: handle frequency increase with turbo disabled' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (43 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'app/testpmd: fix invalid port detaching' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'mk: remove library search path from binary' " Kevin Traynor
                   ` (23 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Mattias Rönnblom; +Cc: David Hunt, Liang Ma, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/65ce5cdd91f8c1ac302ce4e07c797b07f37142bc

Thanks.

Kevin.

---
From 65ce5cdd91f8c1ac302ce4e07c797b07f37142bc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mattias=20R=C3=B6nnblom?= <mattias.ronnblom@ericsson.com>
Date: Thu, 14 Nov 2019 15:10:36 +0100
Subject: [PATCH] power: handle frequency increase with turbo disabled
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 388c4c03eca316698d2bb55435ec5c804c67c844 ]

Calling pstate's or acpi's rte_power_freq_up() when on the highest
non-turbo frequency results in an error, if turbo is enabled in the BIOS,
but disabled via the power library.
The error is in the form of a return code and a RTE_LOG() entry
on the ERR level.

According to the API documentation, the frequency is scaled up
"according to the available frequencies". In case turbo is disabled,
that frequency is not available. This patch's rte_power_freq_up()
behaviour is also consistent with how rte_power_freq_max() is
implemented (i.e. the highest non-turbo frequency is set, in case
turbo is disabled).

Fixes: 445c6528b55f ("power: common interface for guest and host")
Fixes: e6c6dc0f96c8 ("power: add p-state driver compatibility")

Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
Tested-by: David Hunt <david.hunt@intel.com>
Acked-by: David Hunt <david.hunt@intel.com>
Reviewed-by: Liang Ma <liang.j.ma@intel.com>
---
 lib/librte_power/power_acpi_cpufreq.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/librte_power/power_acpi_cpufreq.c b/lib/librte_power/power_acpi_cpufreq.c
index 6051e02d9..85edb9aec 100644
--- a/lib/librte_power/power_acpi_cpufreq.c
+++ b/lib/librte_power/power_acpi_cpufreq.c
@@ -506,5 +506,6 @@ power_acpi_cpufreq_freq_up(unsigned int lcore_id)
 
 	pi = &lcore_power_info[lcore_id];
-	if (pi->curr_idx == 0)
+	if (pi->curr_idx == 0 ||
+	    (pi->curr_idx == 1 && pi->turbo_available && !pi->turbo_enable))
 		return 0;
 
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:16.359836590 +0000
+++ 0046-power-handle-frequency-increase-with-turbo-disabled.patch	2019-12-11 21:24:12.705650432 +0000
@@ -1 +1 @@
-From 388c4c03eca316698d2bb55435ec5c804c67c844 Mon Sep 17 00:00:00 2001
+From 65ce5cdd91f8c1ac302ce4e07c797b07f37142bc Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 388c4c03eca316698d2bb55435ec5c804c67c844 ]
+
@@ -24 +25,0 @@
-Cc: stable@dpdk.org
@@ -31,3 +32,2 @@
- lib/librte_power/power_acpi_cpufreq.c   | 3 ++-
- lib/librte_power/power_pstate_cpufreq.c | 3 ++-
- 2 files changed, 4 insertions(+), 2 deletions(-)
+ lib/librte_power/power_acpi_cpufreq.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
@@ -36 +36 @@
-index 22989244a..f443fce69 100644
+index 6051e02d9..85edb9aec 100644
@@ -39,13 +39 @@
-@@ -516,5 +516,6 @@ power_acpi_cpufreq_freq_up(unsigned int lcore_id)
- 
- 	pi = &lcore_power_info[lcore_id];
--	if (pi->curr_idx == 0)
-+	if (pi->curr_idx == 0 ||
-+	    (pi->curr_idx == 1 && pi->turbo_available && !pi->turbo_enable))
- 		return 0;
- 
-diff --git a/lib/librte_power/power_pstate_cpufreq.c b/lib/librte_power/power_pstate_cpufreq.c
-index 8f095e0ab..2d8a9499d 100644
---- a/lib/librte_power/power_pstate_cpufreq.c
-+++ b/lib/librte_power/power_pstate_cpufreq.c
-@@ -697,5 +697,6 @@ power_pstate_cpufreq_freq_up(unsigned int lcore_id)
+@@ -506,5 +506,6 @@ power_acpi_cpufreq_freq_up(unsigned int lcore_id)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'mk: remove library search path from binary' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (44 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'power: handle frequency increase with turbo disabled' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'examples/multi_process: check server port validity' " Kevin Traynor
                   ` (22 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/72803887d351a6ba3b58aa37ba7801f978711d4f

Thanks.

Kevin.

---
From 72803887d351a6ba3b58aa37ba7801f978711d4f Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Fri, 22 Nov 2019 11:30:23 +0000
Subject: [PATCH] mk: remove library search path from binary

[ upstream commit 6b01864cc9c59a731dbc727a96995fd2b2ff452f ]

This patch functionally reverts the patch in fixes line to not have any
hardcoded library path in the final binary for the security reasons, in
case this binary distributed to production environment.

RPATH only added in RTE_DEVEL_BUILD case and this binary shouldn't
distributed, but still removing it to be cautious.

Fixes: 8919f73bcbaa ("mk: add build directory to library search path")

Suggested-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 devtools/test-null.sh | 1 +
 mk/rte.app.mk         | 4 ----
 2 files changed, 1 insertion(+), 4 deletions(-)

diff --git a/devtools/test-null.sh b/devtools/test-null.sh
index 61879e3e6..da0401dff 100755
--- a/devtools/test-null.sh
+++ b/devtools/test-null.sh
@@ -9,4 +9,5 @@ coremask=${2:-3} # default using cores 0 and 1
 
 if grep -q SHARED_LIB=y $build/.config; then
+	export LD_LIBRARY_PATH=$build/lib:$LD_LIBRARY_PATH
 	pmd='-d librte_pmd_null.so'
 fi
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index c539bb9c3..8d91909be 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -334,8 +334,4 @@ filter-libs = \
 LDLIBS := $(call filter-libs,$(LDLIBS))
 
-ifeq ($(RTE_DEVEL_BUILD)$(CONFIG_RTE_BUILD_SHARED_LIB),yy)
-LDFLAGS += -rpath=$(RTE_SDK_BIN)/lib
-endif
-
 MAPFLAGS = -Map=$@.map --cref
 
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:16.440330059 +0000
+++ 0047-mk-remove-library-search-path-from-binary.patch	2019-12-11 21:24:12.706650411 +0000
@@ -1 +1 @@
-From 6b01864cc9c59a731dbc727a96995fd2b2ff452f Mon Sep 17 00:00:00 2001
+From 72803887d351a6ba3b58aa37ba7801f978711d4f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6b01864cc9c59a731dbc727a96995fd2b2ff452f ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
- devtools/test-null.sh | 2 ++
+ devtools/test-null.sh | 1 +
@@ -21 +22 @@
- 2 files changed, 2 insertions(+), 4 deletions(-)
+ 2 files changed, 1 insertion(+), 4 deletions(-)
@@ -24 +25 @@
-index d82c6ad19..72aa82b16 100755
+index 61879e3e6..da0401dff 100755
@@ -27,7 +28 @@
-@@ -12,4 +12,5 @@ eal_options=$3
- testpmd_options=$4
- 
-+[ -f "$testpmd" ] && build=$(dirname $(dirname $testpmd))
- [ -f "$testpmd" ] || testpmd=$build/app/dpdk-testpmd
- [ -f "$testpmd" ] || testpmd=$build/app/testpmd
-@@ -20,4 +21,5 @@ fi
+@@ -9,4 +9,5 @@ coremask=${2:-3} # default using cores 0 and 1
@@ -35 +30 @@
- if ldd $testpmd | grep -q librte_ ; then
+ if grep -q SHARED_LIB=y $build/.config; then
@@ -37,2 +32,2 @@
- 	libs='-d librte_mempool_ring.so -d librte_pmd_null.so'
- else
+ 	pmd='-d librte_pmd_null.so'
+ fi
@@ -40 +35 @@
-index a278552c6..05ea034b9 100644
+index c539bb9c3..8d91909be 100644
@@ -43 +38 @@
-@@ -380,8 +380,4 @@ filter-libs = \
+@@ -334,8 +334,4 @@ filter-libs = \


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'examples/multi_process: check server port validity' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (45 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'mk: remove library search path from binary' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'examples/multi_process: fix client crash with sparse ports' " Kevin Traynor
                   ` (21 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Matan Azrad, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/573bdb4f37ca0a1659e5b2ba8e611832a4c0c9f6

Thanks.

Kevin.

---
From 573bdb4f37ca0a1659e5b2ba8e611832a4c0c9f6 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <sthemmin@microsoft.com>
Date: Mon, 5 Aug 2019 09:38:16 -0700
Subject: [PATCH] examples/multi_process: check server port validity

[ upstream commit 1f41d98c207aee8982ced709864c96c463d4503a ]

The mp_server incorrectly allows a port mask that included hidden
ports and which later caused either lost packets or failed initialization.

This fixes explicitly checking that each bit in portmask is a
valid port before using it.

Fixes: 5b7ba31148a8 ("ethdev: add port ownership")

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
Acked-by: Matan Azrad <matan@mellanox.com>
---
 .../client_server_mp/mp_server/args.c         | 40 ++++++++++---------
 .../client_server_mp/mp_server/args.h         |  2 +-
 .../client_server_mp/mp_server/init.c         |  7 +---
 3 files changed, 25 insertions(+), 24 deletions(-)

diff --git a/examples/multi_process/client_server_mp/mp_server/args.c b/examples/multi_process/client_server_mp/mp_server/args.c
index b0d8d7665..3c2ca266b 100644
--- a/examples/multi_process/client_server_mp/mp_server/args.c
+++ b/examples/multi_process/client_server_mp/mp_server/args.c
@@ -11,4 +11,5 @@
 
 #include <rte_memory.h>
+#include <rte_ethdev.h>
 #include <rte_string_fns.h>
 
@@ -42,9 +43,9 @@ usage(void)
  */
 static int
-parse_portmask(uint8_t max_ports, const char *portmask)
+parse_portmask(const char *portmask)
 {
 	char *end = NULL;
-	unsigned long pm;
-	uint16_t count = 0;
+	unsigned long long pm;
+	uint16_t id;
 
 	if (portmask == NULL || *portmask == '\0')
@@ -52,19 +53,22 @@ parse_portmask(uint8_t max_ports, const char *portmask)
 
 	/* convert parameter to a number and verify */
-	pm = strtoul(portmask, &end, 16);
-	if (end == NULL || *end != '\0' || pm == 0)
+	errno = 0;
+	pm = strtoull(portmask, &end, 16);
+	if (errno != 0 || end == NULL || *end != '\0')
 		return -1;
 
-	/* loop through bits of the mask and mark ports */
-	while (pm != 0){
-		if (pm & 0x01){ /* bit is set in mask, use port */
-			if (count >= max_ports)
-				printf("WARNING: requested port %u not present"
-				" - ignoring\n", (unsigned)count);
-			else
-			    ports->id[ports->num_ports++] = count;
-		}
-		pm = (pm >> 1);
-		count++;
+	RTE_ETH_FOREACH_DEV(id) {
+		unsigned long msk = 1u << id;
+
+		if ((pm & msk) == 0)
+			continue;
+
+		pm &= ~msk;
+		ports->id[ports->num_ports++] = id;
+	}
+
+	if (pm != 0) {
+		printf("WARNING: leftover ports in mask %#llx - ignoring\n",
+		       pm);
 	}
 
@@ -100,5 +104,5 @@ parse_num_clients(const char *clients)
  */
 int
-parse_app_args(uint16_t max_ports, int argc, char *argv[])
+parse_app_args(int argc, char *argv[])
 {
 	int option_index, opt;
@@ -113,5 +117,5 @@ parse_app_args(uint16_t max_ports, int argc, char *argv[])
 		switch (opt){
 			case 'p':
-				if (parse_portmask(max_ports, optarg) != 0){
+				if (parse_portmask(optarg) != 0) {
 					usage();
 					return -1;
diff --git a/examples/multi_process/client_server_mp/mp_server/args.h b/examples/multi_process/client_server_mp/mp_server/args.h
index 79c190a33..52c8cc86e 100644
--- a/examples/multi_process/client_server_mp/mp_server/args.h
+++ b/examples/multi_process/client_server_mp/mp_server/args.h
@@ -6,5 +6,5 @@
 #define _ARGS_H_
 
-int parse_app_args(uint16_t max_ports, int argc, char *argv[]);
+int parse_app_args(int argc, char *argv[]);
 
 #endif /* ifndef _ARGS_H_ */
diff --git a/examples/multi_process/client_server_mp/mp_server/init.c b/examples/multi_process/client_server_mp/mp_server/init.c
index 3af5dc699..1b0569937 100644
--- a/examples/multi_process/client_server_mp/mp_server/init.c
+++ b/examples/multi_process/client_server_mp/mp_server/init.c
@@ -239,5 +239,5 @@ init(int argc, char *argv[])
 	int retval;
 	const struct rte_memzone *mz;
-	uint16_t i, total_ports;
+	uint16_t i;
 
 	/* init EAL, parsing EAL args */
@@ -248,7 +248,4 @@ init(int argc, char *argv[])
 	argv += retval;
 
-	/* get total number of ports */
-	total_ports = rte_eth_dev_count_total();
-
 	/* set up array for port data */
 	mz = rte_memzone_reserve(MZ_PORT_INFO, sizeof(*ports),
@@ -260,5 +257,5 @@ init(int argc, char *argv[])
 
 	/* parse additional, application arguments */
-	retval = parse_app_args(total_ports, argc, argv);
+	retval = parse_app_args(argc, argv);
 	if (retval != 0)
 		return -1;
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:16.514527152 +0000
+++ 0048-examples-multi_process-check-server-port-validity.patch	2019-12-11 21:24:12.707650391 +0000
@@ -1 +1 @@
-From 1f41d98c207aee8982ced709864c96c463d4503a Mon Sep 17 00:00:00 2001
+From 573bdb4f37ca0a1659e5b2ba8e611832a4c0c9f6 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1f41d98c207aee8982ced709864c96c463d4503a ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -108 +109 @@
-index 3d4a9cdfa..ad9f46f0a 100644
+index 3af5dc699..1b0569937 100644
@@ -111 +112 @@
-@@ -249,5 +249,5 @@ init(int argc, char *argv[])
+@@ -239,5 +239,5 @@ init(int argc, char *argv[])
@@ -118 +119 @@
-@@ -258,7 +258,4 @@ init(int argc, char *argv[])
+@@ -248,7 +248,4 @@ init(int argc, char *argv[])
@@ -126 +127 @@
-@@ -270,5 +267,5 @@ init(int argc, char *argv[])
+@@ -260,5 +257,5 @@ init(int argc, char *argv[])


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'examples/multi_process: fix client crash with sparse ports' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (46 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'examples/multi_process: check server port validity' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'app/eventdev: fix divide by zero' " Kevin Traynor
                   ` (20 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Matan Azrad, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/f35ffead0d136ca6f7bea1a1d90095931ffab707

Thanks.

Kevin.

---
From f35ffead0d136ca6f7bea1a1d90095931ffab707 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <sthemmin@microsoft.com>
Date: Mon, 5 Aug 2019 09:38:17 -0700
Subject: [PATCH] examples/multi_process: fix client crash with sparse ports

[ upstream commit 6b124806a3181855fed969d0ad8520831ae0d7e2 ]

The mp_client crashes if run on Azure or any system where ethdev
ports are owned. In that case, the tx_buffer and tx_stats for the
real port were initialized correctly, but the wrong port was used.

For example if the server has Ports 3 and 5. Then calling
rte_eth_tx_buffer_flush on any other buffer will dereference null
because the tx buffer for that port was not allocated.

Also:
   - the flush code is common enough that it should not be marked
     unlikely
   - combine conditions to reduce indentation
   - avoid unnecessary if() if sent is zero.

Fixes: e2366e74e029 ("examples: use buffered Tx")

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
Acked-by: Matan Azrad <matan@mellanox.com>
---
 .../client_server_mp/mp_client/client.c        | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/examples/multi_process/client_server_mp/mp_client/client.c b/examples/multi_process/client_server_mp/mp_client/client.c
index c23dd3f37..361d90b54 100644
--- a/examples/multi_process/client_server_mp/mp_client/client.c
+++ b/examples/multi_process/client_server_mp/mp_client/client.c
@@ -247,17 +247,17 @@ main(int argc, char *argv[])
 	for (;;) {
 		uint16_t i, rx_pkts;
-		uint16_t port;
 
 		rx_pkts = rte_ring_dequeue_burst(rx_ring, pkts,
 				PKT_READ_SIZE, NULL);
 
-		if (unlikely(rx_pkts == 0)){
-			if (need_flush)
-				for (port = 0; port < ports->num_ports; port++) {
-					sent = rte_eth_tx_buffer_flush(ports->id[port], client_id,
-							tx_buffer[port]);
-					if (unlikely(sent))
-						tx_stats->tx[port] += sent;
-				}
+		if (rx_pkts == 0 && need_flush) {
+			for (i = 0; i < ports->num_ports; i++) {
+				uint16_t port = ports->id[i];
+
+				sent = rte_eth_tx_buffer_flush(port,
+							       client_id,
+							       tx_buffer[port]);
+				tx_stats->tx[port] += sent;
+			}
 			need_flush = 0;
 			continue;
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:16.579724700 +0000
+++ 0049-examples-multi_process-fix-client-crash-with-sparse-.patch	2019-12-11 21:24:12.708650370 +0000
@@ -1 +1 @@
-From 6b124806a3181855fed969d0ad8520831ae0d7e2 Mon Sep 17 00:00:00 2001
+From f35ffead0d136ca6f7bea1a1d90095931ffab707 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6b124806a3181855fed969d0ad8520831ae0d7e2 ]
+
@@ -21 +22,0 @@
-Cc: stable@dpdk.org


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'app/eventdev: fix divide by zero' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (47 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'examples/multi_process: fix client crash with sparse ports' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'app/eventdev: check function errors' " Kevin Traynor
                   ` (19 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Pavan Nikhilesh; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/e3edd018212bd1f91a69370b52012d4cea15a360

Thanks.

Kevin.

---
From e3edd018212bd1f91a69370b52012d4cea15a360 Mon Sep 17 00:00:00 2001
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Date: Fri, 22 Nov 2019 00:52:38 +0530
Subject: [PATCH] app/eventdev: fix divide by zero

[ upstream commit 93b7794b83524b322d03634969f77d767dec13f1 ]

Fix possible divide by zero condition when calculating percentages.

Coverity issue: 277205
Coverity issue: 277234
Fixes: d008f20bce23 ("app/eventdev: add event timer adapter as a producer")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
 app/test-eventdev/test_perf_common.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/app/test-eventdev/test_perf_common.c b/app/test-eventdev/test_perf_common.c
index f93729a12..81553a7b1 100644
--- a/app/test-eventdev/test_perf_common.c
+++ b/app/test-eventdev/test_perf_common.c
@@ -129,6 +129,7 @@ perf_event_timer_producer(void *arg)
 	rte_delay_ms(1000);
 	printf("%s(): lcore %d Average event timer arm latency = %.3f us\n",
-			__func__, rte_lcore_id(), (float)(arm_latency / count) /
-			(rte_get_timer_hz() / 1000000));
+			__func__, rte_lcore_id(),
+			count ? (float)(arm_latency / count) /
+			(rte_get_timer_hz() / 1000000) : 0);
 	return 0;
 }
@@ -190,6 +191,7 @@ perf_event_timer_producer_burst(void *arg)
 	rte_delay_ms(1000);
 	printf("%s(): lcore %d Average event timer arm latency = %.3f us\n",
-			__func__, rte_lcore_id(), (float)(arm_latency / count) /
-			(rte_get_timer_hz() / 1000000));
+			__func__, rte_lcore_id(),
+			count ? (float)(arm_latency / count) /
+			(rte_get_timer_hz() / 1000000) : 0);
 	return 0;
 }
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:16.652574108 +0000
+++ 0050-app-eventdev-fix-divide-by-zero.patch	2019-12-11 21:24:12.709650349 +0000
@@ -1 +1 @@
-From 93b7794b83524b322d03634969f77d767dec13f1 Mon Sep 17 00:00:00 2001
+From e3edd018212bd1f91a69370b52012d4cea15a360 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 93b7794b83524b322d03634969f77d767dec13f1 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index e7cf75a7d..b3af4bfec 100644
+index f93729a12..81553a7b1 100644
@@ -22 +23 @@
-@@ -134,6 +134,7 @@ perf_event_timer_producer(void *arg)
+@@ -129,6 +129,7 @@ perf_event_timer_producer(void *arg)
@@ -32 +33 @@
-@@ -195,6 +196,7 @@ perf_event_timer_producer_burst(void *arg)
+@@ -190,6 +191,7 @@ perf_event_timer_producer_burst(void *arg)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'app/eventdev: check function errors' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (48 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'app/eventdev: fix divide by zero' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'app/crypto-perf: fix input of AEAD decrypt' " Kevin Traynor
                   ` (18 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Pavan Nikhilesh; +Cc: Jerin Jacob, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/f34a476df925db301df9f74e2b5007392b09ae8a

Thanks.

Kevin.

---
From f34a476df925db301df9f74e2b5007392b09ae8a Mon Sep 17 00:00:00 2001
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Date: Fri, 22 Nov 2019 00:52:39 +0530
Subject: [PATCH] app/eventdev: check function errors

[ upstream commit a8d88bfbce00b6f3b1e4c4a3a4464954a21372dd ]

Fix unchecked return values reported by coverity.

Coverity Issue: 336861
Coverity Issue: 349906
Fixes: 032a965a8f1d ("app/eventdev: support Tx adapter")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
---
 app/test-eventdev/test_pipeline_common.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/app/test-eventdev/test_pipeline_common.c b/app/test-eventdev/test_pipeline_common.c
index 5db3ffde1..c988da28c 100644
--- a/app/test-eventdev/test_pipeline_common.c
+++ b/app/test-eventdev/test_pipeline_common.c
@@ -160,4 +160,5 @@ pipeline_ethdev_setup(struct evt_test *test, struct evt_options *opt)
 {
 	uint16_t i;
+	int ret;
 	uint8_t nb_queues = 1;
 	struct test_pipeline *t = evt_test_priv(test);
@@ -188,5 +189,10 @@ pipeline_ethdev_setup(struct evt_test *test, struct evt_options *opt)
 		uint32_t caps = 0;
 
-		rte_event_eth_tx_adapter_caps_get(opt->dev_id, i, &caps);
+		ret = rte_event_eth_tx_adapter_caps_get(opt->dev_id, i, &caps);
+		if (ret != 0) {
+			evt_err("failed to get event tx adapter[%d] caps", i);
+			return ret;
+		}
+
 		if (!(caps & RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT))
 			t->internal_port = 0;
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:16.718999362 +0000
+++ 0051-app-eventdev-check-function-errors.patch	2019-12-11 21:24:12.710650329 +0000
@@ -1 +1 @@
-From a8d88bfbce00b6f3b1e4c4a3a4464954a21372dd Mon Sep 17 00:00:00 2001
+From f34a476df925db301df9f74e2b5007392b09ae8a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a8d88bfbce00b6f3b1e4c4a3a4464954a21372dd ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -16,2 +17,2 @@
- app/test-eventdev/test_pipeline_common.c | 17 ++++++++++++++---
- 1 file changed, 14 insertions(+), 3 deletions(-)
+ app/test-eventdev/test_pipeline_common.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
@@ -20 +21 @@
-index 160461fb2..fa91bf229 100644
+index 5db3ffde1..c988da28c 100644
@@ -23 +24,7 @@
-@@ -197,5 +197,10 @@ pipeline_ethdev_setup(struct evt_test *test, struct evt_options *opt)
+@@ -160,4 +160,5 @@ pipeline_ethdev_setup(struct evt_test *test, struct evt_options *opt)
+ {
+ 	uint16_t i;
++	int ret;
+ 	uint8_t nb_queues = 1;
+ 	struct test_pipeline *t = evt_test_priv(test);
+@@ -188,5 +189,10 @@ pipeline_ethdev_setup(struct evt_test *test, struct evt_options *opt)
@@ -35,20 +41,0 @@
-@@ -425,5 +430,5 @@ pipeline_mempool_setup(struct evt_test *test, struct evt_options *opt)
- {
- 	struct test_pipeline *t = evt_test_priv(test);
--	int i;
-+	int i, ret;
- 
- 	if (!opt->mbuf_sz)
-@@ -438,5 +443,11 @@ pipeline_mempool_setup(struct evt_test *test, struct evt_options *opt)
- 
- 		memset(&dev_info, 0, sizeof(dev_info));
--		rte_eth_dev_info_get(i, &dev_info);
-+		ret = rte_eth_dev_info_get(i, &dev_info);
-+		if (ret != 0) {
-+			evt_err("Error during getting device (port %u) info: %s\n",
-+				i, strerror(-ret));
-+			return ret;
-+		}
-+
- 		if (dev_info.rx_desc_lim.nb_mtu_seg_max != UINT16_MAX &&
- 				dev_info.rx_desc_lim.nb_mtu_seg_max != 0) {


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'app/crypto-perf: fix input of AEAD decrypt' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (49 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'app/eventdev: check function errors' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'doc: fix l2fwd-crypto usage in CCP guide' " Kevin Traynor
                   ` (17 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Archana Muniganti; +Cc: Anoob Joseph, Akhil Goyal, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/f8b624a8af413ad0722410faa1184a6ecfe27f61

Thanks.

Kevin.

---
From f8b624a8af413ad0722410faa1184a6ecfe27f61 Mon Sep 17 00:00:00 2001
From: Archana Muniganti <marchana@marvell.com>
Date: Thu, 21 Nov 2019 16:44:27 +0530
Subject: [PATCH] app/crypto-perf: fix input of AEAD decrypt

[ upstream commit 7f9816b9b2589625cb4b0e98a3d770c44717d633 ]

In AEAD decrypt (verify mode), test data should point to
cipher text instead of plain text

Fixes: 5b2b0a740fba ("app/crypto-perf: overwrite mbuf when verifying")

Signed-off-by: Archana Muniganti <marchana@marvell.com>
Acked-by: Anoob Joseph <anoobj@marvell.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
---
 app/test-crypto-perf/cperf_test_verify.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/app/test-crypto-perf/cperf_test_verify.c b/app/test-crypto-perf/cperf_test_verify.c
index 2f11b73a1..1e626d7f1 100644
--- a/app/test-crypto-perf/cperf_test_verify.c
+++ b/app/test-crypto-perf/cperf_test_verify.c
@@ -203,9 +203,17 @@ cperf_mbuf_set(struct rte_mbuf *mbuf,
 	uint32_t segment_sz = options->segment_sz;
 	uint8_t *mbuf_data;
-	uint8_t *test_data =
-			(options->cipher_op == RTE_CRYPTO_CIPHER_OP_ENCRYPT) ?
+	uint8_t *test_data;
+	uint32_t remaining_bytes = options->max_buffer_size;
+
+	if (options->op_type == CPERF_AEAD) {
+		test_data = (options->aead_op == RTE_CRYPTO_AEAD_OP_ENCRYPT) ?
 					test_vector->plaintext.data :
 					test_vector->ciphertext.data;
-	uint32_t remaining_bytes = options->max_buffer_size;
+	} else {
+		test_data =
+			(options->cipher_op == RTE_CRYPTO_CIPHER_OP_ENCRYPT) ?
+				test_vector->plaintext.data :
+				test_vector->ciphertext.data;
+	}
 
 	while (remaining_bytes) {
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:16.801571116 +0000
+++ 0052-app-crypto-perf-fix-input-of-AEAD-decrypt.patch	2019-12-11 21:24:12.711650308 +0000
@@ -1 +1 @@
-From 7f9816b9b2589625cb4b0e98a3d770c44717d633 Mon Sep 17 00:00:00 2001
+From f8b624a8af413ad0722410faa1184a6ecfe27f61 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 7f9816b9b2589625cb4b0e98a3d770c44717d633 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index bbdf37d05..833bc9a55 100644
+index 2f11b73a1..1e626d7f1 100644
@@ -23 +24 @@
-@@ -204,9 +204,17 @@ cperf_mbuf_set(struct rte_mbuf *mbuf,
+@@ -203,9 +203,17 @@ cperf_mbuf_set(struct rte_mbuf *mbuf,


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'doc: fix l2fwd-crypto usage in CCP guide' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (50 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'app/crypto-perf: fix input of AEAD decrypt' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'crypto/ccp: fix maximum queues and burst size' " Kevin Traynor
                   ` (16 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Amaranath Somalapuram; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/3939d49128e2d713be8baa51fe083341b55f84e1

Thanks.

Kevin.

---
From 3939d49128e2d713be8baa51fe083341b55f84e1 Mon Sep 17 00:00:00 2001
From: Amaranath Somalapuram <asomalap@amd.com>
Date: Fri, 22 Nov 2019 12:15:45 +0530
Subject: [PATCH] doc: fix l2fwd-crypto usage in CCP guide

[ upstream commit 1151b4ae2d02cd5a1177a748ee7e5945b2416f34 ]

Update the CCP doc for fixing description of some parameter,
Changing AES_CBC to aes-cbc, SHA1_HMAC to sha1-hmac.

Fixes: 4433ced9aa ("doc: add AMD CCP guide")

Signed-off-by: Amaranath Somalapuram <asomalap@amd.com>
---
 doc/guides/cryptodevs/ccp.rst | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/doc/guides/cryptodevs/ccp.rst b/doc/guides/cryptodevs/ccp.rst
index 034d20367..a43fe92de 100644
--- a/doc/guides/cryptodevs/ccp.rst
+++ b/doc/guides/cryptodevs/ccp.rst
@@ -110,12 +110,12 @@ To validate ccp pmd, l2fwd-crypto example can be used with following command:
 .. code-block:: console
 
-	sudo ./build/l2fwd-crypto -l 1 -n 4 --vdev "crypto_ccp" -- -p 0x1
-	--chain CIPHER_HASH --cipher_op ENCRYPT --cipher_algo AES_CBC
-	--cipher_key 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f
-	--iv 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:ff
-	--auth_op GENERATE --auth_algo SHA1_HMAC
-	--auth_key 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11
-	:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11
-	:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11
+        sudo ./build/l2fwd-crypto -l 1 -n 4 --vdev "crypto_ccp" -- -p 0x1
+        --chain CIPHER_HASH --cipher_op ENCRYPT --cipher_algo aes-cbc
+        --cipher_key 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f
+        --cipher_iv 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:ff
+        --auth_op GENERATE --auth_algo sha1-hmac
+        --auth_key 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11
+        :11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11
+        :11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11
 
 The CCP PMD also supports computing authentication over CPU with cipher offloaded to CCP.
@@ -125,12 +125,12 @@ following:
 .. code-block:: console
 
-	sudo ./build/l2fwd-crypto -l 1 -n 4 --vdev "crypto_ccp,ccp_auth_opt=1" -- -p 0x1
-	--chain CIPHER_HASH --cipher_op ENCRYPT --cipher_algo AES_CBC
-	--cipher_key 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f
-	--iv 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:ff
-	--auth_op GENERATE --auth_algo SHA1_HMAC
-	--auth_key 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11
-	:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11
-	:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11
+        sudo ./build/l2fwd-crypto -l 1 -n 4 --vdev "crypto_ccp,ccp_auth_opt=1" -- -p 0x1
+        --chain CIPHER_HASH --cipher_op ENCRYPT --cipher_algo aes-cbc
+        --cipher_key 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f
+        --cipher_iv 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:ff
+        --auth_op GENERATE --auth_algo sha1-hmac
+        --auth_key 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11
+        :11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11
+        :11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11
 
 Limitations
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:16.879112182 +0000
+++ 0053-doc-fix-l2fwd-crypto-usage-in-CCP-guide.patch	2019-12-11 21:24:12.711650308 +0000
@@ -1 +1 @@
-From 1151b4ae2d02cd5a1177a748ee7e5945b2416f34 Mon Sep 17 00:00:00 2001
+From 3939d49128e2d713be8baa51fe083341b55f84e1 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1151b4ae2d02cd5a1177a748ee7e5945b2416f34 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'crypto/ccp: fix maximum queues and burst size' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (51 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'doc: fix l2fwd-crypto usage in CCP guide' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'crypto/ccp: fix CPU authentication crash' " Kevin Traynor
                   ` (15 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Amaranath Somalapuram; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/7464c5f639362cff0fa7311937f1ae6f59c1ed1f

Thanks.

Kevin.

---
From 7464c5f639362cff0fa7311937f1ae6f59c1ed1f Mon Sep 17 00:00:00 2001
From: Amaranath Somalapuram <asomalap@amd.com>
Date: Fri, 22 Nov 2019 12:16:15 +0530
Subject: [PATCH] crypto/ccp: fix maximum queues and burst size

[ upstream commit 0121f275f871a164de26966bdf0897b57e7ffabf ]

CCP driver crash when running l2fwd
issue happen when changing MAX_PKT_BURST 32 to 256
increasing the CCP qp to 8 and CCP_MAX_BURST to 256

Fixes: ef4b04f87f ("crypto/ccp: support device init")

Signed-off-by: Amaranath Somalapuram <asomalap@amd.com>
---
 drivers/crypto/ccp/ccp_pmd_private.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/ccp/ccp_pmd_private.h b/drivers/crypto/ccp/ccp_pmd_private.h
index 79752f687..2a2a6ba54 100644
--- a/drivers/crypto/ccp/ccp_pmd_private.h
+++ b/drivers/crypto/ccp/ccp_pmd_private.h
@@ -32,7 +32,7 @@
 
 /**< Maximum queue pairs supported by CCP PMD */
-#define CCP_PMD_MAX_QUEUE_PAIRS	1
+#define CCP_PMD_MAX_QUEUE_PAIRS	8
 #define CCP_NB_MAX_DESCRIPTORS 1024
-#define CCP_MAX_BURST 64
+#define CCP_MAX_BURST 256
 
 #include "ccp_dev.h"
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:16.957778692 +0000
+++ 0054-crypto-ccp-fix-maximum-queues-and-burst-size.patch	2019-12-11 21:24:12.711650308 +0000
@@ -1 +1 @@
-From 0121f275f871a164de26966bdf0897b57e7ffabf Mon Sep 17 00:00:00 2001
+From 7464c5f639362cff0fa7311937f1ae6f59c1ed1f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0121f275f871a164de26966bdf0897b57e7ffabf ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 7f2979e89..781050c31 100644
+index 79752f687..2a2a6ba54 100644


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'crypto/ccp: fix CPU authentication crash' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (52 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'crypto/ccp: fix maximum queues and burst size' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'crypto/ccp: fix scheduling of burst' " Kevin Traynor
                   ` (14 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Amaranath Somalapuram; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/2ae8d833735ff62d3df49f69e59bce15a0705a19

Thanks.

Kevin.

---
From 2ae8d833735ff62d3df49f69e59bce15a0705a19 Mon Sep 17 00:00:00 2001
From: Amaranath Somalapuram <asomalap@amd.com>
Date: Fri, 22 Nov 2019 12:16:47 +0530
Subject: [PATCH] crypto/ccp: fix CPU authentication crash

[ upstream commit b3d1a3c66da386955966d512a4a6fe39bda1be78 ]

when ccp_auth_opt=1 is set and if authentication error occurred,
ccp driver crash. The enqueue referance count nb_ops miss match
with dequeue nb_ops on authentication error.

Fixes: e0d88a394e ("crypto/ccp: support run-time CPU based auth")

Signed-off-by: Amaranath Somalapuram <asomalap@amd.com>
---
 drivers/crypto/ccp/ccp_crypto.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/crypto/ccp/ccp_crypto.c b/drivers/crypto/ccp/ccp_crypto.c
index 19ae9153d..1837c8543 100644
--- a/drivers/crypto/ccp/ccp_crypto.c
+++ b/drivers/crypto/ccp/ccp_crypto.c
@@ -2739,5 +2739,5 @@ process_ops_to_enqueue(struct ccp_qp *qp,
 				if (op[i]->status !=
 				    RTE_CRYPTO_OP_STATUS_SUCCESS)
-					continue;
+					CCP_LOG_ERR("RTE_CRYPTO_OP_STATUS_AUTH_FAILED");
 			} else
 				result = ccp_crypto_auth(op[i], cmd_q, b_info);
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:17.031722031 +0000
+++ 0055-crypto-ccp-fix-CPU-authentication-crash.patch	2019-12-11 21:24:12.714650246 +0000
@@ -1 +1 @@
-From b3d1a3c66da386955966d512a4a6fe39bda1be78 Mon Sep 17 00:00:00 2001
+From 2ae8d833735ff62d3df49f69e59bce15a0705a19 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit b3d1a3c66da386955966d512a4a6fe39bda1be78 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'crypto/ccp: fix scheduling of burst' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (53 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'crypto/ccp: fix CPU authentication crash' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'crypto/ccp: fix digest size capabilities' " Kevin Traynor
                   ` (13 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Amaranath Somalapuram; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/c84bea128755abc12e7684eede9b4821da8fa7cf

Thanks.

Kevin.

---
From c84bea128755abc12e7684eede9b4821da8fa7cf Mon Sep 17 00:00:00 2001
From: Amaranath Somalapuram <asomalap@amd.com>
Date: Fri, 22 Nov 2019 12:17:17 +0530
Subject: [PATCH] crypto/ccp: fix scheduling of burst

[ upstream commit 727758576714ea4de4df01bca53978f321ae323a ]

CCP driver was scheduling only one CCP in a single burst(enqueue).
Effective throughput was limited to 1 CCP performance.
Scheduling multiple ccp within one burst will increase the ccp performance.
this changes will divide the enqueue packets equally among the multiple CCP

Fixes: e0d88a394e ("crypto/ccp: support run-time CPU based auth")

Signed-off-by: Amaranath Somalapuram <asomalap@amd.com>
---
 drivers/crypto/ccp/ccp_crypto.c      | 22 +++++++----
 drivers/crypto/ccp/ccp_crypto.h      |  7 +++-
 drivers/crypto/ccp/ccp_dev.h         |  2 +-
 drivers/crypto/ccp/ccp_pmd_private.h |  2 +
 drivers/crypto/ccp/rte_ccp_pmd.c     | 57 +++++++++++++++++++---------
 5 files changed, 63 insertions(+), 27 deletions(-)

diff --git a/drivers/crypto/ccp/ccp_crypto.c b/drivers/crypto/ccp/ccp_crypto.c
index 1837c8543..4256734d1 100644
--- a/drivers/crypto/ccp/ccp_crypto.c
+++ b/drivers/crypto/ccp/ccp_crypto.c
@@ -2681,5 +2681,7 @@ process_ops_to_enqueue(struct ccp_qp *qp,
 		       struct ccp_queue *cmd_q,
 		       uint16_t nb_ops,
-		       int slots_req)
+		       uint16_t total_nb_ops,
+		       int slots_req,
+		       uint16_t b_idx)
 {
 	int i, result = 0;
@@ -2702,4 +2704,5 @@ process_ops_to_enqueue(struct ccp_qp *qp,
 	/* populate batch info necessary for dequeue */
 	b_info->op_idx = 0;
+	b_info->b_idx = 0;
 	b_info->lsb_buf_idx = 0;
 	b_info->desccnt = 0;
@@ -2711,5 +2714,5 @@ process_ops_to_enqueue(struct ccp_qp *qp,
 	b_info->head_offset = (uint32_t)(cmd_q->qbase_phys_addr + cmd_q->qidx *
 					 Q_DESC_SIZE);
-	for (i = 0; i < nb_ops; i++) {
+	for (i = b_idx; i < (nb_ops+b_idx); i++) {
 		session = (struct ccp_session *)get_sym_session_private_data(
 						 op[i]->sym->session,
@@ -2763,4 +2766,6 @@ process_ops_to_enqueue(struct ccp_qp *qp,
 
 	b_info->opcnt = i;
+	b_info->b_idx = b_idx;
+	b_info->total_nb_ops = total_nb_ops;
 	b_info->tail_offset = (uint32_t)(cmd_q->qbase_phys_addr + cmd_q->qidx *
 					 Q_DESC_SIZE);
@@ -2777,5 +2782,5 @@ process_ops_to_enqueue(struct ccp_qp *qp,
 
 	EVP_MD_CTX_destroy(auth_ctx);
-	return i;
+	return i-b_idx;
 }
 
@@ -2862,6 +2867,6 @@ ccp_prepare_ops(struct ccp_qp *qp,
 	min_ops = RTE_MIN(nb_ops, b_info->opcnt);
 
-	for (i = 0; i < min_ops; i++) {
-		op_d[i] = b_info->op[b_info->op_idx++];
+	for (i =  b_info->b_idx; i < min_ops; i++) {
+		op_d[i] = b_info->op[b_info->b_idx + b_info->op_idx++];
 		session = (struct ccp_session *)get_sym_session_private_data(
 						 op_d[i]->sym->session,
@@ -2904,5 +2909,6 @@ int
 process_ops_to_dequeue(struct ccp_qp *qp,
 		       struct rte_crypto_op **op,
-		       uint16_t nb_ops)
+		       uint16_t nb_ops,
+		       uint16_t *total_nb_ops)
 {
 	struct ccp_batch_info *b_info;
@@ -2919,4 +2925,5 @@ process_ops_to_dequeue(struct ccp_qp *qp,
 	if (b_info->auth_ctr == b_info->opcnt)
 		goto success;
+	*total_nb_ops = b_info->total_nb_ops;
 	cur_head_offset = CCP_READ_REG(b_info->cmd_q->reg_base,
 				       CMD_Q_HEAD_LO_BASE);
@@ -2928,5 +2935,5 @@ process_ops_to_dequeue(struct ccp_qp *qp,
 			return 0;
 		}
-	} else {
+	} else if (b_info->tail_offset != b_info->head_offset) {
 		if ((cur_head_offset >= b_info->head_offset) ||
 		    (cur_head_offset < b_info->tail_offset)) {
@@ -2938,4 +2945,5 @@ process_ops_to_dequeue(struct ccp_qp *qp,
 
 success:
+	*total_nb_ops = b_info->total_nb_ops;
 	nb_ops = ccp_prepare_ops(qp, op, b_info, nb_ops);
 	rte_atomic64_add(&b_info->cmd_q->free_slots, b_info->desccnt);
diff --git a/drivers/crypto/ccp/ccp_crypto.h b/drivers/crypto/ccp/ccp_crypto.h
index 882b398ac..8e6d03efc 100644
--- a/drivers/crypto/ccp/ccp_crypto.h
+++ b/drivers/crypto/ccp/ccp_crypto.h
@@ -354,5 +354,7 @@ int process_ops_to_enqueue(struct ccp_qp *qp,
 			   struct ccp_queue *cmd_q,
 			   uint16_t nb_ops,
-			   int slots_req);
+			   uint16_t total_nb_ops,
+			   int slots_req,
+			   uint16_t b_idx);
 
 /**
@@ -366,5 +368,6 @@ int process_ops_to_enqueue(struct ccp_qp *qp,
 int process_ops_to_dequeue(struct ccp_qp *qp,
 			   struct rte_crypto_op **op,
-			   uint16_t nb_ops);
+			   uint16_t nb_ops,
+			   uint16_t *total_nb_ops);
 
 
diff --git a/drivers/crypto/ccp/ccp_dev.h b/drivers/crypto/ccp/ccp_dev.h
index de3e4bcc6..f4ad9eafd 100644
--- a/drivers/crypto/ccp/ccp_dev.h
+++ b/drivers/crypto/ccp/ccp_dev.h
@@ -60,5 +60,5 @@
 #define CMD_Q_SIZE			0x1F
 #define CMD_Q_SHIFT			3
-#define COMMANDS_PER_QUEUE		2048
+#define COMMANDS_PER_QUEUE		8192
 
 #define QUEUE_SIZE_VAL                  ((ffs(COMMANDS_PER_QUEUE) - 2) & \
diff --git a/drivers/crypto/ccp/ccp_pmd_private.h b/drivers/crypto/ccp/ccp_pmd_private.h
index 2a2a6ba54..6704e39ab 100644
--- a/drivers/crypto/ccp/ccp_pmd_private.h
+++ b/drivers/crypto/ccp/ccp_pmd_private.h
@@ -51,6 +51,8 @@ struct ccp_batch_info {
 	/**< optable populated at enque time from app*/
 	int op_idx;
+	uint16_t b_idx;
 	struct ccp_queue *cmd_q;
 	uint16_t opcnt;
+	uint16_t total_nb_ops;
 	/**< no. of crypto ops in batch*/
 	int desccnt;
diff --git a/drivers/crypto/ccp/rte_ccp_pmd.c b/drivers/crypto/ccp/rte_ccp_pmd.c
index 92d8a9559..6065ad0f7 100644
--- a/drivers/crypto/ccp/rte_ccp_pmd.c
+++ b/drivers/crypto/ccp/rte_ccp_pmd.c
@@ -22,4 +22,5 @@
 static unsigned int ccp_pmd_init_done;
 uint8_t ccp_cryptodev_driver_id;
+uint8_t cryptodev_cnt;
 
 struct ccp_pmd_init_params {
@@ -201,4 +202,5 @@ ccp_pmd_enqueue_burst(void *queue_pair, struct rte_crypto_op **ops,
 	struct rte_cryptodev *dev = qp->dev;
 	uint16_t i, enq_cnt = 0, slots_req = 0;
+	uint16_t tmp_ops = nb_ops, b_idx, cur_ops = 0;
 
 	if (nb_ops == 0)
@@ -207,22 +209,37 @@ ccp_pmd_enqueue_burst(void *queue_pair, struct rte_crypto_op **ops,
 	if (unlikely(rte_ring_full(qp->processed_pkts) != 0))
 		return 0;
+	if (tmp_ops >= cryptodev_cnt)
+		cur_ops = nb_ops / cryptodev_cnt + (nb_ops)%cryptodev_cnt;
+	else
+		cur_ops = tmp_ops;
+	while (tmp_ops)	{
+		b_idx = nb_ops - tmp_ops;
+		slots_req = 0;
+		if (cur_ops <= tmp_ops) {
+			tmp_ops -= cur_ops;
+		} else {
+			cur_ops = tmp_ops;
+			tmp_ops = 0;
+		}
+		for (i = 0; i < cur_ops; i++) {
+			sess = get_ccp_session(qp, ops[i + b_idx]);
+			if (unlikely(sess == NULL) && (i == 0)) {
+				qp->qp_stats.enqueue_err_count++;
+				return 0;
+			} else if (sess == NULL) {
+				cur_ops = i;
+				break;
+			}
+			slots_req += ccp_compute_slot_count(sess);
+		}
 
-	for (i = 0; i < nb_ops; i++) {
-		sess = get_ccp_session(qp, ops[i]);
-		if (unlikely(sess == NULL) && (i == 0)) {
-			qp->qp_stats.enqueue_err_count++;
+		cmd_q = ccp_allot_queue(dev, slots_req);
+		if (unlikely(cmd_q == NULL))
 			return 0;
-		} else if (sess == NULL) {
-			nb_ops = i;
-			break;
-		}
-		slots_req += ccp_compute_slot_count(sess);
+		enq_cnt += process_ops_to_enqueue(qp, ops, cmd_q, cur_ops,
+				nb_ops, slots_req, b_idx);
+		i++;
 	}
 
-	cmd_q = ccp_allot_queue(dev, slots_req);
-	if (unlikely(cmd_q == NULL))
-		return 0;
-
-	enq_cnt = process_ops_to_enqueue(qp, ops, cmd_q, nb_ops, slots_req);
 	qp->qp_stats.enqueued_count += enq_cnt;
 	return enq_cnt;
@@ -234,7 +251,14 @@ ccp_pmd_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,
 {
 	struct ccp_qp *qp = queue_pair;
-	uint16_t nb_dequeued = 0, i;
+	uint16_t nb_dequeued = 0, i, total_nb_ops;
 
-	nb_dequeued = process_ops_to_dequeue(qp, ops, nb_ops);
+	nb_dequeued = process_ops_to_dequeue(qp, ops, nb_ops, &total_nb_ops);
+
+	if (total_nb_ops) {
+		while (nb_dequeued != total_nb_ops) {
+			nb_dequeued = process_ops_to_dequeue(qp,
+					ops, nb_ops, &total_nb_ops);
+		}
+	}
 
 	/* Free session if a session-less crypto op */
@@ -289,5 +313,4 @@ cryptodev_ccp_create(const char *name,
 	struct rte_cryptodev *dev;
 	struct ccp_private *internals;
-	uint8_t cryptodev_cnt = 0;
 
 	if (init_params->def_p.name[0] == '\0')
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:17.105754270 +0000
+++ 0056-crypto-ccp-fix-scheduling-of-burst.patch	2019-12-11 21:24:12.720650122 +0000
@@ -1 +1 @@
-From 727758576714ea4de4df01bca53978f321ae323a Mon Sep 17 00:00:00 2001
+From c84bea128755abc12e7684eede9b4821da8fa7cf Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 727758576714ea4de4df01bca53978f321ae323a ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -132 +133 @@
-index 781050c31..1c4118ee3 100644
+index 2a2a6ba54..6704e39ab 100644
@@ -145 +146 @@
-index 4810d799c..38cb1fe3d 100644
+index 92d8a9559..6065ad0f7 100644
@@ -148 +149 @@
-@@ -23,4 +23,5 @@
+@@ -22,4 +22,5 @@
@@ -154 +155 @@
-@@ -202,4 +203,5 @@ ccp_pmd_enqueue_burst(void *queue_pair, struct rte_crypto_op **ops,
+@@ -201,4 +202,5 @@ ccp_pmd_enqueue_burst(void *queue_pair, struct rte_crypto_op **ops,
@@ -160 +161 @@
-@@ -208,22 +210,37 @@ ccp_pmd_enqueue_burst(void *queue_pair, struct rte_crypto_op **ops,
+@@ -207,22 +209,37 @@ ccp_pmd_enqueue_burst(void *queue_pair, struct rte_crypto_op **ops,
@@ -212 +213 @@
-@@ -235,7 +252,14 @@ ccp_pmd_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,
+@@ -234,7 +251,14 @@ ccp_pmd_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,
@@ -229 +230 @@
-@@ -297,5 +321,4 @@ cryptodev_ccp_create(const char *name,
+@@ -289,5 +313,4 @@ cryptodev_ccp_create(const char *name,


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'crypto/ccp: fix digest size capabilities' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (54 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'crypto/ccp: fix scheduling of burst' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'malloc: fix memory element size in case of padding' " Kevin Traynor
                   ` (12 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Amaranath Somalapuram; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/32a21ec50d8ad0a19fc3bb7e1d46643fb84cf0c0

Thanks.

Kevin.

---
From 32a21ec50d8ad0a19fc3bb7e1d46643fb84cf0c0 Mon Sep 17 00:00:00 2001
From: Amaranath Somalapuram <asomalap@amd.com>
Date: Fri, 22 Nov 2019 12:17:47 +0530
Subject: [PATCH] crypto/ccp: fix digest size capabilities

[ upstream commit 4f8c7b4fcf44a2f220e464762a4042d4643d604f ]

CCP can support varied digest sizes ranging from 1 to some max value
But the current code support only fixed max values.
This patch updates the minimum digest sizes to 1

Fixes: e0d88a394e ("crypto/ccp: support run-time CPU based auth")

Signed-off-by: Amaranath Somalapuram <asomalap@amd.com>
---
 drivers/crypto/ccp/ccp_pmd_ops.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/drivers/crypto/ccp/ccp_pmd_ops.c b/drivers/crypto/ccp/ccp_pmd_ops.c
index 6984913f1..98a06dc6c 100644
--- a/drivers/crypto/ccp/ccp_pmd_ops.c
+++ b/drivers/crypto/ccp/ccp_pmd_ops.c
@@ -48,7 +48,7 @@
 				 },                                     \
 				 .digest_size = {                       \
-					 .min = 20,                     \
+					 .min = 1,                      \
 					 .max = 20,                     \
-					 .increment = 0                 \
+					 .increment = 1                 \
 				 },                                     \
 				 .aad_size = { 0 }                      \
@@ -90,7 +90,7 @@
 				 },                                     \
 				 .digest_size = {                       \
-					 .min = 28,                     \
+					 .min = 1,                     \
 					 .max = 28,                     \
-					 .increment = 0                 \
+					 .increment = 1                 \
 				 },                                     \
 				 .aad_size = { 0 }                      \
@@ -174,7 +174,7 @@
 				 },                                     \
 				 .digest_size = {                       \
-					 .min = 32,                     \
+					 .min = 1,                     \
 					 .max = 32,                     \
-					 .increment = 0                 \
+					 .increment = 1                 \
 				 },                                     \
 				 .aad_size = { 0 }                      \
@@ -258,7 +258,7 @@
 				 },                                     \
 				 .digest_size = {                       \
-					 .min = 48,                     \
+					 .min = 1,                     \
 					 .max = 48,                     \
-					 .increment = 0                 \
+					 .increment = 1                 \
 				 },                                     \
 				 .aad_size = { 0 }                      \
@@ -342,7 +342,7 @@
 				 },                                     \
 				 .digest_size = {                       \
-					 .min = 64,                     \
+					 .min = 1,                     \
 					 .max = 64,                     \
-					 .increment = 0                 \
+					 .increment = 1                 \
 				 },                                     \
 				 .aad_size = { 0 }                      \
@@ -384,7 +384,7 @@
 				 },                                     \
 				 .digest_size = {                       \
-					 .min = 64,                     \
+					 .min = 1,                     \
 					 .max = 64,                     \
-					 .increment = 0                 \
+					 .increment = 1                 \
 				 },                                     \
 				 .aad_size = { 0 }                      \
@@ -537,7 +537,7 @@
 				 },					\
 				 .digest_size = {			\
-					 .min = 16,			\
+					 .min = 1,			\
 					 .max = 16,			\
-					 .increment = 0			\
+					 .increment = 1			\
 				 },					\
 				 .aad_size = { 0 }			\
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:17.182671526 +0000
+++ 0057-crypto-ccp-fix-digest-size-capabilities.patch	2019-12-11 21:24:12.721650101 +0000
@@ -1 +1 @@
-From 4f8c7b4fcf44a2f220e464762a4042d4643d604f Mon Sep 17 00:00:00 2001
+From 32a21ec50d8ad0a19fc3bb7e1d46643fb84cf0c0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4f8c7b4fcf44a2f220e464762a4042d4643d604f ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index d5041f0ec..a19e85ecb 100644
+index 6984913f1..98a06dc6c 100644


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'malloc: fix memory element size in case of padding' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (55 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'crypto/ccp: fix digest size capabilities' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'eal: fix header file install with meson' " Kevin Traynor
                   ` (11 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Xueming Li; +Cc: Anatoly Burakov, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/9fd62944eacc0ea34d7b60300f9e891c4a6f7359

Thanks.

Kevin.

---
From 9fd62944eacc0ea34d7b60300f9e891c4a6f7359 Mon Sep 17 00:00:00 2001
From: Xueming Li <xuemingl@mellanox.com>
Date: Thu, 21 Nov 2019 14:25:02 +0000
Subject: [PATCH] malloc: fix memory element size in case of padding

[ upstream commit 2808a12cc05375e986ee1c9bb956bad8288c2b5a ]

This patch fixes wrong inner memory element size when joining two
elements.

Fixes: af75078fece3 ("first public release")

Signed-off-by: Xueming Li <xuemingl@mellanox.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 lib/librte_eal/common/malloc_elem.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/librte_eal/common/malloc_elem.c b/lib/librte_eal/common/malloc_elem.c
index c92dc0ab6..24e1eb55f 100644
--- a/lib/librte_eal/common/malloc_elem.c
+++ b/lib/librte_eal/common/malloc_elem.c
@@ -469,4 +469,8 @@ join_elem(struct malloc_elem *elem1, struct malloc_elem *elem2)
 		elem1->heap->last = elem1;
 	elem1->next = next;
+	if (elem1->pad) {
+		struct malloc_elem *inner = RTE_PTR_ADD(elem1, elem1->pad);
+		inner->size = elem1->size - elem1->pad;
+	}
 }
 
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:17.261086342 +0000
+++ 0058-malloc-fix-memory-element-size-in-case-of-padding.patch	2019-12-11 21:24:12.722650081 +0000
@@ -1 +1 @@
-From 2808a12cc05375e986ee1c9bb956bad8288c2b5a Mon Sep 17 00:00:00 2001
+From 9fd62944eacc0ea34d7b60300f9e891c4a6f7359 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 2808a12cc05375e986ee1c9bb956bad8288c2b5a ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index afacb1813..885d00424 100644
+index c92dc0ab6..24e1eb55f 100644
@@ -22 +23 @@
-@@ -488,4 +488,8 @@ join_elem(struct malloc_elem *elem1, struct malloc_elem *elem2)
+@@ -469,4 +469,8 @@ join_elem(struct malloc_elem *elem1, struct malloc_elem *elem2)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'eal: fix header file install with meson' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (56 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'malloc: fix memory element size in case of padding' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/virtio-user: drop attribute unused for memory callback' " Kevin Traynor
                   ` (10 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Ali Alnubani; +Cc: Thomas Monjalon, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/354880696587303bd02bc438faf8539f14ee861d

Thanks.

Kevin.

---
From 354880696587303bd02bc438faf8539f14ee861d Mon Sep 17 00:00:00 2001
From: Ali Alnubani <alialnu@mellanox.com>
Date: Tue, 26 Nov 2019 15:38:36 +0000
Subject: [PATCH] eal: fix header file install with meson

[ upstream commit 64a525aad95b6a0d04c526d8253fe151aef866fb ]

The header file 'rte_vfio.h' might be required by some external apps.
This patch adds it to the list of common_headers so that it's
installed by meson.

Fixes: 610beca42ea4 ("build: remove library special cases")

Signed-off-by: Ali Alnubani <alialnu@mellanox.com>
Reviewed-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/librte_eal/common/meson.build | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/meson.build b/lib/librte_eal/common/meson.build
index 2a10d57d8..b95b81334 100644
--- a/lib/librte_eal/common/meson.build
+++ b/lib/librte_eal/common/meson.build
@@ -85,5 +85,6 @@ common_headers = files(
 	'include/rte_time.h',
 	'include/rte_uuid.h',
-	'include/rte_version.h')
+	'include/rte_version.h',
+	'include/rte_vfio.h')
 
 # special case install the generic headers, since they go in a subdir
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:17.321600157 +0000
+++ 0059-eal-fix-header-file-install-with-meson.patch	2019-12-11 21:24:12.723650060 +0000
@@ -1 +1 @@
-From 64a525aad95b6a0d04c526d8253fe151aef866fb Mon Sep 17 00:00:00 2001
+From 354880696587303bd02bc438faf8539f14ee861d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 64a525aad95b6a0d04c526d8253fe151aef866fb ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index d6a149bec..2b97715a2 100644
+index 2a10d57d8..b95b81334 100644
@@ -24 +25 @@
-@@ -87,5 +87,6 @@ common_headers = files(
+@@ -85,5 +85,6 @@ common_headers = files(


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/virtio-user: drop attribute unused for memory callback' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (57 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'eal: fix header file install with meson' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'doc: fix tap guide' " Kevin Traynor
                   ` (9 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Tiwei Bie; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/c269e973f9325690af27676edf648341462eb024

Thanks.

Kevin.

---
From c269e973f9325690af27676edf648341462eb024 Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Tue, 19 Nov 2019 15:12:24 +0800
Subject: [PATCH] net/virtio-user: drop attribute unused for memory callback

[ upstream commit 2286291df1007a1447dd3fc854e12a790a8353ba ]

The "addr" param has been used since the event callbacks are enabled
for external memory. So the "__rte_unused" should be dropped.

Besides, slightly refine the coding style by consistently assuming
tabs are 8 characters.

Fixes: f32c7c9de961 ("malloc: enable event callbacks for external memory")

Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/virtio/virtio_user/virtio_user_dev.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c b/drivers/net/virtio/virtio_user/virtio_user_dev.c
index 8e8adf6bb..91536c667 100644
--- a/drivers/net/virtio/virtio_user/virtio_user_dev.c
+++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c
@@ -307,7 +307,7 @@ virtio_user_fill_intr_handle(struct virtio_user_dev *dev)
 static void
 virtio_user_mem_event_cb(enum rte_mem_event type __rte_unused,
-						 const void *addr __rte_unused,
-						 size_t len __rte_unused,
-						 void *arg)
+			 const void *addr,
+			 size_t len __rte_unused,
+			 void *arg)
 {
 	struct virtio_user_dev *dev = arg;
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:17.403903979 +0000
+++ 0060-net-virtio-user-drop-attribute-unused-for-memory-cal.patch	2019-12-11 21:24:12.724650039 +0000
@@ -1 +1 @@
-From 2286291df1007a1447dd3fc854e12a790a8353ba Mon Sep 17 00:00:00 2001
+From c269e973f9325690af27676edf648341462eb024 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 2286291df1007a1447dd3fc854e12a790a8353ba ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index a4400e772..ea016e85d 100644
+index 8e8adf6bb..91536c667 100644
@@ -25 +26 @@
-@@ -316,7 +316,7 @@ virtio_user_fill_intr_handle(struct virtio_user_dev *dev)
+@@ -307,7 +307,7 @@ virtio_user_fill_intr_handle(struct virtio_user_dev *dev)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'doc: fix tap guide' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (58 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/virtio-user: drop attribute unused for memory callback' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/e1000: fix link status update' " Kevin Traynor
                   ` (8 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Andrzej Ostruszka; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/abb5b30ad8f71311a364a1001813172102c17562

Thanks.

Kevin.

---
From abb5b30ad8f71311a364a1001813172102c17562 Mon Sep 17 00:00:00 2001
From: Andrzej Ostruszka <aostruszka@marvell.com>
Date: Thu, 21 Nov 2019 14:27:01 +0100
Subject: [PATCH] doc: fix tap guide

[ upstream commit 781088dad55b840e04e699071d443f9ecfc208b3 ]

Corrected one typo and IP address according RFC5735.

Fixes: de96fe68ae95 ("net/tap: add basic flow API patterns and actions")

Signed-off-by: Andrzej Ostruszka <aostruszka@marvell.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 doc/guides/nics/tap.rst | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
index 14c669b7b..f21e76bba 100644
--- a/doc/guides/nics/tap.rst
+++ b/doc/guides/nics/tap.rst
@@ -77,5 +77,5 @@ Please change the IP addresses as you see fit.
 If routing is enabled on the host you can also communicate with the DPDK App
 over the internet via a standard socket layer application as long as you
-account for the protocol handing in the application.
+account for the protocol handling in the application.
 
 If you have a Network Stack in your DPDK application or something like it you
@@ -133,7 +133,7 @@ Examples of testpmd flow rules
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Drop packets for destination IP 192.168.0.1::
+Drop packets for destination IP 192.0.2.1::
 
-   testpmd> flow create 0 priority 1 ingress pattern eth / ipv4 dst is 1.1.1.1 \
+   testpmd> flow create 0 priority 1 ingress pattern eth / ipv4 dst is 192.0.2.1 \
             / end actions drop / end
 
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:17.476282615 +0000
+++ 0061-doc-fix-tap-guide.patch	2019-12-11 21:24:12.725650019 +0000
@@ -1 +1 @@
-From 781088dad55b840e04e699071d443f9ecfc208b3 Mon Sep 17 00:00:00 2001
+From abb5b30ad8f71311a364a1001813172102c17562 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 781088dad55b840e04e699071d443f9ecfc208b3 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index 85c7b895a..7e44f8462 100644
+index 14c669b7b..f21e76bba 100644


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/e1000: fix link status update' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (59 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'doc: fix tap guide' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/ixgbe: fix link status' " Kevin Traynor
                   ` (7 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Lunyuan Cui; +Cc: Xiaolong Ye, Wenzhuo Lu, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/14f605715a720372dab34c4ba9d38cd46942e3b3

Thanks.

Kevin.

---
From 14f605715a720372dab34c4ba9d38cd46942e3b3 Mon Sep 17 00:00:00 2001
From: Lunyuan Cui <lunyuanx.cui@intel.com>
Date: Wed, 20 Nov 2019 09:22:03 +0000
Subject: [PATCH] net/e1000: fix link status update

[ upstream commit e7c1d6b2d8f320732780783ce0999367e9b86957 ]

Meaningless to judge the link state according to the memset'ed
link variable, this patch fixes this logical issue.

In addition, this patch changes the variable from link_check to link_up
according to its real meaning.

Fixes: 80ba61115e77 ("net/e1000: use link status helper functions")

Signed-off-by: Lunyuan Cui <lunyuanx.cui@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
---
 drivers/net/e1000/em_ethdev.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
index 123c73053..28637c494 100644
--- a/drivers/net/e1000/em_ethdev.c
+++ b/drivers/net/e1000/em_ethdev.c
@@ -1116,7 +1116,7 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct rte_eth_link link;
-	int link_check, count;
+	int link_up, count;
 
-	link_check = 0;
+	link_up = 0;
 	hw->mac.get_link_status = 1;
 
@@ -1128,10 +1128,10 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)
 			/* Do the work to read phy */
 			e1000_check_for_link(hw);
-			link_check = !hw->mac.get_link_status;
+			link_up = !hw->mac.get_link_status;
 			break;
 
 		case e1000_media_type_fiber:
 			e1000_check_for_link(hw);
-			link_check = (E1000_READ_REG(hw, E1000_STATUS) &
+			link_up = (E1000_READ_REG(hw, E1000_STATUS) &
 					E1000_STATUS_LU);
 			break;
@@ -1139,5 +1139,5 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)
 		case e1000_media_type_internal_serdes:
 			e1000_check_for_link(hw);
-			link_check = hw->mac.serdes_has_link;
+			link_up = hw->mac.serdes_has_link;
 			break;
 
@@ -1145,5 +1145,5 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)
 			break;
 		}
-		if (link_check || wait_to_complete == 0)
+		if (link_up || wait_to_complete == 0)
 			break;
 		rte_delay_ms(EM_LINK_UPDATE_CHECK_INTERVAL);
@@ -1152,5 +1152,5 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)
 
 	/* Now we check if a transition has happened */
-	if (link_check && (link.link_status == ETH_LINK_DOWN)) {
+	if (link_up) {
 		uint16_t duplex, speed;
 		hw->mac.ops.get_link_up_info(hw, &speed, &duplex);
@@ -1162,5 +1162,5 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)
 		link.link_autoneg = !(dev->data->dev_conf.link_speeds &
 				ETH_LINK_SPEED_FIXED);
-	} else if (!link_check && (link.link_status == ETH_LINK_UP)) {
+	} else {
 		link.link_speed = ETH_SPEED_NUM_NONE;
 		link.link_duplex = ETH_LINK_HALF_DUPLEX;
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:17.543208913 +0000
+++ 0062-net-e1000-fix-link-status-update.patch	2019-12-11 21:24:12.727649978 +0000
@@ -1 +1 @@
-From e7c1d6b2d8f320732780783ce0999367e9b86957 Mon Sep 17 00:00:00 2001
+From 14f605715a720372dab34c4ba9d38cd46942e3b3 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e7c1d6b2d8f320732780783ce0999367e9b86957 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index 9a88b50b2..080cbe2df 100644
+index 123c73053..28637c494 100644
@@ -26 +27 @@
-@@ -1122,7 +1122,7 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)
+@@ -1116,7 +1116,7 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)
@@ -36 +37 @@
-@@ -1134,10 +1134,10 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)
+@@ -1128,10 +1128,10 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)
@@ -49 +50 @@
-@@ -1145,5 +1145,5 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)
+@@ -1139,5 +1139,5 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)
@@ -56 +57 @@
-@@ -1151,5 +1151,5 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)
+@@ -1145,5 +1145,5 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)
@@ -63 +64 @@
-@@ -1158,5 +1158,5 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)
+@@ -1152,5 +1152,5 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)
@@ -70 +71 @@
-@@ -1168,5 +1168,5 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)
+@@ -1162,5 +1162,5 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/ixgbe: fix link status' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (60 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/e1000: fix link status update' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/e1000: " Kevin Traynor
                   ` (6 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Lunyuan Cui; +Cc: Wenzhuo Lu, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/258c3b55257d9d58ee71c62111d176114a0d9552

Thanks.

Kevin.

---
From 258c3b55257d9d58ee71c62111d176114a0d9552 Mon Sep 17 00:00:00 2001
From: Lunyuan Cui <lunyuanx.cui@intel.com>
Date: Mon, 18 Nov 2019 15:37:44 +0000
Subject: [PATCH] net/ixgbe: fix link status

[ upstream commit c3f2fbff78cf5bd4f213b4f281251d401b09943f ]

The link status for 82599eb got from link status register was not
correct. Check the enable/disable flag of tx laser, set the link
status down if tx laser disabled. Then, we can get correct status.
But after port reset, tx laser register will be reset enable.
Link status will always be up. So set tx laser disable when port resets.

When hw->mac.autotry_restart is true, whether tx laser is disable or
enable, it will be set enable in ixgbe_flap_tx_laser_multispeed_fiber().
hw->mac.autotry_restart can be set true in both port init and port start.
Because we don't need this treatment before port starts, set
hw->mac.autotry_restart false when port init.

Fixes: 0408f47ba4d6 ("net/ixgbe: fix busy polling while fiber link update")

Signed-off-by: Lunyuan Cui <lunyuanx.cui@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index d099bc120..25460b072 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -1174,4 +1174,5 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
 #else
 	diag = ixgbe_init_hw(hw);
+	hw->mac.autotry_restart = false;
 #endif /* RTE_LIBRTE_IXGBE_BYPASS */
 
@@ -1279,4 +1280,6 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
 	ixgbe_enable_intr(eth_dev);
 
+	ixgbe_dev_set_link_down(eth_dev);
+
 	/* initialize filter info */
 	memset(filter_info, 0,
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:17.613157020 +0000
+++ 0063-net-ixgbe-fix-link-status.patch	2019-12-11 21:24:12.739649730 +0000
@@ -1 +1 @@
-From c3f2fbff78cf5bd4f213b4f281251d401b09943f Mon Sep 17 00:00:00 2001
+From 258c3b55257d9d58ee71c62111d176114a0d9552 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c3f2fbff78cf5bd4f213b4f281251d401b09943f ]
+
@@ -19 +20,0 @@
-Cc: stable@dpdk.org
@@ -28 +29 @@
-index 118bc7475..2c6fd0f13 100644
+index d099bc120..25460b072 100644
@@ -31 +32 @@
-@@ -1191,4 +1191,5 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
+@@ -1174,4 +1174,5 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
@@ -37 +38 @@
-@@ -1301,4 +1302,6 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
+@@ -1279,4 +1280,6 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/e1000: fix link status' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (61 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/ixgbe: fix link status' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/ifc: check VFIO query error' " Kevin Traynor
                   ` (5 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Lunyuan Cui; +Cc: Wenzhuo Lu, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/e12bbb4acc5e35b2f11ec7fae711c91a06627a12

Thanks.

Kevin.

---
From e12bbb4acc5e35b2f11ec7fae711c91a06627a12 Mon Sep 17 00:00:00 2001
From: Lunyuan Cui <lunyuanx.cui@intel.com>
Date: Wed, 13 Nov 2019 12:46:59 +0000
Subject: [PATCH] net/e1000: fix link status

[ upstream commit a407d7c2ddfe05d0f13ca6170b1b8849023347e9 ]

The link status got from link status register was not correct,
because register has been reset when ports reset.
After port reset, set the link status down.

Fixes: c431ec66c54c ("net/igb: support setting link up or down")

Signed-off-by: Lunyuan Cui <lunyuanx.cui@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
---
 drivers/net/e1000/igb_ethdev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
index 23b48d161..2c1f2314e 100644
--- a/drivers/net/e1000/igb_ethdev.c
+++ b/drivers/net/e1000/igb_ethdev.c
@@ -885,4 +885,6 @@ eth_igb_dev_init(struct rte_eth_dev *eth_dev)
 	igb_intr_enable(eth_dev);
 
+	eth_igb_dev_set_link_down(eth_dev);
+
 	/* initialize filter info */
 	memset(filter_info, 0,
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:17.691862204 +0000
+++ 0064-net-e1000-fix-link-status.patch	2019-12-11 21:24:12.746649585 +0000
@@ -1 +1 @@
-From a407d7c2ddfe05d0f13ca6170b1b8849023347e9 Mon Sep 17 00:00:00 2001
+From e12bbb4acc5e35b2f11ec7fae711c91a06627a12 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a407d7c2ddfe05d0f13ca6170b1b8849023347e9 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 2d2dc9cbe..a3e30dbe5 100644
+index 23b48d161..2c1f2314e 100644
@@ -23 +24 @@
-@@ -892,4 +892,6 @@ eth_igb_dev_init(struct rte_eth_dev *eth_dev)
+@@ -885,4 +885,6 @@ eth_igb_dev_init(struct rte_eth_dev *eth_dev)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'net/ifc: check VFIO query error' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (62 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/e1000: " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'ethdev: limit maximum number of queues' " Kevin Traynor
                   ` (4 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Xiao Wang; +Cc: Xiaolong Ye, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/cf40f1ba3b49ec975daaed9b3eba13abbcf44e3b

Thanks.

Kevin.

---
From cf40f1ba3b49ec975daaed9b3eba13abbcf44e3b Mon Sep 17 00:00:00 2001
From: Xiao Wang <xiao.w.wang@intel.com>
Date: Tue, 26 Nov 2019 09:59:31 -0500
Subject: [PATCH] net/ifc: check VFIO query error

[ upstream commit ac466a1d6c7892cc835e1ccbcdc83336c2f44701 ]

It's possible that we fail to get the IOMMU group of ifcvf device, this
patch adds a check on the return value.

Coverity issue: 349894
Fixes: a3f8150eac6d ("net/ifcvf: add ifcvf vDPA driver")

Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
---
 drivers/net/ifc/ifcvf_vdpa.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ifc/ifcvf_vdpa.c b/drivers/net/ifc/ifcvf_vdpa.c
index 698d14f88..eb4773a5a 100644
--- a/drivers/net/ifc/ifcvf_vdpa.c
+++ b/drivers/net/ifc/ifcvf_vdpa.c
@@ -113,5 +113,5 @@ ifcvf_vfio_setup(struct ifcvf_internal *internal)
 	char devname[RTE_DEV_NAME_MAX_LEN] = {0};
 	int iommu_group_num;
-	int i;
+	int i, ret;
 
 	internal->vfio_dev_fd = -1;
@@ -120,6 +120,10 @@ ifcvf_vfio_setup(struct ifcvf_internal *internal)
 
 	rte_pci_device_name(&dev->addr, devname, RTE_DEV_NAME_MAX_LEN);
-	rte_vfio_get_group_num(rte_pci_get_sysfs_path(), devname,
+	ret = rte_vfio_get_group_num(rte_pci_get_sysfs_path(), devname,
 			&iommu_group_num);
+	if (ret <= 0) {
+		DRV_LOG(ERR, "%s failed to get IOMMU group", devname);
+		return -1;
+	}
 
 	internal->vfio_container_fd = rte_vfio_container_create();
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:17.764362709 +0000
+++ 0065-net-ifc-check-VFIO-query-error.patch	2019-12-11 21:24:12.747649564 +0000
@@ -1 +1 @@
-From ac466a1d6c7892cc835e1ccbcdc83336c2f44701 Mon Sep 17 00:00:00 2001
+From cf40f1ba3b49ec975daaed9b3eba13abbcf44e3b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ac466a1d6c7892cc835e1ccbcdc83336c2f44701 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 9c562def0..da4667ba5 100644
+index 698d14f88..eb4773a5a 100644
@@ -23 +24 @@
-@@ -137,5 +137,5 @@ ifcvf_vfio_setup(struct ifcvf_internal *internal)
+@@ -113,5 +113,5 @@ ifcvf_vfio_setup(struct ifcvf_internal *internal)
@@ -30 +31 @@
-@@ -144,6 +144,10 @@ ifcvf_vfio_setup(struct ifcvf_internal *internal)
+@@ -120,6 +120,10 @@ ifcvf_vfio_setup(struct ifcvf_internal *internal)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'ethdev: limit maximum number of queues' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (63 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'net/ifc: check VFIO query error' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:26 ` [dpdk-stable] patch 'event/octeontx: fix partial Rx packet handling' " Kevin Traynor
                   ` (3 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Raslan Darawsheh, Ferruh Yigit, David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/1d985701169f7e22307996d48598abfdb79927f0

Thanks.

Kevin.

---
From 1d985701169f7e22307996d48598abfdb79927f0 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Wed, 27 Nov 2019 13:22:56 +0100
Subject: [PATCH] ethdev: limit maximum number of queues

[ upstream commit 20bbb9e0450f2ccda374584173dc0a5cd93c9f06 ]

A buffer overflow happens in testpmd with some drivers
since the queue arrays are limited to RTE_MAX_QUEUES_PER_PORT.

The advertised capabilities of mlx4, mlx5 and softnic
for the number of queues were the maximum number: UINT16_MAX.
They must be limited by the configured RTE_MAX_QUEUES_PER_PORT
that applications expect to be respected.

The limitation is applied at ethdev level (function rte_eth_dev_info_get),
in order to force the configured limit for all drivers.

Fixes: 14b53e27b30e ("ethdev: fix crash with multiprocess")

Reported-by: Raslan Darawsheh <rasland@mellanox.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
---
 lib/librte_ethdev/rte_ethdev.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index 16e6a5d38..a5df3e562 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -2535,4 +2535,11 @@ rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info)
 	RTE_FUNC_PTR_OR_RET(*dev->dev_ops->dev_infos_get);
 	(*dev->dev_ops->dev_infos_get)(dev, dev_info);
+
+	/* Maximum number of queues should be <= RTE_MAX_QUEUES_PER_PORT */
+	dev_info->max_rx_queues = RTE_MIN(dev_info->max_rx_queues,
+			RTE_MAX_QUEUES_PER_PORT);
+	dev_info->max_tx_queues = RTE_MIN(dev_info->max_tx_queues,
+			RTE_MAX_QUEUES_PER_PORT);
+
 	dev_info->driver_name = dev->device->driver->name;
 	dev_info->nb_rx_queues = dev->data->nb_rx_queues;
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:17.842739129 +0000
+++ 0066-ethdev-limit-maximum-number-of-queues.patch	2019-12-11 21:24:12.754649420 +0000
@@ -1 +1 @@
-From 20bbb9e0450f2ccda374584173dc0a5cd93c9f06 Mon Sep 17 00:00:00 2001
+From 1d985701169f7e22307996d48598abfdb79927f0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 20bbb9e0450f2ccda374584173dc0a5cd93c9f06 ]
+
@@ -18 +19,0 @@
-Cc: stable@dpdk.org
@@ -25,2 +26,2 @@
- lib/librte_ethdev/rte_ethdev.c | 6 ++++++
- 1 file changed, 6 insertions(+)
+ lib/librte_ethdev/rte_ethdev.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
@@ -29 +30 @@
-index 8d2ce31a8..6e9cb243e 100644
+index 16e6a5d38..a5df3e562 100644
@@ -32,3 +33,4 @@
-@@ -2987,4 +2987,10 @@ rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info)
- 	}
- 
+@@ -2535,4 +2535,11 @@ rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info)
+ 	RTE_FUNC_PTR_OR_RET(*dev->dev_ops->dev_infos_get);
+ 	(*dev->dev_ops->dev_infos_get)(dev, dev_info);
++


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'event/octeontx: fix partial Rx packet handling' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (64 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'ethdev: limit maximum number of queues' " Kevin Traynor
@ 2019-12-11 21:26 ` Kevin Traynor
  2019-12-11 21:27 ` [dpdk-stable] patch 'test/service: fix wait for service core' " Kevin Traynor
                   ` (2 subsequent siblings)
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:26 UTC (permalink / raw)
  To: Pavan Nikhilesh; +Cc: Jerin Jacob, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/d19f921b996ef410b3eac80e5f5cf0229c2faf78

Thanks.

Kevin.

---
From d19f921b996ef410b3eac80e5f5cf0229c2faf78 Mon Sep 17 00:00:00 2001
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Date: Wed, 27 Nov 2019 18:06:47 +0530
Subject: [PATCH] event/octeontx: fix partial Rx packet handling

[ upstream commit 4a2121667445280e9966b4dbe673d4eca18d50a2 ]

When net/octeontx is connected to event/octeontx as an event Rx adapter,
PKI aka 'net/octeontx' can forward packets directly to SSO aka
'event/octeontx'.
When pumping traffic to PKI if flow control is disabled internal FIFOs
might be overrun causing partial l2 packets to be enqueued.
SSO receives <31:0> TAG tag calculated by PKI, in normal cases <31:28>
is always 0 which signifies RTE_EVENT_TYPE_ETHDEV. But in case of
partial received packets PKI sets the <31:0> TAG as 0xFFFFFFFF which
is an invalid event type.

Add a check to see if TAG is 0xFFFFFFFF and free the partial receive
packet.

Fixes: d0d654986018 ("net/octeontx: support event Rx adapter")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
---
 drivers/event/octeontx/ssovf_worker.h | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/event/octeontx/ssovf_worker.h b/drivers/event/octeontx/ssovf_worker.h
index d1d3a52ae..c4f886d63 100644
--- a/drivers/event/octeontx/ssovf_worker.h
+++ b/drivers/event/octeontx/ssovf_worker.h
@@ -31,6 +31,5 @@ ssovf_octeontx_wqe_to_pkt(uint64_t work, uint16_t port_info)
 
 	/* Get mbuf from wqe */
-	mbuf = (struct rte_mbuf *)((uintptr_t)wqe -
-			OCTTX_PACKET_WQE_SKIP);
+	mbuf = (struct rte_mbuf *)((uintptr_t)wqe - OCTTX_PACKET_WQE_SKIP);
 	rte_prefetch_non_temporal(mbuf);
 	mbuf->packet_type =
@@ -47,4 +46,14 @@ ssovf_octeontx_wqe_to_pkt(uint64_t work, uint16_t port_info)
 }
 
+static __rte_always_inline void
+ssovf_octeontx_wqe_free(uint64_t work)
+{
+	octtx_wqe_t *wqe = (octtx_wqe_t *)(uintptr_t)work;
+	struct rte_mbuf *mbuf;
+
+	mbuf = (struct rte_mbuf *)((uintptr_t)wqe - OCTTX_PACKET_WQE_SKIP);
+	rte_pktmbuf_free(mbuf);
+}
+
 static __rte_always_inline uint16_t
 ssows_get_work(struct ssows *ws, struct rte_event *ev)
@@ -60,7 +69,11 @@ ssows_get_work(struct ssows *ws, struct rte_event *ev)
 	sched_type_queue = sched_type_queue << 38;
 	ev->event = sched_type_queue | (get_work0 & 0xffffffff);
+
 	if (get_work1 && ev->event_type == RTE_EVENT_TYPE_ETHDEV) {
 		ev->mbuf = ssovf_octeontx_wqe_to_pkt(get_work1,
 				(ev->event >> 20) & 0x7F);
+	} else if (unlikely((get_work0 & 0xFFFFFFFF) == 0xFFFFFFFF)) {
+		ssovf_octeontx_wqe_free(get_work1);
+		return 0;
 	} else {
 		ev->u64 = get_work1;
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:17.916179004 +0000
+++ 0067-event-octeontx-fix-partial-Rx-packet-handling.patch	2019-12-11 21:24:12.755649399 +0000
@@ -1 +1 @@
-From 4a2121667445280e9966b4dbe673d4eca18d50a2 Mon Sep 17 00:00:00 2001
+From d19f921b996ef410b3eac80e5f5cf0229c2faf78 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4a2121667445280e9966b4dbe673d4eca18d50a2 ]
+
@@ -20 +21,0 @@
-Cc: stable@dpdk.org


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'test/service: fix wait for service core' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (65 preceding siblings ...)
  2019-12-11 21:26 ` [dpdk-stable] patch 'event/octeontx: fix partial Rx packet handling' " Kevin Traynor
@ 2019-12-11 21:27 ` Kevin Traynor
  2019-12-11 21:27 ` [dpdk-stable] patch 'usertools: fix typo in SPDX tag of telemetry script' " Kevin Traynor
  2019-12-11 21:27 ` [dpdk-stable] patch 'doc: update arm64 cross build tool version' " Kevin Traynor
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:27 UTC (permalink / raw)
  To: Harry van Haaren; +Cc: Aaron Conole, David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/3fd8e91785e8b7f821eb46925397466608e10ef8

Thanks.

Kevin.

---
From 3fd8e91785e8b7f821eb46925397466608e10ef8 Mon Sep 17 00:00:00 2001
From: Harry van Haaren <harry.van.haaren@intel.com>
Date: Wed, 27 Nov 2019 13:20:27 +0000
Subject: [PATCH] test/service: fix wait for service core

[ upstream commit 505a2b0c64a7f1e087f5a8aaa6940da78c11c81b ]

This commit fixes a sporadic failure of the service_autotest
unit test, as seen in the DPDK CI. The failure occurs as the main test
thread did not wait on the service-thread to return, and allowing it
to read a flag before the service was able to write to it.

The fix changes the wait API call to specific the service-core ID,
and this waits for cores with both ROLE_RTE and ROLE_SERVICE.

The rte_eal_mp_wait_lcore() call does not (and should not) wait
for service cores, so must not be used to wait on service-cores.

Fixes: f038a81e1c56 ("service: add unit tests")

Reported-by: Aaron Conole <aconole@redhat.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 test/test/test_service_cores.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/test/test/test_service_cores.c b/test/test/test_service_cores.c
index ec31882d9..aa2174a33 100644
--- a/test/test/test_service_cores.c
+++ b/test/test/test_service_cores.c
@@ -484,5 +484,5 @@ service_lcore_en_dis_able(void)
 					slcore_id);
 	TEST_ASSERT_EQUAL(0, ret, "Ex-service core remote launch failed.");
-	rte_eal_mp_wait_lcore();
+	rte_eal_wait_lcore(slcore_id);
 	TEST_ASSERT_EQUAL(1, service_remote_launch_flag,
 			"Ex-service core function call had no effect.");
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:17.985987757 +0000
+++ 0068-test-service-fix-wait-for-service-core.patch	2019-12-11 21:24:12.756649378 +0000
@@ -1 +1 @@
-From 505a2b0c64a7f1e087f5a8aaa6940da78c11c81b Mon Sep 17 00:00:00 2001
+From 3fd8e91785e8b7f821eb46925397466608e10ef8 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 505a2b0c64a7f1e087f5a8aaa6940da78c11c81b ]
+
@@ -18 +19,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
- app/test/test_service_cores.c | 2 +-
+ test/test/test_service_cores.c | 2 +-
@@ -27,4 +28,4 @@
-diff --git a/app/test/test_service_cores.c b/app/test/test_service_cores.c
-index 9fe38f5e0..a922c7ddc 100644
---- a/app/test/test_service_cores.c
-+++ b/app/test/test_service_cores.c
+diff --git a/test/test/test_service_cores.c b/test/test/test_service_cores.c
+index ec31882d9..aa2174a33 100644
+--- a/test/test/test_service_cores.c
++++ b/test/test/test_service_cores.c


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'usertools: fix typo in SPDX tag of telemetry script' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (66 preceding siblings ...)
  2019-12-11 21:27 ` [dpdk-stable] patch 'test/service: fix wait for service core' " Kevin Traynor
@ 2019-12-11 21:27 ` Kevin Traynor
  2019-12-11 21:27 ` [dpdk-stable] patch 'doc: update arm64 cross build tool version' " Kevin Traynor
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:27 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Stephen Hemminger, Kevin Traynor, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/b7c589e8e975c6ed072b392eed7d75850a6c653a

Thanks.

Kevin.

---
From b7c589e8e975c6ed072b392eed7d75850a6c653a Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Fri, 8 Nov 2019 14:26:27 +0000
Subject: [PATCH] usertools: fix typo in SPDX tag of telemetry script

[ upstream commit 564f295d1960e2c9401f1c39427a2a921ab3a3c4 ]

There is a typo in the SPDX tag, which is down as an "SPDK" tag.
One-character change should be all that is needed.

Fixes: d1b94da4a4e0 ("usertools: add client script for telemetry")

Reported-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Kevin Traynor <ktraynor@redhat.com>
---
 usertools/dpdk-telemetry-client.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/usertools/dpdk-telemetry-client.py b/usertools/dpdk-telemetry-client.py
index 1c61a2a28..58174c055 100644
--- a/usertools/dpdk-telemetry-client.py
+++ b/usertools/dpdk-telemetry-client.py
@@ -1,3 +1,3 @@
-# SPDK-License-Identifier: BSD-3-Clause
+# SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:18.062838397 +0000
+++ 0069-usertools-fix-typo-in-SPDX-tag-of-telemetry-script.patch	2019-12-11 21:24:12.757649358 +0000
@@ -1 +1 @@
-From 564f295d1960e2c9401f1c39427a2a921ab3a3c4 Mon Sep 17 00:00:00 2001
+From b7c589e8e975c6ed072b392eed7d75850a6c653a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 564f295d1960e2c9401f1c39427a2a921ab3a3c4 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index e06d6306c..290345dcc 100755
+index 1c61a2a28..58174c055 100644
@@ -23,2 +24 @@
-@@ -1,4 +1,4 @@
- #! /usr/bin/env python
+@@ -1,3 +1,3 @@


^ permalink raw reply	[flat|nested] 72+ messages in thread

* [dpdk-stable] patch 'doc: update arm64 cross build tool version' has been queued to LTS release 18.11.6
  2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
                   ` (67 preceding siblings ...)
  2019-12-11 21:27 ` [dpdk-stable] patch 'usertools: fix typo in SPDX tag of telemetry script' " Kevin Traynor
@ 2019-12-11 21:27 ` Kevin Traynor
  68 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-11 21:27 UTC (permalink / raw)
  To: Joyce Kong; +Cc: Gavin Hu, Jerin Jacob, dpdk stable

Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/c54150499eaad75e720c70da597171fd21e6a1fe

Thanks.

Kevin.

---
From c54150499eaad75e720c70da597171fd21e6a1fe Mon Sep 17 00:00:00 2001
From: Joyce Kong <joyce.kong@arm.com>
Date: Thu, 28 Nov 2019 14:32:59 +0800
Subject: [PATCH] doc: update arm64 cross build tool version

[ upstream commit 2bf752c112ce6b5ab16ea7d15434503e97fb1765 ]

Update the cross build tool version to gcc8.3.

Fixes: 01add9da25cd ("doc: add cross compiling guide")

Signed-off-by: Joyce Kong <joyce.kong@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
---
 .../linux_gsg/cross_build_dpdk_for_arm64.rst     | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
index 73a0b87c5..3db942b78 100644
--- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
+++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
@@ -17,9 +17,11 @@ The latest cross compile tool chain can be downloaded from:
 https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads.
 
-Following is the step to get the version 8.2, latest one at the time of this writing.
+It is always recommended to check and get the latest compiler tool from the page and use
+it to generate better code. As of this writing 8.3-2019.03 is the newest, the following
+description is an example of this version.
 
 .. code-block:: console
 
-   wget https://developer.arm.com/-/media/Files/downloads/gnu-a/8.2-2019.01/gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu.tar.xz
+   wget https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz
 
 Unzip and add into the PATH
@@ -28,6 +30,6 @@ Unzip and add into the PATH
 .. code-block:: console
 
-   tar -xvf gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu.tar.xz
-   export PATH=$PATH:<cross_install_dir>/gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu/bin
+   tar -xvf gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz
+   export PATH=$PATH:<cross_install_dir>/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin
 
 .. note::
@@ -70,7 +72,7 @@ Copy the NUMA header files and lib to the cross compiler's directories:
 .. code-block:: console
 
-   cp <numa_install_dir>/include/numa*.h <cross_install_dir>/gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu/bin/../aarch64-linux-gnu/libc/usr/include/
-   cp <numa_install_dir>/lib/libnuma.a <cross_install_dir>/gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/8.2/
-   cp <numa_install_dir>/lib/libnuma.so <cross_install_dir>/gcc-arm-8.2-2019.01-x86_64-aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/8.2/
+   cp <numa_install_dir>/include/numa*.h <cross_install_dir>/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/aarch64-linux-gnu/libc/usr/include/
+   cp <numa_install_dir>/lib/libnuma.a <cross_install_dir>/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/8.3.0/
+   cp <numa_install_dir>/lib/libnuma.so <cross_install_dir>/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/8.3.0/
 
 .. _configure_and_cross_compile_dpdk_build:
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-11 21:24:18.135323842 +0000
+++ 0070-doc-update-arm64-cross-build-tool-version.patch	2019-12-11 21:24:12.757649358 +0000
@@ -1 +1 @@
-From 2bf752c112ce6b5ab16ea7d15434503e97fb1765 Mon Sep 17 00:00:00 2001
+From c54150499eaad75e720c70da597171fd21e6a1fe Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 2bf752c112ce6b5ab16ea7d15434503e97fb1765 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 8f6c951dd..687070134 100644
+index 73a0b87c5..3db942b78 100644
@@ -45 +46 @@
-@@ -72,7 +74,7 @@ Copy the NUMA header files and lib to the cross compiler's directories:
+@@ -70,7 +72,7 @@ Copy the NUMA header files and lib to the cross compiler's directories:


^ permalink raw reply	[flat|nested] 72+ messages in thread

* Re: [dpdk-stable] patch 'net/ixgbe: fix MACsec setting' has been queued to LTS release 18.11.6
  2019-12-11 21:25 ` [dpdk-stable] patch 'net/ixgbe: fix MACsec setting' " Kevin Traynor
@ 2019-12-12  2:42   ` Sun, GuinanX
  2019-12-12 10:01     ` Kevin Traynor
  0 siblings, 1 reply; 72+ messages in thread
From: Sun, GuinanX @ 2019-12-12  2:42 UTC (permalink / raw)
  To: Kevin Traynor; +Cc: Ye, Xiaolong, dpdk stable

Hi, Kevin

macsec fix has two patches:

http://patches.dpdk.org/patch/62265/
and http://patches.dpdk.org/patch/63196/


The 62265 patch is used to fix the problem that the macsec setting is invalid when the port is stopped.

The 63196 patch is used to fix the QoS sample application performance drop issue caused by 62265.

Please must merge patch 63196 after merging patch 62265.

Best Regards
Guinan Sun

> -----Original Message-----
> From: Kevin Traynor [mailto:ktraynor@redhat.com]
> Sent: Thursday, December 12, 2019 5:26 AM
> To: Sun, GuinanX <guinanx.sun@intel.com>
> Cc: Ye, Xiaolong <xiaolong.ye@intel.com>; dpdk stable <stable@dpdk.org>
> Subject: patch 'net/ixgbe: fix MACsec setting' has been queued to LTS release
> 18.11.6
> 
> Hi,
> 
> FYI, your patch has been queued to LTS release 18.11.6
> 
> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> It will be pushed if I get no objections before 12/17/19. So please shout if
> anyone has objections.
> 
> Also note that after the patch there's a diff of the upstream commit vs the patch
> applied to the branch. This will indicate if there was any rebasing needed to
> apply to the stable branch. If there were code changes for rebasing
> (ie: not only metadata diffs), please double check that the rebase was correctly
> done.
> 
> Queued patches are on a temporary branch at:
> https://github.com/kevintraynor/dpdk-stable-queue
> 
> This queued commit can be viewed at:
> https://github.com/kevintraynor/dpdk-stable-
> queue/commit/7137dc35798febc3ab6738921eab092ca5c4ac0e
> 
> Thanks.
> 
> Kevin.
> 
> ---
> From 7137dc35798febc3ab6738921eab092ca5c4ac0e Mon Sep 17 00:00:00
> 2001
> From: Guinan Sun <guinanx.sun@intel.com>
> Date: Thu, 31 Oct 2019 11:31:52 +0000
> Subject: [PATCH] net/ixgbe: fix MACsec setting
> 
> [ upstream commit 50556c88104cbc0096e90f454dc137258be2099f ]
> 
> MACsec setting is not valid when port is stopped.
> In order to make it valid, the patch changes the setting to where port is started.
> 
> Fixes: 597f9fafe13b ("app/testpmd: convert to new Tx offloads API")
> 
> Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
> Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
> ---
>  drivers/net/ixgbe/ixgbe_ethdev.c  | 149 ++++++++++++++++++++++++++++++
> drivers/net/ixgbe/ixgbe_ethdev.h  |  19 ++++
> drivers/net/ixgbe/rte_pmd_ixgbe.c | 125 ++-----------------------
>  3 files changed, 175 insertions(+), 118 deletions(-)
> 
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
> index 74de2ff4e..1336236ba 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -2591,4 +2591,6 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
>  	struct ixgbe_tm_conf *tm_conf =
>  		IXGBE_DEV_PRIVATE_TO_TM_CONF(dev->data->dev_private);
> +	struct ixgbe_macsec_setting *macsec_ctrl =
> +		IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(dev->data-
> >dev_private);
> 
>  	PMD_INIT_FUNC_TRACE();
> @@ -2831,4 +2833,7 @@ skip_link_setup:
>  	ixgbe_dev_link_update(dev, 0);
> 
> +	/* setup the macsec ctrl register */
> +	ixgbe_dev_macsec_register_enable(dev, macsec_ctrl);
> +
>  	return 0;
> 
> @@ -2859,4 +2864,7 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
>  	PMD_INIT_FUNC_TRACE();
> 
> +	/* disable mecsec register */
> +	ixgbe_dev_macsec_register_disable(dev);
> +
>  	rte_eal_alarm_cancel(ixgbe_dev_setup_link_alarm_handler, dev);
> 
> @@ -8679,4 +8687,145 @@ ixgbe_clear_all_l2_tn_filter(struct rte_eth_dev
> *dev)  }
> 
> +void
> +ixgbe_dev_macsec_setting_save(struct rte_eth_dev *dev,
> +				struct ixgbe_macsec_setting *macsec_setting)
> {
> +	struct ixgbe_macsec_setting *macsec =
> +		IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(dev->data-
> >dev_private);
> +
> +	macsec->encrypt_en = macsec_setting->encrypt_en;
> +	macsec->replayprotect_en = macsec_setting->replayprotect_en; }
> +
> +void
> +ixgbe_dev_macsec_setting_reset(struct rte_eth_dev *dev) {
> +	struct ixgbe_macsec_setting *macsec =
> +		IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(dev->data-
> >dev_private);
> +
> +	macsec->encrypt_en = 0;
> +	macsec->replayprotect_en = 0;
> +}
> +
> +void
> +ixgbe_dev_macsec_register_enable(struct rte_eth_dev *dev,
> +				struct ixgbe_macsec_setting *macsec_setting)
> {
> +	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data-
> >dev_private);
> +	uint32_t ctrl;
> +	uint8_t en = macsec_setting->encrypt_en;
> +	uint8_t rp = macsec_setting->replayprotect_en;
> +
> +	/**
> +	 * Workaround:
> +	 * As no ixgbe_disable_sec_rx_path equivalent is
> +	 * implemented for tx in the base code, and we are
> +	 * not allowed to modify the base code in DPDK, so
> +	 * just call the hand-written one directly for now.
> +	 * The hardware support has been checked by
> +	 * ixgbe_disable_sec_rx_path().
> +	 */
> +	ixgbe_disable_sec_tx_path_generic(hw);
> +
> +	/* Enable Ethernet CRC (required by MACsec offload) */
> +	ctrl = IXGBE_READ_REG(hw, IXGBE_HLREG0);
> +	ctrl |= IXGBE_HLREG0_TXCRCEN | IXGBE_HLREG0_RXCRCSTRP;
> +	IXGBE_WRITE_REG(hw, IXGBE_HLREG0, ctrl);
> +
> +	/* Enable the TX and RX crypto engines */
> +	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXCTRL);
> +	ctrl &= ~IXGBE_SECTXCTRL_SECTX_DIS;
> +	IXGBE_WRITE_REG(hw, IXGBE_SECTXCTRL, ctrl);
> +
> +	ctrl = IXGBE_READ_REG(hw, IXGBE_SECRXCTRL);
> +	ctrl &= ~IXGBE_SECRXCTRL_SECRX_DIS;
> +	IXGBE_WRITE_REG(hw, IXGBE_SECRXCTRL, ctrl);
> +
> +	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXMINIFG);
> +	ctrl &= ~IXGBE_SECTX_MINSECIFG_MASK;
> +	ctrl |= 0x3;
> +	IXGBE_WRITE_REG(hw, IXGBE_SECTXMINIFG, ctrl);
> +
> +	/* Enable SA lookup */
> +	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECTXCTRL);
> +	ctrl &= ~IXGBE_LSECTXCTRL_EN_MASK;
> +	ctrl |= en ? IXGBE_LSECTXCTRL_AUTH_ENCRYPT :
> +		     IXGBE_LSECTXCTRL_AUTH;
> +	ctrl |= IXGBE_LSECTXCTRL_AISCI;
> +	ctrl &= ~IXGBE_LSECTXCTRL_PNTHRSH_MASK;
> +	ctrl |= IXGBE_MACSEC_PNTHRSH &
> IXGBE_LSECTXCTRL_PNTHRSH_MASK;
> +	IXGBE_WRITE_REG(hw, IXGBE_LSECTXCTRL, ctrl);
> +
> +	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECRXCTRL);
> +	ctrl &= ~IXGBE_LSECRXCTRL_EN_MASK;
> +	ctrl |= IXGBE_LSECRXCTRL_STRICT << IXGBE_LSECRXCTRL_EN_SHIFT;
> +	ctrl &= ~IXGBE_LSECRXCTRL_PLSH;
> +	if (rp)
> +		ctrl |= IXGBE_LSECRXCTRL_RP;
> +	else
> +		ctrl &= ~IXGBE_LSECRXCTRL_RP;
> +	IXGBE_WRITE_REG(hw, IXGBE_LSECRXCTRL, ctrl);
> +
> +	/* Start the data paths */
> +	ixgbe_enable_sec_rx_path(hw);
> +	/**
> +	 * Workaround:
> +	 * As no ixgbe_enable_sec_rx_path equivalent is
> +	 * implemented for tx in the base code, and we are
> +	 * not allowed to modify the base code in DPDK, so
> +	 * just call the hand-written one directly for now.
> +	 */
> +	ixgbe_enable_sec_tx_path_generic(hw);
> +}
> +
> +void
> +ixgbe_dev_macsec_register_disable(struct rte_eth_dev *dev) {
> +	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data-
> >dev_private);
> +	uint32_t ctrl;
> +
> +	/**
> +	 * Workaround:
> +	 * As no ixgbe_disable_sec_rx_path equivalent is
> +	 * implemented for tx in the base code, and we are
> +	 * not allowed to modify the base code in DPDK, so
> +	 * just call the hand-written one directly for now.
> +	 * The hardware support has been checked by
> +	 * ixgbe_disable_sec_rx_path().
> +	 */
> +	ixgbe_disable_sec_tx_path_generic(hw);
> +
> +	/* Disable the TX and RX crypto engines */
> +	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXCTRL);
> +	ctrl |= IXGBE_SECTXCTRL_SECTX_DIS;
> +	IXGBE_WRITE_REG(hw, IXGBE_SECTXCTRL, ctrl);
> +
> +	ctrl = IXGBE_READ_REG(hw, IXGBE_SECRXCTRL);
> +	ctrl |= IXGBE_SECRXCTRL_SECRX_DIS;
> +	IXGBE_WRITE_REG(hw, IXGBE_SECRXCTRL, ctrl);
> +
> +	/* Disable SA lookup */
> +	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECTXCTRL);
> +	ctrl &= ~IXGBE_LSECTXCTRL_EN_MASK;
> +	ctrl |= IXGBE_LSECTXCTRL_DISABLE;
> +	IXGBE_WRITE_REG(hw, IXGBE_LSECTXCTRL, ctrl);
> +
> +	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECRXCTRL);
> +	ctrl &= ~IXGBE_LSECRXCTRL_EN_MASK;
> +	ctrl |= IXGBE_LSECRXCTRL_DISABLE << IXGBE_LSECRXCTRL_EN_SHIFT;
> +	IXGBE_WRITE_REG(hw, IXGBE_LSECRXCTRL, ctrl);
> +
> +	/* Start the data paths */
> +	ixgbe_enable_sec_rx_path(hw);
> +	/**
> +	 * Workaround:
> +	 * As no ixgbe_enable_sec_rx_path equivalent is
> +	 * implemented for tx in the base code, and we are
> +	 * not allowed to modify the base code in DPDK, so
> +	 * just call the hand-written one directly for now.
> +	 */
> +	ixgbe_enable_sec_tx_path_generic(hw);
> +}
> +
>  RTE_PMD_REGISTER_PCI(net_ixgbe, rte_ixgbe_pmd);
> RTE_PMD_REGISTER_PCI_TABLE(net_ixgbe, pci_id_ixgbe_map); diff --git
> a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h
> index 5023fa13f..418adfa3d 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.h
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.h
> @@ -361,4 +361,9 @@ struct rte_flow {
>  };
> 
> +struct ixgbe_macsec_setting {
> +	uint8_t encrypt_en;
> +	uint8_t replayprotect_en;
> +};
> +
>  /*
>   * Statistics counters collected by the MACsec @@ -467,4 +472,5 @@ struct
> ixgbe_adapter {
>  	struct ixgbe_hw_stats       stats;
>  	struct ixgbe_macsec_stats   macsec_stats;
> +	struct ixgbe_macsec_setting	macsec_setting;
>  	struct ixgbe_hw_fdir_info   fdir;
>  	struct ixgbe_interrupt      intr;
> @@ -519,4 +525,7 @@ int ixgbe_vf_representor_uninit(struct rte_eth_dev
> *ethdev);
>  	(&((struct ixgbe_adapter *)adapter)->macsec_stats)
> 
> +#define IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(adapter) \
> +	(&((struct ixgbe_adapter *)adapter)->macsec_setting)
> +
>  #define IXGBE_DEV_PRIVATE_TO_INTR(adapter) \
>  	(&((struct ixgbe_adapter *)adapter)->intr) @@ -737,4 +746,14 @@ int
> ixgbe_config_rss_filter(struct rte_eth_dev *dev,
>  		struct ixgbe_rte_flow_rss_conf *conf, bool add);
> 
> +void ixgbe_dev_macsec_register_enable(struct rte_eth_dev *dev,
> +		struct ixgbe_macsec_setting *macsec_setting);
> +
> +void ixgbe_dev_macsec_register_disable(struct rte_eth_dev *dev);
> +
> +void ixgbe_dev_macsec_setting_save(struct rte_eth_dev *dev,
> +		struct ixgbe_macsec_setting *macsec_setting);
> +
> +void ixgbe_dev_macsec_setting_reset(struct rte_eth_dev *dev);
> +
>  static inline int
>  ixgbe_ethertype_filter_lookup(struct ixgbe_filter_info *filter_info, diff --git
> a/drivers/net/ixgbe/rte_pmd_ixgbe.c b/drivers/net/ixgbe/rte_pmd_ixgbe.c
> index 3a874f9a9..49d538ef1 100644
> --- a/drivers/net/ixgbe/rte_pmd_ixgbe.c
> +++ b/drivers/net/ixgbe/rte_pmd_ixgbe.c
> @@ -515,7 +515,6 @@ int
>  rte_pmd_ixgbe_macsec_enable(uint16_t port, uint8_t en, uint8_t rp)  {
> -	struct ixgbe_hw *hw;
>  	struct rte_eth_dev *dev;
> -	uint32_t ctrl;
> +	struct ixgbe_macsec_setting macsec_setting;
> 
>  	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV); @@ -523,72
> +522,10 @@ rte_pmd_ixgbe_macsec_enable(uint16_t port, uint8_t en, uint8_t
> rp)
>  	dev = &rte_eth_devices[port];
> 
> -	if (!is_ixgbe_supported(dev))
> -		return -ENOTSUP;
> +	macsec_setting.encrypt_en = en;
> +	macsec_setting.replayprotect_en = rp;
> 
> -	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> +	ixgbe_dev_macsec_setting_save(dev, &macsec_setting);
> 
> -	/* Stop the data paths */
> -	if (ixgbe_disable_sec_rx_path(hw) != IXGBE_SUCCESS)
> -		return -ENOTSUP;
> -	/**
> -	 * Workaround:
> -	 * As no ixgbe_disable_sec_rx_path equivalent is
> -	 * implemented for tx in the base code, and we are
> -	 * not allowed to modify the base code in DPDK, so
> -	 * just call the hand-written one directly for now.
> -	 * The hardware support has been checked by
> -	 * ixgbe_disable_sec_rx_path().
> -	 */
> -	ixgbe_disable_sec_tx_path_generic(hw);
> -
> -	/* Enable Ethernet CRC (required by MACsec offload) */
> -	ctrl = IXGBE_READ_REG(hw, IXGBE_HLREG0);
> -	ctrl |= IXGBE_HLREG0_TXCRCEN | IXGBE_HLREG0_RXCRCSTRP;
> -	IXGBE_WRITE_REG(hw, IXGBE_HLREG0, ctrl);
> -
> -	/* Enable the TX and RX crypto engines */
> -	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXCTRL);
> -	ctrl &= ~IXGBE_SECTXCTRL_SECTX_DIS;
> -	IXGBE_WRITE_REG(hw, IXGBE_SECTXCTRL, ctrl);
> -
> -	ctrl = IXGBE_READ_REG(hw, IXGBE_SECRXCTRL);
> -	ctrl &= ~IXGBE_SECRXCTRL_SECRX_DIS;
> -	IXGBE_WRITE_REG(hw, IXGBE_SECRXCTRL, ctrl);
> -
> -	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXMINIFG);
> -	ctrl &= ~IXGBE_SECTX_MINSECIFG_MASK;
> -	ctrl |= 0x3;
> -	IXGBE_WRITE_REG(hw, IXGBE_SECTXMINIFG, ctrl);
> -
> -	/* Enable SA lookup */
> -	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECTXCTRL);
> -	ctrl &= ~IXGBE_LSECTXCTRL_EN_MASK;
> -	ctrl |= en ? IXGBE_LSECTXCTRL_AUTH_ENCRYPT :
> -		     IXGBE_LSECTXCTRL_AUTH;
> -	ctrl |= IXGBE_LSECTXCTRL_AISCI;
> -	ctrl &= ~IXGBE_LSECTXCTRL_PNTHRSH_MASK;
> -	ctrl |= IXGBE_MACSEC_PNTHRSH &
> IXGBE_LSECTXCTRL_PNTHRSH_MASK;
> -	IXGBE_WRITE_REG(hw, IXGBE_LSECTXCTRL, ctrl);
> -
> -	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECRXCTRL);
> -	ctrl &= ~IXGBE_LSECRXCTRL_EN_MASK;
> -	ctrl |= IXGBE_LSECRXCTRL_STRICT << IXGBE_LSECRXCTRL_EN_SHIFT;
> -	ctrl &= ~IXGBE_LSECRXCTRL_PLSH;
> -	if (rp)
> -		ctrl |= IXGBE_LSECRXCTRL_RP;
> -	else
> -		ctrl &= ~IXGBE_LSECRXCTRL_RP;
> -	IXGBE_WRITE_REG(hw, IXGBE_LSECRXCTRL, ctrl);
> -
> -	/* Start the data paths */
> -	ixgbe_enable_sec_rx_path(hw);
> -	/**
> -	 * Workaround:
> -	 * As no ixgbe_enable_sec_rx_path equivalent is
> -	 * implemented for tx in the base code, and we are
> -	 * not allowed to modify the base code in DPDK, so
> -	 * just call the hand-written one directly for now.
> -	 */
> -	ixgbe_enable_sec_tx_path_generic(hw);
> +	ixgbe_dev_macsec_register_enable(dev, &macsec_setting);
> 
>  	return 0;
> @@ -598,7 +535,5 @@ int
>  rte_pmd_ixgbe_macsec_disable(uint16_t port)  {
> -	struct ixgbe_hw *hw;
>  	struct rte_eth_dev *dev;
> -	uint32_t ctrl;
> 
>  	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV); @@ -606,53
> +541,7 @@ rte_pmd_ixgbe_macsec_disable(uint16_t port)
>  	dev = &rte_eth_devices[port];
> 
> -	if (!is_ixgbe_supported(dev))
> -		return -ENOTSUP;
> +	ixgbe_dev_macsec_setting_reset(dev);
> 
> -	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -
> -	/* Stop the data paths */
> -	if (ixgbe_disable_sec_rx_path(hw) != IXGBE_SUCCESS)
> -		return -ENOTSUP;
> -	/**
> -	 * Workaround:
> -	 * As no ixgbe_disable_sec_rx_path equivalent is
> -	 * implemented for tx in the base code, and we are
> -	 * not allowed to modify the base code in DPDK, so
> -	 * just call the hand-written one directly for now.
> -	 * The hardware support has been checked by
> -	 * ixgbe_disable_sec_rx_path().
> -	 */
> -	ixgbe_disable_sec_tx_path_generic(hw);
> -
> -	/* Disable the TX and RX crypto engines */
> -	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXCTRL);
> -	ctrl |= IXGBE_SECTXCTRL_SECTX_DIS;
> -	IXGBE_WRITE_REG(hw, IXGBE_SECTXCTRL, ctrl);
> -
> -	ctrl = IXGBE_READ_REG(hw, IXGBE_SECRXCTRL);
> -	ctrl |= IXGBE_SECRXCTRL_SECRX_DIS;
> -	IXGBE_WRITE_REG(hw, IXGBE_SECRXCTRL, ctrl);
> -
> -	/* Disable SA lookup */
> -	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECTXCTRL);
> -	ctrl &= ~IXGBE_LSECTXCTRL_EN_MASK;
> -	ctrl |= IXGBE_LSECTXCTRL_DISABLE;
> -	IXGBE_WRITE_REG(hw, IXGBE_LSECTXCTRL, ctrl);
> -
> -	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECRXCTRL);
> -	ctrl &= ~IXGBE_LSECRXCTRL_EN_MASK;
> -	ctrl |= IXGBE_LSECRXCTRL_DISABLE << IXGBE_LSECRXCTRL_EN_SHIFT;
> -	IXGBE_WRITE_REG(hw, IXGBE_LSECRXCTRL, ctrl);
> -
> -	/* Start the data paths */
> -	ixgbe_enable_sec_rx_path(hw);
> -	/**
> -	 * Workaround:
> -	 * As no ixgbe_enable_sec_rx_path equivalent is
> -	 * implemented for tx in the base code, and we are
> -	 * not allowed to modify the base code in DPDK, so
> -	 * just call the hand-written one directly for now.
> -	 */
> -	ixgbe_enable_sec_tx_path_generic(hw);
> +	ixgbe_dev_macsec_register_disable(dev);
> 
>  	return 0;
> --
> 2.21.0
> 
> ---
>   Diff of the applied patch vs upstream commit (please double-check if non-
> empty:
> ---
> --- -	2019-12-11 21:24:13.077637869 +0000
> +++ 0004-net-ixgbe-fix-MACsec-setting.patch	2019-12-11
> 21:24:12.552653594 +0000
> @@ -1 +1 @@
> -From 50556c88104cbc0096e90f454dc137258be2099f Mon Sep 17 00:00:00
> 2001
> +From 7137dc35798febc3ab6738921eab092ca5c4ac0e Mon Sep 17 00:00:00
> 2001
> @@ -5,0 +6,2 @@
> +[ upstream commit 50556c88104cbc0096e90f454dc137258be2099f ]
> +
> @@ -11 +12,0 @@
> -Cc: stable@dpdk.org
> @@ -22 +23 @@
> -index 3c7624f3a..06414d110 100644
> +index 74de2ff4e..1336236ba 100644
> @@ -25 +26 @@
> -@@ -2543,4 +2543,6 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
> +@@ -2591,4 +2591,6 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
> @@ -32 +33 @@
> -@@ -2795,4 +2797,7 @@ skip_link_setup:
> +@@ -2831,4 +2833,7 @@ skip_link_setup:
> @@ -40 +41 @@
> -@@ -2826,4 +2831,7 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
> +@@ -2859,4 +2864,7 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
> @@ -48 +49 @@
> -@@ -8817,4 +8825,145 @@ ixgbe_clear_all_l2_tn_filter(struct rte_eth_dev
> *dev)
> +@@ -8679,4 +8687,145 @@ ixgbe_clear_all_l2_tn_filter(struct rte_eth_dev
> +*dev)
> @@ -195 +196 @@
> -index 6e9ed2e10..5da6923a1 100644
> +index 5023fa13f..418adfa3d 100644
> @@ -198 +199 @@
> -@@ -366,4 +366,9 @@ struct rte_flow {
> +@@ -361,4 +361,9 @@ struct rte_flow {
> @@ -208 +209 @@
> -@@ -472,4 +477,5 @@ struct ixgbe_adapter {
> +@@ -467,4 +472,5 @@ struct ixgbe_adapter {
> @@ -214 +215 @@
> -@@ -524,4 +530,7 @@ int ixgbe_vf_representor_uninit(struct rte_eth_dev
> *ethdev);
> +@@ -519,4 +525,7 @@ int ixgbe_vf_representor_uninit(struct rte_eth_dev
> +*ethdev);
> @@ -222 +223 @@
> -@@ -742,4 +751,14 @@ int ixgbe_config_rss_filter(struct rte_eth_dev *dev,
> +@@ -737,4 +746,14 @@ int ixgbe_config_rss_filter(struct rte_eth_dev
> +*dev,
> @@ -238 +239 @@
> -index 9514f2cf5..073fe1e23 100644
> +index 3a874f9a9..49d538ef1 100644
> @@ -241 +242 @@
> -@@ -516,7 +516,6 @@ int
> +@@ -515,7 +515,6 @@ int
> @@ -250 +251 @@
> -@@ -524,72 +523,10 @@ rte_pmd_ixgbe_macsec_enable(uint16_t port,
> uint8_t en, uint8_t rp)
> +@@ -523,72 +522,10 @@ rte_pmd_ixgbe_macsec_enable(uint16_t port,
> +uint8_t en, uint8_t rp)
> @@ -327 +328 @@
> -@@ -599,7 +536,5 @@ int
> +@@ -598,7 +535,5 @@ int
> @@ -335 +336 @@
> -@@ -607,53 +542,7 @@ rte_pmd_ixgbe_macsec_disable(uint16_t port)
> +@@ -606,53 +541,7 @@ rte_pmd_ixgbe_macsec_disable(uint16_t port)


^ permalink raw reply	[flat|nested] 72+ messages in thread

* Re: [dpdk-stable] patch 'net/ixgbe: fix MACsec setting' has been queued to LTS release 18.11.6
  2019-12-12  2:42   ` Sun, GuinanX
@ 2019-12-12 10:01     ` Kevin Traynor
  0 siblings, 0 replies; 72+ messages in thread
From: Kevin Traynor @ 2019-12-12 10:01 UTC (permalink / raw)
  To: Sun, GuinanX; +Cc: Ye, Xiaolong, dpdk stable

On 12/12/2019 02:42, Sun, GuinanX wrote:
> Hi, Kevin
> 

Hi Guinan,

Thanks for the note. I have both these patches queued,

> macsec fix has two patches:
> 
> http://patches.dpdk.org/patch/62265/

https://github.com/kevintraynor/dpdk-stable-queue/commit/7137dc35798febc3ab6738921eab092ca5c4ac0e

> and http://patches.dpdk.org/patch/63196/
> 

https://github.com/kevintraynor/dpdk-stable-queue/commit/f4d7ffe6e960c5edafc4073d724f6ad5d3247800

Kevin.

> 
> The 62265 patch is used to fix the problem that the macsec setting is invalid when the port is stopped.
> 
> The 63196 patch is used to fix the QoS sample application performance drop issue caused by 62265.
> 
> Please must merge patch 63196 after merging patch 62265.
> 
> Best Regards
> Guinan Sun
> 
>> -----Original Message-----
>> From: Kevin Traynor [mailto:ktraynor@redhat.com]
>> Sent: Thursday, December 12, 2019 5:26 AM
>> To: Sun, GuinanX <guinanx.sun@intel.com>
>> Cc: Ye, Xiaolong <xiaolong.ye@intel.com>; dpdk stable <stable@dpdk.org>
>> Subject: patch 'net/ixgbe: fix MACsec setting' has been queued to LTS release
>> 18.11.6
>>
>> Hi,
>>
>> FYI, your patch has been queued to LTS release 18.11.6
>>
>> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
>> It will be pushed if I get no objections before 12/17/19. So please shout if
>> anyone has objections.
>>
>> Also note that after the patch there's a diff of the upstream commit vs the patch
>> applied to the branch. This will indicate if there was any rebasing needed to
>> apply to the stable branch. If there were code changes for rebasing
>> (ie: not only metadata diffs), please double check that the rebase was correctly
>> done.
>>
>> Queued patches are on a temporary branch at:
>> https://github.com/kevintraynor/dpdk-stable-queue
>>
>> This queued commit can be viewed at:
>> https://github.com/kevintraynor/dpdk-stable-
>> queue/commit/7137dc35798febc3ab6738921eab092ca5c4ac0e
>>
>> Thanks.
>>
>> Kevin.
>>
>> ---
>> From 7137dc35798febc3ab6738921eab092ca5c4ac0e Mon Sep 17 00:00:00
>> 2001
>> From: Guinan Sun <guinanx.sun@intel.com>
>> Date: Thu, 31 Oct 2019 11:31:52 +0000
>> Subject: [PATCH] net/ixgbe: fix MACsec setting
>>
>> [ upstream commit 50556c88104cbc0096e90f454dc137258be2099f ]
>>
>> MACsec setting is not valid when port is stopped.
>> In order to make it valid, the patch changes the setting to where port is started.
>>
>> Fixes: 597f9fafe13b ("app/testpmd: convert to new Tx offloads API")
>>
>> Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
>> Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
>> ---
>>  drivers/net/ixgbe/ixgbe_ethdev.c  | 149 ++++++++++++++++++++++++++++++
>> drivers/net/ixgbe/ixgbe_ethdev.h  |  19 ++++
>> drivers/net/ixgbe/rte_pmd_ixgbe.c | 125 ++-----------------------
>>  3 files changed, 175 insertions(+), 118 deletions(-)
>>
>> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
>> index 74de2ff4e..1336236ba 100644
>> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
>> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
>> @@ -2591,4 +2591,6 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
>>  	struct ixgbe_tm_conf *tm_conf =
>>  		IXGBE_DEV_PRIVATE_TO_TM_CONF(dev->data->dev_private);
>> +	struct ixgbe_macsec_setting *macsec_ctrl =
>> +		IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(dev->data-
>>> dev_private);
>>
>>  	PMD_INIT_FUNC_TRACE();
>> @@ -2831,4 +2833,7 @@ skip_link_setup:
>>  	ixgbe_dev_link_update(dev, 0);
>>
>> +	/* setup the macsec ctrl register */
>> +	ixgbe_dev_macsec_register_enable(dev, macsec_ctrl);
>> +
>>  	return 0;
>>
>> @@ -2859,4 +2864,7 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
>>  	PMD_INIT_FUNC_TRACE();
>>
>> +	/* disable mecsec register */
>> +	ixgbe_dev_macsec_register_disable(dev);
>> +
>>  	rte_eal_alarm_cancel(ixgbe_dev_setup_link_alarm_handler, dev);
>>
>> @@ -8679,4 +8687,145 @@ ixgbe_clear_all_l2_tn_filter(struct rte_eth_dev
>> *dev)  }
>>
>> +void
>> +ixgbe_dev_macsec_setting_save(struct rte_eth_dev *dev,
>> +				struct ixgbe_macsec_setting *macsec_setting)
>> {
>> +	struct ixgbe_macsec_setting *macsec =
>> +		IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(dev->data-
>>> dev_private);
>> +
>> +	macsec->encrypt_en = macsec_setting->encrypt_en;
>> +	macsec->replayprotect_en = macsec_setting->replayprotect_en; }
>> +
>> +void
>> +ixgbe_dev_macsec_setting_reset(struct rte_eth_dev *dev) {
>> +	struct ixgbe_macsec_setting *macsec =
>> +		IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(dev->data-
>>> dev_private);
>> +
>> +	macsec->encrypt_en = 0;
>> +	macsec->replayprotect_en = 0;
>> +}
>> +
>> +void
>> +ixgbe_dev_macsec_register_enable(struct rte_eth_dev *dev,
>> +				struct ixgbe_macsec_setting *macsec_setting)
>> {
>> +	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data-
>>> dev_private);
>> +	uint32_t ctrl;
>> +	uint8_t en = macsec_setting->encrypt_en;
>> +	uint8_t rp = macsec_setting->replayprotect_en;
>> +
>> +	/**
>> +	 * Workaround:
>> +	 * As no ixgbe_disable_sec_rx_path equivalent is
>> +	 * implemented for tx in the base code, and we are
>> +	 * not allowed to modify the base code in DPDK, so
>> +	 * just call the hand-written one directly for now.
>> +	 * The hardware support has been checked by
>> +	 * ixgbe_disable_sec_rx_path().
>> +	 */
>> +	ixgbe_disable_sec_tx_path_generic(hw);
>> +
>> +	/* Enable Ethernet CRC (required by MACsec offload) */
>> +	ctrl = IXGBE_READ_REG(hw, IXGBE_HLREG0);
>> +	ctrl |= IXGBE_HLREG0_TXCRCEN | IXGBE_HLREG0_RXCRCSTRP;
>> +	IXGBE_WRITE_REG(hw, IXGBE_HLREG0, ctrl);
>> +
>> +	/* Enable the TX and RX crypto engines */
>> +	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXCTRL);
>> +	ctrl &= ~IXGBE_SECTXCTRL_SECTX_DIS;
>> +	IXGBE_WRITE_REG(hw, IXGBE_SECTXCTRL, ctrl);
>> +
>> +	ctrl = IXGBE_READ_REG(hw, IXGBE_SECRXCTRL);
>> +	ctrl &= ~IXGBE_SECRXCTRL_SECRX_DIS;
>> +	IXGBE_WRITE_REG(hw, IXGBE_SECRXCTRL, ctrl);
>> +
>> +	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXMINIFG);
>> +	ctrl &= ~IXGBE_SECTX_MINSECIFG_MASK;
>> +	ctrl |= 0x3;
>> +	IXGBE_WRITE_REG(hw, IXGBE_SECTXMINIFG, ctrl);
>> +
>> +	/* Enable SA lookup */
>> +	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECTXCTRL);
>> +	ctrl &= ~IXGBE_LSECTXCTRL_EN_MASK;
>> +	ctrl |= en ? IXGBE_LSECTXCTRL_AUTH_ENCRYPT :
>> +		     IXGBE_LSECTXCTRL_AUTH;
>> +	ctrl |= IXGBE_LSECTXCTRL_AISCI;
>> +	ctrl &= ~IXGBE_LSECTXCTRL_PNTHRSH_MASK;
>> +	ctrl |= IXGBE_MACSEC_PNTHRSH &
>> IXGBE_LSECTXCTRL_PNTHRSH_MASK;
>> +	IXGBE_WRITE_REG(hw, IXGBE_LSECTXCTRL, ctrl);
>> +
>> +	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECRXCTRL);
>> +	ctrl &= ~IXGBE_LSECRXCTRL_EN_MASK;
>> +	ctrl |= IXGBE_LSECRXCTRL_STRICT << IXGBE_LSECRXCTRL_EN_SHIFT;
>> +	ctrl &= ~IXGBE_LSECRXCTRL_PLSH;
>> +	if (rp)
>> +		ctrl |= IXGBE_LSECRXCTRL_RP;
>> +	else
>> +		ctrl &= ~IXGBE_LSECRXCTRL_RP;
>> +	IXGBE_WRITE_REG(hw, IXGBE_LSECRXCTRL, ctrl);
>> +
>> +	/* Start the data paths */
>> +	ixgbe_enable_sec_rx_path(hw);
>> +	/**
>> +	 * Workaround:
>> +	 * As no ixgbe_enable_sec_rx_path equivalent is
>> +	 * implemented for tx in the base code, and we are
>> +	 * not allowed to modify the base code in DPDK, so
>> +	 * just call the hand-written one directly for now.
>> +	 */
>> +	ixgbe_enable_sec_tx_path_generic(hw);
>> +}
>> +
>> +void
>> +ixgbe_dev_macsec_register_disable(struct rte_eth_dev *dev) {
>> +	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data-
>>> dev_private);
>> +	uint32_t ctrl;
>> +
>> +	/**
>> +	 * Workaround:
>> +	 * As no ixgbe_disable_sec_rx_path equivalent is
>> +	 * implemented for tx in the base code, and we are
>> +	 * not allowed to modify the base code in DPDK, so
>> +	 * just call the hand-written one directly for now.
>> +	 * The hardware support has been checked by
>> +	 * ixgbe_disable_sec_rx_path().
>> +	 */
>> +	ixgbe_disable_sec_tx_path_generic(hw);
>> +
>> +	/* Disable the TX and RX crypto engines */
>> +	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXCTRL);
>> +	ctrl |= IXGBE_SECTXCTRL_SECTX_DIS;
>> +	IXGBE_WRITE_REG(hw, IXGBE_SECTXCTRL, ctrl);
>> +
>> +	ctrl = IXGBE_READ_REG(hw, IXGBE_SECRXCTRL);
>> +	ctrl |= IXGBE_SECRXCTRL_SECRX_DIS;
>> +	IXGBE_WRITE_REG(hw, IXGBE_SECRXCTRL, ctrl);
>> +
>> +	/* Disable SA lookup */
>> +	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECTXCTRL);
>> +	ctrl &= ~IXGBE_LSECTXCTRL_EN_MASK;
>> +	ctrl |= IXGBE_LSECTXCTRL_DISABLE;
>> +	IXGBE_WRITE_REG(hw, IXGBE_LSECTXCTRL, ctrl);
>> +
>> +	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECRXCTRL);
>> +	ctrl &= ~IXGBE_LSECRXCTRL_EN_MASK;
>> +	ctrl |= IXGBE_LSECRXCTRL_DISABLE << IXGBE_LSECRXCTRL_EN_SHIFT;
>> +	IXGBE_WRITE_REG(hw, IXGBE_LSECRXCTRL, ctrl);
>> +
>> +	/* Start the data paths */
>> +	ixgbe_enable_sec_rx_path(hw);
>> +	/**
>> +	 * Workaround:
>> +	 * As no ixgbe_enable_sec_rx_path equivalent is
>> +	 * implemented for tx in the base code, and we are
>> +	 * not allowed to modify the base code in DPDK, so
>> +	 * just call the hand-written one directly for now.
>> +	 */
>> +	ixgbe_enable_sec_tx_path_generic(hw);
>> +}
>> +
>>  RTE_PMD_REGISTER_PCI(net_ixgbe, rte_ixgbe_pmd);
>> RTE_PMD_REGISTER_PCI_TABLE(net_ixgbe, pci_id_ixgbe_map); diff --git
>> a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h
>> index 5023fa13f..418adfa3d 100644
>> --- a/drivers/net/ixgbe/ixgbe_ethdev.h
>> +++ b/drivers/net/ixgbe/ixgbe_ethdev.h
>> @@ -361,4 +361,9 @@ struct rte_flow {
>>  };
>>
>> +struct ixgbe_macsec_setting {
>> +	uint8_t encrypt_en;
>> +	uint8_t replayprotect_en;
>> +};
>> +
>>  /*
>>   * Statistics counters collected by the MACsec @@ -467,4 +472,5 @@ struct
>> ixgbe_adapter {
>>  	struct ixgbe_hw_stats       stats;
>>  	struct ixgbe_macsec_stats   macsec_stats;
>> +	struct ixgbe_macsec_setting	macsec_setting;
>>  	struct ixgbe_hw_fdir_info   fdir;
>>  	struct ixgbe_interrupt      intr;
>> @@ -519,4 +525,7 @@ int ixgbe_vf_representor_uninit(struct rte_eth_dev
>> *ethdev);
>>  	(&((struct ixgbe_adapter *)adapter)->macsec_stats)
>>
>> +#define IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(adapter) \
>> +	(&((struct ixgbe_adapter *)adapter)->macsec_setting)
>> +
>>  #define IXGBE_DEV_PRIVATE_TO_INTR(adapter) \
>>  	(&((struct ixgbe_adapter *)adapter)->intr) @@ -737,4 +746,14 @@ int
>> ixgbe_config_rss_filter(struct rte_eth_dev *dev,
>>  		struct ixgbe_rte_flow_rss_conf *conf, bool add);
>>
>> +void ixgbe_dev_macsec_register_enable(struct rte_eth_dev *dev,
>> +		struct ixgbe_macsec_setting *macsec_setting);
>> +
>> +void ixgbe_dev_macsec_register_disable(struct rte_eth_dev *dev);
>> +
>> +void ixgbe_dev_macsec_setting_save(struct rte_eth_dev *dev,
>> +		struct ixgbe_macsec_setting *macsec_setting);
>> +
>> +void ixgbe_dev_macsec_setting_reset(struct rte_eth_dev *dev);
>> +
>>  static inline int
>>  ixgbe_ethertype_filter_lookup(struct ixgbe_filter_info *filter_info, diff --git
>> a/drivers/net/ixgbe/rte_pmd_ixgbe.c b/drivers/net/ixgbe/rte_pmd_ixgbe.c
>> index 3a874f9a9..49d538ef1 100644
>> --- a/drivers/net/ixgbe/rte_pmd_ixgbe.c
>> +++ b/drivers/net/ixgbe/rte_pmd_ixgbe.c
>> @@ -515,7 +515,6 @@ int
>>  rte_pmd_ixgbe_macsec_enable(uint16_t port, uint8_t en, uint8_t rp)  {
>> -	struct ixgbe_hw *hw;
>>  	struct rte_eth_dev *dev;
>> -	uint32_t ctrl;
>> +	struct ixgbe_macsec_setting macsec_setting;
>>
>>  	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV); @@ -523,72
>> +522,10 @@ rte_pmd_ixgbe_macsec_enable(uint16_t port, uint8_t en, uint8_t
>> rp)
>>  	dev = &rte_eth_devices[port];
>>
>> -	if (!is_ixgbe_supported(dev))
>> -		return -ENOTSUP;
>> +	macsec_setting.encrypt_en = en;
>> +	macsec_setting.replayprotect_en = rp;
>>
>> -	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>> +	ixgbe_dev_macsec_setting_save(dev, &macsec_setting);
>>
>> -	/* Stop the data paths */
>> -	if (ixgbe_disable_sec_rx_path(hw) != IXGBE_SUCCESS)
>> -		return -ENOTSUP;
>> -	/**
>> -	 * Workaround:
>> -	 * As no ixgbe_disable_sec_rx_path equivalent is
>> -	 * implemented for tx in the base code, and we are
>> -	 * not allowed to modify the base code in DPDK, so
>> -	 * just call the hand-written one directly for now.
>> -	 * The hardware support has been checked by
>> -	 * ixgbe_disable_sec_rx_path().
>> -	 */
>> -	ixgbe_disable_sec_tx_path_generic(hw);
>> -
>> -	/* Enable Ethernet CRC (required by MACsec offload) */
>> -	ctrl = IXGBE_READ_REG(hw, IXGBE_HLREG0);
>> -	ctrl |= IXGBE_HLREG0_TXCRCEN | IXGBE_HLREG0_RXCRCSTRP;
>> -	IXGBE_WRITE_REG(hw, IXGBE_HLREG0, ctrl);
>> -
>> -	/* Enable the TX and RX crypto engines */
>> -	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXCTRL);
>> -	ctrl &= ~IXGBE_SECTXCTRL_SECTX_DIS;
>> -	IXGBE_WRITE_REG(hw, IXGBE_SECTXCTRL, ctrl);
>> -
>> -	ctrl = IXGBE_READ_REG(hw, IXGBE_SECRXCTRL);
>> -	ctrl &= ~IXGBE_SECRXCTRL_SECRX_DIS;
>> -	IXGBE_WRITE_REG(hw, IXGBE_SECRXCTRL, ctrl);
>> -
>> -	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXMINIFG);
>> -	ctrl &= ~IXGBE_SECTX_MINSECIFG_MASK;
>> -	ctrl |= 0x3;
>> -	IXGBE_WRITE_REG(hw, IXGBE_SECTXMINIFG, ctrl);
>> -
>> -	/* Enable SA lookup */
>> -	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECTXCTRL);
>> -	ctrl &= ~IXGBE_LSECTXCTRL_EN_MASK;
>> -	ctrl |= en ? IXGBE_LSECTXCTRL_AUTH_ENCRYPT :
>> -		     IXGBE_LSECTXCTRL_AUTH;
>> -	ctrl |= IXGBE_LSECTXCTRL_AISCI;
>> -	ctrl &= ~IXGBE_LSECTXCTRL_PNTHRSH_MASK;
>> -	ctrl |= IXGBE_MACSEC_PNTHRSH &
>> IXGBE_LSECTXCTRL_PNTHRSH_MASK;
>> -	IXGBE_WRITE_REG(hw, IXGBE_LSECTXCTRL, ctrl);
>> -
>> -	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECRXCTRL);
>> -	ctrl &= ~IXGBE_LSECRXCTRL_EN_MASK;
>> -	ctrl |= IXGBE_LSECRXCTRL_STRICT << IXGBE_LSECRXCTRL_EN_SHIFT;
>> -	ctrl &= ~IXGBE_LSECRXCTRL_PLSH;
>> -	if (rp)
>> -		ctrl |= IXGBE_LSECRXCTRL_RP;
>> -	else
>> -		ctrl &= ~IXGBE_LSECRXCTRL_RP;
>> -	IXGBE_WRITE_REG(hw, IXGBE_LSECRXCTRL, ctrl);
>> -
>> -	/* Start the data paths */
>> -	ixgbe_enable_sec_rx_path(hw);
>> -	/**
>> -	 * Workaround:
>> -	 * As no ixgbe_enable_sec_rx_path equivalent is
>> -	 * implemented for tx in the base code, and we are
>> -	 * not allowed to modify the base code in DPDK, so
>> -	 * just call the hand-written one directly for now.
>> -	 */
>> -	ixgbe_enable_sec_tx_path_generic(hw);
>> +	ixgbe_dev_macsec_register_enable(dev, &macsec_setting);
>>
>>  	return 0;
>> @@ -598,7 +535,5 @@ int
>>  rte_pmd_ixgbe_macsec_disable(uint16_t port)  {
>> -	struct ixgbe_hw *hw;
>>  	struct rte_eth_dev *dev;
>> -	uint32_t ctrl;
>>
>>  	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV); @@ -606,53
>> +541,7 @@ rte_pmd_ixgbe_macsec_disable(uint16_t port)
>>  	dev = &rte_eth_devices[port];
>>
>> -	if (!is_ixgbe_supported(dev))
>> -		return -ENOTSUP;
>> +	ixgbe_dev_macsec_setting_reset(dev);
>>
>> -	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>> -
>> -	/* Stop the data paths */
>> -	if (ixgbe_disable_sec_rx_path(hw) != IXGBE_SUCCESS)
>> -		return -ENOTSUP;
>> -	/**
>> -	 * Workaround:
>> -	 * As no ixgbe_disable_sec_rx_path equivalent is
>> -	 * implemented for tx in the base code, and we are
>> -	 * not allowed to modify the base code in DPDK, so
>> -	 * just call the hand-written one directly for now.
>> -	 * The hardware support has been checked by
>> -	 * ixgbe_disable_sec_rx_path().
>> -	 */
>> -	ixgbe_disable_sec_tx_path_generic(hw);
>> -
>> -	/* Disable the TX and RX crypto engines */
>> -	ctrl = IXGBE_READ_REG(hw, IXGBE_SECTXCTRL);
>> -	ctrl |= IXGBE_SECTXCTRL_SECTX_DIS;
>> -	IXGBE_WRITE_REG(hw, IXGBE_SECTXCTRL, ctrl);
>> -
>> -	ctrl = IXGBE_READ_REG(hw, IXGBE_SECRXCTRL);
>> -	ctrl |= IXGBE_SECRXCTRL_SECRX_DIS;
>> -	IXGBE_WRITE_REG(hw, IXGBE_SECRXCTRL, ctrl);
>> -
>> -	/* Disable SA lookup */
>> -	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECTXCTRL);
>> -	ctrl &= ~IXGBE_LSECTXCTRL_EN_MASK;
>> -	ctrl |= IXGBE_LSECTXCTRL_DISABLE;
>> -	IXGBE_WRITE_REG(hw, IXGBE_LSECTXCTRL, ctrl);
>> -
>> -	ctrl = IXGBE_READ_REG(hw, IXGBE_LSECRXCTRL);
>> -	ctrl &= ~IXGBE_LSECRXCTRL_EN_MASK;
>> -	ctrl |= IXGBE_LSECRXCTRL_DISABLE << IXGBE_LSECRXCTRL_EN_SHIFT;
>> -	IXGBE_WRITE_REG(hw, IXGBE_LSECRXCTRL, ctrl);
>> -
>> -	/* Start the data paths */
>> -	ixgbe_enable_sec_rx_path(hw);
>> -	/**
>> -	 * Workaround:
>> -	 * As no ixgbe_enable_sec_rx_path equivalent is
>> -	 * implemented for tx in the base code, and we are
>> -	 * not allowed to modify the base code in DPDK, so
>> -	 * just call the hand-written one directly for now.
>> -	 */
>> -	ixgbe_enable_sec_tx_path_generic(hw);
>> +	ixgbe_dev_macsec_register_disable(dev);
>>
>>  	return 0;
>> --
>> 2.21.0
>>
>> ---
>>   Diff of the applied patch vs upstream commit (please double-check if non-
>> empty:
>> ---
>> --- -	2019-12-11 21:24:13.077637869 +0000
>> +++ 0004-net-ixgbe-fix-MACsec-setting.patch	2019-12-11
>> 21:24:12.552653594 +0000
>> @@ -1 +1 @@
>> -From 50556c88104cbc0096e90f454dc137258be2099f Mon Sep 17 00:00:00
>> 2001
>> +From 7137dc35798febc3ab6738921eab092ca5c4ac0e Mon Sep 17 00:00:00
>> 2001
>> @@ -5,0 +6,2 @@
>> +[ upstream commit 50556c88104cbc0096e90f454dc137258be2099f ]
>> +
>> @@ -11 +12,0 @@
>> -Cc: stable@dpdk.org
>> @@ -22 +23 @@
>> -index 3c7624f3a..06414d110 100644
>> +index 74de2ff4e..1336236ba 100644
>> @@ -25 +26 @@
>> -@@ -2543,4 +2543,6 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
>> +@@ -2591,4 +2591,6 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
>> @@ -32 +33 @@
>> -@@ -2795,4 +2797,7 @@ skip_link_setup:
>> +@@ -2831,4 +2833,7 @@ skip_link_setup:
>> @@ -40 +41 @@
>> -@@ -2826,4 +2831,7 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
>> +@@ -2859,4 +2864,7 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
>> @@ -48 +49 @@
>> -@@ -8817,4 +8825,145 @@ ixgbe_clear_all_l2_tn_filter(struct rte_eth_dev
>> *dev)
>> +@@ -8679,4 +8687,145 @@ ixgbe_clear_all_l2_tn_filter(struct rte_eth_dev
>> +*dev)
>> @@ -195 +196 @@
>> -index 6e9ed2e10..5da6923a1 100644
>> +index 5023fa13f..418adfa3d 100644
>> @@ -198 +199 @@
>> -@@ -366,4 +366,9 @@ struct rte_flow {
>> +@@ -361,4 +361,9 @@ struct rte_flow {
>> @@ -208 +209 @@
>> -@@ -472,4 +477,5 @@ struct ixgbe_adapter {
>> +@@ -467,4 +472,5 @@ struct ixgbe_adapter {
>> @@ -214 +215 @@
>> -@@ -524,4 +530,7 @@ int ixgbe_vf_representor_uninit(struct rte_eth_dev
>> *ethdev);
>> +@@ -519,4 +525,7 @@ int ixgbe_vf_representor_uninit(struct rte_eth_dev
>> +*ethdev);
>> @@ -222 +223 @@
>> -@@ -742,4 +751,14 @@ int ixgbe_config_rss_filter(struct rte_eth_dev *dev,
>> +@@ -737,4 +746,14 @@ int ixgbe_config_rss_filter(struct rte_eth_dev
>> +*dev,
>> @@ -238 +239 @@
>> -index 9514f2cf5..073fe1e23 100644
>> +index 3a874f9a9..49d538ef1 100644
>> @@ -241 +242 @@
>> -@@ -516,7 +516,6 @@ int
>> +@@ -515,7 +515,6 @@ int
>> @@ -250 +251 @@
>> -@@ -524,72 +523,10 @@ rte_pmd_ixgbe_macsec_enable(uint16_t port,
>> uint8_t en, uint8_t rp)
>> +@@ -523,72 +522,10 @@ rte_pmd_ixgbe_macsec_enable(uint16_t port,
>> +uint8_t en, uint8_t rp)
>> @@ -327 +328 @@
>> -@@ -599,7 +536,5 @@ int
>> +@@ -598,7 +535,5 @@ int
>> @@ -335 +336 @@
>> -@@ -607,53 +542,7 @@ rte_pmd_ixgbe_macsec_disable(uint16_t port)
>> +@@ -606,53 +541,7 @@ rte_pmd_ixgbe_macsec_disable(uint16_t port)
> 


^ permalink raw reply	[flat|nested] 72+ messages in thread

end of thread, other threads:[~2019-12-12 10:02 UTC | newest]

Thread overview: 72+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-11 21:25 [dpdk-stable] patch 'net/qede: fix setting MTU' has been queued to LTS release 18.11.6 Kevin Traynor
2019-12-11 21:25 ` [dpdk-stable] patch 'net/qede: fix setting VLAN strip mode' " Kevin Traynor
2019-12-11 21:25 ` [dpdk-stable] patch 'net/ixgbe: support packet type with NEON' " Kevin Traynor
2019-12-11 21:25 ` [dpdk-stable] patch 'net/ixgbe: fix MACsec setting' " Kevin Traynor
2019-12-12  2:42   ` Sun, GuinanX
2019-12-12 10:01     ` Kevin Traynor
2019-12-11 21:25 ` [dpdk-stable] patch 'net/ixgbe: fix performance drop caused by MACsec' " Kevin Traynor
2019-12-11 21:25 ` [dpdk-stable] patch 'net/ixgbe: fix link status' " Kevin Traynor
2019-12-11 21:25 ` [dpdk-stable] patch 'net/bnxt: fix debug log level' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'net/bnxt: fix L4 checksum indication in non-vector Rx' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'net/bnxt: fix IP checksum error indication' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'vhost: do not limit packed ring size' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'vhost: fix build dependency on hash lib' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'net/virtio-user: fix setting filters' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'net/mlx5: allow pattern start from IP' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'ethdev: fix expand RSS flows' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'ethdev: fix item expansion for RSS flow' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'ethdev: fix last item detection on RSS flow expand' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'eal: add ack interrupt API' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'net/qede: use ack in interrupt handlers' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'net/enic: re-enable link status change interrupt' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'net/sfc: fix adapter lock usage on rule creation' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'app/testpmd: block xstats for hidden ports' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'net/dpaa2: fix Rx offload flags on jumbo MTU set' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'examples/vm_power: fix OOB frequency oscillations' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'bus/pci: align next mapping address on page boundary' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'test: optimise fd closing in forks' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'doc: fix internal links for older releases' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'doc: fix link to AESNI mb external library' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'doc/guides: clean repeated words' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'mempool: use actual IOVA addresses when populating' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'build: remove unneeded meson option' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'lib: fix log typos' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'lib: fix doxygen " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'malloc: fix realloc copy size' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'malloc: fix realloc padded element " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'examples/ipsec-secgw: fix default configuration' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'examples/fips_validation: fix auth verify' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'net/mlx5: fix check of RSS queue index' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'net/bnxt: fix crash in xstats get' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'net/bonding: fix selection logic' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'ethdev: avoid undefined behaviour on configuration copy' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'net/bnxt: fix resource qcaps with older FW' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'app/testpmd: report invalid command line parameter' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'examples: hide error for missing pkg-config path flag' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'common/octeontx: add missing public symbol' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'app/testpmd: fix invalid port detaching' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'power: handle frequency increase with turbo disabled' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'mk: remove library search path from binary' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'examples/multi_process: check server port validity' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'examples/multi_process: fix client crash with sparse ports' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'app/eventdev: fix divide by zero' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'app/eventdev: check function errors' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'app/crypto-perf: fix input of AEAD decrypt' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'doc: fix l2fwd-crypto usage in CCP guide' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'crypto/ccp: fix maximum queues and burst size' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'crypto/ccp: fix CPU authentication crash' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'crypto/ccp: fix scheduling of burst' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'crypto/ccp: fix digest size capabilities' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'malloc: fix memory element size in case of padding' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'eal: fix header file install with meson' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'net/virtio-user: drop attribute unused for memory callback' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'doc: fix tap guide' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'net/e1000: fix link status update' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'net/ixgbe: fix link status' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'net/e1000: " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'net/ifc: check VFIO query error' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'ethdev: limit maximum number of queues' " Kevin Traynor
2019-12-11 21:26 ` [dpdk-stable] patch 'event/octeontx: fix partial Rx packet handling' " Kevin Traynor
2019-12-11 21:27 ` [dpdk-stable] patch 'test/service: fix wait for service core' " Kevin Traynor
2019-12-11 21:27 ` [dpdk-stable] patch 'usertools: fix typo in SPDX tag of telemetry script' " Kevin Traynor
2019-12-11 21:27 ` [dpdk-stable] patch 'doc: update arm64 cross build tool version' " Kevin Traynor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).