patches for DPDK stable branches
 help / color / mirror / Atom feed
* patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1
@ 2022-03-16 15:15 Kevin Traynor
  2022-03-16 15:15 ` patch 'net/mlx5: fix sample flow action on trusted device' " Kevin Traynor
                   ` (21 more replies)
  0 siblings, 22 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Dariusz Sosnowski; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From 0d0b9a3c5b81592d9b2a4153e96016f140638365 Mon Sep 17 00:00:00 2001
From: Dariusz Sosnowski <dsosnowski@nvidia.com>
Date: Wed, 9 Mar 2022 09:39:20 +0000
Subject: [PATCH] net/mlx5: fix VLAN push action validation

[ upstream commit 7c0c63c9a53964d40b27da618ab94303f28ea92e ]

Flow domain and direction was validated when OF_PUSH_VLAN action
appears in flow actions. Flow was rejected whenever this action:

- was used in NIC domain, in ingress direction;
- was used in FDB domain, in ingress direction, on ConnectX-5.

This validation logic rejected a valid case when the OF_PUSH_VLAN
action was used when directing traffic to the hairpin queue,
configured in TX implicit mode.

This patch moves code responsible for OF_PUSH_VLAN validation of
domain and direction from flow_dv_validate_push_vlan() to
flow_dv_validate(). Domain and direction are now validated when either
non-hairpin queue is used or hairpin queue is configured in Tx explicit
mode.

Fixes: 96f85ec489db ("net/mlx5: check VLAN push/pop support")

Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 46 ++++++++++++++++-----------------
 1 file changed, 22 insertions(+), 24 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 28843fe9e6..b8a4edae65 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -2878,6 +2878,4 @@ flow_dv_validate_action_push_vlan(struct rte_eth_dev *dev,
 	const struct rte_flow_action_of_push_vlan *push_vlan = action->conf;
 	const struct mlx5_priv *priv = dev->data->dev_private;
-	struct mlx5_dev_ctx_shared *sh = priv->sh;
-	bool direction_error = false;
 
 	if (push_vlan->ethertype != RTE_BE16(RTE_ETHER_TYPE_VLAN) &&
@@ -2891,20 +2889,4 @@ flow_dv_validate_action_push_vlan(struct rte_eth_dev *dev,
 					  "wrong action order, port_id should "
 					  "be after push VLAN");
-	/* Push VLAN is not supported in ingress except for CX6 FDB mode. */
-	if (attr->transfer) {
-		bool fdb_tx = priv->representor_id != UINT16_MAX;
-		bool is_cx5 = sh->steering_format_version ==
-		    MLX5_STEERING_LOGIC_FORMAT_CONNECTX_5;
-
-		if (!fdb_tx && is_cx5)
-			direction_error = true;
-	} else if (attr->ingress) {
-		direction_error = true;
-	}
-	if (direction_error)
-		return rte_flow_error_set(error, ENOTSUP,
-					  RTE_FLOW_ERROR_TYPE_ATTR_INGRESS,
-					  NULL,
-					  "push vlan action not supported for ingress");
 	if (!attr->transfer && priv->representor)
 		return rte_flow_error_set(error, ENOTSUP,
@@ -7999,4 +7981,26 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 						  NULL, "encap and decap "
 						  "combination aren't supported");
+		/* Push VLAN is not supported in ingress except for NICs newer than CX5. */
+		if (action_flags & MLX5_FLOW_ACTION_OF_PUSH_VLAN) {
+			struct mlx5_dev_ctx_shared *sh = priv->sh;
+			bool direction_error = false;
+
+			if (attr->transfer) {
+				bool fdb_tx = priv->representor_id != UINT16_MAX;
+				bool is_cx5 = sh->steering_format_version ==
+				    MLX5_STEERING_LOGIC_FORMAT_CONNECTX_5;
+
+				if (!fdb_tx && is_cx5)
+					direction_error = true;
+			} else if (attr->ingress) {
+				direction_error = true;
+			}
+			if (direction_error)
+				return rte_flow_error_set(error, ENOTSUP,
+							  RTE_FLOW_ERROR_TYPE_ATTR_INGRESS,
+							  NULL,
+							  "push VLAN action not supported "
+							  "for ingress");
+		}
 		if (!attr->transfer && attr->ingress) {
 			if (action_flags & MLX5_FLOW_ACTION_ENCAP)
@@ -8006,10 +8010,4 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 						 NULL, "encap is not supported"
 						 " for ingress traffic");
-			else if (action_flags & MLX5_FLOW_ACTION_OF_PUSH_VLAN)
-				return rte_flow_error_set
-						(error, ENOTSUP,
-						 RTE_FLOW_ERROR_TYPE_ACTION,
-						 NULL, "push VLAN action not "
-						 "supported for ingress");
 			else if ((action_flags & MLX5_FLOW_VLAN_ACTIONS) ==
 					MLX5_FLOW_VLAN_ACTIONS)
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.153294298 +0000
+++ 0001-net-mlx5-fix-VLAN-push-action-validation.patch	2022-03-16 15:14:12.050847415 +0000
@@ -1 +1 @@
-From 7c0c63c9a53964d40b27da618ab94303f28ea92e Mon Sep 17 00:00:00 2001
+From 0d0b9a3c5b81592d9b2a4153e96016f140638365 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 7c0c63c9a53964d40b27da618ab94303f28ea92e ]
+
@@ -23 +24,0 @@
-Cc: stable@dpdk.org
@@ -32 +33 @@
-index 29751e7eda..1746ef37bd 100644
+index 28843fe9e6..b8a4edae65 100644
@@ -35 +36 @@
-@@ -2874,6 +2874,4 @@ flow_dv_validate_action_push_vlan(struct rte_eth_dev *dev,
+@@ -2878,6 +2878,4 @@ flow_dv_validate_action_push_vlan(struct rte_eth_dev *dev,
@@ -42 +43 @@
-@@ -2887,20 +2885,4 @@ flow_dv_validate_action_push_vlan(struct rte_eth_dev *dev,
+@@ -2891,20 +2889,4 @@ flow_dv_validate_action_push_vlan(struct rte_eth_dev *dev,
@@ -63 +64 @@
-@@ -7997,4 +7979,26 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -7999,4 +7981,26 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
@@ -90 +91 @@
-@@ -8004,10 +8008,4 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -8006,10 +8010,4 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,


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

* patch 'net/mlx5: fix sample flow action on trusted device' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'net/mlx5: forbid multiple ASO actions in a single rule' " Kevin Traynor
                   ` (20 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Jiawei Wang; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From 52b3a9ca6dfdca45075d11d521eb7ce08ab3732a Mon Sep 17 00:00:00 2001
From: Jiawei Wang <jiaweiw@nvidia.com>
Date: Wed, 9 Mar 2022 12:19:46 +0200
Subject: [PATCH] net/mlx5: fix sample flow action on trusted device

[ upstream commit 9a726360dd3010a4c664e37682826b68a0a7f7fe ]

A flow rule with sample action will be split into two sub flows,
and a tag action was added implicitly in the sample prefix sub flow,
the reserved metadata regC index was used for this tag action.

The reserved metadata regC was shared with metering action,
for ConnectX-5 trusted device (VF/SF), the reserved metadata regC was
invalid since PF only supported the legacy metering.

This patch adds the checking for the tag index and back to use the
application tag if a failure happened.

Fixes: a9b6ea45bed6 ("net/mlx5: fix tag ID conflict with sample action")

Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 doc/guides/nics/mlx5.rst        | 2 ++
 drivers/net/mlx5/mlx5_flow.c    | 6 ++++++
 drivers/net/mlx5/mlx5_flow_dv.c | 8 ++++++++
 3 files changed, 16 insertions(+)

diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index 8610ffb25a..9519265939 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -421,4 +421,6 @@ Limitations
   - For E-Switch mirroring flow, supports ``RAW ENCAP``, ``Port ID``,
     ``VXLAN ENCAP``, ``NVGRE ENCAP`` in the sample actions list.
+  - For ConnectX-5 trusted device, the application metadata with SET_TAG index 0
+    is not supported before ``RTE_FLOW_ACTION_TYPE_SAMPLE`` action.
 
 - Modify Field flow:
diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 41a648ff3f..a7c8c92ce4 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -5653,4 +5653,10 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
 		set_tag = (void *)(actions_pre + actions_n + append_index);
 		ret = mlx5_flow_get_reg_id(dev, MLX5_SAMPLE_ID, 0, error);
+		/* Trust VF/SF on CX5 not supported meter so that the reserved
+		 * metadata regC is REG_NON, back to use application tag
+		 * index 0.
+		 */
+		if (unlikely(ret == REG_NON))
+			ret = mlx5_flow_get_reg_id(dev, MLX5_APP_TAG, 0, error);
 		if (ret < 0)
 			return ret;
diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index b8a4edae65..bfc65186f3 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -6922,4 +6922,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 	bool shared_count = false;
 	uint16_t udp_dport = 0;
+	uint32_t tag_id = 0;
 
 	if (items == NULL)
@@ -7391,4 +7392,6 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 			if (action_flags & MLX5_FLOW_ACTION_SAMPLE)
 				modify_after_mirror = 1;
+			tag_id = ((const struct rte_flow_action_set_tag *)
+				  actions->conf)->index;
 			action_flags |= MLX5_FLOW_ACTION_SET_TAG;
 			rw_act_num += MLX5_ACT_NUM_SET_TAG;
@@ -7825,4 +7828,9 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 			if (ret < 0)
 				return ret;
+			if ((action_flags & MLX5_FLOW_ACTION_SET_TAG) &&
+			    tag_id == 0 && priv->mtr_color_reg == REG_NON)
+				return rte_flow_error_set(error, EINVAL,
+					RTE_FLOW_ERROR_TYPE_ACTION, NULL,
+					"sample after tag action causes metadata tag index 0 corruption");
 			action_flags |= MLX5_FLOW_ACTION_SAMPLE;
 			++actions_n;
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.185287699 +0000
+++ 0002-net-mlx5-fix-sample-flow-action-on-trusted-device.patch	2022-03-16 15:14:12.077847503 +0000
@@ -1 +1 @@
-From 9a726360dd3010a4c664e37682826b68a0a7f7fe Mon Sep 17 00:00:00 2001
+From 52b3a9ca6dfdca45075d11d521eb7ce08ab3732a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 9a726360dd3010a4c664e37682826b68a0a7f7fe ]
+
@@ -18 +19,0 @@
-Cc: stable@dpdk.org
@@ -29 +30 @@
-index a734d10d3f..ca7ebbe9cd 100644
+index 8610ffb25a..9519265939 100644
@@ -32 +33 @@
-@@ -401,4 +401,6 @@ Limitations
+@@ -421,4 +421,6 @@ Limitations
@@ -40 +41 @@
-index ffcaef0baa..e2bc6ce8ad 100644
+index 41a648ff3f..a7c8c92ce4 100644
@@ -43 +44 @@
-@@ -5882,4 +5882,10 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
+@@ -5653,4 +5653,10 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
@@ -55 +56 @@
-index 1746ef37bd..d553e9dee3 100644
+index b8a4edae65..bfc65186f3 100644
@@ -58 +59 @@
-@@ -6914,4 +6914,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -6922,4 +6922,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
@@ -64 +65 @@
-@@ -7390,4 +7391,6 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -7391,4 +7392,6 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
@@ -71 +72 @@
-@@ -7824,4 +7827,9 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -7825,4 +7828,9 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,


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

* patch 'net/mlx5: forbid multiple ASO actions in a single rule' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
  2022-03-16 15:15 ` patch 'net/mlx5: fix sample flow action on trusted device' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'net/mlx5: fix implicit tag insertion with sample action' " Kevin Traynor
                   ` (19 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Rongwei Liu; +Cc: Xiaoyu Min, Matan Azrad, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From eaa158ee719d5bd9262cafb40261054c1d37cb6d Mon Sep 17 00:00:00 2001
From: Rongwei Liu <rongweil@nvidia.com>
Date: Wed, 9 Mar 2022 14:08:29 +0200
Subject: [PATCH] net/mlx5: forbid multiple ASO actions in a single rule

[ upstream commit 4a9e5c999cd5ed8d17bcff4288d32e2c3ff82ac5 ]

For now, only one ASO action is supported in a single flow rule.
Flow rule with more than one ASO action should be rejected in the
validation stage.

Flow rule with action non-shared AGE and COUNT together should be
treated as non-ASO because AGE will fall back to use HW counter,
not ASO hit object.

Group 0 will use HW counter for AGE action even if no COUNT action.

This commit will reject patterns (no matter which group if transfer)
like:
1. group 1 pattern... / end actions age / meter / end
2. group 1 pattern... / end actions conntrack / meter / end
3. group 1 pattern... / end actions age / conntrack... / end

If AGE comes together with COUNT in the above patterns, it's allowed.

Fixes: daed4b6e ("net/mlx5: use aging by counter when counter exists")

Signed-off-by: Rongwei Liu <rongweil@nvidia.com>
Acked-by: Xiaoyu Min <jackmin@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index bfc65186f3..462d498a4b 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -6853,5 +6853,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 {
 	int ret;
-	uint64_t action_flags = 0;
+	uint64_t aso_mask, action_flags = 0;
 	uint64_t item_flags = 0;
 	uint64_t last_item = 0;
@@ -6923,4 +6923,6 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 	uint16_t udp_dport = 0;
 	uint32_t tag_id = 0;
+	const struct rte_flow_action_age *non_shared_age = NULL;
+	const struct rte_flow_action_count *count = NULL;
 
 	if (items == NULL)
@@ -7455,4 +7457,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 			if (ret < 0)
 				return ret;
+			count = actions->conf;
 			action_flags |= MLX5_FLOW_ACTION_COUNT;
 			++actions_n;
@@ -7760,4 +7763,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 			break;
 		case RTE_FLOW_ACTION_TYPE_AGE:
+			non_shared_age = actions->conf;
 			ret = flow_dv_validate_action_age(action_flags,
 							  actions, dev,
@@ -8057,4 +8061,18 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 		}
 	}
+	/*
+	 * Only support one ASO action in a single flow rule.
+	 * non-shared AGE + counter will fallback to use HW counter, no ASO hit object.
+	 * Group 0 uses HW counter for AGE too even if no counter action.
+	 */
+	aso_mask = (action_flags & MLX5_FLOW_ACTION_METER && priv->sh->meter_aso_en) << 2 |
+		   (action_flags & MLX5_FLOW_ACTION_CT && priv->sh->ct_aso_en) << 1 |
+		   (action_flags & MLX5_FLOW_ACTION_AGE &&
+		    !(non_shared_age && count) &&
+		    (attr->group || (attr->transfer && priv->fdb_def_rule)) &&
+		    priv->sh->flow_hit_aso_en);
+	if (__builtin_popcountl(aso_mask) > 1)
+		return rte_flow_error_set(error, ENOTSUP, RTE_FLOW_ERROR_TYPE_ACTION,
+					  NULL, "unsupported combining AGE, METER, CT ASO actions in a single rule");
 	/*
 	 * Hairpin flow will add one more TAG action in TX implicit mode.
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.227549813 +0000
+++ 0003-net-mlx5-forbid-multiple-ASO-actions-in-a-single-rul.patch	2022-03-16 15:14:12.090847545 +0000
@@ -1 +1 @@
-From 4a9e5c999cd5ed8d17bcff4288d32e2c3ff82ac5 Mon Sep 17 00:00:00 2001
+From eaa158ee719d5bd9262cafb40261054c1d37cb6d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4a9e5c999cd5ed8d17bcff4288d32e2c3ff82ac5 ]
+
@@ -25 +26,0 @@
-Cc: stable@dpdk.org
@@ -35 +36 @@
-index d553e9dee3..1e9bd63635 100644
+index bfc65186f3..462d498a4b 100644
@@ -38 +39 @@
-@@ -6845,5 +6845,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -6853,5 +6853,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
@@ -45 +46 @@
-@@ -6915,4 +6915,6 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -6923,4 +6923,6 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
@@ -52 +53 @@
-@@ -7454,4 +7456,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -7455,4 +7457,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
@@ -58 +59 @@
-@@ -7759,4 +7762,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -7760,4 +7763,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
@@ -64 +65 @@
-@@ -8055,4 +8059,18 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -8057,4 +8061,18 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,


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

* patch 'net/mlx5: fix implicit tag insertion with sample action' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
  2022-03-16 15:15 ` patch 'net/mlx5: fix sample flow action on trusted device' " Kevin Traynor
  2022-03-16 15:15 ` patch 'net/mlx5: forbid multiple ASO actions in a single rule' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'doc: fix modify field action description for mlx5' " Kevin Traynor
                   ` (18 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Jiawei Wang; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From 5b6b7475f27b00358cc548cb4b88f8bbd970322b Mon Sep 17 00:00:00 2001
From: Jiawei Wang <jiaweiw@nvidia.com>
Date: Thu, 10 Mar 2022 06:00:10 +0200
Subject: [PATCH] net/mlx5: fix implicit tag insertion with sample action

[ upstream commit 0f845cc7264a8b56225a28cb4584095cbbf88869 ]

A flow rule with sample action was split into two sub-flows,
and the implicit tag action with unique id was added in the prefix
sub-flow, the suffix sub-flow used the tag item to match with that
unique id, and the implicit set tag action was inserted next to
the sample action.

While there's either PUSH VLAN action or ENCAP action preceding the
sample action, implicit set tag action was added after PUSH VLAN or
ENCAP actions, causing flow creation failure due to rdma-core
does not support this action order.

This patch ensures the implicit set tag action is inserted before
either PUSH VLAN or encap action (if any) in the prefix sub-flow.

Fixes: 6a951567c159 ("net/mlx5: support E-Switch mirroring and jump in one flow")

Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow.c | 63 ++++++++++++++++++++++++++++++++++--
 1 file changed, 61 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index a7c8c92ce4..10afd96fea 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -5612,6 +5612,7 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
 	struct rte_flow_action_jump *jump_action;
 	uint32_t tag_id = 0;
-	int index;
 	int append_index = 0;
+	int set_tag_idx = -1;
+	int index;
 	int ret;
 
@@ -5622,4 +5623,50 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
 					  "action in list");
 	/* Prepare the actions for prefix and suffix flow. */
+	if (add_tag) {
+		/* Update the new added tag action index preceding
+		 * the PUSH_VLAN or ENCAP action.
+		 */
+		const struct rte_flow_action_raw_encap *raw_encap;
+		const struct rte_flow_action *action = actions;
+		int encap_idx;
+		int action_idx = 0;
+		int raw_decap_idx = -1;
+		int push_vlan_idx = -1;
+		for (; action->type != RTE_FLOW_ACTION_TYPE_END; action++) {
+			switch (action->type) {
+			case RTE_FLOW_ACTION_TYPE_RAW_DECAP:
+				raw_decap_idx = action_idx;
+				break;
+			case RTE_FLOW_ACTION_TYPE_RAW_ENCAP:
+				raw_encap = action->conf;
+				if (raw_encap->size >
+					MLX5_ENCAPSULATION_DECISION_SIZE) {
+					encap_idx = raw_decap_idx != -1 ?
+						    raw_decap_idx : action_idx;
+					if (encap_idx < sample_action_pos &&
+					    push_vlan_idx == -1)
+						set_tag_idx = encap_idx;
+				}
+				break;
+			case RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP:
+			case RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP:
+				encap_idx = action_idx;
+				if (encap_idx < sample_action_pos &&
+				    push_vlan_idx == -1)
+					set_tag_idx = encap_idx;
+				break;
+			case RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN:
+			case RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID:
+				push_vlan_idx = action_idx;
+				if (push_vlan_idx < sample_action_pos)
+					set_tag_idx = action_idx;
+				break;
+			default:
+				break;
+			}
+			action_idx++;
+		}
+	}
+	/* Prepare the actions for prefix and suffix flow. */
 	if (qrss_action_pos >= 0 && qrss_action_pos < sample_action_pos) {
 		index = qrss_action_pos;
@@ -5638,4 +5685,12 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
 		       sizeof(struct rte_flow_action));
 		actions_sfx++;
+	} else if (add_tag && set_tag_idx >= 0) {
+		if (set_tag_idx > 0)
+			memcpy(actions_pre, actions,
+			       sizeof(struct rte_flow_action) * set_tag_idx);
+		memcpy(actions_pre + set_tag_idx + 1, actions + set_tag_idx,
+		       sizeof(struct rte_flow_action) *
+		       (sample_action_pos - set_tag_idx));
+		index = sample_action_pos;
 	} else {
 		index = sample_action_pos;
@@ -5685,5 +5740,6 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
 		};
 		/* Prepare the tag action in prefix subflow. */
-		actions_pre[index++] =
+		set_tag_idx = (set_tag_idx == -1) ? index : set_tag_idx;
+		actions_pre[set_tag_idx] =
 			(struct rte_flow_action){
 			.type = (enum rte_flow_action_type)
@@ -5691,5 +5747,8 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
 			.conf = set_tag,
 		};
+		/* Update next sample position due to add one tag action */
+		index += 1;
 	}
+	/* Copy the sample action into prefix flow. */
 	memcpy(actions_pre + index, actions + sample_action_pos,
 	       sizeof(struct rte_flow_action));
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.260861396 +0000
+++ 0004-net-mlx5-fix-implicit-tag-insertion-with-sample-acti.patch	2022-03-16 15:14:12.098847571 +0000
@@ -1 +1 @@
-From 0f845cc7264a8b56225a28cb4584095cbbf88869 Mon Sep 17 00:00:00 2001
+From 5b6b7475f27b00358cc548cb4b88f8bbd970322b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0f845cc7264a8b56225a28cb4584095cbbf88869 ]
+
@@ -21 +22,0 @@
-Cc: stable@dpdk.org
@@ -30 +31 @@
-index e2bc6ce8ad..cd55bdc2c0 100644
+index a7c8c92ce4..10afd96fea 100644
@@ -33 +34 @@
-@@ -5841,6 +5841,7 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
+@@ -5612,6 +5612,7 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
@@ -42 +43 @@
-@@ -5851,4 +5852,50 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
+@@ -5622,4 +5623,50 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
@@ -93 +94 @@
-@@ -5867,4 +5914,12 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
+@@ -5638,4 +5685,12 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
@@ -106 +107 @@
-@@ -5914,5 +5969,6 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
+@@ -5685,5 +5740,6 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
@@ -114 +115 @@
-@@ -5920,5 +5976,8 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
+@@ -5691,5 +5747,8 @@ flow_sample_split_prep(struct rte_eth_dev *dev,


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

* patch 'doc: fix modify field action description for mlx5' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (2 preceding siblings ...)
  2022-03-16 15:15 ` patch 'net/mlx5: fix implicit tag insertion with sample action' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'net/qede: fix Tx completion' " Kevin Traynor
                   ` (17 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Viacheslav Ovsiienko; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From 1e158eba9618968caf365474f5b20cdbbf5aa10f Mon Sep 17 00:00:00 2001
From: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Date: Thu, 24 Feb 2022 18:01:36 +0200
Subject: [PATCH] doc: fix modify field action description for mlx5

[ upstream commit d98c04e82d6169ac32cfbe566c055b6cea8305c4 ]

This patch adds mlx5 specifics description about
handling the Ethernet type by modify field action
for VLAN-ed traffic.

Fixes: 641dbe4fb053 ("net/mlx5: support modify field flow action")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 doc/guides/nics/mlx5.rst | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index 9519265939..b3f1673b55 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -431,4 +431,10 @@ Limitations
   - Encapsulation levels are not supported, can modify outermost header fields only.
   - Offsets must be 32-bits aligned, cannot skip past the boundary of a field.
+  - If the field type is ``RTE_FLOW_FIELD_MAC_TYPE``
+    and packet contains one or more VLAN headers,
+    the meaningful type field following the last VLAN header
+    is used as modify field operation argument.
+    The modify field action is not intended to modify VLAN headers type field,
+    dedicated VLAN push and pop actions should be used instead.
 
 - IPv6 header item 'proto' field, indicating the next header protocol, should
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.288905397 +0000
+++ 0005-doc-fix-modify-field-action-description-for-mlx5.patch	2022-03-16 15:14:12.100847578 +0000
@@ -1 +1 @@
-From d98c04e82d6169ac32cfbe566c055b6cea8305c4 Mon Sep 17 00:00:00 2001
+From 1e158eba9618968caf365474f5b20cdbbf5aa10f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d98c04e82d6169ac32cfbe566c055b6cea8305c4 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index ca7ebbe9cd..3c3687ac73 100644
+index 9519265939..b3f1673b55 100644
@@ -22 +23 @@
-@@ -411,4 +411,10 @@ Limitations
+@@ -431,4 +431,10 @@ Limitations


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

* patch 'net/qede: fix Tx completion' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (3 preceding siblings ...)
  2022-03-16 15:15 ` patch 'doc: fix modify field action description for mlx5' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'net/qede: fix Rx bulk' " Kevin Traynor
                   ` (16 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Devendra Singh Rawat; +Cc: Rasesh Mody, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From d300f3f060d2fb096758bdceb125de820f71756b Mon Sep 17 00:00:00 2001
From: Devendra Singh Rawat <dsinghrawat@marvell.com>
Date: Fri, 4 Mar 2022 17:38:31 +0530
Subject: [PATCH] net/qede: fix Tx completion

[ upstream commit bc3045626517c26bd1cca4342d8df8f852407726 ]

Tx completion routine was first incrementing the number of free
slots in Tx ring and then freeing corresponding mbufs in bulk.
In some situations, the number of mbufs freed were less than
number of Tx ring slots freed. This caused Tx ring to get into an
inconsistent state and ultimately application fails to transmit
further traffic.

The fix first updates the Tx ring SW consumer index, then
increments Tx ring free slot number and finally frees the mbuf,
this is done in a single iteration of loop.

Fixes: 2c41740bf19e ("net/qede: get consumer index once")
Fixes: 4996b959cde6 ("net/qede: free packets in bulk")

Signed-off-by: Devendra Singh Rawat <dsinghrawat@marvell.com>
Signed-off-by: Rasesh Mody <rmody@marvell.com>
---
 drivers/net/qede/qede_rxtx.c | 79 +++++++++++++++---------------------
 1 file changed, 33 insertions(+), 46 deletions(-)

diff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c
index 7088c57b50..0b3b4c7ef6 100644
--- a/drivers/net/qede/qede_rxtx.c
+++ b/drivers/net/qede/qede_rxtx.c
@@ -888,66 +888,53 @@ qede_tx_queue_start(struct rte_eth_dev *eth_dev, uint16_t tx_queue_id)
 
 static inline void
-qede_process_tx_compl(__rte_unused struct ecore_dev *edev,
-		      struct qede_tx_queue *txq)
+qede_free_tx_pkt(struct qede_tx_queue *txq)
 {
-	uint16_t hw_bd_cons;
-	uint16_t sw_tx_cons;
-	uint16_t remaining;
-	uint16_t mask;
 	struct rte_mbuf *mbuf;
 	uint16_t nb_segs;
 	uint16_t idx;
-	uint16_t first_idx;
 
-	rte_compiler_barrier();
-	rte_prefetch0(txq->hw_cons_ptr);
-	sw_tx_cons = ecore_chain_get_cons_idx(&txq->tx_pbl);
-	hw_bd_cons = rte_le_to_cpu_16(*txq->hw_cons_ptr);
-#ifdef RTE_LIBRTE_QEDE_DEBUG_TX
-	PMD_TX_LOG(DEBUG, txq, "Tx Completions = %u\n",
-		   abs(hw_bd_cons - sw_tx_cons));
-#endif
-
-	mask = NUM_TX_BDS(txq);
-	idx = txq->sw_tx_cons & mask;
-
-	remaining = hw_bd_cons - sw_tx_cons;
-	txq->nb_tx_avail += remaining;
-	first_idx = idx;
-
-	while (remaining) {
-		mbuf = txq->sw_tx_ring[idx];
-		RTE_ASSERT(mbuf);
+	idx = TX_CONS(txq);
+	mbuf = txq->sw_tx_ring[idx];
+	if (mbuf) {
 		nb_segs = mbuf->nb_segs;
-		remaining -= nb_segs;
-
-		/* Prefetch the next mbuf. Note that at least the last 4 mbufs
-		 * that are prefetched will not be used in the current call.
-		 */
-		rte_mbuf_prefetch_part1(txq->sw_tx_ring[(idx + 4) & mask]);
-		rte_mbuf_prefetch_part2(txq->sw_tx_ring[(idx + 4) & mask]);
-
 		PMD_TX_LOG(DEBUG, txq, "nb_segs to free %u\n", nb_segs);
-
 		while (nb_segs) {
+			/* It's like consuming rxbuf in recv() */
 			ecore_chain_consume(&txq->tx_pbl);
+			txq->nb_tx_avail++;
 			nb_segs--;
 		}
-
-		idx = (idx + 1) & mask;
+		rte_pktmbuf_free(mbuf);
+		txq->sw_tx_ring[idx] = NULL;
+		txq->sw_tx_cons++;
 		PMD_TX_LOG(DEBUG, txq, "Freed tx packet\n");
-	}
-	txq->sw_tx_cons = idx;
-
-	if (first_idx > idx) {
-		rte_pktmbuf_free_bulk(&txq->sw_tx_ring[first_idx],
-							  mask - first_idx + 1);
-		rte_pktmbuf_free_bulk(&txq->sw_tx_ring[0], idx);
 	} else {
-		rte_pktmbuf_free_bulk(&txq->sw_tx_ring[first_idx],
-							  idx - first_idx);
+		ecore_chain_consume(&txq->tx_pbl);
+		txq->nb_tx_avail++;
 	}
 }
 
+static inline void
+qede_process_tx_compl(__rte_unused struct ecore_dev *edev,
+		      struct qede_tx_queue *txq)
+{
+	uint16_t hw_bd_cons;
+#ifdef RTE_LIBRTE_QEDE_DEBUG_TX
+	uint16_t sw_tx_cons;
+#endif
+
+	hw_bd_cons = rte_le_to_cpu_16(*txq->hw_cons_ptr);
+	/* read barrier prevents speculative execution on stale data */
+	rte_rmb();
+
+#ifdef RTE_LIBRTE_QEDE_DEBUG_TX
+	sw_tx_cons = ecore_chain_get_cons_idx(&txq->tx_pbl);
+	PMD_TX_LOG(DEBUG, txq, "Tx Completions = %u\n",
+		   abs(hw_bd_cons - sw_tx_cons));
+#endif
+	while (hw_bd_cons !=  ecore_chain_get_cons_idx(&txq->tx_pbl))
+		qede_free_tx_pkt(txq);
+}
+
 static int qede_drain_txq(struct qede_dev *qdev,
 			  struct qede_tx_queue *txq, bool allow_drain)
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.309354115 +0000
+++ 0006-net-qede-fix-Tx-completion.patch	2022-03-16 15:14:12.102847584 +0000
@@ -1 +1 @@
-From bc3045626517c26bd1cca4342d8df8f852407726 Mon Sep 17 00:00:00 2001
+From d300f3f060d2fb096758bdceb125de820f71756b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit bc3045626517c26bd1cca4342d8df8f852407726 ]
+
@@ -19 +20,0 @@
-Cc: stable@dpdk.org
@@ -28 +29 @@
-index 911bb1a260..0c52568180 100644
+index 7088c57b50..0b3b4c7ef6 100644
@@ -31 +32 @@
-@@ -886,66 +886,53 @@ qede_tx_queue_start(struct rte_eth_dev *eth_dev, uint16_t tx_queue_id)
+@@ -888,66 +888,53 @@ qede_tx_queue_start(struct rte_eth_dev *eth_dev, uint16_t tx_queue_id)


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

* patch 'net/qede: fix Rx bulk' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (4 preceding siblings ...)
  2022-03-16 15:15 ` patch 'net/qede: fix Tx completion' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'net/qede: fix maximum Rx packet length' " Kevin Traynor
                   ` (15 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Devendra Singh Rawat; +Cc: Rasesh Mody, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From bc19f2b75de23a6d8a971d29a55246c5dca56225 Mon Sep 17 00:00:00 2001
From: Devendra Singh Rawat <dsinghrawat@marvell.com>
Date: Fri, 4 Mar 2022 17:38:32 +0530
Subject: [PATCH] net/qede: fix Rx bulk

[ upstream commit f65c7fbceca91b54200ca3dc5d27f2292e5d829f ]

qede_alloc_rx_bulk_mbufs() was trimming the number of requested
mbufs count to QEDE_MAX_BULK_ALLOC_COUNT.
The Rx callback was ignorant of this trimming and it was always
resetting the number of empty RX BD ring slots to 0.
This resulted in Rx BD ring getting into an inconsistent
state and ultimately the application fails to receive any traffic.

The fix trims the number of requested mbufs count before
making call to qede_alloc_rx_bulk_mbufs().
After qede_alloc_rx_bulk_mbufs() returns successfully, the
number of empty Rx BD ring slots are decremented by the
correct count.

Fixes: 8f2312474529 ("net/qede: fix performance bottleneck in Rx path")

Signed-off-by: Devendra Singh Rawat <dsinghrawat@marvell.com>
Signed-off-by: Rasesh Mody <rmody@marvell.com>
---
 drivers/net/qede/qede_rxtx.c | 68 ++++++++++++++++--------------------
 1 file changed, 31 insertions(+), 37 deletions(-)

diff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c
index 0b3b4c7ef6..bf3c26fd33 100644
--- a/drivers/net/qede/qede_rxtx.c
+++ b/drivers/net/qede/qede_rxtx.c
@@ -39,4 +39,5 @@ static inline int qede_alloc_rx_buffer(struct qede_rx_queue *rxq)
 static inline int qede_alloc_rx_bulk_mbufs(struct qede_rx_queue *rxq, int count)
 {
+	void *obj_p[QEDE_MAX_BULK_ALLOC_COUNT] __rte_cache_aligned;
 	struct rte_mbuf *mbuf = NULL;
 	struct eth_rx_bd *rx_bd;
@@ -44,24 +45,13 @@ static inline int qede_alloc_rx_bulk_mbufs(struct qede_rx_queue *rxq, int count)
 	int i, ret = 0;
 	uint16_t idx;
-	uint16_t mask = NUM_RX_BDS(rxq);
-
-	if (count > QEDE_MAX_BULK_ALLOC_COUNT)
-		count = QEDE_MAX_BULK_ALLOC_COUNT;
 
 	idx = rxq->sw_rx_prod & NUM_RX_BDS(rxq);
 
-	if (count > mask - idx + 1)
-		count = mask - idx + 1;
-
-	ret = rte_mempool_get_bulk(rxq->mb_pool, (void **)&rxq->sw_rx_ring[idx],
-				   count);
-
+	ret = rte_mempool_get_bulk(rxq->mb_pool, obj_p, count);
 	if (unlikely(ret)) {
 		PMD_RX_LOG(ERR, rxq,
 			   "Failed to allocate %d rx buffers "
 			    "sw_rx_prod %u sw_rx_cons %u mp entries %u free %u",
-			    count,
-			    rxq->sw_rx_prod & NUM_RX_BDS(rxq),
-			    rxq->sw_rx_cons & NUM_RX_BDS(rxq),
+			    count, idx, rxq->sw_rx_cons & NUM_RX_BDS(rxq),
 			    rte_mempool_avail_count(rxq->mb_pool),
 			    rte_mempool_in_use_count(rxq->mb_pool));
@@ -70,7 +60,10 @@ static inline int qede_alloc_rx_bulk_mbufs(struct qede_rx_queue *rxq, int count)
 
 	for (i = 0; i < count; i++) {
-		rte_prefetch0(rxq->sw_rx_ring[(idx + 1) & NUM_RX_BDS(rxq)]);
-		mbuf = rxq->sw_rx_ring[idx & NUM_RX_BDS(rxq)];
+		mbuf = obj_p[i];
+		if (likely(i < count - 1))
+			rte_prefetch0(obj_p[i + 1]);
 
+		idx = rxq->sw_rx_prod & NUM_RX_BDS(rxq);
+		rxq->sw_rx_ring[idx] = mbuf;
 		mapping = rte_mbuf_data_iova_default(mbuf);
 		rx_bd = (struct eth_rx_bd *)
@@ -78,7 +71,6 @@ static inline int qede_alloc_rx_bulk_mbufs(struct qede_rx_queue *rxq, int count)
 		rx_bd->addr.hi = rte_cpu_to_le_32(U64_HI(mapping));
 		rx_bd->addr.lo = rte_cpu_to_le_32(U64_LO(mapping));
-		idx++;
+		rxq->sw_rx_prod++;
 	}
-	rxq->sw_rx_prod = idx;
 
 	return 0;
@@ -1547,23 +1539,24 @@ qede_recv_pkts_regular(void *p_rxq, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
 #endif
 	uint8_t offset, flags, bd_num;
-
+	uint16_t count = 0;
 
 	/* Allocate buffers that we used in previous loop */
 	if (rxq->rx_alloc_count) {
-		if (unlikely(qede_alloc_rx_bulk_mbufs(rxq,
-			     rxq->rx_alloc_count))) {
+		count = rxq->rx_alloc_count > QEDE_MAX_BULK_ALLOC_COUNT ?
+			QEDE_MAX_BULK_ALLOC_COUNT : rxq->rx_alloc_count;
+
+		if (unlikely(qede_alloc_rx_bulk_mbufs(rxq, count))) {
 			struct rte_eth_dev *dev;
 
 			PMD_RX_LOG(ERR, rxq,
-				   "New buffer allocation failed,"
-				   "dropping incoming packetn");
+				   "New buffers allocation failed,"
+				   "dropping incoming packets\n");
 			dev = &rte_eth_devices[rxq->port_id];
-			dev->data->rx_mbuf_alloc_failed +=
-							rxq->rx_alloc_count;
-			rxq->rx_alloc_errors += rxq->rx_alloc_count;
+			dev->data->rx_mbuf_alloc_failed += count;
+			rxq->rx_alloc_errors += count;
 			return 0;
 		}
 		qede_update_rx_prod(qdev, rxq);
-		rxq->rx_alloc_count = 0;
+		rxq->rx_alloc_count -= count;
 	}
 
@@ -1734,5 +1727,5 @@ next_cqe:
 
 	/* Request number of buffers to be allocated in next loop */
-	rxq->rx_alloc_count = rx_alloc_count;
+	rxq->rx_alloc_count += rx_alloc_count;
 
 	rxq->rcv_pkts += rx_pkt;
@@ -1774,23 +1767,24 @@ qede_recv_pkts(void *p_rxq, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
 	uint32_t rss_hash;
 	int rx_alloc_count = 0;
-
+	uint16_t count = 0;
 
 	/* Allocate buffers that we used in previous loop */
 	if (rxq->rx_alloc_count) {
-		if (unlikely(qede_alloc_rx_bulk_mbufs(rxq,
-			     rxq->rx_alloc_count))) {
+		count = rxq->rx_alloc_count > QEDE_MAX_BULK_ALLOC_COUNT ?
+			QEDE_MAX_BULK_ALLOC_COUNT : rxq->rx_alloc_count;
+
+		if (unlikely(qede_alloc_rx_bulk_mbufs(rxq, count))) {
 			struct rte_eth_dev *dev;
 
 			PMD_RX_LOG(ERR, rxq,
-				   "New buffer allocation failed,"
-				   "dropping incoming packetn");
+				   "New buffers allocation failed,"
+				   "dropping incoming packets\n");
 			dev = &rte_eth_devices[rxq->port_id];
-			dev->data->rx_mbuf_alloc_failed +=
-							rxq->rx_alloc_count;
-			rxq->rx_alloc_errors += rxq->rx_alloc_count;
+			dev->data->rx_mbuf_alloc_failed += count;
+			rxq->rx_alloc_errors += count;
 			return 0;
 		}
 		qede_update_rx_prod(qdev, rxq);
-		rxq->rx_alloc_count = 0;
+		rxq->rx_alloc_count -= count;
 	}
 
@@ -2031,5 +2025,5 @@ next_cqe:
 
 	/* Request number of buffers to be allocated in next loop */
-	rxq->rx_alloc_count = rx_alloc_count;
+	rxq->rx_alloc_count += rx_alloc_count;
 
 	rxq->rcv_pkts += rx_pkt;
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.330649311 +0000
+++ 0007-net-qede-fix-Rx-bulk.patch	2022-03-16 15:14:12.104847591 +0000
@@ -1 +1 @@
-From f65c7fbceca91b54200ca3dc5d27f2292e5d829f Mon Sep 17 00:00:00 2001
+From bc19f2b75de23a6d8a971d29a55246c5dca56225 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit f65c7fbceca91b54200ca3dc5d27f2292e5d829f ]
+
@@ -20 +21,0 @@
-Cc: stable@dpdk.org
@@ -29 +30 @@
-index 0c52568180..02fa1fcaa1 100644
+index 0b3b4c7ef6..bf3c26fd33 100644
@@ -87 +88 @@
-@@ -1545,23 +1537,24 @@ qede_recv_pkts_regular(void *p_rxq, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
+@@ -1547,23 +1539,24 @@ qede_recv_pkts_regular(void *p_rxq, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
@@ -121 +122 @@
-@@ -1732,5 +1725,5 @@ next_cqe:
+@@ -1734,5 +1727,5 @@ next_cqe:
@@ -128 +129 @@
-@@ -1772,23 +1765,24 @@ qede_recv_pkts(void *p_rxq, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
+@@ -1774,23 +1767,24 @@ qede_recv_pkts(void *p_rxq, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
@@ -162 +163 @@
-@@ -2029,5 +2023,5 @@ next_cqe:
+@@ -2031,5 +2025,5 @@ next_cqe:


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

* patch 'net/qede: fix maximum Rx packet length' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (5 preceding siblings ...)
  2022-03-16 15:15 ` patch 'net/qede: fix Rx bulk' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'net/af_xdp: fix custom program loading with multiple queues' " Kevin Traynor
                   ` (14 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Devendra Singh Rawat; +Cc: Rasesh Mody, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From e91021c968c6797a693e36e56531d7a41027f4ba Mon Sep 17 00:00:00 2001
From: Devendra Singh Rawat <dsinghrawat@marvell.com>
Date: Fri, 4 Mar 2022 17:38:33 +0530
Subject: [PATCH] net/qede: fix maximum Rx packet length

[ upstream commit d8ded501e05ce879f27f0ed1df7721a88b737e25 ]

Size of CRC is not added to max_rx_pktlen, due to this bigger sized
packets(size 1480, 1490 1500) are being dropped.
This fix adds RTE_ETHER_CRC_LEN to max_rx_pktlen.

Fixes: 1bb4a528c41f ("ethdev: fix max Rx packet length")

Signed-off-by: Devendra Singh Rawat <dsinghrawat@marvell.com>
Signed-off-by: Rasesh Mody <rmody@marvell.com>
---
 drivers/net/qede/qede_rxtx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c
index bf3c26fd33..936d5c2dc1 100644
--- a/drivers/net/qede/qede_rxtx.c
+++ b/drivers/net/qede/qede_rxtx.c
@@ -236,5 +236,5 @@ qede_rx_queue_setup(struct rte_eth_dev *dev, uint16_t qid,
 	}
 
-	max_rx_pktlen = dev->data->mtu + RTE_ETHER_HDR_LEN;
+	max_rx_pktlen = dev->data->mtu + RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN;
 
 	/* Fix up RX buffer size */
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.351300808 +0000
+++ 0008-net-qede-fix-maximum-Rx-packet-length.patch	2022-03-16 15:14:12.106847597 +0000
@@ -1 +1 @@
-From d8ded501e05ce879f27f0ed1df7721a88b737e25 Mon Sep 17 00:00:00 2001
+From e91021c968c6797a693e36e56531d7a41027f4ba Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d8ded501e05ce879f27f0ed1df7721a88b737e25 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 02fa1fcaa1..c35585f5fd 100644
+index bf3c26fd33..936d5c2dc1 100644


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

* patch 'net/af_xdp: fix custom program loading with multiple queues' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (6 preceding siblings ...)
  2022-03-16 15:15 ` patch 'net/qede: fix maximum Rx packet length' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'crypto/ipsec_mb: fix GCM requested digest length' " Kevin Traynor
                   ` (13 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Junxiao Shi; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From 8fc808eaa3027b2d69c4e6ff76c9e19ed98f72fe Mon Sep 17 00:00:00 2001
From: Junxiao Shi <git@mail1.yoursunny.com>
Date: Wed, 9 Mar 2022 21:18:43 +0000
Subject: [PATCH] net/af_xdp: fix custom program loading with multiple queues

[ upstream commit 6f6134c35e3d2340e07f86414c75413e3ac7a0bc ]

When the PMD is configured to load a custom XDP program, it sets
XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD flag to prevent libbpf from
loading its default XDP program. However, when queue_count is set to
greater than 1, this flag is only set for the first XSK socket but not
for subsequent XSK sockets. This causes XSK socket creation failure.

This commit ensures that XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD flag is
set for all XSK socket creations when custom XDP program is being used.

Fixes: 01fa83c94d7e ("net/af_xdp: workaround custom program loading")

Signed-off-by: Junxiao Shi <git@mail1.yoursunny.com>
---
 drivers/net/af_xdp/rte_eth_af_xdp.c | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c
index 958f18e6d5..80aa55fb22 100644
--- a/drivers/net/af_xdp/rte_eth_af_xdp.c
+++ b/drivers/net/af_xdp/rte_eth_af_xdp.c
@@ -1269,16 +1269,17 @@ xsk_configure(struct pmd_internals *internals, struct pkt_rx_queue *rxq,
 #endif
 
-	if (strnlen(internals->prog_path, PATH_MAX) &&
-				!internals->custom_prog_configured) {
-		ret = load_custom_xdp_prog(internals->prog_path,
-					   internals->if_index,
-					   &internals->map);
-		if (ret) {
-			AF_XDP_LOG(ERR, "Failed to load custom XDP program %s\n",
-					internals->prog_path);
-			goto out_umem;
+	if (strnlen(internals->prog_path, PATH_MAX)) {
+		if (!internals->custom_prog_configured) {
+			ret = load_custom_xdp_prog(internals->prog_path,
+							internals->if_index,
+							&internals->map);
+			if (ret) {
+				AF_XDP_LOG(ERR, "Failed to load custom XDP program %s\n",
+						internals->prog_path);
+				goto out_umem;
+			}
+			internals->custom_prog_configured = 1;
 		}
-		internals->custom_prog_configured = 1;
-		cfg.libbpf_flags = XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD;
+		cfg.libbpf_flags |= XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD;
 	}
 
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.372322524 +0000
+++ 0009-net-af_xdp-fix-custom-program-loading-with-multiple-.patch	2022-03-16 15:14:12.108847604 +0000
@@ -1 +1 @@
-From 6f6134c35e3d2340e07f86414c75413e3ac7a0bc Mon Sep 17 00:00:00 2001
+From 8fc808eaa3027b2d69c4e6ff76c9e19ed98f72fe Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6f6134c35e3d2340e07f86414c75413e3ac7a0bc ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index 65479138d3..9920f49870 100644
+index 958f18e6d5..80aa55fb22 100644
@@ -27 +28 @@
-@@ -1308,16 +1308,17 @@ xsk_configure(struct pmd_internals *internals, struct pkt_rx_queue *rxq,
+@@ -1269,16 +1269,17 @@ xsk_configure(struct pmd_internals *internals, struct pkt_rx_queue *rxq,


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

* patch 'crypto/ipsec_mb: fix GCM requested digest length' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (7 preceding siblings ...)
  2022-03-16 15:15 ` patch 'net/af_xdp: fix custom program loading with multiple queues' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'bpf: fix build with some libpcap version on FreeBSD' " Kevin Traynor
                   ` (12 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Piotr Bronowski; +Cc: Ciara Power, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From 75c570058bc84363756d2a7a36e9650b73520381 Mon Sep 17 00:00:00 2001
From: Piotr Bronowski <piotrx.bronowski@intel.com>
Date: Wed, 9 Mar 2022 18:02:00 +0000
Subject: [PATCH] crypto/ipsec_mb: fix GCM requested digest length

[ upstream commit 2c6b3438d6caa096fca1b2f078f3ca18ce737ded ]

This patch removes coverity defect CID 375828:
Untrusted value as argument (TAINTED_SCALAR)

Coverity issue: 375828
Fixes: ceb863938708 ("crypto/aesni_gcm: support all truncated digest sizes")

Signed-off-by: Piotr Bronowski <piotrx.bronowski@intel.com>
Acked-by: Ciara Power <ciara.power@intel.com>
---
 drivers/crypto/ipsec_mb/pmd_aesni_gcm.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/ipsec_mb/pmd_aesni_gcm.c b/drivers/crypto/ipsec_mb/pmd_aesni_gcm.c
index e5ad629fe5..2c033c6f28 100644
--- a/drivers/crypto/ipsec_mb/pmd_aesni_gcm.c
+++ b/drivers/crypto/ipsec_mb/pmd_aesni_gcm.c
@@ -97,5 +97,7 @@ aesni_gcm_session_configure(IMB_MGR *mb_mgr, void *session,
 		key_length = auth_xform->auth.key.length;
 		key = auth_xform->auth.key.data;
-		sess->req_digest_length = auth_xform->auth.digest_length;
+		sess->req_digest_length =
+		    RTE_MIN(auth_xform->auth.digest_length,
+				DIGEST_LENGTH_MAX);
 		break;
 	case IPSEC_MB_OP_AEAD_AUTHENTICATED_ENCRYPT:
@@ -117,5 +119,7 @@ aesni_gcm_session_configure(IMB_MGR *mb_mgr, void *session,
 		key = aead_xform->aead.key.data;
 		sess->aad_length = aead_xform->aead.aad_length;
-		sess->req_digest_length = aead_xform->aead.digest_length;
+		sess->req_digest_length =
+			RTE_MIN(aead_xform->aead.digest_length,
+				DIGEST_LENGTH_MAX);
 		break;
 	default:
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.391934910 +0000
+++ 0010-crypto-ipsec_mb-fix-GCM-requested-digest-length.patch	2022-03-16 15:14:12.108847604 +0000
@@ -1 +1 @@
-From 2c6b3438d6caa096fca1b2f078f3ca18ce737ded Mon Sep 17 00:00:00 2001
+From 75c570058bc84363756d2a7a36e9650b73520381 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 2c6b3438d6caa096fca1b2f078f3ca18ce737ded ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org


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

* patch 'bpf: fix build with some libpcap version on FreeBSD' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (8 preceding siblings ...)
  2022-03-16 15:15 ` patch 'crypto/ipsec_mb: fix GCM requested digest length' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'app/regex: fix number of matches' " Kevin Traynor
                   ` (11 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: David Marchand; +Cc: Stephen Hemminger, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From 0a38dcb3de7be158eef9ca09c27ed556c3c7dc39 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 10 Mar 2022 19:30:40 +0100
Subject: [PATCH] bpf: fix build with some libpcap version on FreeBSD

[ upstream commit 63f39a430a0a7a8b893ffbf88cd452dbc7b97c97 ]

This is something caught in UNH FreeBSD env.

For some reason [1], the pcap/bpf.h header started to define _BPF_H_.

It happens that the bpf_impl.h internal DPDK header uses this define as
an internal guard.
This triggers a build failure in bpf_convert.c which can't find
RTE_BPF_LOG macro.

Fix the include guard to use the filename and remove _.

1: https://github.com/the-tcpdump-group/libpcap/pull/1074

Fixes: 94972f35a02e ("bpf: add BPF loading and execution framework")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/bpf/bpf_impl.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/bpf/bpf_impl.h b/lib/bpf/bpf_impl.h
index 26d165ad5c..b4d8e87c6d 100644
--- a/lib/bpf/bpf_impl.h
+++ b/lib/bpf/bpf_impl.h
@@ -3,6 +3,6 @@
  */
 
-#ifndef _BPF_H_
-#define _BPF_H_
+#ifndef BPF_IMPL_H
+#define BPF_IMPL_H
 
 #include <rte_bpf.h>
@@ -44,3 +44,3 @@ bpf_size(uint32_t bpf_op_sz)
 }
 
-#endif /* _BPF_H_ */
+#endif /* BPF_IMPL_H */
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.411935936 +0000
+++ 0011-bpf-fix-build-with-some-libpcap-version-on-FreeBSD.patch	2022-03-16 15:14:12.109847607 +0000
@@ -1 +1 @@
-From 63f39a430a0a7a8b893ffbf88cd452dbc7b97c97 Mon Sep 17 00:00:00 2001
+From 0a38dcb3de7be158eef9ca09c27ed556c3c7dc39 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 63f39a430a0a7a8b893ffbf88cd452dbc7b97c97 ]
+
@@ -20 +21,0 @@
-Cc: stable@dpdk.org


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

* patch 'app/regex: fix number of matches' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (9 preceding siblings ...)
  2022-03-16 15:15 ` patch 'bpf: fix build with some libpcap version on FreeBSD' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'app/testpmd: fix show RSS RETA on Windows' " Kevin Traynor
                   ` (10 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Gerry Gribbon; +Cc: Ori Kam, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From 4c1cc03bb6c33c08f015f66a41574a325e1f9c70 Mon Sep 17 00:00:00 2001
From: Gerry Gribbon <ggribbon@nvidia.com>
Date: Wed, 9 Mar 2022 23:41:52 +0000
Subject: [PATCH] app/regex: fix number of matches

[ upstream commit c1d1b94eec5855b3934791a10125e9db5f15298a ]

Depending on number of jobs specified on command line, part of the
data buffer may not get searched, resulting in incorrect number of
matches being reported.

Additional change to ensure the "All Matches" summary outputs the
correct match start locations in the supplied data buffer.

Fixes: de06137cb295 ("app/regex: add RegEx test application")

Signed-off-by: Gerry Gribbon <ggribbon@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
 app/test-regex/main.c | 38 ++++++++++++++++++++++++++++----------
 1 file changed, 28 insertions(+), 10 deletions(-)

diff --git a/app/test-regex/main.c b/app/test-regex/main.c
index 8e665df73c..756726f8db 100644
--- a/app/test-regex/main.c
+++ b/app/test-regex/main.c
@@ -386,8 +386,11 @@ run_regex(void *args)
 	long data_len = rgxc->data_len;
 	long job_len = rgxc->job_len;
-
+	long remainder;
+	long act_job_len = 0;
+	bool last_job = false;
 	char *buf = NULL;
 	uint32_t actual_jobs = 0;
 	uint32_t i;
+	uint32_t job_id;
 	uint16_t qp_id;
 	uint16_t dev_id = 0;
@@ -460,7 +463,14 @@ run_regex(void *args)
 		actual_jobs = 0;
 		pos = 0;
+		remainder = data_len % nb_jobs;
+
 		/* Allocate the jobs and assign each job with an mbuf. */
 		for (i = 0; (pos < data_len) && (i < nb_jobs) ; i++) {
-			long act_job_len = RTE_MIN(job_len, data_len - pos);
+			act_job_len = RTE_MIN(job_len, data_len - pos);
+
+			if (i == (nb_jobs - 1)) {
+				last_job = true;
+				act_job_len += remainder;
+			}
 
 			ops[i] = rte_malloc(NULL, sizeof(*ops[0]) +
@@ -482,5 +492,10 @@ run_regex(void *args)
 					rte_pktmbuf_attach_extbuf(ops[i]->mbuf,
 					&buf[pos], 0, act_job_len, &shinfo);
-					ops[i]->mbuf->data_len = job_len;
+
+					if (!last_job)
+						ops[i]->mbuf->data_len = job_len;
+					else
+						ops[i]->mbuf->data_len = act_job_len;
+
 					ops[i]->mbuf->pkt_len = act_job_len;
 				}
@@ -510,4 +525,7 @@ run_regex(void *args)
 			qp->total_enqueue = 0;
 			qp->total_dequeue = 0;
+			/* Re-set user id after dequeue to match data in mbuf. */
+			for (job_id = 0 ; job_id < nb_jobs; job_id++)
+				qp->ops[job_id]->user_id = job_id;
 		}
 		do {
@@ -555,8 +573,8 @@ run_regex(void *args)
 		qp = &qps[qp_id];
 		time = (long double)qp->cycles / rte_get_timer_hz();
-		printf("Core=%u QP=%u Job=%ld Bytes Time=%Lf sec Perf=%Lf "
+		printf("Core=%u QP=%u Job=%ld Bytes Last Job=%ld Bytes Time=%Lf sec Perf=%Lf "
 		       "Gbps\n", rte_lcore_id(), qp_id + qp_id_base,
-		       job_len, time,
-		       (((double)actual_jobs * job_len * nb_iterations * 8)
+		       job_len, act_job_len, time,
+		       (((double)data_len * nb_iterations * 8)
 		       / time) / 1000000000.0);
 	}
@@ -591,8 +609,8 @@ run_regex(void *args)
 			match = qp->ops[d_ind % actual_jobs]->matches;
 			for (i = 0; i < nb_matches; i++) {
-				printf("start = %ld, len = %d, rule = %d\n",
-						match->start_offset +
-						d_ind * job_len,
-						match->len, match->rule_id);
+				printf("start = %d, len = %d, rule = %d\n",
+					match->start_offset +
+					(int)(qp->ops[d_ind % actual_jobs]->user_id * job_len),
+					match->len, match->rule_id);
 				match++;
 			}
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.430052648 +0000
+++ 0012-app-regex-fix-number-of-matches.patch	2022-03-16 15:14:12.109847607 +0000
@@ -1 +1 @@
-From c1d1b94eec5855b3934791a10125e9db5f15298a Mon Sep 17 00:00:00 2001
+From 4c1cc03bb6c33c08f015f66a41574a325e1f9c70 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c1d1b94eec5855b3934791a10125e9db5f15298a ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index ab8a3e56e7..7c014b2210 100644
+index 8e665df73c..756726f8db 100644
@@ -26 +27 @@
-@@ -383,8 +383,11 @@ run_regex(void *args)
+@@ -386,8 +386,11 @@ run_regex(void *args)
@@ -39 +40 @@
-@@ -457,7 +460,14 @@ run_regex(void *args)
+@@ -460,7 +463,14 @@ run_regex(void *args)
@@ -55 +56 @@
-@@ -479,5 +489,10 @@ run_regex(void *args)
+@@ -482,5 +492,10 @@ run_regex(void *args)
@@ -67 +68 @@
-@@ -507,4 +522,7 @@ run_regex(void *args)
+@@ -510,4 +525,7 @@ run_regex(void *args)
@@ -75 +76 @@
-@@ -552,8 +570,8 @@ run_regex(void *args)
+@@ -555,8 +573,8 @@ run_regex(void *args)
@@ -87 +88 @@
-@@ -588,8 +606,8 @@ run_regex(void *args)
+@@ -591,8 +609,8 @@ run_regex(void *args)


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

* patch 'app/testpmd: fix show RSS RETA on Windows' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (10 preceding siblings ...)
  2022-03-16 15:15 ` patch 'app/regex: fix number of matches' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'app/testpmd: fix GTP header parsing in checksum engine' " Kevin Traynor
                   ` (9 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Adham Masarwah; +Cc: Aman Singh, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From 73fd3c8736bb9f9b98e4ea6afb4754256e8ce218 Mon Sep 17 00:00:00 2001
From: Adham Masarwah <adham@nvidia.com>
Date: Sun, 13 Mar 2022 14:57:02 +0200
Subject: [PATCH] app/testpmd: fix show RSS RETA on Windows

[ upstream commit 5aae2723cddba81b179162b5e7e4f6bd429eaac5 ]

Replaced using strtoul with strtoull when converting to
64-bit mask field.
In Windows strtoul returns 32-bit values which cause an
issue with show RSS RETA.

Fixes: 66c594904ac ("ethdev: support multiple sizes of redirection table")

Signed-off-by: Adham Masarwah <adham@nvidia.com>
Acked-by: Aman Singh <aman.deep.singh@intel.com>
---
 app/test-pmd/cmdline.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 69501d0deb..6f995905f6 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -3121,5 +3121,5 @@ showport_parse_reta_config(struct rte_eth_rss_reta_entry64 *conf,
 	}
 	for (i = 0; i < ret; i++)
-		conf[i].mask = (uint64_t)strtoul(str_fld[i], &end, 0);
+		conf[i].mask = (uint64_t)strtoull(str_fld[i], &end, 0);
 
 	return 0;
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.449868564 +0000
+++ 0013-app-testpmd-fix-show-RSS-RETA-on-Windows.patch	2022-03-16 15:14:12.122847649 +0000
@@ -1 +1 @@
-From 5aae2723cddba81b179162b5e7e4f6bd429eaac5 Mon Sep 17 00:00:00 2001
+From 73fd3c8736bb9f9b98e4ea6afb4754256e8ce218 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5aae2723cddba81b179162b5e7e4f6bd429eaac5 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 7ab0575e64..6ffea8e21a 100644
+index 69501d0deb..6f995905f6 100644
@@ -24 +25 @@
-@@ -3128,5 +3128,5 @@ showport_parse_reta_config(struct rte_eth_rss_reta_entry64 *conf,
+@@ -3121,5 +3121,5 @@ showport_parse_reta_config(struct rte_eth_rss_reta_entry64 *conf,


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

* patch 'app/testpmd: fix GTP header parsing in checksum engine' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (11 preceding siblings ...)
  2022-03-16 15:15 ` patch 'app/testpmd: fix show RSS RETA on Windows' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'app/testpmd: fix flow rule with flex input link' " Kevin Traynor
                   ` (8 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Gregory Etelson; +Cc: Aman Singh, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From 7affb1a4a417f2b3a0aeba0991f72e063092f905 Mon Sep 17 00:00:00 2001
From: Gregory Etelson <getelson@nvidia.com>
Date: Sun, 13 Mar 2022 11:01:23 +0200
Subject: [PATCH] app/testpmd: fix GTP header parsing in checksum engine

[ upstream commit a058de216ceb6581dac213d7a37d9fb9fad05a9b ]

GTP header can be followed by an optional 32 bits extension.
GTP notifies about the extension presence through the E, S or PN
header bits.

Csum GTP header parser did not check the extension bits value.

The patch updates GTP header length if at-least one of the
extension bits is set.

Fixes: d8e5e69f3a9b ("app/testpmd: add GTP parsing and Tx checksum offload")

Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Aman Singh <aman.deep.singh@intel.com>
---
 app/test-pmd/csumonly.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
index fb559e4ac2..f0c69c5d16 100644
--- a/app/test-pmd/csumonly.c
+++ b/app/test-pmd/csumonly.c
@@ -223,5 +223,6 @@ parse_gtp(struct rte_udp_hdr *udp_hdr,
 	gtp_hdr = (struct rte_gtp_hdr *)((char *)udp_hdr +
 		  sizeof(struct rte_udp_hdr));
-
+	if (gtp_hdr->e || gtp_hdr->s || gtp_hdr->pn)
+		gtp_len += sizeof(struct rte_gtp_hdr_ext_word);
 	/*
 	 * Check message type. If message type is 0xff, it is
@@ -229,7 +230,5 @@ parse_gtp(struct rte_udp_hdr *udp_hdr,
 	 */
 	if (gtp_hdr->msg_type == 0xff) {
-		ip_ver = *(uint8_t *)((char *)udp_hdr +
-			 sizeof(struct rte_udp_hdr) +
-			 sizeof(struct rte_gtp_hdr));
+		ip_ver = *(uint8_t *)((char *)gtp_hdr + gtp_len);
 		ip_ver = (ip_ver) & 0xf0;
 
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.481661559 +0000
+++ 0014-app-testpmd-fix-GTP-header-parsing-in-checksum-engin.patch	2022-03-16 15:14:12.123847653 +0000
@@ -1 +1 @@
-From a058de216ceb6581dac213d7a37d9fb9fad05a9b Mon Sep 17 00:00:00 2001
+From 7affb1a4a417f2b3a0aeba0991f72e063092f905 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a058de216ceb6581dac213d7a37d9fb9fad05a9b ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
-index dbddd20a07..cdb1920763 100644
+index fb559e4ac2..f0c69c5d16 100644
@@ -28 +29 @@
-@@ -224,5 +224,6 @@ parse_gtp(struct rte_udp_hdr *udp_hdr,
+@@ -223,5 +223,6 @@ parse_gtp(struct rte_udp_hdr *udp_hdr,
@@ -36 +37 @@
-@@ -230,7 +231,5 @@ parse_gtp(struct rte_udp_hdr *udp_hdr,
+@@ -229,7 +230,5 @@ parse_gtp(struct rte_udp_hdr *udp_hdr,


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

* patch 'app/testpmd: fix flow rule with flex input link' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (12 preceding siblings ...)
  2022-03-16 15:15 ` patch 'app/testpmd: fix GTP header parsing in checksum engine' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'examples/l3fwd: fix buffer overflow in Tx' " Kevin Traynor
                   ` (7 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Gregory Etelson; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From c9d7fdc9be5954194360663fd059c26976ac2d2b Mon Sep 17 00:00:00 2001
From: Gregory Etelson <getelson@nvidia.com>
Date: Thu, 10 Mar 2022 07:59:53 +0200
Subject: [PATCH] app/testpmd: fix flow rule with flex input link

[ upstream commit fc547a92cf945abd9b4878aebe8392089804e279 ]

Testpmd reads flex item configuration from a JSON file.
Flex item input link description is stored in testpmd
flow item format. For example, `eth type is 0x0800`.
The item description is placed into a general testpmd CLI
flow rule command template and parsed to convert string into
flow item object.

The patch adds the `actions` section to the flow rule template.

Fixes: 59f3a8acbcdb ("app/testpmd: add flex item commands")

Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 app/test-pmd/cmd_flex_item.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/app/test-pmd/cmd_flex_item.c b/app/test-pmd/cmd_flex_item.c
index 908bcb3f47..1e8dc38594 100644
--- a/app/test-pmd/cmd_flex_item.c
+++ b/app/test-pmd/cmd_flex_item.c
@@ -134,5 +134,6 @@ flex_link_item_parse(const char *src, struct rte_flow_item *item)
 	struct rte_flow_action *actions;
 
-	sprintf(flow_rule, "flow create 0 pattern %s / end", src);
+	sprintf(flow_rule,
+		"flow create 0 pattern %s / end actions drop / end", src);
 	src = flow_rule;
 	ret = flow_parse(src, (void *)data, sizeof(data),
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.500915734 +0000
+++ 0015-app-testpmd-fix-flow-rule-with-flex-input-link.patch	2022-03-16 15:14:12.123847653 +0000
@@ -1 +1 @@
-From fc547a92cf945abd9b4878aebe8392089804e279 Mon Sep 17 00:00:00 2001
+From c9d7fdc9be5954194360663fd059c26976ac2d2b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit fc547a92cf945abd9b4878aebe8392089804e279 ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
-index 9050825a81..78a89c0f8a 100644
+index 908bcb3f47..1e8dc38594 100644


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

* patch 'examples/l3fwd: fix buffer overflow in Tx' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (13 preceding siblings ...)
  2022-03-16 15:15 ` patch 'app/testpmd: fix flow rule with flex input link' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'eal/freebsd: add missing C++ include guards' " Kevin Traynor
                   ` (6 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Rahul Bhansali; +Cc: Conor Walsh, Konstantin Ananyev, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From 098c1c5d54b547166b8efb3337042bf225783435 Mon Sep 17 00:00:00 2001
From: Rahul Bhansali <rbhansali@marvell.com>
Date: Tue, 11 Jan 2022 18:20:05 +0530
Subject: [PATCH] examples/l3fwd: fix buffer overflow in Tx

[ upstream commit 0490d69d58d9d75c37e780966c837a062658f528 ]

This patch fixes the stack buffer overflow error reported
from AddressSanitizer.
Function send_packetsx4() tries to access out of bound data
from rte_mbuf and fill it into TX buffer even in the case
where no pending packets (len = 0).
Performance impact:- No

ASAN error report:-
==819==ERROR: AddressSanitizer: stack-buffer-overflow on address
0xffffe2c0dcf0 at pc 0x0000005e791c bp 0xffffe2c0d7e0 sp 0xffffe2c0d800
READ of size 8 at 0xffffe2c0dcf0 thread T0
 #0 0x5e7918 in send_packetsx4 ../examples/l3fwd/l3fwd_common.h:251
 #1 0x5e7918 in send_packets_multi ../examples/l3fwd/l3fwd_neon.h:226

Fixes: 96ff445371e0 ("examples/l3fwd: reorganise and optimize LPM code path")

Signed-off-by: Rahul Bhansali <rbhansali@marvell.com>
Reviewed-by: Conor Walsh <conor.walsh@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
 examples/l3fwd/l3fwd_common.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/examples/l3fwd/l3fwd_common.h b/examples/l3fwd/l3fwd_common.h
index cbaab79f5b..8e4c27218f 100644
--- a/examples/l3fwd/l3fwd_common.h
+++ b/examples/l3fwd/l3fwd_common.h
@@ -237,4 +237,7 @@ send_packetsx4(struct lcore_conf *qconf, uint16_t port, struct rte_mbuf *m[],
 		/* copy rest of the packets into the TX buffer. */
 		len = num - n;
+		if (len == 0)
+			goto exit;
+
 		j = 0;
 		switch (len % FWDSTEP) {
@@ -259,4 +262,5 @@ send_packetsx4(struct lcore_conf *qconf, uint16_t port, struct rte_mbuf *m[],
 	}
 
+exit:
 	qconf->tx_mbufs[port].len = len;
 }
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.520474723 +0000
+++ 0016-examples-l3fwd-fix-buffer-overflow-in-Tx.patch	2022-03-16 15:14:12.124847656 +0000
@@ -1 +1 @@
-From 0490d69d58d9d75c37e780966c837a062658f528 Mon Sep 17 00:00:00 2001
+From 098c1c5d54b547166b8efb3337042bf225783435 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0490d69d58d9d75c37e780966c837a062658f528 ]
+
@@ -21 +22,0 @@
-Cc: stable@dpdk.org


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

* patch 'eal/freebsd: add missing C++ include guards' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (14 preceding siblings ...)
  2022-03-16 15:15 ` patch 'examples/l3fwd: fix buffer overflow in Tx' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'compressdev: fix missing space in log macro' " Kevin Traynor
                   ` (5 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From fc9f23391d70a941a82c759b3240aed42017684f Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Fri, 11 Mar 2022 20:05:19 +0000
Subject: [PATCH] eal/freebsd: add missing C++ include guards

[ upstream commit 29fd052dcc3be76112bc7b03a918308ebcf901d8 ]

Add missing 'extern "C"' to file.

Fixes: 428eb983f5f7 ("eal: add OS specific header file")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/eal/freebsd/include/rte_os.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/lib/eal/freebsd/include/rte_os.h b/lib/eal/freebsd/include/rte_os.h
index 9d8a69008c..b4afd45adc 100644
--- a/lib/eal/freebsd/include/rte_os.h
+++ b/lib/eal/freebsd/include/rte_os.h
@@ -6,4 +6,8 @@
 #define _RTE_OS_H_
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /**
  * This header should contain any definition
@@ -60,3 +64,7 @@ typedef cpuset_t rte_cpuset_t;
 #endif
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* _RTE_OS_H_ */
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.539538774 +0000
+++ 0017-eal-freebsd-add-missing-C-include-guards.patch	2022-03-16 15:14:12.124847656 +0000
@@ -1 +1 @@
-From 29fd052dcc3be76112bc7b03a918308ebcf901d8 Mon Sep 17 00:00:00 2001
+From fc9f23391d70a941a82c759b3240aed42017684f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 29fd052dcc3be76112bc7b03a918308ebcf901d8 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org


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

* patch 'compressdev: fix missing space in log macro' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (15 preceding siblings ...)
  2022-03-16 15:15 ` patch 'eal/freebsd: add missing C++ include guards' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'cryptodev: fix clang C++ include' " Kevin Traynor
                   ` (4 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From 0b8683a6578aceeae3f89aa34e9ce261609e0b7d Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Fri, 11 Mar 2022 20:05:21 +0000
Subject: [PATCH] compressdev: fix missing space in log macro

[ upstream commit dfb90fbe6b2b11ecf3535286c8d418ba8cc5485c ]

Building with clang on FreeBSD with chkincs enabled, we get the
following error about a missing space:

lib/compressdev/rte_compressdev_internal.h:25:58: error:
invalid suffix on literal;
C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
        rte_log(RTE_LOG_ ## level, compressdev_logtype, "%s(): "fmt "\n", \

Adding in a space between the '"' and 'fmt' removes the error.

Fixes: ed7dd94f7f66 ("compressdev: add basic device management")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/compressdev/rte_compressdev_internal.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/compressdev/rte_compressdev_internal.h b/lib/compressdev/rte_compressdev_internal.h
index 25d8afbfb9..b3b193e3ee 100644
--- a/lib/compressdev/rte_compressdev_internal.h
+++ b/lib/compressdev/rte_compressdev_internal.h
@@ -23,5 +23,5 @@ extern "C" {
 extern int compressdev_logtype;
 #define COMPRESSDEV_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, compressdev_logtype, "%s(): "fmt "\n", \
+	rte_log(RTE_LOG_ ## level, compressdev_logtype, "%s(): " fmt "\n", \
 			__func__, ##args)
 
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.557956244 +0000
+++ 0018-compressdev-fix-missing-space-in-log-macro.patch	2022-03-16 15:14:12.124847656 +0000
@@ -1 +1 @@
-From dfb90fbe6b2b11ecf3535286c8d418ba8cc5485c Mon Sep 17 00:00:00 2001
+From 0b8683a6578aceeae3f89aa34e9ce261609e0b7d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit dfb90fbe6b2b11ecf3535286c8d418ba8cc5485c ]
+
@@ -17 +18,0 @@
-Cc: stable@dpdk.org


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

* patch 'cryptodev: fix clang C++ include' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (16 preceding siblings ...)
  2022-03-16 15:15 ` patch 'compressdev: fix missing space in log macro' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'eventdev: " Kevin Traynor
                   ` (3 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From 8a5b2e74e77f8c180f59eddd4a1a36c02eb7ead3 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Fri, 11 Mar 2022 20:05:22 +0000
Subject: [PATCH] cryptodev: fix clang C++ include

[ upstream commit 1763c91b06ca65bbb8516f47b97cffe1cac97dde ]

When compiling on FreeBSD with clang and include checking enabled,
errors are emitted due to differences in how empty structs/unions are
handled in C and C++, as C++ structs cannot have zero size.

lib/cryptodev/rte_crypto.h:127:2: error:
union has size 0 in C, non-zero size in C++

Since the contents of the union are all themselves of zero size,
the actual union wrapper is unnecessary. We therefore remove it for C++
builds - though keep it for C builds for safety and clarity of
understanding the code.

Fixes: c0f87eb5252b ("cryptodev: change burst API to be crypto op oriented")
Fixes: d2a4223c4c6d ("cryptodev: do not store pointer to op specific params")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/cryptodev/rte_crypto.h | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/lib/cryptodev/rte_crypto.h b/lib/cryptodev/rte_crypto.h
index a864f5036f..aeb3bf6e38 100644
--- a/lib/cryptodev/rte_crypto.h
+++ b/lib/cryptodev/rte_crypto.h
@@ -124,6 +124,13 @@ struct rte_crypto_op {
 	/**< physical address of crypto operation */
 
+/* empty structures do not have zero size in C++ leading to compilation errors
+ * with clang about structure/union having different sizes in C and C++.
+ * While things are clearer with an explicit union, since each field is
+ * zero-sized it's not actually needed, so omit it for C++
+ */
+#ifndef __cplusplus
 	__extension__
 	union {
+#endif
 		struct rte_crypto_sym_op sym[0];
 		/**< Symmetric operation parameters */
@@ -132,5 +139,7 @@ struct rte_crypto_op {
 		/**< Asymmetric operation parameters */
 
+#ifndef __cplusplus
 	}; /**< operation specific parameters */
+#endif
 };
 
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.577374153 +0000
+++ 0019-cryptodev-fix-clang-C-include.patch	2022-03-16 15:14:12.125847659 +0000
@@ -1 +1 @@
-From 1763c91b06ca65bbb8516f47b97cffe1cac97dde Mon Sep 17 00:00:00 2001
+From 8a5b2e74e77f8c180f59eddd4a1a36c02eb7ead3 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1763c91b06ca65bbb8516f47b97cffe1cac97dde ]
+
@@ -20 +21,0 @@
-Cc: stable@dpdk.org


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

* patch 'eventdev: fix clang C++ include' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (17 preceding siblings ...)
  2022-03-16 15:15 ` patch 'cryptodev: fix clang C++ include' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'build: suppress rte_crypto_asym_op abi check' " Kevin Traynor
                   ` (2 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From 51397954d024e602f54b68a3ce964f01f340c3a4 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Fri, 11 Mar 2022 20:05:23 +0000
Subject: [PATCH] eventdev: fix clang C++ include

[ upstream commit 699155f2d4e278392ace7645f5b9d60fcf8b1454 ]

When compiling on FreeBSD with clang and include checking enabled,
errors are emitted due to differences in how empty structs/unions are
handled in C and C++, as C++ structs cannot have zero size.

lib/eventdev/rte_eventdev.h:992:2: error:
union has size 0 in C, non-zero size in C++

Since the contents of the union are all themselves of zero size,
the actual union wrapper is unnecessary. We therefore remove it for C++
builds - though keep it for C builds for safety and clarity of
understanding the code. The alignment constraint on the union is
unnecessary in the case where the whole struct is aligned on a 16-byte
boundary, so we add that constraint to the overall structure to ensure
it applies for C++ code as well as C.

Fixes: 1cc44d409271 ("eventdev: introduce event vector capability")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/eventdev/rte_eventdev.h | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h
index 25fb7c89dd..476bcbcc21 100644
--- a/lib/eventdev/rte_eventdev.h
+++ b/lib/eventdev/rte_eventdev.h
@@ -987,4 +987,11 @@ struct rte_event_vector {
 	/**< Union to hold common attributes of the vector array. */
 	uint64_t impl_opaque;
+
+/* empty structures do not have zero size in C++ leading to compilation errors
+ * with clang about structure having different sizes in C and C++.
+ * Since these are all zero-sized arrays, we can omit the "union" wrapper for
+ * C++ builds, removing the warning.
+ */
+#ifndef __cplusplus
 	/**< Implementation specific opaque value.
 	 * An implementation may use this field to hold implementation specific
@@ -993,13 +1000,16 @@ struct rte_event_vector {
 	 */
 	union {
+#endif
 		struct rte_mbuf *mbufs[0];
 		void *ptrs[0];
 		uint64_t *u64s[0];
+#ifndef __cplusplus
 	} __rte_aligned(16);
+#endif
 	/**< Start of the vector array union. Depending upon the event type the
 	 * vector array can be an array of mbufs or pointers or opaque u64
 	 * values.
 	 */
-};
+} __rte_aligned(16);
 
 /* Scheduler type definitions */
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.596141224 +0000
+++ 0020-eventdev-fix-clang-C-include.patch	2022-03-16 15:14:12.127847666 +0000
@@ -1 +1 @@
-From 699155f2d4e278392ace7645f5b9d60fcf8b1454 Mon Sep 17 00:00:00 2001
+From 51397954d024e602f54b68a3ce964f01f340c3a4 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 699155f2d4e278392ace7645f5b9d60fcf8b1454 ]
+
@@ -22 +23,0 @@
-Cc: stable@dpdk.org
@@ -30 +31 @@
-index 67c4a5e036..42a5660169 100644
+index 25fb7c89dd..476bcbcc21 100644
@@ -33 +34 @@
-@@ -985,4 +985,11 @@ struct rte_event_vector {
+@@ -987,4 +987,11 @@ struct rte_event_vector {
@@ -45 +46 @@
-@@ -991,13 +998,16 @@ struct rte_event_vector {
+@@ -993,13 +1000,16 @@ struct rte_event_vector {


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

* patch 'build: suppress rte_crypto_asym_op abi check' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (18 preceding siblings ...)
  2022-03-16 15:15 ` patch 'eventdev: " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'net/mlx5: fix port matching in sample flow rule' " Kevin Traynor
  2022-03-16 15:15 ` patch 'net/mlx5: fix CPU socket ID for Rx queue creation' " Kevin Traynor
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Kevin Traynor; +Cc: David Marchand, dpdk stable, arkadiuszx.kusztal

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From 1d3fa7c188b03ff12d8e0b6258500e7586d5bb74 Mon Sep 17 00:00:00 2001
From: Kevin Traynor <ktraynor@redhat.com>
Date: Wed, 16 Mar 2022 11:32:19 +0000
Subject: [PATCH] build: suppress rte_crypto_asym_op abi check

Suppress of rte_crypto_asym_op was added in dpdk main branch
as part of
a678c5d36589 ("cryptodev: add DSA random number k")

That is not backported to 21.11 branch, but other commit
f092922c3674 ("cryptodev: fix RSA key type name")
also needs this suppression.

Add the suppression here.

Fixes: f092922c3674 ("cryptodev: fix RSA key type name")
Cc: arkadiuszx.kusztal@intel.com

Reported-by: https://lab.dpdk.org/results/dashboard/tarballs/19132
Reported-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
---
 devtools/libabigail.abignore | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 004fd53180..146a601ed3 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -13,4 +13,8 @@
         name_regexp = _pmd_info$
 
+; Ignore changes to rte_crypto_asym_op, asymmetric crypto API is experimental
+[suppress_type]
+        name = rte_crypto_asym_op
+
 ; Ignore section attribute fixes in experimental regexdev library
 [suppress_file]
-- 
2.34.1


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

* patch 'net/mlx5: fix port matching in sample flow rule' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (19 preceding siblings ...)
  2022-03-16 15:15 ` patch 'build: suppress rte_crypto_asym_op abi check' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  2022-03-16 15:15 ` patch 'net/mlx5: fix CPU socket ID for Rx queue creation' " Kevin Traynor
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Jiawei Wang; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From 22ed8b668425bd042aa095bdffa307940fd6acc2 Mon Sep 17 00:00:00 2001
From: Jiawei Wang <jiaweiw@nvidia.com>
Date: Mon, 7 Mar 2022 04:10:42 +0200
Subject: [PATCH] net/mlx5: fix port matching in sample flow rule

[ upstream commit 04c0d3f20f54618c2b62f353b31b5a2fb20d687a ]

If there are an explicit port match and sample action in the same flow,
mlx5 PMD pushes the explicit port match in the prefix subflow, and
uses the tag item match in the suffix subflow.

The explicit port match was translated into source vport match so
the sample suffix subflow lost this match after flow split.

This patch copies the explicit port match to the sample suffix subflow,
and the latter gets the correct source vport value in the flow matcher.

Fixes: b4c0ddbfcc58 ("net/mlx5: split sample flow into two sub-flows")

Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 10afd96fea..cf4646e187 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -5555,5 +5555,5 @@ flow_check_match_action(const struct rte_flow_action actions[],
 }
 
-#define SAMPLE_SUFFIX_ITEM 2
+#define SAMPLE_SUFFIX_ITEM 3
 
 /**
@@ -5596,4 +5596,5 @@ static int
 flow_sample_split_prep(struct rte_eth_dev *dev,
 		       int add_tag,
+		       const struct rte_flow_item items[],
 		       struct rte_flow_item sfx_items[],
 		       const struct rte_flow_action actions[],
@@ -5723,4 +5724,10 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
 		};
 		/* Prepare the suffix subflow items. */
+		for (; items->type != RTE_FLOW_ITEM_TYPE_END; items++) {
+			if (items->type == RTE_FLOW_ITEM_TYPE_PORT_ID) {
+				memcpy(sfx_items, items, sizeof(*sfx_items));
+				sfx_items++;
+			}
+		}
 		tag_spec = (void *)(sfx_items + SAMPLE_SUFFIX_ITEM);
 		tag_spec->data = tag_id;
@@ -6336,5 +6343,5 @@ flow_create_split_sample(struct rte_eth_dev *dev,
 				     next_ft_step;
 		pre_actions = sfx_actions + actions_n;
-		tag_id = flow_sample_split_prep(dev, add_tag, sfx_items,
+		tag_id = flow_sample_split_prep(dev, add_tag, items, sfx_items,
 						actions, sfx_actions,
 						pre_actions, actions_n,
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.633334075 +0000
+++ 0022-net-mlx5-fix-port-matching-in-sample-flow-rule.patch	2022-03-16 15:14:12.134847689 +0000
@@ -1 +1 @@
-From 04c0d3f20f54618c2b62f353b31b5a2fb20d687a Mon Sep 17 00:00:00 2001
+From 22ed8b668425bd042aa095bdffa307940fd6acc2 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 04c0d3f20f54618c2b62f353b31b5a2fb20d687a ]
+
@@ -17 +18,0 @@
-Cc: stable@dpdk.org
@@ -26 +27 @@
-index cd55bdc2c0..78cb38d42b 100644
+index 10afd96fea..cf4646e187 100644
@@ -29 +30 @@
-@@ -5784,5 +5784,5 @@ flow_check_match_action(const struct rte_flow_action actions[],
+@@ -5555,5 +5555,5 @@ flow_check_match_action(const struct rte_flow_action actions[],
@@ -36 +37 @@
-@@ -5825,4 +5825,5 @@ static int
+@@ -5596,4 +5596,5 @@ static int
@@ -42 +43 @@
-@@ -5952,4 +5953,10 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
+@@ -5723,4 +5724,10 @@ flow_sample_split_prep(struct rte_eth_dev *dev,
@@ -53 +54 @@
-@@ -6564,5 +6571,5 @@ flow_create_split_sample(struct rte_eth_dev *dev,
+@@ -6336,5 +6343,5 @@ flow_create_split_sample(struct rte_eth_dev *dev,


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

* patch 'net/mlx5: fix CPU socket ID for Rx queue creation' has been queued to stable release 21.11.1
  2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
                   ` (20 preceding siblings ...)
  2022-03-16 15:15 ` patch 'net/mlx5: fix port matching in sample flow rule' " Kevin Traynor
@ 2022-03-16 15:15 ` Kevin Traynor
  21 siblings, 0 replies; 23+ messages in thread
From: Kevin Traynor @ 2022-03-16 15:15 UTC (permalink / raw)
  To: Thinh Tran
  Cc: David Christensen, Viacheslav Ovsiienko, Matan Azrad, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/21/22. 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

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

Thanks.

Kevin

---
From 2adf6c24c15b03ff2f470b2b6b9f0e52137a8719 Mon Sep 17 00:00:00 2001
From: Thinh Tran <thinhtr@linux.vnet.ibm.com>
Date: Wed, 9 Mar 2022 14:49:00 -0500
Subject: [PATCH] net/mlx5: fix CPU socket ID for Rx queue creation

[ upstream commit 9011af71bbd1787870b77a9bf34681f1ab1198b6 ]

The default CPU socket ID was used while creating the Rx queue and this caused
creation failure in case if hardware was not resided on the default socket.

The patch sets the correct CPU socket ID for the mlx5_rxq_ctrl before
calling the mlx5_rxq_create_devx_rq_resources() which eventually calls
mlx5_devx_rq_create() with correct CPU socket ID.

Fixes: bc5bee028ebc ("net/mlx5: create drop queue using DevX")

Signed-off-by: Thinh Tran <thinhtr@linux.vnet.ibm.com>
Reviewed-by: David Christensen <drc@linux.vnet.ibm.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
 drivers/net/mlx5/mlx5_devx.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/mlx5/mlx5_devx.c b/drivers/net/mlx5/mlx5_devx.c
index 91243f684f..abf6a48086 100644
--- a/drivers/net/mlx5/mlx5_devx.c
+++ b/drivers/net/mlx5/mlx5_devx.c
@@ -932,4 +932,6 @@ mlx5_rxq_devx_obj_drop_create(struct rte_eth_dev *dev)
 		goto error;
 	}
+	/* set the CPU socket ID where the rxq_ctrl was allocated */
+	rxq_ctrl->socket = socket_id;
 	rxq_obj->rxq_ctrl = rxq_ctrl;
 	rxq_ctrl->type = MLX5_RXQ_TYPE_STANDARD;
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.660855652 +0000
+++ 0023-net-mlx5-fix-CPU-socket-ID-for-Rx-queue-creation.patch	2022-03-16 15:14:12.136847695 +0000
@@ -1 +1 @@
-From 9011af71bbd1787870b77a9bf34681f1ab1198b6 Mon Sep 17 00:00:00 2001
+From 2adf6c24c15b03ff2f470b2b6b9f0e52137a8719 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 9011af71bbd1787870b77a9bf34681f1ab1198b6 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
-index af106bda50..5ab092a259 100644
+index 91243f684f..abf6a48086 100644
@@ -28 +29 @@
-@@ -948,4 +948,6 @@ mlx5_rxq_devx_obj_drop_create(struct rte_eth_dev *dev)
+@@ -932,4 +932,6 @@ mlx5_rxq_devx_obj_drop_create(struct rte_eth_dev *dev)
@@ -34 +35 @@
- 	rxq_ctrl->is_hairpin = false;
+ 	rxq_ctrl->type = MLX5_RXQ_TYPE_STANDARD;


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

end of thread, other threads:[~2022-03-16 15:16 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-16 15:15 patch 'net/mlx5: fix VLAN push action validation' has been queued to stable release 21.11.1 Kevin Traynor
2022-03-16 15:15 ` patch 'net/mlx5: fix sample flow action on trusted device' " Kevin Traynor
2022-03-16 15:15 ` patch 'net/mlx5: forbid multiple ASO actions in a single rule' " Kevin Traynor
2022-03-16 15:15 ` patch 'net/mlx5: fix implicit tag insertion with sample action' " Kevin Traynor
2022-03-16 15:15 ` patch 'doc: fix modify field action description for mlx5' " Kevin Traynor
2022-03-16 15:15 ` patch 'net/qede: fix Tx completion' " Kevin Traynor
2022-03-16 15:15 ` patch 'net/qede: fix Rx bulk' " Kevin Traynor
2022-03-16 15:15 ` patch 'net/qede: fix maximum Rx packet length' " Kevin Traynor
2022-03-16 15:15 ` patch 'net/af_xdp: fix custom program loading with multiple queues' " Kevin Traynor
2022-03-16 15:15 ` patch 'crypto/ipsec_mb: fix GCM requested digest length' " Kevin Traynor
2022-03-16 15:15 ` patch 'bpf: fix build with some libpcap version on FreeBSD' " Kevin Traynor
2022-03-16 15:15 ` patch 'app/regex: fix number of matches' " Kevin Traynor
2022-03-16 15:15 ` patch 'app/testpmd: fix show RSS RETA on Windows' " Kevin Traynor
2022-03-16 15:15 ` patch 'app/testpmd: fix GTP header parsing in checksum engine' " Kevin Traynor
2022-03-16 15:15 ` patch 'app/testpmd: fix flow rule with flex input link' " Kevin Traynor
2022-03-16 15:15 ` patch 'examples/l3fwd: fix buffer overflow in Tx' " Kevin Traynor
2022-03-16 15:15 ` patch 'eal/freebsd: add missing C++ include guards' " Kevin Traynor
2022-03-16 15:15 ` patch 'compressdev: fix missing space in log macro' " Kevin Traynor
2022-03-16 15:15 ` patch 'cryptodev: fix clang C++ include' " Kevin Traynor
2022-03-16 15:15 ` patch 'eventdev: " Kevin Traynor
2022-03-16 15:15 ` patch 'build: suppress rte_crypto_asym_op abi check' " Kevin Traynor
2022-03-16 15:15 ` patch 'net/mlx5: fix port matching in sample flow rule' " Kevin Traynor
2022-03-16 15:15 ` patch 'net/mlx5: fix CPU socket ID for Rx queue creation' " 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).