patch 'net/cnxk: fix OOP handling for inbound packets' has been queued to stable release 23.11.3

Xueming Li xuemingl at nvidia.com
Mon Nov 11 07:27:26 CET 2024


Hi,

FYI, your patch has been queued to stable release 23.11.3

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

Thanks.

Xueming Li <xuemingl at nvidia.com>

---
>From 92230f6939d975f98fceaa01cf21af926741e87d Mon Sep 17 00:00:00 2001
From: Rakesh Kudurumalla <rkudurumalla at marvell.com>
Date: Tue, 1 Oct 2024 11:30:54 +0530
Subject: [PATCH] net/cnxk: fix OOP handling for inbound packets
Cc: Xueming Li <xuemingl at nvidia.com>

[ upstream commit d524a5526efa6b4cc01d13d8d50785c08d9b6891 ]

To handle OOP for inbound packet, processing
is done based on NIX_RX_REAS_F flag. However, for the
SKUs that does not support reassembly Inbound Out-Of-Place
processing test case fails because reassembly flag is not
updated in event mode. This patch fixes the same.

Fixes: 5e9e008d0127 ("net/cnxk: support inline ingress out-of-place session")

Signed-off-by: Rakesh Kudurumalla <rkudurumalla at marvell.com>
---
 drivers/net/cnxk/cn10k_ethdev_sec.c | 10 ++++++++++
 drivers/net/cnxk/cnxk_ethdev.h      |  4 ++++
 drivers/net/cnxk/version.map        |  1 +
 3 files changed, 15 insertions(+)

diff --git a/drivers/net/cnxk/cn10k_ethdev_sec.c b/drivers/net/cnxk/cn10k_ethdev_sec.c
index 4719f6b863..47822a3d84 100644
--- a/drivers/net/cnxk/cn10k_ethdev_sec.c
+++ b/drivers/net/cnxk/cn10k_ethdev_sec.c
@@ -14,6 +14,13 @@
 #include <cnxk_security.h>
 #include <roc_priv.h>

+cnxk_ethdev_rx_offload_cb_t cnxk_ethdev_rx_offload_cb;
+void
+cnxk_ethdev_rx_offload_cb_register(cnxk_ethdev_rx_offload_cb_t cb)
+{
+	cnxk_ethdev_rx_offload_cb = cb;
+}
+
 static struct rte_cryptodev_capabilities cn10k_eth_sec_crypto_caps[] = {
 	{	/* AES GCM */
 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
@@ -891,6 +898,9 @@ cn10k_eth_sec_session_create(void *device,
 		    !(dev->rx_offload_flags & NIX_RX_REAS_F)) {
 			dev->rx_offload_flags |= NIX_RX_REAS_F;
 			cn10k_eth_set_rx_function(eth_dev);
+			if (cnxk_ethdev_rx_offload_cb)
+				cnxk_ethdev_rx_offload_cb(eth_dev->data->port_id,
+							  NIX_RX_REAS_F);
 		}
 	} else {
 		struct roc_ot_ipsec_outb_sa *outb_sa, *outb_sa_dptr;
diff --git a/drivers/net/cnxk/cnxk_ethdev.h b/drivers/net/cnxk/cnxk_ethdev.h
index edbb492e2c..138d206987 100644
--- a/drivers/net/cnxk/cnxk_ethdev.h
+++ b/drivers/net/cnxk/cnxk_ethdev.h
@@ -640,6 +640,10 @@ int cnxk_nix_lookup_mem_metapool_set(struct cnxk_eth_dev *dev);
 int cnxk_nix_lookup_mem_metapool_clear(struct cnxk_eth_dev *dev);
 __rte_internal
 int cnxk_nix_inb_mode_set(struct cnxk_eth_dev *dev, bool use_inl_dev);
+typedef void (*cnxk_ethdev_rx_offload_cb_t)(uint16_t port_id, uint64_t flags);
+__rte_internal
+void cnxk_ethdev_rx_offload_cb_register(cnxk_ethdev_rx_offload_cb_t cb);
+
 struct cnxk_eth_sec_sess *cnxk_eth_sec_sess_get_by_spi(struct cnxk_eth_dev *dev,
 						       uint32_t spi, bool inb);
 struct cnxk_eth_sec_sess *
diff --git a/drivers/net/cnxk/version.map b/drivers/net/cnxk/version.map
index 77f574bb16..078456a9ed 100644
--- a/drivers/net/cnxk/version.map
+++ b/drivers/net/cnxk/version.map
@@ -16,4 +16,5 @@ EXPERIMENTAL {
 INTERNAL {
 	global:
 	cnxk_nix_inb_mode_set;
+	cnxk_ethdev_rx_offload_cb_register;
 };
--
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2024-11-11 14:23:07.052138200 +0800
+++ 0040-net-cnxk-fix-OOP-handling-for-inbound-packets.patch	2024-11-11 14:23:05.102192840 +0800
@@ -1 +1 @@
-From d524a5526efa6b4cc01d13d8d50785c08d9b6891 Mon Sep 17 00:00:00 2001
+From 92230f6939d975f98fceaa01cf21af926741e87d Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl at nvidia.com>
+
+[ upstream commit d524a5526efa6b4cc01d13d8d50785c08d9b6891 ]
@@ -13 +15,0 @@
-Cc: stable at dpdk.org
@@ -23 +25 @@
-index c9cb540e85..6acab8afa0 100644
+index 4719f6b863..47822a3d84 100644
@@ -26,3 +28,3 @@
-@@ -28,6 +28,13 @@ PLT_STATIC_ASSERT(RTE_PMD_CNXK_AR_WIN_SIZE_MAX == ROC_AR_WIN_SIZE_MAX);
- PLT_STATIC_ASSERT(RTE_PMD_CNXK_LOG_MIN_AR_WIN_SIZE_M1 == ROC_LOG_MIN_AR_WIN_SIZE_M1);
- PLT_STATIC_ASSERT(RTE_PMD_CNXK_AR_WINBITS_SZ == ROC_AR_WINBITS_SZ);
+@@ -14,6 +14,13 @@
+ #include <cnxk_security.h>
+ #include <roc_priv.h>
@@ -40 +42 @@
-@@ -908,6 +915,9 @@ cn10k_eth_sec_session_create(void *device,
+@@ -891,6 +898,9 @@ cn10k_eth_sec_session_create(void *device,
@@ -51 +53 @@
-index d4440b25ac..350adc1161 100644
+index edbb492e2c..138d206987 100644
@@ -54 +56 @@
-@@ -725,6 +725,10 @@ int cnxk_nix_lookup_mem_metapool_set(struct cnxk_eth_dev *dev);
+@@ -640,6 +640,10 @@ int cnxk_nix_lookup_mem_metapool_set(struct cnxk_eth_dev *dev);
@@ -66 +68 @@
-index 099c518ecf..edb0a1c059 100644
+index 77f574bb16..078456a9ed 100644
@@ -69 +71 @@
-@@ -23,4 +23,5 @@ EXPERIMENTAL {
+@@ -16,4 +16,5 @@ EXPERIMENTAL {


More information about the stable mailing list