patch 'net/nfp: fix NFD3 metadata process' has been queued to stable release 23.11.1

Xueming Li xuemingl at nvidia.com
Tue Mar 5 10:47:55 CET 2024


Hi,

FYI, your patch has been queued to stable release 23.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/31/24. 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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=8e79562a0ed536de5a27a8a144ff17aa8b0164bd

Thanks.

Xueming Li <xuemingl at nvidia.com>

---
>From 8e79562a0ed536de5a27a8a144ff17aa8b0164bd Mon Sep 17 00:00:00 2001
From: Chaoyong He <chaoyong.he at corigine.com>
Date: Tue, 20 Feb 2024 16:14:50 +0800
Subject: [PATCH] net/nfp: fix NFD3 metadata process
Cc: Xueming Li <xuemingl at nvidia.com>

[ upstream commit 7ecf3b9039dbe0370b48d620261f62049ab0786e ]

The Tx function can not check if the metadata process success for
the process function with void return type.

Fix it by change the return type of the metadata function from
void to integer and add the error handle logic in the Tx function.

Fixes: 962791ba6804 ("net/nfp: support VLAN insert with NFD3")

Signed-off-by: Chaoyong He <chaoyong.he at corigine.com>
Reviewed-by: Long Wu <long.wu at corigine.com>
Reviewed-by: Peng Zhang <peng.zhang at corigine.com>
---
 drivers/net/nfp/nfd3/nfp_nfd3_dp.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/drivers/net/nfp/nfd3/nfp_nfd3_dp.c b/drivers/net/nfp/nfd3/nfp_nfd3_dp.c
index ff9b10f046..b9da74bc99 100644
--- a/drivers/net/nfp/nfd3/nfp_nfd3_dp.c
+++ b/drivers/net/nfp/nfd3/nfp_nfd3_dp.c
@@ -137,7 +137,7 @@ nfp_net_nfd3_tx_vlan(struct nfp_net_txq *txq,
 	}
 }

-static inline void
+static inline int
 nfp_net_nfd3_set_meta_data(struct nfp_net_meta_raw *meta_data,
 		struct nfp_net_txq *txq,
 		struct rte_mbuf *pkt)
@@ -174,7 +174,7 @@ nfp_net_nfd3_set_meta_data(struct nfp_net_meta_raw *meta_data,
 	}

 	if (meta_data->length == 0)
-		return;
+		return 0;

 	meta_info = meta_data->header;
 	meta_data->header = rte_cpu_to_be_32(meta_data->header);
@@ -188,15 +188,16 @@ nfp_net_nfd3_set_meta_data(struct nfp_net_meta_raw *meta_data,
 		case NFP_NET_META_VLAN:
 			if (vlan_layer > 0) {
 				PMD_DRV_LOG(ERR, "At most 1 layers of vlan is supported");
-				return;
+				return -EINVAL;
 			}
+
 			nfp_net_set_meta_vlan(meta_data, pkt, layer);
 			vlan_layer++;
 			break;
 		case NFP_NET_META_IPSEC:
 			if (ipsec_layer > 2) {
 				PMD_DRV_LOG(ERR, "At most 3 layers of ipsec is supported for now.");
-				return;
+				return -EINVAL;
 			}

 			nfp_net_set_meta_ipsec(meta_data, txq, pkt, layer, ipsec_layer);
@@ -204,11 +205,13 @@ nfp_net_nfd3_set_meta_data(struct nfp_net_meta_raw *meta_data,
 			break;
 		default:
 			PMD_DRV_LOG(ERR, "The metadata type not supported");
-			return;
+			return -ENOTSUP;
 		}

 		memcpy(meta, &meta_data->data[layer], sizeof(meta_data->data[layer]));
 	}
+
+	return 0;
 }

 uint16_t
@@ -225,6 +228,7 @@ nfp_net_nfd3_xmit_pkts_common(void *tx_queue,
 		uint16_t nb_pkts,
 		bool repr_flag)
 {
+	int ret;
 	uint16_t i;
 	uint8_t offset;
 	uint32_t pkt_size;
@@ -271,7 +275,10 @@ nfp_net_nfd3_xmit_pkts_common(void *tx_queue,
 		if (!repr_flag) {
 			struct nfp_net_meta_raw meta_data;
 			memset(&meta_data, 0, sizeof(meta_data));
-			nfp_net_nfd3_set_meta_data(&meta_data, txq, pkt);
+			ret = nfp_net_nfd3_set_meta_data(&meta_data, txq, pkt);
+			if (unlikely(ret != 0))
+				goto xmit_end;
+
 			offset = meta_data.length;
 		} else {
 			offset = FLOWER_PKT_DATA_OFFSET;
--
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2024-03-05 17:39:35.017341234 +0800
+++ 0134-net-nfp-fix-NFD3-metadata-process.patch	2024-03-05 17:39:31.093566504 +0800
@@ -1 +1 @@
-From 7ecf3b9039dbe0370b48d620261f62049ab0786e Mon Sep 17 00:00:00 2001
+From 8e79562a0ed536de5a27a8a144ff17aa8b0164bd Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl at nvidia.com>
+
+[ upstream commit 7ecf3b9039dbe0370b48d620261f62049ab0786e ]
@@ -13 +15,0 @@
-Cc: stable at dpdk.org
@@ -23 +25 @@
-index ee120f55ab..be31f4ac33 100644
+index ff9b10f046..b9da74bc99 100644
@@ -26 +28 @@
-@@ -142,7 +142,7 @@ nfp_net_nfd3_tx_vlan(struct nfp_net_txq *txq,
+@@ -137,7 +137,7 @@ nfp_net_nfd3_tx_vlan(struct nfp_net_txq *txq,
@@ -35 +37 @@
-@@ -177,7 +177,7 @@ nfp_net_nfd3_set_meta_data(struct nfp_net_meta_raw *meta_data,
+@@ -174,7 +174,7 @@ nfp_net_nfd3_set_meta_data(struct nfp_net_meta_raw *meta_data,
@@ -44 +46 @@
-@@ -191,15 +191,16 @@ nfp_net_nfd3_set_meta_data(struct nfp_net_meta_raw *meta_data,
+@@ -188,15 +188,16 @@ nfp_net_nfd3_set_meta_data(struct nfp_net_meta_raw *meta_data,
@@ -63 +65 @@
-@@ -207,11 +208,13 @@ nfp_net_nfd3_set_meta_data(struct nfp_net_meta_raw *meta_data,
+@@ -204,11 +205,13 @@ nfp_net_nfd3_set_meta_data(struct nfp_net_meta_raw *meta_data,
@@ -78 +80 @@
-@@ -228,6 +231,7 @@ nfp_net_nfd3_xmit_pkts_common(void *tx_queue,
+@@ -225,6 +228,7 @@ nfp_net_nfd3_xmit_pkts_common(void *tx_queue,
@@ -86 +88 @@
-@@ -274,7 +278,10 @@ nfp_net_nfd3_xmit_pkts_common(void *tx_queue,
+@@ -271,7 +275,10 @@ nfp_net_nfd3_xmit_pkts_common(void *tx_queue,


More information about the stable mailing list