patches for DPDK stable branches
 help / color / mirror / Atom feed
* patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10
@ 2023-10-18 23:58 luca.boccassi
  2023-10-18 23:58 ` patch 'rawdev: fix device class in log message' " luca.boccassi
                   ` (39 more replies)
  0 siblings, 40 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:58 UTC (permalink / raw)
  To: David Marchand; +Cc: Bruce Richardson, Morten Brørup, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From f44ac41596ce087096ab14e5e8fa17822e71de6b Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 16 Aug 2023 16:34:29 +0100
Subject: [PATCH] mempool: fix default ops for an empty mempool
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit c2c6b2f413051b022488518d040508b9ea6e0130 ]

An empty mempool's ops were not initialised to a default value wrt to
what the application requested via the flags parameter.  As
rte_mempool_create() relies on rte_mempool_create_empty(), simply move
this ops initialisation to rte_mempool_create_empty().

Fixes: aa10457eb4c2 ("mempool: make mempool populate and free api public")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
---
 lib/librte_mempool/rte_mempool.c | 33 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c
index afb1239c8d..86029b5bec 100644
--- a/lib/librte_mempool/rte_mempool.c
+++ b/lib/librte_mempool/rte_mempool.c
@@ -883,6 +883,22 @@ rte_mempool_create_empty(const char *name, unsigned n, unsigned elt_size,
 	STAILQ_INIT(&mp->elt_list);
 	STAILQ_INIT(&mp->mem_list);
 
+	/*
+	 * Since we have 4 combinations of the SP/SC/MP/MC examine the flags to
+	 * set the correct index into the table of ops structs.
+	 */
+	if ((flags & MEMPOOL_F_SP_PUT) && (flags & MEMPOOL_F_SC_GET))
+		ret = rte_mempool_set_ops_byname(mp, "ring_sp_sc", NULL);
+	else if (flags & MEMPOOL_F_SP_PUT)
+		ret = rte_mempool_set_ops_byname(mp, "ring_sp_mc", NULL);
+	else if (flags & MEMPOOL_F_SC_GET)
+		ret = rte_mempool_set_ops_byname(mp, "ring_mp_sc", NULL);
+	else
+		ret = rte_mempool_set_ops_byname(mp, "ring_mp_mc", NULL);
+
+	if (ret)
+		goto exit_unlock;
+
 	/*
 	 * local_cache pointer is set even if cache_size is zero.
 	 * The local_cache points to just past the elt_pa[] array.
@@ -923,7 +939,6 @@ rte_mempool_create(const char *name, unsigned n, unsigned elt_size,
 	rte_mempool_obj_cb_t *obj_init, void *obj_init_arg,
 	int socket_id, unsigned flags)
 {
-	int ret;
 	struct rte_mempool *mp;
 
 	mp = rte_mempool_create_empty(name, n, elt_size, cache_size,
@@ -931,22 +946,6 @@ rte_mempool_create(const char *name, unsigned n, unsigned elt_size,
 	if (mp == NULL)
 		return NULL;
 
-	/*
-	 * Since we have 4 combinations of the SP/SC/MP/MC examine the flags to
-	 * set the correct index into the table of ops structs.
-	 */
-	if ((flags & MEMPOOL_F_SP_PUT) && (flags & MEMPOOL_F_SC_GET))
-		ret = rte_mempool_set_ops_byname(mp, "ring_sp_sc", NULL);
-	else if (flags & MEMPOOL_F_SP_PUT)
-		ret = rte_mempool_set_ops_byname(mp, "ring_sp_mc", NULL);
-	else if (flags & MEMPOOL_F_SC_GET)
-		ret = rte_mempool_set_ops_byname(mp, "ring_mp_sc", NULL);
-	else
-		ret = rte_mempool_set_ops_byname(mp, "ring_mp_mc", NULL);
-
-	if (ret)
-		goto fail;
-
 	/* call the mempool priv initializer */
 	if (mp_init)
 		mp_init(mp, mp_init_arg);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:56.350449806 +0100
+++ 0001-mempool-fix-default-ops-for-an-empty-mempool.patch	2023-10-19 00:28:56.173803358 +0100
@@ -1 +1 @@
-From c2c6b2f413051b022488518d040508b9ea6e0130 Mon Sep 17 00:00:00 2001
+From f44ac41596ce087096ab14e5e8fa17822e71de6b Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit c2c6b2f413051b022488518d040508b9ea6e0130 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
- lib/mempool/rte_mempool.c | 33 ++++++++++++++++-----------------
+ lib/librte_mempool/rte_mempool.c | 33 ++++++++++++++++----------------
@@ -24,5 +25,5 @@
-diff --git a/lib/mempool/rte_mempool.c b/lib/mempool/rte_mempool.c
-index 4d337fca8d..7a7a9bf6db 100644
---- a/lib/mempool/rte_mempool.c
-+++ b/lib/mempool/rte_mempool.c
-@@ -914,6 +914,22 @@ rte_mempool_create_empty(const char *name, unsigned n, unsigned elt_size,
+diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c
+index afb1239c8d..86029b5bec 100644
+--- a/lib/librte_mempool/rte_mempool.c
++++ b/lib/librte_mempool/rte_mempool.c
+@@ -883,6 +883,22 @@ rte_mempool_create_empty(const char *name, unsigned n, unsigned elt_size,
@@ -36 +37 @@
-+	if ((flags & RTE_MEMPOOL_F_SP_PUT) && (flags & RTE_MEMPOOL_F_SC_GET))
++	if ((flags & MEMPOOL_F_SP_PUT) && (flags & MEMPOOL_F_SC_GET))
@@ -38 +39 @@
-+	else if (flags & RTE_MEMPOOL_F_SP_PUT)
++	else if (flags & MEMPOOL_F_SP_PUT)
@@ -40 +41 @@
-+	else if (flags & RTE_MEMPOOL_F_SC_GET)
++	else if (flags & MEMPOOL_F_SC_GET)
@@ -51 +52 @@
-@@ -954,7 +970,6 @@ rte_mempool_create(const char *name, unsigned n, unsigned elt_size,
+@@ -923,7 +939,6 @@ rte_mempool_create(const char *name, unsigned n, unsigned elt_size,
@@ -59 +60 @@
-@@ -962,22 +977,6 @@ rte_mempool_create(const char *name, unsigned n, unsigned elt_size,
+@@ -931,22 +946,6 @@ rte_mempool_create(const char *name, unsigned n, unsigned elt_size,
@@ -67 +68 @@
--	if ((flags & RTE_MEMPOOL_F_SP_PUT) && (flags & RTE_MEMPOOL_F_SC_GET))
+-	if ((flags & MEMPOOL_F_SP_PUT) && (flags & MEMPOOL_F_SC_GET))
@@ -69 +70 @@
--	else if (flags & RTE_MEMPOOL_F_SP_PUT)
+-	else if (flags & MEMPOOL_F_SP_PUT)
@@ -71 +72 @@
--	else if (flags & RTE_MEMPOOL_F_SC_GET)
+-	else if (flags & MEMPOOL_F_SC_GET)

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

* patch 'rawdev: fix device class in log message' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
@ 2023-10-18 23:58 ` luca.boccassi
  2023-10-18 23:58 ` patch 'net/bonding: fix header for C++' " luca.boccassi
                   ` (38 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:58 UTC (permalink / raw)
  To: Tomasz Duszynski; +Cc: Hemant Agrawal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/365b547d6d00d9dd4a3eb53cbecbcc93ca5bf43b

Thanks.

Luca Boccassi

---
From 365b547d6d00d9dd4a3eb53cbecbcc93ca5bf43b Mon Sep 17 00:00:00 2001
From: Tomasz Duszynski <tduszynski@marvell.com>
Date: Mon, 24 Jul 2023 15:36:46 +0200
Subject: [PATCH] rawdev: fix device class in log message

[ upstream commit eab2364c0e1bdb2a17ba601c1f7f48b213532e2a ]

Use proper naming when dealing with a raw device.

Fixes: c88b3f2558ed ("rawdev: introduce raw device library")

Signed-off-by: Tomasz Duszynski <tduszynski@marvell.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 lib/librte_rawdev/rte_rawdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lib/librte_rawdev/rte_rawdev.c b/lib/librte_rawdev/rte_rawdev.c
index f29164dd15..aa58053bbe 100644
--- a/lib/librte_rawdev/rte_rawdev.c
+++ b/lib/librte_rawdev/rte_rawdev.c
@@ -494,8 +494,7 @@ rte_rawdev_pmd_allocate(const char *name, size_t dev_priv_size, int socket_id)
 	uint16_t dev_id;
 
 	if (rte_rawdev_pmd_get_named_dev(name) != NULL) {
-		RTE_RDEV_ERR("Event device with name %s already allocated!",
-			     name);
+		RTE_RDEV_ERR("Raw device with name %s already allocated!", name);
 		return NULL;
 	}
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:56.389904513 +0100
+++ 0002-rawdev-fix-device-class-in-log-message.patch	2023-10-19 00:28:56.173803358 +0100
@@ -1 +1 @@
-From eab2364c0e1bdb2a17ba601c1f7f48b213532e2a Mon Sep 17 00:00:00 2001
+From 365b547d6d00d9dd4a3eb53cbecbcc93ca5bf43b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit eab2364c0e1bdb2a17ba601c1f7f48b213532e2a ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -14 +15 @@
- lib/rawdev/rte_rawdev.c | 3 +--
+ lib/librte_rawdev/rte_rawdev.c | 3 +--
@@ -17,5 +18,5 @@
-diff --git a/lib/rawdev/rte_rawdev.c b/lib/rawdev/rte_rawdev.c
-index dacaa60e22..474bdc9540 100644
---- a/lib/rawdev/rte_rawdev.c
-+++ b/lib/rawdev/rte_rawdev.c
-@@ -505,8 +505,7 @@ rte_rawdev_pmd_allocate(const char *name, size_t dev_priv_size, int socket_id)
+diff --git a/lib/librte_rawdev/rte_rawdev.c b/lib/librte_rawdev/rte_rawdev.c
+index f29164dd15..aa58053bbe 100644
+--- a/lib/librte_rawdev/rte_rawdev.c
++++ b/lib/librte_rawdev/rte_rawdev.c
+@@ -494,8 +494,7 @@ rte_rawdev_pmd_allocate(const char *name, size_t dev_priv_size, int socket_id)

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

* patch 'net/bonding: fix header for C++' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
  2023-10-18 23:58 ` patch 'rawdev: fix device class in log message' " luca.boccassi
@ 2023-10-18 23:58 ` luca.boccassi
  2023-10-18 23:58 ` patch 'net/hns3: fix VF default MAC modified when set failed' " luca.boccassi
                   ` (37 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:58 UTC (permalink / raw)
  To: Visa Hankala; +Cc: Tyler Retzlaff, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/998744451b91559b7784abbd9f1a8fa498a60fb8

Thanks.

Luca Boccassi

---
From 998744451b91559b7784abbd9f1a8fa498a60fb8 Mon Sep 17 00:00:00 2001
From: Visa Hankala <visa@hankala.org>
Date: Wed, 9 Aug 2023 15:52:41 +0000
Subject: [PATCH] net/bonding: fix header for C++

[ upstream commit 25fac202f4e00dd1be4eef794174b689a5f64d54 ]

Apply C linkage to the whole header to allow use with C++.

Fixes: dc40f17a36bc ("net/bonding: allow external state machine in mode 4")

Signed-off-by: Visa Hankala <visa@hankala.org>
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/bonding/rte_eth_bond_8023ad.h | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.h b/drivers/net/bonding/rte_eth_bond_8023ad.h
index 7eb392f8c8..025bd0ec54 100644
--- a/drivers/net/bonding/rte_eth_bond_8023ad.h
+++ b/drivers/net/bonding/rte_eth_bond_8023ad.h
@@ -197,10 +197,6 @@ int
 rte_eth_bond_8023ad_slave_info(uint16_t port_id, uint16_t slave_id,
 		struct rte_eth_bond_8023ad_slave_info *conf);
 
-#ifdef __cplusplus
-}
-#endif
-
 /**
  * Configure a slave port to start collecting.
  *
@@ -331,4 +327,9 @@ rte_eth_bond_8023ad_agg_selection_get(uint16_t port_id);
 int
 rte_eth_bond_8023ad_agg_selection_set(uint16_t port_id,
 		enum rte_bond_8023ad_agg_selection agg_selection);
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* RTE_ETH_BOND_8023AD_H_ */
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:56.430860623 +0100
+++ 0003-net-bonding-fix-header-for-C.patch	2023-10-19 00:28:56.173803358 +0100
@@ -1 +1 @@
-From 25fac202f4e00dd1be4eef794174b689a5f64d54 Mon Sep 17 00:00:00 2001
+From 998744451b91559b7784abbd9f1a8fa498a60fb8 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 25fac202f4e00dd1be4eef794174b689a5f64d54 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 7ad8d6d00b..921b4446b7 100644
+index 7eb392f8c8..025bd0ec54 100644

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

* patch 'net/hns3: fix VF default MAC modified when set failed' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
  2023-10-18 23:58 ` patch 'rawdev: fix device class in log message' " luca.boccassi
  2023-10-18 23:58 ` patch 'net/bonding: fix header for C++' " luca.boccassi
@ 2023-10-18 23:58 ` luca.boccassi
  2023-10-18 23:58 ` patch 'net/hns3: fix error code for multicast resource' " luca.boccassi
                   ` (36 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:58 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From 0eca1270001b360bb6954fdd5bfa7de68371ee0e Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Sat, 5 Aug 2023 16:36:23 +0800
Subject: [PATCH] net/hns3: fix VF default MAC modified when set failed

[ upstream commit ed7faab2a717347077d9e657fba010bb145a2b54 ]

When the VF fail to set the default MAC address,
"hw->mac.mac_addr" should not be updated.

Fixes: a5475d61fa34 ("net/hns3: support VF")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_ethdev_vf.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index f5664201bb..9d30dea8a8 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -337,6 +337,8 @@ hns3vf_set_default_mac_addr(struct rte_eth_dev *dev,
 			hns3_err(hw, "Failed to set mac addr(%s) for vf: %d",
 				 mac_str, ret);
 		}
+		rte_spinlock_unlock(&hw->lock);
+		return ret;
 	}
 
 	rte_ether_addr_copy(mac_addr,
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:56.471696384 +0100
+++ 0004-net-hns3-fix-VF-default-MAC-modified-when-set-failed.patch	2023-10-19 00:28:56.177803463 +0100
@@ -1 +1 @@
-From ed7faab2a717347077d9e657fba010bb145a2b54 Mon Sep 17 00:00:00 2001
+From 0eca1270001b360bb6954fdd5bfa7de68371ee0e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ed7faab2a717347077d9e657fba010bb145a2b54 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 3729615159..007f5d619f 100644
+index f5664201bb..9d30dea8a8 100644
@@ -22 +23 @@
-@@ -169,6 +169,8 @@ hns3vf_set_default_mac_addr(struct rte_eth_dev *dev,
+@@ -337,6 +337,8 @@ hns3vf_set_default_mac_addr(struct rte_eth_dev *dev,

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

* patch 'net/hns3: fix error code for multicast resource' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (2 preceding siblings ...)
  2023-10-18 23:58 ` patch 'net/hns3: fix VF default MAC modified when set failed' " luca.boccassi
@ 2023-10-18 23:58 ` luca.boccassi
  2023-10-18 23:58 ` patch 'net/hns3: fix flushing multicast MAC address' " luca.boccassi
                   ` (35 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:58 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/25895ade7f495039479a8f04c707fd7d8b0633af

Thanks.

Luca Boccassi

---
From 25895ade7f495039479a8f04c707fd7d8b0633af Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Sat, 5 Aug 2023 16:36:24 +0800
Subject: [PATCH] net/hns3: fix error code for multicast resource

[ upstream commit c8cd885352d58bcfcc514770cb6068dd689d0dc3 ]

Return ENOSPC instead of EINVAL when the hardware
has not enough multicast filtering resources.

Fixes: 7d7f9f80bbfb ("net/hns3: support MAC address related operations")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c    | 2 +-
 drivers/net/hns3/hns3_ethdev_vf.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 2da2f1e9ec..08e2ae53db 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -1913,7 +1913,7 @@ hns3_set_mc_addr_chk_param(struct hns3_hw *hw,
 		hns3_err(hw, "failed to set mc mac addr, nb_mc_addr(%u) "
 			 "invalid. valid range: 0~%d",
 			 nb_mc_addr, HNS3_MC_MACADDR_NUM);
-		return -EINVAL;
+		return -ENOSPC;
 	}
 
 	/* Check if input mac addresses are valid */
diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index 9d30dea8a8..8937e73305 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -437,7 +437,7 @@ hns3vf_set_mc_addr_chk_param(struct hns3_hw *hw,
 		hns3_err(hw, "failed to set mc mac addr, nb_mc_addr(%u) "
 			 "invalid. valid range: 0~%d",
 			 nb_mc_addr, HNS3_MC_MACADDR_NUM);
-		return -EINVAL;
+		return -ENOSPC;
 	}
 
 	/* Check if input mac addresses are valid */
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:56.514938023 +0100
+++ 0005-net-hns3-fix-error-code-for-multicast-resource.patch	2023-10-19 00:28:56.185803675 +0100
@@ -1 +1 @@
-From c8cd885352d58bcfcc514770cb6068dd689d0dc3 Mon Sep 17 00:00:00 2001
+From 25895ade7f495039479a8f04c707fd7d8b0633af Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c8cd885352d58bcfcc514770cb6068dd689d0dc3 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -15,2 +16,3 @@
- drivers/net/hns3/hns3_common.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ drivers/net/hns3/hns3_ethdev.c    | 2 +-
+ drivers/net/hns3/hns3_ethdev_vf.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
@@ -18,5 +20,18 @@
-diff --git a/drivers/net/hns3/hns3_common.c b/drivers/net/hns3/hns3_common.c
-index a11ea686fd..043c7673b4 100644
---- a/drivers/net/hns3/hns3_common.c
-+++ b/drivers/net/hns3/hns3_common.c
-@@ -386,7 +386,7 @@ hns3_set_mc_addr_chk_param(struct hns3_hw *hw,
+diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
+index 2da2f1e9ec..08e2ae53db 100644
+--- a/drivers/net/hns3/hns3_ethdev.c
++++ b/drivers/net/hns3/hns3_ethdev.c
+@@ -1913,7 +1913,7 @@ hns3_set_mc_addr_chk_param(struct hns3_hw *hw,
+ 		hns3_err(hw, "failed to set mc mac addr, nb_mc_addr(%u) "
+ 			 "invalid. valid range: 0~%d",
+ 			 nb_mc_addr, HNS3_MC_MACADDR_NUM);
+-		return -EINVAL;
++		return -ENOSPC;
+ 	}
+ 
+ 	/* Check if input mac addresses are valid */
+diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
+index 9d30dea8a8..8937e73305 100644
+--- a/drivers/net/hns3/hns3_ethdev_vf.c
++++ b/drivers/net/hns3/hns3_ethdev_vf.c
+@@ -437,7 +437,7 @@ hns3vf_set_mc_addr_chk_param(struct hns3_hw *hw,

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

* patch 'net/hns3: fix flushing multicast MAC address' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (3 preceding siblings ...)
  2023-10-18 23:58 ` patch 'net/hns3: fix error code for multicast resource' " luca.boccassi
@ 2023-10-18 23:58 ` luca.boccassi
  2023-10-18 23:58 ` patch 'app/test: fix reference to master in bonding test' " luca.boccassi
                   ` (34 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:58 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/04a3f8de6cc6d01e8d9223814afe0f53c96b2542

Thanks.

Luca Boccassi

---
From 04a3f8de6cc6d01e8d9223814afe0f53c96b2542 Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Sat, 5 Aug 2023 16:36:25 +0800
Subject: [PATCH] net/hns3: fix flushing multicast MAC address

[ upstream commit 49d1ab205b033b6131fb895b5e4d9ebc14081e51 ]

According rte_eth_dev_set_mc_addr_list() API definition,
support flush multicast MAC address if mc_addr_set is NULL
or nb_mc_addr is zero.

Fixes: 7d7f9f80bbfb ("net/hns3: support MAC address related operations")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c | 68 +++++++++++++++++++---------------
 1 file changed, 39 insertions(+), 29 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 08e2ae53db..b898c7b5a3 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -2037,12 +2037,42 @@ hns3_set_mc_addr_calc_addr(struct hns3_hw *hw,
 	*rm_addr_num = rm_num;
 }
 
+static int
+hns3_configure_all_mc_mac_addr(struct hns3_adapter *hns, bool del)
+{
+	char mac_str[RTE_ETHER_ADDR_FMT_SIZE];
+	struct hns3_hw *hw = &hns->hw;
+	struct rte_ether_addr *addr;
+	int err = 0;
+	int ret;
+	int i;
+
+	for (i = 0; i < hw->mc_addrs_num; i++) {
+		addr = &hw->mc_addrs[i];
+		if (!rte_is_multicast_ether_addr(addr))
+			continue;
+		if (del)
+			ret = hns3_remove_mc_addr(hw, addr);
+		else
+			ret = hns3_add_mc_addr(hw, addr);
+		if (ret) {
+			err = ret;
+			rte_ether_format_addr(mac_str, RTE_ETHER_ADDR_FMT_SIZE,
+					      addr);
+			hns3_dbg(hw, "%s mc mac addr: %s failed for pf: ret = %d",
+				 del ? "Remove" : "Restore", mac_str, ret);
+		}
+	}
+	return err;
+}
+
 static int
 hns3_set_mc_mac_addr_list(struct rte_eth_dev *dev,
 			  struct rte_ether_addr *mc_addr_set,
 			  uint32_t nb_mc_addr)
 {
 	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
 	struct rte_ether_addr reserved_addr_list[HNS3_MC_MACADDR_NUM];
 	struct rte_ether_addr add_addr_list[HNS3_MC_MACADDR_NUM];
 	struct rte_ether_addr rm_addr_list[HNS3_MC_MACADDR_NUM];
@@ -2055,6 +2085,15 @@ hns3_set_mc_mac_addr_list(struct rte_eth_dev *dev,
 	int ret;
 	int i;
 
+	if (mc_addr_set == NULL || nb_mc_addr == 0) {
+		rte_spinlock_lock(&hw->lock);
+		ret = hns3_configure_all_mc_mac_addr(hns, true);
+		if (ret == 0)
+			hw->mc_addrs_num = 0;
+		rte_spinlock_unlock(&hw->lock);
+		return ret;
+	}
+
 	/* Check if input parameters are valid */
 	ret = hns3_set_mc_addr_chk_param(hw, mc_addr_set, nb_mc_addr);
 	if (ret)
@@ -2102,35 +2141,6 @@ hns3_set_mc_mac_addr_list(struct rte_eth_dev *dev,
 	return 0;
 }
 
-static int
-hns3_configure_all_mc_mac_addr(struct hns3_adapter *hns, bool del)
-{
-	char mac_str[RTE_ETHER_ADDR_FMT_SIZE];
-	struct hns3_hw *hw = &hns->hw;
-	struct rte_ether_addr *addr;
-	int err = 0;
-	int ret;
-	int i;
-
-	for (i = 0; i < hw->mc_addrs_num; i++) {
-		addr = &hw->mc_addrs[i];
-		if (!rte_is_multicast_ether_addr(addr))
-			continue;
-		if (del)
-			ret = hns3_remove_mc_addr(hw, addr);
-		else
-			ret = hns3_add_mc_addr(hw, addr);
-		if (ret) {
-			err = ret;
-			rte_ether_format_addr(mac_str, RTE_ETHER_ADDR_FMT_SIZE,
-					      addr);
-			hns3_dbg(hw, "%s mc mac addr: %s failed for pf: ret = %d",
-				 del ? "Remove" : "Restore", mac_str, ret);
-		}
-	}
-	return err;
-}
-
 static int
 hns3_check_mq_mode(struct rte_eth_dev *dev)
 {
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:56.559140958 +0100
+++ 0006-net-hns3-fix-flushing-multicast-MAC-address.patch	2023-10-19 00:28:56.193803887 +0100
@@ -1 +1 @@
-From 49d1ab205b033b6131fb895b5e4d9ebc14081e51 Mon Sep 17 00:00:00 2001
+From 04a3f8de6cc6d01e8d9223814afe0f53c96b2542 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 49d1ab205b033b6131fb895b5e4d9ebc14081e51 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -16,2 +17,2 @@
- drivers/net/hns3/hns3_common.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
+ drivers/net/hns3/hns3_ethdev.c | 68 +++++++++++++++++++---------------
+ 1 file changed, 39 insertions(+), 29 deletions(-)
@@ -19,5 +20,40 @@
-diff --git a/drivers/net/hns3/hns3_common.c b/drivers/net/hns3/hns3_common.c
-index 043c7673b4..c4d47f43fe 100644
---- a/drivers/net/hns3/hns3_common.c
-+++ b/drivers/net/hns3/hns3_common.c
-@@ -444,6 +444,7 @@ hns3_set_mc_mac_addr_list(struct rte_eth_dev *dev,
+diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
+index 08e2ae53db..b898c7b5a3 100644
+--- a/drivers/net/hns3/hns3_ethdev.c
++++ b/drivers/net/hns3/hns3_ethdev.c
+@@ -2037,12 +2037,42 @@ hns3_set_mc_addr_calc_addr(struct hns3_hw *hw,
+ 	*rm_addr_num = rm_num;
+ }
+ 
++static int
++hns3_configure_all_mc_mac_addr(struct hns3_adapter *hns, bool del)
++{
++	char mac_str[RTE_ETHER_ADDR_FMT_SIZE];
++	struct hns3_hw *hw = &hns->hw;
++	struct rte_ether_addr *addr;
++	int err = 0;
++	int ret;
++	int i;
++
++	for (i = 0; i < hw->mc_addrs_num; i++) {
++		addr = &hw->mc_addrs[i];
++		if (!rte_is_multicast_ether_addr(addr))
++			continue;
++		if (del)
++			ret = hns3_remove_mc_addr(hw, addr);
++		else
++			ret = hns3_add_mc_addr(hw, addr);
++		if (ret) {
++			err = ret;
++			rte_ether_format_addr(mac_str, RTE_ETHER_ADDR_FMT_SIZE,
++					      addr);
++			hns3_dbg(hw, "%s mc mac addr: %s failed for pf: ret = %d",
++				 del ? "Remove" : "Restore", mac_str, ret);
++		}
++	}
++	return err;
++}
++
+ static int
+ hns3_set_mc_mac_addr_list(struct rte_eth_dev *dev,
+ 			  struct rte_ether_addr *mc_addr_set,
@@ -28,4 +64,4 @@
- 	struct rte_ether_addr *addr;
- 	int cur_addr_num;
- 	int set_addr_num;
-@@ -451,6 +452,15 @@ hns3_set_mc_mac_addr_list(struct rte_eth_dev *dev,
+ 	struct rte_ether_addr reserved_addr_list[HNS3_MC_MACADDR_NUM];
+ 	struct rte_ether_addr add_addr_list[HNS3_MC_MACADDR_NUM];
+ 	struct rte_ether_addr rm_addr_list[HNS3_MC_MACADDR_NUM];
+@@ -2055,6 +2085,15 @@ hns3_set_mc_mac_addr_list(struct rte_eth_dev *dev,
@@ -46,0 +83,36 @@
+@@ -2102,35 +2141,6 @@ hns3_set_mc_mac_addr_list(struct rte_eth_dev *dev,
+ 	return 0;
+ }
+ 
+-static int
+-hns3_configure_all_mc_mac_addr(struct hns3_adapter *hns, bool del)
+-{
+-	char mac_str[RTE_ETHER_ADDR_FMT_SIZE];
+-	struct hns3_hw *hw = &hns->hw;
+-	struct rte_ether_addr *addr;
+-	int err = 0;
+-	int ret;
+-	int i;
+-
+-	for (i = 0; i < hw->mc_addrs_num; i++) {
+-		addr = &hw->mc_addrs[i];
+-		if (!rte_is_multicast_ether_addr(addr))
+-			continue;
+-		if (del)
+-			ret = hns3_remove_mc_addr(hw, addr);
+-		else
+-			ret = hns3_add_mc_addr(hw, addr);
+-		if (ret) {
+-			err = ret;
+-			rte_ether_format_addr(mac_str, RTE_ETHER_ADDR_FMT_SIZE,
+-					      addr);
+-			hns3_dbg(hw, "%s mc mac addr: %s failed for pf: ret = %d",
+-				 del ? "Remove" : "Restore", mac_str, ret);
+-		}
+-	}
+-	return err;
+-}
+-
+ static int
+ hns3_check_mq_mode(struct rte_eth_dev *dev)
+ {

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

* patch 'app/test: fix reference to master in bonding test' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (4 preceding siblings ...)
  2023-10-18 23:58 ` patch 'net/hns3: fix flushing multicast MAC address' " luca.boccassi
@ 2023-10-18 23:58 ` luca.boccassi
  2023-10-18 23:58 ` patch 'net/hns3: fix order in NEON Rx' " luca.boccassi
                   ` (33 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:58 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Tyler Retzlaff, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From dfc299e6c105d83bb809923f02c77eb8b02fae0c Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Thu, 17 Aug 2023 19:44:48 -0700
Subject: [PATCH] app/test: fix reference to master in bonding test

[ upstream commit 61b52e7edb3a764699f0d392f298fca34d56c11d ]

Fixes: 0c8396e6d786 ("bond: unit tests for mode 5")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
---
 app/test/test_link_bonding.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/test/test_link_bonding.c b/app/test/test_link_bonding.c
index 824b0acf15..4f810efb0a 100644
--- a/app/test/test_link_bonding.c
+++ b/app/test/test_link_bonding.c
@@ -4262,7 +4262,7 @@ test_tlb_tx_burst(void)
 			burst_size);
 	TEST_ASSERT_EQUAL(nb_tx, 0, " bad number of packet in burst");
 
-	/* Clean ugit checkout masterp and remove slaves from bonded device */
+	/* Clean up and remove members from bonding device */
 	return remove_slaves_and_stop_bonded_device();
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:56.606833453 +0100
+++ 0007-app-test-fix-reference-to-master-in-bonding-test.patch	2023-10-19 00:28:56.197803992 +0100
@@ -1 +1 @@
-From 61b52e7edb3a764699f0d392f298fca34d56c11d Mon Sep 17 00:00:00 2001
+From dfc299e6c105d83bb809923f02c77eb8b02fae0c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 61b52e7edb3a764699f0d392f298fca34d56c11d ]
+
@@ -7 +8,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
-index f0050fa29a..4d715c4465 100644
+index 824b0acf15..4f810efb0a 100644
@@ -19 +20 @@
-@@ -4306,7 +4306,7 @@ test_tlb_tx_burst(void)
+@@ -4262,7 +4262,7 @@ test_tlb_tx_burst(void)
@@ -23 +24 @@
--	/* Clean ugit checkout masterp and remove members from bonding device */
+-	/* Clean ugit checkout masterp and remove slaves from bonded device */
@@ -25 +26 @@
- 	return remove_members_and_stop_bonding_device();
+ 	return remove_slaves_and_stop_bonded_device();

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

* patch 'net/hns3: fix order in NEON Rx' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (5 preceding siblings ...)
  2023-10-18 23:58 ` patch 'app/test: fix reference to master in bonding test' " luca.boccassi
@ 2023-10-18 23:58 ` luca.boccassi
  2023-10-18 23:58 ` patch 'random: initialize state for unregistered non-EAL threads' " luca.boccassi
                   ` (32 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:58 UTC (permalink / raw)
  To: Huisong Li; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From b88f88cdaa73e889e197a9257f86289bad2e6a05 Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Tue, 11 Jul 2023 18:24:45 +0800
Subject: [PATCH] net/hns3: fix order in NEON Rx

[ upstream commit 7dd439ed998c36c8d0204c436cc656af08cfa5fc ]

This patch reorders the order of the NEON Rx for better maintenance
and easier understanding.

Fixes: a3d4f4d291d7 ("net/hns3: support NEON Rx")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_rxtx_vec_neon.h | 80 +++++++++++----------------
 1 file changed, 32 insertions(+), 48 deletions(-)

diff --git a/drivers/net/hns3/hns3_rxtx_vec_neon.h b/drivers/net/hns3/hns3_rxtx_vec_neon.h
index 9c41c409de..e289fcc651 100644
--- a/drivers/net/hns3/hns3_rxtx_vec_neon.h
+++ b/drivers/net/hns3/hns3_rxtx_vec_neon.h
@@ -168,19 +168,12 @@ hns3_recv_burst_vec(struct hns3_rx_queue *__restrict rxq,
 		bd_vld = vset_lane_u16(rxdp[2].rx.bdtype_vld_udp0, bd_vld, 2);
 		bd_vld = vset_lane_u16(rxdp[3].rx.bdtype_vld_udp0, bd_vld, 3);
 
-		/* load 2 mbuf pointer */
-		mbp1 = vld1q_u64((uint64_t *)&sw_ring[pos]);
-
 		bd_vld = vshl_n_u16(bd_vld,
 				    HNS3_UINT16_BIT - 1 - HNS3_RXD_VLD_B);
 		bd_vld = vreinterpret_u16_s16(
 				vshr_n_s16(vreinterpret_s16_u16(bd_vld),
 					   HNS3_UINT16_BIT - 1));
 		stat = ~vget_lane_u64(vreinterpret_u64_u16(bd_vld), 0);
-
-		/* load 2 mbuf pointer again */
-		mbp2 = vld1q_u64((uint64_t *)&sw_ring[pos + 2]);
-
 		if (likely(stat == 0))
 			bd_valid_num = HNS3_DEFAULT_DESCS_PER_LOOP;
 		else
@@ -188,20 +181,20 @@ hns3_recv_burst_vec(struct hns3_rx_queue *__restrict rxq,
 		if (bd_valid_num == 0)
 			break;
 
+		/* load 4 mbuf pointer */
+		mbp1 = vld1q_u64((uint64_t *)&sw_ring[pos]);
+		mbp2 = vld1q_u64((uint64_t *)&sw_ring[pos + 2]);
+
+		/* store 4 mbuf pointer into rx_pkts */
+		vst1q_u64((uint64_t *)&rx_pkts[pos], mbp1);
+		vst1q_u64((uint64_t *)&rx_pkts[pos + 2], mbp2);
+
 		/* use offset to control below data load oper ordering */
 		offset = rxq->offset_table[bd_valid_num];
 
-		/* store 2 mbuf pointer into rx_pkts */
-		vst1q_u64((uint64_t *)&rx_pkts[pos], mbp1);
-
-		/* read first two descs */
+		/* read 4 descs */
 		descs[0] = vld2q_u64((uint64_t *)(rxdp + offset));
 		descs[1] = vld2q_u64((uint64_t *)(rxdp + offset + 1));
-
-		/* store 2 mbuf pointer into rx_pkts again */
-		vst1q_u64((uint64_t *)&rx_pkts[pos + 2], mbp2);
-
-		/* read remains two descs */
 		descs[2] = vld2q_u64((uint64_t *)(rxdp + offset + 2));
 		descs[3] = vld2q_u64((uint64_t *)(rxdp + offset + 3));
 
@@ -209,56 +202,47 @@ hns3_recv_burst_vec(struct hns3_rx_queue *__restrict rxq,
 		pkt_mbuf1.val[1] = vreinterpretq_u8_u64(descs[0].val[1]);
 		pkt_mbuf2.val[0] = vreinterpretq_u8_u64(descs[1].val[0]);
 		pkt_mbuf2.val[1] = vreinterpretq_u8_u64(descs[1].val[1]);
-
-		/* pkt 1,2 convert format from desc to pktmbuf */
-		pkt_mb1 = vqtbl2q_u8(pkt_mbuf1, shuf_desc_fields_msk);
-		pkt_mb2 = vqtbl2q_u8(pkt_mbuf2, shuf_desc_fields_msk);
-
-		/* store the first 8 bytes of pkt 1,2 mbuf's rearm_data */
-		*(uint64_t *)&sw_ring[pos + 0].mbuf->rearm_data =
-			rxq->mbuf_initializer;
-		*(uint64_t *)&sw_ring[pos + 1].mbuf->rearm_data =
-			rxq->mbuf_initializer;
-
-		/* pkt 1,2 remove crc */
-		tmp = vsubq_u16(vreinterpretq_u16_u8(pkt_mb1), crc_adjust);
-		pkt_mb1 = vreinterpretq_u8_u16(tmp);
-		tmp = vsubq_u16(vreinterpretq_u16_u8(pkt_mb2), crc_adjust);
-		pkt_mb2 = vreinterpretq_u8_u16(tmp);
-
 		pkt_mbuf3.val[0] = vreinterpretq_u8_u64(descs[2].val[0]);
 		pkt_mbuf3.val[1] = vreinterpretq_u8_u64(descs[2].val[1]);
 		pkt_mbuf4.val[0] = vreinterpretq_u8_u64(descs[3].val[0]);
 		pkt_mbuf4.val[1] = vreinterpretq_u8_u64(descs[3].val[1]);
 
-		/* pkt 3,4 convert format from desc to pktmbuf */
+		/* 4 packets convert format from desc to pktmbuf */
+		pkt_mb1 = vqtbl2q_u8(pkt_mbuf1, shuf_desc_fields_msk);
+		pkt_mb2 = vqtbl2q_u8(pkt_mbuf2, shuf_desc_fields_msk);
 		pkt_mb3 = vqtbl2q_u8(pkt_mbuf3, shuf_desc_fields_msk);
 		pkt_mb4 = vqtbl2q_u8(pkt_mbuf4, shuf_desc_fields_msk);
 
-		/* pkt 1,2 save to rx_pkts mbuf */
-		vst1q_u8((void *)&sw_ring[pos + 0].mbuf->rx_descriptor_fields1,
-			 pkt_mb1);
-		vst1q_u8((void *)&sw_ring[pos + 1].mbuf->rx_descriptor_fields1,
-			 pkt_mb2);
-
-		/* pkt 3,4 remove crc */
+		/* 4 packets remove crc */
+		tmp = vsubq_u16(vreinterpretq_u16_u8(pkt_mb1), crc_adjust);
+		pkt_mb1 = vreinterpretq_u8_u16(tmp);
+		tmp = vsubq_u16(vreinterpretq_u16_u8(pkt_mb2), crc_adjust);
+		pkt_mb2 = vreinterpretq_u8_u16(tmp);
 		tmp = vsubq_u16(vreinterpretq_u16_u8(pkt_mb3), crc_adjust);
 		pkt_mb3 = vreinterpretq_u8_u16(tmp);
 		tmp = vsubq_u16(vreinterpretq_u16_u8(pkt_mb4), crc_adjust);
 		pkt_mb4 = vreinterpretq_u8_u16(tmp);
 
-		/* store the first 8 bytes of pkt 3,4 mbuf's rearm_data */
-		*(uint64_t *)&sw_ring[pos + 2].mbuf->rearm_data =
-			rxq->mbuf_initializer;
-		*(uint64_t *)&sw_ring[pos + 3].mbuf->rearm_data =
-			rxq->mbuf_initializer;
-
-		/* pkt 3,4 save to rx_pkts mbuf */
+		/* save packet info to rx_pkts mbuf */
+		vst1q_u8((void *)&sw_ring[pos + 0].mbuf->rx_descriptor_fields1,
+			 pkt_mb1);
+		vst1q_u8((void *)&sw_ring[pos + 1].mbuf->rx_descriptor_fields1,
+			 pkt_mb2);
 		vst1q_u8((void *)&sw_ring[pos + 2].mbuf->rx_descriptor_fields1,
 			 pkt_mb3);
 		vst1q_u8((void *)&sw_ring[pos + 3].mbuf->rx_descriptor_fields1,
 			 pkt_mb4);
 
+		/* store the first 8 bytes of packets mbuf's rearm_data */
+		*(uint64_t *)&sw_ring[pos + 0].mbuf->rearm_data =
+			rxq->mbuf_initializer;
+		*(uint64_t *)&sw_ring[pos + 1].mbuf->rearm_data =
+			rxq->mbuf_initializer;
+		*(uint64_t *)&sw_ring[pos + 2].mbuf->rearm_data =
+			rxq->mbuf_initializer;
+		*(uint64_t *)&sw_ring[pos + 3].mbuf->rearm_data =
+			rxq->mbuf_initializer;
+
 		rte_prefetch_non_temporal(rxdp + HNS3_DEFAULT_DESCS_PER_LOOP);
 
 		parse_retcode = hns3_desc_parse_field(rxq, &sw_ring[pos],
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:56.655193583 +0100
+++ 0008-net-hns3-fix-order-in-NEON-Rx.patch	2023-10-19 00:28:56.201804098 +0100
@@ -1 +1 @@
-From 7dd439ed998c36c8d0204c436cc656af08cfa5fc Mon Sep 17 00:00:00 2001
+From b88f88cdaa73e889e197a9257f86289bad2e6a05 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 7dd439ed998c36c8d0204c436cc656af08cfa5fc ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 564d831a48..0dc6b9f0a2 100644
+index 9c41c409de..e289fcc651 100644
@@ -22 +23 @@
-@@ -180,19 +180,12 @@ hns3_recv_burst_vec(struct hns3_rx_queue *__restrict rxq,
+@@ -168,19 +168,12 @@ hns3_recv_burst_vec(struct hns3_rx_queue *__restrict rxq,
@@ -42 +43 @@
-@@ -200,20 +193,20 @@ hns3_recv_burst_vec(struct hns3_rx_queue *__restrict rxq,
+@@ -188,20 +181,20 @@ hns3_recv_burst_vec(struct hns3_rx_queue *__restrict rxq,
@@ -72 +73 @@
-@@ -221,56 +214,47 @@ hns3_recv_burst_vec(struct hns3_rx_queue *__restrict rxq,
+@@ -209,56 +202,47 @@ hns3_recv_burst_vec(struct hns3_rx_queue *__restrict rxq,

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

* patch 'random: initialize state for unregistered non-EAL threads' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (6 preceding siblings ...)
  2023-10-18 23:58 ` patch 'net/hns3: fix order in NEON Rx' " luca.boccassi
@ 2023-10-18 23:58 ` luca.boccassi
  2023-10-18 23:58 ` patch 'bus/dpaa: fix build with asserts for GCC 13' " luca.boccassi
                   ` (31 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:58 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Morten Brørup, Mattias Rönnblom, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/681827b2e3220fa97568958da137dd7847215fbb

Thanks.

Luca Boccassi

---
From 681827b2e3220fa97568958da137dd7847215fbb Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Thu, 7 Sep 2023 08:24:55 -0700
Subject: [PATCH] random: initialize state for unregistered non-EAL threads
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 3a4e21301c7a8bf709ff9e74d05628f87450a11e ]

The per-lcore PRNG was not initializing the rand_state of all
the lcores. Any usage of rte_random by an unregistered non-EAL thread
would use rand_states[RTE_MAX_LCORE] which was never initialized.

Fix by using RTE_DIM() which will get all lcores.

Fixes: 3f002f069612 ("eal: replace libc-based random generation with LFSR")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
---
 lib/librte_eal/common/rte_random.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/rte_random.c b/lib/librte_eal/common/rte_random.c
index ce21c2242a..ac5876dd1f 100644
--- a/lib/librte_eal/common/rte_random.c
+++ b/lib/librte_eal/common/rte_random.c
@@ -82,7 +82,7 @@ rte_srand(uint64_t seed)
 	unsigned int lcore_id;
 
 	/* add lcore_id to seed to avoid having the same sequence */
-	for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++)
+	for (lcore_id = 0; lcore_id < RTE_DIM(rand_states); lcore_id++)
 		__rte_srand_lfsr258(seed + lcore_id, &rand_states[lcore_id]);
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:56.701114210 +0100
+++ 0009-random-initialize-state-for-unregistered-non-EAL-thr.patch	2023-10-19 00:28:56.201804098 +0100
@@ -1 +1 @@
-From 3a4e21301c7a8bf709ff9e74d05628f87450a11e Mon Sep 17 00:00:00 2001
+From 681827b2e3220fa97568958da137dd7847215fbb Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 3a4e21301c7a8bf709ff9e74d05628f87450a11e ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
- lib/eal/common/rte_random.c | 2 +-
+ lib/librte_eal/common/rte_random.c | 2 +-
@@ -25,5 +26,5 @@
-diff --git a/lib/eal/common/rte_random.c b/lib/eal/common/rte_random.c
-index 53636331a2..812e5b4757 100644
---- a/lib/eal/common/rte_random.c
-+++ b/lib/eal/common/rte_random.c
-@@ -84,7 +84,7 @@ rte_srand(uint64_t seed)
+diff --git a/lib/librte_eal/common/rte_random.c b/lib/librte_eal/common/rte_random.c
+index ce21c2242a..ac5876dd1f 100644
+--- a/lib/librte_eal/common/rte_random.c
++++ b/lib/librte_eal/common/rte_random.c
+@@ -82,7 +82,7 @@ rte_srand(uint64_t seed)

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

* patch 'bus/dpaa: fix build with asserts for GCC 13' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (7 preceding siblings ...)
  2023-10-18 23:58 ` patch 'random: initialize state for unregistered non-EAL threads' " luca.boccassi
@ 2023-10-18 23:58 ` luca.boccassi
  2023-10-18 23:59 ` patch 'hash: align SSE lookup to scalar implementation' " luca.boccassi
                   ` (30 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:58 UTC (permalink / raw)
  To: Gagandeep Singh; +Cc: Hemant Agrawal, Jerin Jacob, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/23419b75a0a6798aa054c8b675a50a6a5d2e06a2

Thanks.

Luca Boccassi

---
From 23419b75a0a6798aa054c8b675a50a6a5d2e06a2 Mon Sep 17 00:00:00 2001
From: Gagandeep Singh <g.singh@nxp.com>
Date: Fri, 21 Jul 2023 10:58:10 +0530
Subject: [PATCH] bus/dpaa: fix build with asserts for GCC 13

[ upstream commit 3bcd5b3198d4a31176b1ac73fc7236a12186fffe ]

when RTE_ENABLE_ASSERT is enable, DPAA driver is doing
wrong NULL check on frame queue which allows the code
to have access to NULL address.
GCC v13 is giving array bounds error if code is
accessing any memory region less than 4KB.
This patch fixes this issue by adding proper NULL checks
on frame queue.

Bugzilla ID: 1233
Fixes: c47ff048b99a ("bus/dpaa: add QMAN driver core routines")

Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
---
 drivers/bus/dpaa/base/qbman/qman.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/bus/dpaa/base/qbman/qman.c b/drivers/bus/dpaa/base/qbman/qman.c
index 447c091770..aa8da96627 100644
--- a/drivers/bus/dpaa/base/qbman/qman.c
+++ b/drivers/bus/dpaa/base/qbman/qman.c
@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
  *
  * Copyright 2008-2016 Freescale Semiconductor Inc.
- * Copyright 2017,2019 NXP
+ * Copyright 2017,2019-2023 NXP
  *
  */
 
@@ -897,7 +897,7 @@ mr_loop:
 				/* Lookup in the retirement table */
 				fq = table_find_fq(p,
 						   be32_to_cpu(msg->fq.fqid));
-				DPAA_BUG_ON(!fq);
+				DPAA_BUG_ON(fq != NULL);
 				fq_state_change(p, fq, &swapped_msg, verb);
 				if (fq->cb.fqs)
 					fq->cb.fqs(p, fq, &swapped_msg);
@@ -909,6 +909,7 @@ mr_loop:
 #else
 				fq = (void *)(uintptr_t)msg->fq.contextB;
 #endif
+				DPAA_BUG_ON(fq != NULL);
 				fq_state_change(p, fq, msg, verb);
 				if (fq->cb.fqs)
 					fq->cb.fqs(p, fq, &swapped_msg);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:56.745322779 +0100
+++ 0010-bus-dpaa-fix-build-with-asserts-for-GCC-13.patch	2023-10-19 00:28:56.205804204 +0100
@@ -1 +1 @@
-From 3bcd5b3198d4a31176b1ac73fc7236a12186fffe Mon Sep 17 00:00:00 2001
+From 23419b75a0a6798aa054c8b675a50a6a5d2e06a2 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3bcd5b3198d4a31176b1ac73fc7236a12186fffe ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -26 +27 @@
-index 3949bf8712..83db0a534e 100644
+index 447c091770..aa8da96627 100644

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

* patch 'hash: align SSE lookup to scalar implementation' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (8 preceding siblings ...)
  2023-10-18 23:58 ` patch 'bus/dpaa: fix build with asserts for GCC 13' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'net/netvsc: increase VSP response timeout to 60 seconds' " luca.boccassi
                   ` (29 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Jieqiang Wang; +Cc: Feifei Wang, Ruifeng Wang, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/733bc367addec56156086b338e17d9c0f21145ea

Thanks.

Luca Boccassi

---
From 733bc367addec56156086b338e17d9c0f21145ea Mon Sep 17 00:00:00 2001
From: Jieqiang Wang <jieqiang.wang@arm.com>
Date: Sat, 7 Oct 2023 15:36:34 +0800
Subject: [PATCH] hash: align SSE lookup to scalar implementation

[ upstream commit e93bbaa72cca7ec912d756afdf10e393f9d71791 ]

__mm_cmpeq_epi16 returns 0xFFFF if the corresponding 16-bit elements are
equal. In original SSE2 implementation for function compare_signatures,
it utilizes _mm_movemask_epi8 to create mask from the MSB of each 8-bit
element, while we should only care about the MSB of lower 8-bit in each
16-bit element.

For example, if the comparison result is all equal, SSE2 path returns
0xFFFF while NEON and default scalar path return 0x5555.
Although this bug is not causing any negative effects since the caller
function solely examines the trailing zeros of each match mask, we
recommend this fix to ensure consistency with NEON and default scalar
code behaviors.

Fixes: c7d93df552c2 ("hash: use partial-key hashing")

Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
Signed-off-by: Jieqiang Wang <jieqiang.wang@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/librte_hash/rte_cuckoo_hash.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/librte_hash/rte_cuckoo_hash.c b/lib/librte_hash/rte_cuckoo_hash.c
index cff4242f79..95c3e6c2f4 100644
--- a/lib/librte_hash/rte_cuckoo_hash.c
+++ b/lib/librte_hash/rte_cuckoo_hash.c
@@ -1866,11 +1866,15 @@ compare_signatures(uint32_t *prim_hash_matches, uint32_t *sec_hash_matches,
 				_mm_load_si128(
 					(__m128i const *)prim_bkt->sig_current),
 				_mm_set1_epi16(sig)));
+		/* Extract the even-index bits only */
+		*prim_hash_matches &= 0x5555;
 		/* Compare all signatures in the bucket */
 		*sec_hash_matches = _mm_movemask_epi8(_mm_cmpeq_epi16(
 				_mm_load_si128(
 					(__m128i const *)sec_bkt->sig_current),
 				_mm_set1_epi16(sig)));
+		/* Extract the even-index bits only */
+		*sec_hash_matches &= 0x5555;
 		break;
 #elif defined(__ARM_NEON)
 	case RTE_HASH_COMPARE_NEON: {
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:56.792228058 +0100
+++ 0011-hash-align-SSE-lookup-to-scalar-implementation.patch	2023-10-19 00:28:56.205804204 +0100
@@ -1 +1 @@
-From e93bbaa72cca7ec912d756afdf10e393f9d71791 Mon Sep 17 00:00:00 2001
+From 733bc367addec56156086b338e17d9c0f21145ea Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e93bbaa72cca7ec912d756afdf10e393f9d71791 ]
+
@@ -20 +21,0 @@
-Cc: stable@dpdk.org
@@ -27 +28 @@
- lib/hash/rte_cuckoo_hash.c | 4 ++++
+ lib/librte_hash/rte_cuckoo_hash.c | 4 ++++
@@ -30,5 +31,5 @@
-diff --git a/lib/hash/rte_cuckoo_hash.c b/lib/hash/rte_cuckoo_hash.c
-index d92a903bb3..19b23f2a97 100644
---- a/lib/hash/rte_cuckoo_hash.c
-+++ b/lib/hash/rte_cuckoo_hash.c
-@@ -1868,11 +1868,15 @@ compare_signatures(uint32_t *prim_hash_matches, uint32_t *sec_hash_matches,
+diff --git a/lib/librte_hash/rte_cuckoo_hash.c b/lib/librte_hash/rte_cuckoo_hash.c
+index cff4242f79..95c3e6c2f4 100644
+--- a/lib/librte_hash/rte_cuckoo_hash.c
++++ b/lib/librte_hash/rte_cuckoo_hash.c
+@@ -1866,11 +1866,15 @@ compare_signatures(uint32_t *prim_hash_matches, uint32_t *sec_hash_matches,

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

* patch 'net/netvsc: increase VSP response timeout to 60 seconds' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (9 preceding siblings ...)
  2023-10-18 23:59 ` patch 'hash: align SSE lookup to scalar implementation' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'net/txgbe: add Tx queue maximum limit' " luca.boccassi
                   ` (28 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Long Li; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From fec23fdc99257c60b1c58776b55bae97e60b2c57 Mon Sep 17 00:00:00 2001
From: Long Li <longli@microsoft.com>
Date: Wed, 26 Jul 2023 15:29:10 -0700
Subject: [PATCH] net/netvsc: increase VSP response timeout to 60 seconds

[ upstream commit d56475174855b1454cf004025b54d68e4a47f465 ]

The current timeout is set to 5 seconds. In Azure, tests show that it
may take up to 15 seconds for VSP to respond on busy nodes. The VSP
schedules unbounded work to process VSC request, there is no upper limit
on how long it takes to send response back to VSC.

In the NETVSC kernel mode driver, it waits forever for VSP response.
While in DPDK we can't wait forever, setting the timeout to 60 seconds.

Signed-off-by: Long Li <longli@microsoft.com>
---
 drivers/net/netvsc/hn_rndis.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/netvsc/hn_rndis.c b/drivers/net/netvsc/hn_rndis.c
index 26ae7d544b..035d92d990 100644
--- a/drivers/net/netvsc/hn_rndis.c
+++ b/drivers/net/netvsc/hn_rndis.c
@@ -35,7 +35,7 @@
 #include "hn_rndis.h"
 #include "ndis.h"
 
-#define RNDIS_TIMEOUT_SEC 5
+#define RNDIS_TIMEOUT_SEC 60
 #define RNDIS_DELAY_MS    10
 
 #define HN_RNDIS_XFER_SIZE		0x4000
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:56.838630374 +0100
+++ 0012-net-netvsc-increase-VSP-response-timeout-to-60-secon.patch	2023-10-19 00:28:56.205804204 +0100
@@ -1 +1 @@
-From d56475174855b1454cf004025b54d68e4a47f465 Mon Sep 17 00:00:00 2001
+From fec23fdc99257c60b1c58776b55bae97e60b2c57 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d56475174855b1454cf004025b54d68e4a47f465 ]
+
@@ -14,2 +15,0 @@
-Cc: stable@dpdk.org
-
@@ -22 +22 @@
-index 29c6009b2c..fe36274df8 100644
+index 26ae7d544b..035d92d990 100644

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

* patch 'net/txgbe: add Tx queue maximum limit' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (10 preceding siblings ...)
  2023-10-18 23:59 ` patch 'net/netvsc: increase VSP response timeout to 60 seconds' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'net/txgbe: reconfigure MAC Rx when link update' " luca.boccassi
                   ` (27 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From f3d6cc7ae53f44424751aa37d55c1dd1534b91ec Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Thu, 28 Sep 2023 17:47:48 +0800
Subject: [PATCH] net/txgbe: add Tx queue maximum limit

[ upstream commit afcba8586daa5abc3868180e96601babfef3cfc1 ]

Limit TX queue maximum to 64 when neither VT nor DCB are enabled,
since hardware doesn't support it.

Fixes: 75cbb1f0e8a6 ("net/txgbe: add device configuration")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/txgbe_ethdev.c | 13 +++++++++++++
 drivers/net/txgbe/txgbe_ethdev.h |  1 +
 2 files changed, 14 insertions(+)

diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c
index 96d90d657d..c7df5a9718 100644
--- a/drivers/net/txgbe/txgbe_ethdev.c
+++ b/drivers/net/txgbe/txgbe_ethdev.c
@@ -1277,6 +1277,19 @@ txgbe_check_mq_mode(struct rte_eth_dev *dev)
 				return -EINVAL;
 			}
 		}
+
+		/*
+		 * When DCB/VT is off, maximum number of queues changes
+		 */
+		if (dev_conf->txmode.mq_mode == ETH_MQ_TX_NONE) {
+			if (nb_tx_q > TXGBE_NONE_MODE_TX_NB_QUEUES) {
+				PMD_INIT_LOG(ERR,
+					     "Neither VT nor DCB are enabled, "
+					     "nb_tx_q > %d.",
+					     TXGBE_NONE_MODE_TX_NB_QUEUES);
+				return -EINVAL;
+			}
+		}
 	}
 	return 0;
 }
diff --git a/drivers/net/txgbe/txgbe_ethdev.h b/drivers/net/txgbe/txgbe_ethdev.h
index 696dd5a7e4..1106a0d91b 100644
--- a/drivers/net/txgbe/txgbe_ethdev.h
+++ b/drivers/net/txgbe/txgbe_ethdev.h
@@ -28,6 +28,7 @@
 /*Default value of Max Rx Queue*/
 #define TXGBE_MAX_RX_QUEUE_NUM	128
 #define TXGBE_VMDQ_DCB_NB_QUEUES     TXGBE_MAX_RX_QUEUE_NUM
+#define TXGBE_NONE_MODE_TX_NB_QUEUES 64
 
 #ifndef NBBY
 #define NBBY	8	/* number of bits in a byte */
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:56.884910092 +0100
+++ 0013-net-txgbe-add-Tx-queue-maximum-limit.patch	2023-10-19 00:28:56.213804415 +0100
@@ -1 +1 @@
-From afcba8586daa5abc3868180e96601babfef3cfc1 Mon Sep 17 00:00:00 2001
+From f3d6cc7ae53f44424751aa37d55c1dd1534b91ec Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit afcba8586daa5abc3868180e96601babfef3cfc1 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 15911a3621..479cd810f8 100644
+index 96d90d657d..c7df5a9718 100644
@@ -22 +23 @@
-@@ -1499,6 +1499,19 @@ txgbe_check_mq_mode(struct rte_eth_dev *dev)
+@@ -1277,6 +1277,19 @@ txgbe_check_mq_mode(struct rte_eth_dev *dev)
@@ -30 +31 @@
-+		if (dev_conf->txmode.mq_mode == RTE_ETH_MQ_TX_NONE) {
++		if (dev_conf->txmode.mq_mode == ETH_MQ_TX_NONE) {
@@ -43 +44 @@
-index 6b296d6fd1..7feb45d0cf 100644
+index 696dd5a7e4..1106a0d91b 100644
@@ -46 +47 @@
-@@ -41,6 +41,7 @@
+@@ -28,6 +28,7 @@

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

* patch 'net/txgbe: reconfigure MAC Rx when link update' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (11 preceding siblings ...)
  2023-10-18 23:59 ` patch 'net/txgbe: add Tx queue maximum limit' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'net/txgbe: keep link down after device close' " luca.boccassi
                   ` (26 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From cc0f2200f0d8ae5175dc8185245493d24bb1c667 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Thu, 28 Sep 2023 17:47:52 +0800
Subject: [PATCH] net/txgbe: reconfigure MAC Rx when link update

[ upstream commit 950a6954df134f8bff41fc7ad541a9c9730a4201 ]

Fix the bug that after setting flow control parameters, link status
change (for example, hot-plug SFP module) causes the port to no longer
receive packets.

Fixes: 0c061eadec59 ("net/txgbe: add link status change")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/txgbe_ethdev.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c
index c7df5a9718..b4d023aefc 100644
--- a/drivers/net/txgbe/txgbe_ethdev.c
+++ b/drivers/net/txgbe/txgbe_ethdev.c
@@ -2540,6 +2540,11 @@ txgbe_dev_link_update_share(struct rte_eth_dev *dev,
 		break;
 	}
 
+	/* Re configure MAC RX */
+	if (hw->mac.type == txgbe_mac_raptor)
+		wr32m(hw, TXGBE_MACRXFLT, TXGBE_MACRXFLT_PROMISC,
+			TXGBE_MACRXFLT_PROMISC);
+
 	return rte_eth_linkstatus_set(dev, &link);
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:56.937952287 +0100
+++ 0014-net-txgbe-reconfigure-MAC-Rx-when-link-update.patch	2023-10-19 00:28:56.217804521 +0100
@@ -1 +1 @@
-From 950a6954df134f8bff41fc7ad541a9c9730a4201 Mon Sep 17 00:00:00 2001
+From cc0f2200f0d8ae5175dc8185245493d24bb1c667 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 950a6954df134f8bff41fc7ad541a9c9730a4201 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 479cd810f8..e789e34c01 100644
+index c7df5a9718..b4d023aefc 100644
@@ -22 +23 @@
-@@ -2957,6 +2957,11 @@ txgbe_dev_link_update_share(struct rte_eth_dev *dev,
+@@ -2540,6 +2540,11 @@ txgbe_dev_link_update_share(struct rte_eth_dev *dev,

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

* patch 'net/txgbe: keep link down after device close' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (12 preceding siblings ...)
  2023-10-18 23:59 ` patch 'net/txgbe: reconfigure MAC Rx when link update' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'net/txgbe: check process type in close operation' " luca.boccassi
                   ` (25 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From e63070e90eea6d00e57b4174767da9fe77b586a8 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Thu, 28 Sep 2023 17:47:54 +0800
Subject: [PATCH] net/txgbe: keep link down after device close

[ upstream commit 409a08c34fd20a25dd209438f52cb38ace081b19 ]

When the port is closed, hardware is reset to power on. And
txgbe_dev_stop() is just returned 0 to avoid secondary calls,
so that the link led remains on. Fix this bug by adding to turn
off the copper/laser.

Fixes: e0d876ef6bbc ("net/txgbe: support device stop and close")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/txgbe_ethdev.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c
index b4d023aefc..c2f2f5c323 100644
--- a/drivers/net/txgbe/txgbe_ethdev.c
+++ b/drivers/net/txgbe/txgbe_ethdev.c
@@ -1668,7 +1668,7 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
 	int vf;
 
 	if (hw->adapter_stopped)
-		return 0;
+		goto out;
 
 	PMD_INIT_FUNC_TRACE();
 
@@ -1687,14 +1687,6 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
 	for (vf = 0; vfinfo != NULL && vf < pci_dev->max_vfs; vf++)
 		vfinfo[vf].clear_to_send = false;
 
-	if (hw->phy.media_type == txgbe_media_type_copper) {
-		/* Turn off the copper */
-		hw->phy.set_phy_power(hw, false);
-	} else {
-		/* Turn off the laser */
-		hw->mac.disable_tx_laser(hw);
-	}
-
 	txgbe_dev_clear_queues(dev);
 
 	/* Clear stored conf */
@@ -1724,6 +1716,16 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
 	hw->adapter_stopped = true;
 	dev->data->dev_started = 0;
 
+out:
+	/* close phy to prevent reset in dev_close from restarting physical link */
+	if (hw->phy.media_type == txgbe_media_type_copper) {
+		/* Turn off the copper */
+		hw->phy.set_phy_power(hw, false);
+	} else {
+		/* Turn off the laser */
+		hw->mac.disable_tx_laser(hw);
+	}
+
 	return 0;
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:56.989252585 +0100
+++ 0015-net-txgbe-keep-link-down-after-device-close.patch	2023-10-19 00:28:56.221804627 +0100
@@ -1 +1 @@
-From 409a08c34fd20a25dd209438f52cb38ace081b19 Mon Sep 17 00:00:00 2001
+From e63070e90eea6d00e57b4174767da9fe77b586a8 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 409a08c34fd20a25dd209438f52cb38ace081b19 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index e789e34c01..2dad820cb5 100644
+index b4d023aefc..c2f2f5c323 100644
@@ -23,2 +24,2 @@
-@@ -1929,7 +1929,7 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
- 	struct txgbe_tm_conf *tm_conf = TXGBE_DEV_TM_CONF(dev);
+@@ -1668,7 +1668,7 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
+ 	int vf;
@@ -32 +33 @@
-@@ -1953,14 +1953,6 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
+@@ -1687,14 +1687,6 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
@@ -47 +48,2 @@
-@@ -1991,6 +1983,16 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
+@@ -1724,6 +1716,16 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
+ 	hw->adapter_stopped = true;
@@ -49 +50,0 @@
- 	hw->dev_start = false;

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

* patch 'net/txgbe: check process type in close operation' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (13 preceding siblings ...)
  2023-10-18 23:59 ` patch 'net/txgbe: keep link down after device close' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'net/tap: use MAC address parse API instead of local parser' " luca.boccassi
                   ` (24 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/9a7af96513d007af9b22516ef0112622e695d27e

Thanks.

Luca Boccassi

---
From 9a7af96513d007af9b22516ef0112622e695d27e Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Thu, 28 Sep 2023 17:47:56 +0800
Subject: [PATCH] net/txgbe: check process type in close operation

[ upstream commit 21ed282505ed8f60f03a93a27ac01f4152b8ab40 ]

The secondary processes are not allowed to release shared resources.
Only process-private resources should be freed in a secondary process.
Most of the time, there is no process-private resource,
so the close operation is just forbidden in a secondary process.

Fixes: e1698e383c2a ("net/txgbe: add device init and uninit")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/txgbe_ethdev.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c
index c2f2f5c323..29875bd7b9 100644
--- a/drivers/net/txgbe/txgbe_ethdev.c
+++ b/drivers/net/txgbe/txgbe_ethdev.c
@@ -1783,6 +1783,9 @@ txgbe_dev_close(struct rte_eth_dev *dev)
 
 	PMD_INIT_FUNC_TRACE();
 
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return 0;
+
 	txgbe_pf_reset_hw(hw);
 
 	ret = txgbe_dev_stop(dev);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.040434397 +0100
+++ 0016-net-txgbe-check-process-type-in-close-operation.patch	2023-10-19 00:28:56.225804732 +0100
@@ -1 +1 @@
-From 21ed282505ed8f60f03a93a27ac01f4152b8ab40 Mon Sep 17 00:00:00 2001
+From 9a7af96513d007af9b22516ef0112622e695d27e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 21ed282505ed8f60f03a93a27ac01f4152b8ab40 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 2dad820cb5..6bc231a130 100644
+index c2f2f5c323..29875bd7b9 100644
@@ -23 +24 @@
-@@ -2052,6 +2052,9 @@ txgbe_dev_close(struct rte_eth_dev *dev)
+@@ -1783,6 +1783,9 @@ txgbe_dev_close(struct rte_eth_dev *dev)

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

* patch 'net/tap: use MAC address parse API instead of local parser' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (14 preceding siblings ...)
  2023-10-18 23:59 ` patch 'net/txgbe: check process type in close operation' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'app/testpmd: fix help string' " luca.boccassi
                   ` (23 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: David Christensen; +Cc: Stephen Hemminger, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/818515a917313547372a2bfe0be606bfbc9758fd

Thanks.

Luca Boccassi

---
From 818515a917313547372a2bfe0be606bfbc9758fd Mon Sep 17 00:00:00 2001
From: David Christensen <drc@linux.vnet.ibm.com>
Date: Tue, 3 Oct 2023 13:29:09 -0700
Subject: [PATCH] net/tap: use MAC address parse API instead of local parser

[ upstream commit b79d825f32cb0012164b26428272b1ea268f839d ]

Building DPDK with gcc 12 on a ppc64le system generates a
stringop-overflow warning. Replace the local MAC address
validation function parse_user_mac() with a call to
rte_ether_unformat_addr() instead.

Bugzilla ID: 1197

Signed-off-by: David Christensen <drc@linux.vnet.ibm.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/tap/rte_eth_tap.c | 25 +------------------------
 1 file changed, 1 insertion(+), 24 deletions(-)

diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index faa95fab6e..e6dc870594 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -2256,29 +2256,6 @@ set_remote_iface(const char *key __rte_unused,
 	return 0;
 }
 
-static int parse_user_mac(struct rte_ether_addr *user_mac,
-		const char *value)
-{
-	unsigned int index = 0;
-	char mac_temp[strlen(ETH_TAP_USR_MAC_FMT) + 1], *mac_byte = NULL;
-
-	if (user_mac == NULL || value == NULL)
-		return 0;
-
-	strlcpy(mac_temp, value, sizeof(mac_temp));
-	mac_byte = strtok(mac_temp, ":");
-
-	while ((mac_byte != NULL) &&
-			(strlen(mac_byte) <= 2) &&
-			(strlen(mac_byte) == strspn(mac_byte,
-					ETH_TAP_CMP_MAC_FMT))) {
-		user_mac->addr_bytes[index++] = strtoul(mac_byte, NULL, 16);
-		mac_byte = strtok(NULL, ":");
-	}
-
-	return index;
-}
-
 static int
 set_mac_type(const char *key __rte_unused,
 	     const char *value,
@@ -2300,7 +2277,7 @@ set_mac_type(const char *key __rte_unused,
 		goto success;
 	}
 
-	if (parse_user_mac(user_mac, value) != 6)
+	if (rte_ether_unformat_addr(value, user_mac) < 0)
 		goto error;
 success:
 	TAP_LOG(DEBUG, "TAP user MAC param (%s)", value);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.092133478 +0100
+++ 0017-net-tap-use-MAC-address-parse-API-instead-of-local-p.patch	2023-10-19 00:28:56.225804732 +0100
@@ -1 +1 @@
-From b79d825f32cb0012164b26428272b1ea268f839d Mon Sep 17 00:00:00 2001
+From 818515a917313547372a2bfe0be606bfbc9758fd Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit b79d825f32cb0012164b26428272b1ea268f839d ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index bf98f75559..b25a52655f 100644
+index faa95fab6e..e6dc870594 100644
@@ -25 +26 @@
-@@ -2267,29 +2267,6 @@ set_remote_iface(const char *key __rte_unused,
+@@ -2256,29 +2256,6 @@ set_remote_iface(const char *key __rte_unused,
@@ -55 +56 @@
-@@ -2311,7 +2288,7 @@ set_mac_type(const char *key __rte_unused,
+@@ -2300,7 +2277,7 @@ set_mac_type(const char *key __rte_unused,

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

* patch 'app/testpmd: fix help string' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (15 preceding siblings ...)
  2023-10-18 23:59 ` patch 'net/tap: use MAC address parse API instead of local parser' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'cryptodev: add missing doc for security context' " luca.boccassi
                   ` (22 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Chengwen Feng, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From de3a0abc37a14c4e02f9dae5e3268dca98190c70 Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Sun, 8 Oct 2023 14:46:19 +0800
Subject: [PATCH] app/testpmd: fix help string

[ upstream commit 42661fb8f18e52684d0d9f0d376017082fca45e0 ]

Command help string is missing 'mcast_addr add|remove'.
This patch add it.

Fixes: 8fff667578a7 ("app/testpmd: new command to add/remove multicast MAC addresses")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test-pmd/cmdline.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 422db4f6bc..a1371dba0c 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -489,6 +489,12 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"mac_addr add port (port_id) vf (vf_id) (mac_address)\n"
 			"    Add a MAC address for a VF on the port.\n\n"
 
+			"mcast_addr add (port_id) (mcast_addr)\n"
+			"    Add a multicast MAC addresses on port_id.\n\n"
+
+			"mcast_addr remove (port_id) (mcast_addr)\n"
+			"    Remove a multicast MAC address from port_id.\n\n"
+
 			"set vf mac addr (port_id) (vf_id) (XX:XX:XX:XX:XX:XX)\n"
 			"    Set the MAC address for a VF from the PF.\n\n"
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.140339908 +0100
+++ 0018-app-testpmd-fix-help-string.patch	2023-10-19 00:28:56.245805261 +0100
@@ -1 +1 @@
-From 42661fb8f18e52684d0d9f0d376017082fca45e0 Mon Sep 17 00:00:00 2001
+From de3a0abc37a14c4e02f9dae5e3268dca98190c70 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 42661fb8f18e52684d0d9f0d376017082fca45e0 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index a0e97719b3..7f75ae13d6 100644
+index 422db4f6bc..a1371dba0c 100644
@@ -23 +24 @@
-@@ -500,6 +500,12 @@ static void cmd_help_long_parsed(void *parsed_result,
+@@ -489,6 +489,12 @@ static void cmd_help_long_parsed(void *parsed_result,

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

* patch 'cryptodev: add missing doc for security context' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (16 preceding siblings ...)
  2023-10-18 23:59 ` patch 'app/testpmd: fix help string' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'doc: replace code blocks with includes in security guide' " luca.boccassi
                   ` (21 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Anoob Joseph; +Cc: Akhil Goyal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/357819967a542e1ca81469da6b43661701c2c415

Thanks.

Luca Boccassi

---
From 357819967a542e1ca81469da6b43661701c2c415 Mon Sep 17 00:00:00 2001
From: Anoob Joseph <anoobj@marvell.com>
Date: Tue, 12 Sep 2023 16:12:14 +0530
Subject: [PATCH] cryptodev: add missing doc for security context

[ upstream commit 1e71cb205047fd7f151018179279de92b2e92fa2 ]

Description for rte_cryptodev_get_sec_ctx is missing. Add the same.

Fixes: eadb4fa1e1fe ("cryptodev: support security APIs")

Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
---
 lib/librte_cryptodev/rte_cryptodev.h | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/lib/librte_cryptodev/rte_cryptodev.h b/lib/librte_cryptodev/rte_cryptodev.h
index d79996860a..54cf390d1f 100644
--- a/lib/librte_cryptodev/rte_cryptodev.h
+++ b/lib/librte_cryptodev/rte_cryptodev.h
@@ -875,6 +875,15 @@ struct rte_cryptodev {
 	/**< Flag indicating the device is attached */
 } __rte_cache_aligned;
 
+/**
+ * Get the security context for the cryptodev.
+ *
+ * @param dev_id
+ *   The device identifier.
+ * @return
+ *   - NULL on error.
+ *   - Pointer to security context on success.
+ */
 void *
 rte_cryptodev_get_sec_ctx(uint8_t dev_id);
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.201825470 +0100
+++ 0019-cryptodev-add-missing-doc-for-security-context.patch	2023-10-19 00:28:56.245805261 +0100
@@ -1 +1 @@
-From 1e71cb205047fd7f151018179279de92b2e92fa2 Mon Sep 17 00:00:00 2001
+From 357819967a542e1ca81469da6b43661701c2c415 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1e71cb205047fd7f151018179279de92b2e92fa2 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -14 +15 @@
- lib/cryptodev/rte_cryptodev.h | 9 +++++++++
+ lib/librte_cryptodev/rte_cryptodev.h | 9 +++++++++
@@ -17,7 +18,7 @@
-diff --git a/lib/cryptodev/rte_cryptodev.h b/lib/cryptodev/rte_cryptodev.h
-index 9246df90ef..9f07e1ed2c 100644
---- a/lib/cryptodev/rte_cryptodev.h
-+++ b/lib/cryptodev/rte_cryptodev.h
-@@ -971,6 +971,15 @@ struct rte_cryptodev_cb_rcu {
- 	/**< RCU QSBR variable per queue pair */
- };
+diff --git a/lib/librte_cryptodev/rte_cryptodev.h b/lib/librte_cryptodev/rte_cryptodev.h
+index d79996860a..54cf390d1f 100644
+--- a/lib/librte_cryptodev/rte_cryptodev.h
++++ b/lib/librte_cryptodev/rte_cryptodev.h
+@@ -875,6 +875,15 @@ struct rte_cryptodev {
+ 	/**< Flag indicating the device is attached */
+ } __rte_cache_aligned;

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

* patch 'doc: replace code blocks with includes in security guide' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (17 preceding siblings ...)
  2023-10-18 23:59 ` patch 'cryptodev: add missing doc for security context' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'test/crypto: fix IV in some vectors' " luca.boccassi
                   ` (20 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Anoob Joseph; +Cc: Akhil Goyal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/029efa33a077190d28c82d1984f1e58c47586566

Thanks.

Luca Boccassi

---
From 029efa33a077190d28c82d1984f1e58c47586566 Mon Sep 17 00:00:00 2001
From: Anoob Joseph <anoobj@marvell.com>
Date: Fri, 18 Aug 2023 14:59:42 +0530
Subject: [PATCH] doc: replace code blocks with includes in security guide

[ upstream commit 03e3cfda1679998aa512464affb8dd293146364a ]

Add literal includes to copy code block while compiling. Having a copy
may lead to mismatch if code is updated without updating the doc.

Fixes: 40ff8c99ea99 ("doc: add details of security library")

Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
---
 doc/guides/prog_guide/rte_security.rst | 65 +++++---------------------
 lib/librte_security/rte_security.h     |  6 +++
 2 files changed, 18 insertions(+), 53 deletions(-)

diff --git a/doc/guides/prog_guide/rte_security.rst b/doc/guides/prog_guide/rte_security.rst
index f72bc8a78f..2939771b87 100644
--- a/doc/guides/prog_guide/rte_security.rst
+++ b/doc/guides/prog_guide/rte_security.rst
@@ -583,68 +583,27 @@ Security session configuration
 
 Security Session configuration structure is defined as ``rte_security_session_conf``
 
-.. code-block:: c
-
-    struct rte_security_session_conf {
-        enum rte_security_session_action_type action_type;
-        /**< Type of action to be performed on the session */
-        enum rte_security_session_protocol protocol;
-        /**< Security protocol to be configured */
-        union {
-                struct rte_security_ipsec_xform ipsec;
-                struct rte_security_macsec_xform macsec;
-                struct rte_security_pdcp_xform pdcp;
-                struct rte_security_docsis_xform docsis;
-        };
-        /**< Configuration parameters for security session */
-        struct rte_crypto_sym_xform *crypto_xform;
-        /**< Security Session Crypto Transformations */
-        void *userdata;
-        /**< Application specific userdata to be saved with session */
-    };
+.. literalinclude:: ../../../lib/librte_security/rte_security.h
+   :language: c
+   :start-after: Structure rte_security_session_conf 8<
+   :end-before: >8 End of structure rte_security_session_conf.
 
 The configuration structure reuses the ``rte_crypto_sym_xform`` struct for crypto related
 configuration. The ``rte_security_session_action_type`` struct is used to specify whether the
 session is configured for Lookaside Protocol offload or Inline Crypto or Inline Protocol
 Offload.
 
-.. code-block:: c
-
-    enum rte_security_session_action_type {
-        RTE_SECURITY_ACTION_TYPE_NONE,
-        /**< No security actions */
-        RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO,
-        /**< Crypto processing for security protocol is processed inline
-         * during transmission
-         */
-        RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL,
-        /**< All security protocol processing is performed inline during
-         * transmission
-         */
-        RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL,
-        /**< All security protocol processing including crypto is performed
-         * on a lookaside accelerator
-         */
-        RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO
-        /**< Similar to ACTION_TYPE_NONE but crypto processing for security
-         * protocol is processed synchronously by a CPU.
-         */
-    };
+.. literalinclude:: ../../../lib/librte_security/rte_security.h
+   :language: c
+   :start-after: Enumeration of rte_security_session_action_type 8<
+   :end-before: >8 End enumeration of rte_security_session_action_type.
 
 The ``rte_security_session_protocol`` is defined as
 
-.. code-block:: c
-
-    enum rte_security_session_protocol {
-        RTE_SECURITY_PROTOCOL_IPSEC = 1,
-        /**< IPsec Protocol */
-        RTE_SECURITY_PROTOCOL_MACSEC,
-        /**< MACSec Protocol */
-        RTE_SECURITY_PROTOCOL_PDCP,
-        /**< PDCP Protocol */
-        RTE_SECURITY_PROTOCOL_DOCSIS,
-        /**< DOCSIS Protocol */
-    };
+.. literalinclude:: ../../../lib/librte_security/rte_security.h
+   :language: c
+   :start-after: Enumeration of rte_security_session_protocol 8<
+   :end-before: >8 End enumeration of rte_security_session_protocol.
 
 Currently the library defines configuration parameters for IPsec and PDCP only.
 For other protocols like MACSec, structures and enums are defined as place holders
diff --git a/lib/librte_security/rte_security.h b/lib/librte_security/rte_security.h
index 88d31de0a6..42895411c3 100644
--- a/lib/librte_security/rte_security.h
+++ b/lib/librte_security/rte_security.h
@@ -327,6 +327,7 @@ struct rte_security_docsis_xform {
 /**
  * Security session action type.
  */
+/* Enumeration of rte_security_session_action_type 8<*/
 enum rte_security_session_action_type {
 	RTE_SECURITY_ACTION_TYPE_NONE,
 	/**< No security actions */
@@ -347,8 +348,10 @@ enum rte_security_session_action_type {
 	 * protocol is processed synchronously by a CPU.
 	 */
 };
+/* >8 End enumeration of rte_security_session_action_type. */
 
 /** Security session protocol definition */
+/* Enumeration of rte_security_session_protocol 8<*/
 enum rte_security_session_protocol {
 	RTE_SECURITY_PROTOCOL_IPSEC = 1,
 	/**< IPsec Protocol */
@@ -359,10 +362,12 @@ enum rte_security_session_protocol {
 	RTE_SECURITY_PROTOCOL_DOCSIS,
 	/**< DOCSIS Protocol */
 };
+/* >8 End enumeration of rte_security_session_protocol. */
 
 /**
  * Security session configuration
  */
+/* Structure rte_security_session_conf 8< */
 struct rte_security_session_conf {
 	enum rte_security_session_action_type action_type;
 	/**< Type of action to be performed on the session */
@@ -381,6 +386,7 @@ struct rte_security_session_conf {
 	void *userdata;
 	/**< Application specific userdata to be saved with session */
 };
+/* >8 End of structure rte_security_session_conf. */
 
 struct rte_security_session {
 	void *sess_private_data;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.249466041 +0100
+++ 0020-doc-replace-code-blocks-with-includes-in-security-gu.patch	2023-10-19 00:28:56.249805367 +0100
@@ -1 +1 @@
-From 03e3cfda1679998aa512464affb8dd293146364a Mon Sep 17 00:00:00 2001
+From 029efa33a077190d28c82d1984f1e58c47586566 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 03e3cfda1679998aa512464affb8dd293146364a ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
- lib/security/rte_security.h            |  6 +++
+ lib/librte_security/rte_security.h     |  6 +++
@@ -20 +21 @@
-index 7418e35c1b..ae8b0aaef3 100644
+index f72bc8a78f..2939771b87 100644
@@ -23 +24 @@
-@@ -671,68 +671,27 @@ Security session configuration
+@@ -583,68 +583,27 @@ Security session configuration
@@ -46 +47 @@
-+.. literalinclude:: ../../../lib/security/rte_security.h
++.. literalinclude:: ../../../lib/librte_security/rte_security.h
@@ -78 +79 @@
-+.. literalinclude:: ../../../lib/security/rte_security.h
++.. literalinclude:: ../../../lib/librte_security/rte_security.h
@@ -97 +98 @@
-+.. literalinclude:: ../../../lib/security/rte_security.h
++.. literalinclude:: ../../../lib/librte_security/rte_security.h
@@ -104,5 +105,5 @@
-diff --git a/lib/security/rte_security.h b/lib/security/rte_security.h
-index 3f8abfef15..c6550f4d8d 100644
---- a/lib/security/rte_security.h
-+++ b/lib/security/rte_security.h
-@@ -622,6 +622,7 @@ struct rte_security_docsis_xform {
+diff --git a/lib/librte_security/rte_security.h b/lib/librte_security/rte_security.h
+index 88d31de0a6..42895411c3 100644
+--- a/lib/librte_security/rte_security.h
++++ b/lib/librte_security/rte_security.h
+@@ -327,6 +327,7 @@ struct rte_security_docsis_xform {
@@ -116 +117 @@
-@@ -642,8 +643,10 @@ enum rte_security_session_action_type {
+@@ -347,8 +348,10 @@ enum rte_security_session_action_type {
@@ -127 +128 @@
-@@ -654,10 +657,12 @@ enum rte_security_session_protocol {
+@@ -359,10 +362,12 @@ enum rte_security_session_protocol {
@@ -140 +141 @@
-@@ -675,6 +680,7 @@ struct rte_security_session_conf {
+@@ -381,6 +386,7 @@ struct rte_security_session_conf {
@@ -146,2 +147,2 @@
- /**
-  * Create security session as specified by the session configuration
+ struct rte_security_session {
+ 	void *sess_private_data;

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

* patch 'test/crypto: fix IV in some vectors' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (18 preceding siblings ...)
  2023-10-18 23:59 ` patch 'doc: replace code blocks with includes in security guide' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'test/crypto: skip some synchronous tests with CPU crypto' " luca.boccassi
                   ` (19 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Brian Dooley; +Cc: Ciara Power, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/61142ae2218a976ea49fd319469811d6a23c00b9

Thanks.

Luca Boccassi

---
From 61142ae2218a976ea49fd319469811d6a23c00b9 Mon Sep 17 00:00:00 2001
From: Brian Dooley <brian.dooley@intel.com>
Date: Tue, 19 Sep 2023 10:42:16 +0000
Subject: [PATCH] test/crypto: fix IV in some vectors

[ upstream commit af7be52316e8a94f4fba75e644fc1c0fb9531424 ]

SNOW3G and ZUC algorithms require non-zero length IVs.

Fixes: c6c267a00a92 ("test/crypto: add mixed encypted-digest")

Signed-off-by: Brian Dooley <brian.dooley@intel.com>
Acked-by: Ciara Power <ciara.power@intel.com>
---
 app/test/test_cryptodev_mixed_test_vectors.h | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/app/test/test_cryptodev_mixed_test_vectors.h b/app/test/test_cryptodev_mixed_test_vectors.h
index f50dcb0457..db58dbdd72 100644
--- a/app/test/test_cryptodev_mixed_test_vectors.h
+++ b/app/test/test_cryptodev_mixed_test_vectors.h
@@ -284,8 +284,10 @@ struct mixed_cipher_auth_test_data auth_aes_cmac_cipher_snow_test_case_1 = {
 	},
 	.cipher_iv = {
 		.data = {
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 		},
-		.len = 0,
+		.len = 16,
 	},
 	.cipher = {
 		.len_bits = 516 << 3,
@@ -723,8 +725,10 @@ struct mixed_cipher_auth_test_data auth_aes_cmac_cipher_zuc_test_case_1 = {
 	},
 	.cipher_iv = {
 		.data = {
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 		},
-		.len = 0,
+		.len = 16,
 	},
 	.cipher = {
 		.len_bits = 516 << 3,
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.299942691 +0100
+++ 0021-test-crypto-fix-IV-in-some-vectors.patch	2023-10-19 00:28:56.249805367 +0100
@@ -1 +1 @@
-From af7be52316e8a94f4fba75e644fc1c0fb9531424 Mon Sep 17 00:00:00 2001
+From 61142ae2218a976ea49fd319469811d6a23c00b9 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit af7be52316e8a94f4fba75e644fc1c0fb9531424 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index 161e2d905f..9c4313185e 100644
+index f50dcb0457..db58dbdd72 100644
@@ -21 +22 @@
-@@ -478,8 +478,10 @@ struct mixed_cipher_auth_test_data auth_aes_cmac_cipher_snow_test_case_1 = {
+@@ -284,8 +284,10 @@ struct mixed_cipher_auth_test_data auth_aes_cmac_cipher_snow_test_case_1 = {
@@ -33 +34 @@
-@@ -917,8 +919,10 @@ struct mixed_cipher_auth_test_data auth_aes_cmac_cipher_zuc_test_case_1 = {
+@@ -723,8 +725,10 @@ struct mixed_cipher_auth_test_data auth_aes_cmac_cipher_zuc_test_case_1 = {

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

* patch 'test/crypto: skip some synchronous tests with CPU crypto' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (19 preceding siblings ...)
  2023-10-18 23:59 ` patch 'test/crypto: fix IV in some vectors' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-19 10:22   ` Power, Ciara
  2023-10-19 10:28   ` Power, Ciara
  2023-10-18 23:59 ` patch 'test/crypto: fix typo in asym tests' " luca.boccassi
                   ` (18 subsequent siblings)
  39 siblings, 2 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Brian Dooley; +Cc: Ciara Power, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From d513b356f406691db94c8e141dd3c594c991d0b6 Mon Sep 17 00:00:00 2001
From: Brian Dooley <brian.dooley@intel.com>
Date: Tue, 19 Sep 2023 10:42:17 +0000
Subject: [PATCH] test/crypto: skip some synchronous tests with CPU crypto

[ upstream commit 38318ce05459391344acb53a73c9a99537a0bd0f ]

Some synchronous tests are not supported for CPU crypto and
need to be skipped. This commit adds in extra skips for these tests.

Fixes: 55ab4a8c4fb5 ("test/crypto: disable wireless cases for CPU crypto API")

Signed-off-by: Brian Dooley <brian.dooley@intel.com>
Acked-by: Ciara Power <ciara.power@intel.com>
---
 app/test/test_cryptodev.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index 2e76763e09..694ba45e85 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -3673,6 +3673,9 @@ test_kasumi_decryption(const struct kasumi_test_data *tdata)
 	unsigned ciphertext_len;
 	struct rte_cryptodev_info dev_info;
 
+	if (gbl_action_type == RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO)
+		return TEST_SKIPPED;
+
 	rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info);
 	uint64_t feat_flags = dev_info.feature_flags;
 
@@ -4997,6 +5000,9 @@ test_kasumi_auth_cipher(const struct kasumi_test_data *tdata,
 			&cap_idx) == NULL)
 		return -ENOTSUP;
 
+	if (gbl_action_type == RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO)
+		return TEST_SKIPPED;
+
 	rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info);
 
 	uint64_t feat_flags = dev_info.feature_flags;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.347017140 +0100
+++ 0022-test-crypto-skip-some-synchronous-tests-with-CPU-cry.patch	2023-10-19 00:28:56.261805684 +0100
@@ -1 +1 @@
-From 38318ce05459391344acb53a73c9a99537a0bd0f Mon Sep 17 00:00:00 2001
+From d513b356f406691db94c8e141dd3c594c991d0b6 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 38318ce05459391344acb53a73c9a99537a0bd0f ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 8fc90342de..aff1c8e55b 100644
+index 2e76763e09..694ba45e85 100644
@@ -22,3 +23,3 @@
-@@ -6394,6 +6394,9 @@ test_zuc_auth_cipher(const struct wireless_test_data *tdata,
- 			tdata->digest.len) < 0)
- 		return TEST_SKIPPED;
+@@ -3673,6 +3673,9 @@ test_kasumi_decryption(const struct kasumi_test_data *tdata)
+ 	unsigned ciphertext_len;
+ 	struct rte_cryptodev_info dev_info;
@@ -30 +30,0 @@
- 
@@ -32,3 +32,4 @@
-@@ -7829,6 +7832,9 @@ test_mixed_auth_cipher(const struct mixed_cipher_auth_test_data *tdata,
- 	if (global_api_test_type == CRYPTODEV_RAW_API_TEST)
- 		return TEST_SKIPPED;
+ 
+@@ -4997,6 +5000,9 @@ test_kasumi_auth_cipher(const struct kasumi_test_data *tdata,
+ 			&cap_idx) == NULL)
+ 		return -ENOTSUP;

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

* patch 'test/crypto: fix typo in asym tests' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (20 preceding siblings ...)
  2023-10-18 23:59 ` patch 'test/crypto: skip some synchronous tests with CPU crypto' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'bus/pci: fix device ID log' " luca.boccassi
                   ` (17 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Sivaramakrishnan Venkat; +Cc: Ciara Power, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From 5e4d1d596408d3c1e440746c1645e0b1769986c1 Mon Sep 17 00:00:00 2001
From: Sivaramakrishnan Venkat <venkatx.sivaramakrishnan@intel.com>
Date: Fri, 18 Aug 2023 09:52:47 +0000
Subject: [PATCH] test/crypto: fix typo in asym tests

[ upstream commit ea7b0e1a17717872a1d7d74b075a77fdb9414fa4 ]

test_dh_keygenration() changed to test_dh_key_generation()

Fixes: fc6c9066e40d ("test/crypto: add DH and DSA tests")
Fixes: da74df7d38c0 ("test/crypto: move test suite parameters to header file")

Signed-off-by: Sivaramakrishnan Venkat <venkatx.sivaramakrishnan@intel.com>
Acked-by: Ciara Power <ciara.power@intel.com>
---
 app/test/test_cryptodev_asym.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c
index dce9775d23..1956e162fb 100644
--- a/app/test/test_cryptodev_asym.c
+++ b/app/test/test_cryptodev_asym.c
@@ -1718,7 +1718,7 @@ error_exit:
 }
 
 static int
-test_dh_keygenration(void)
+test_dh_key_generation(void)
 {
 	int status;
 
@@ -2291,7 +2291,7 @@ static struct unit_test_suite cryptodev_openssl_asym_testsuite  = {
 	.unit_test_cases = {
 		TEST_CASE_ST(ut_setup, ut_teardown, test_capability),
 		TEST_CASE_ST(ut_setup, ut_teardown, test_dsa),
-		TEST_CASE_ST(ut_setup, ut_teardown, test_dh_keygenration),
+		TEST_CASE_ST(ut_setup, ut_teardown, test_dh_key_generation),
 		TEST_CASE_ST(ut_setup, ut_teardown, test_rsa_enc_dec),
 		TEST_CASE_ST(ut_setup, ut_teardown, test_rsa_sign_verify),
 		TEST_CASE_ST(ut_setup, ut_teardown, test_rsa_enc_dec_crt),
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.409634895 +0100
+++ 0023-test-crypto-fix-typo-in-asym-tests.patch	2023-10-19 00:28:56.261805684 +0100
@@ -1 +1 @@
-From ea7b0e1a17717872a1d7d74b075a77fdb9414fa4 Mon Sep 17 00:00:00 2001
+From 5e4d1d596408d3c1e440746c1645e0b1769986c1 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ea7b0e1a17717872a1d7d74b075a77fdb9414fa4 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -15 +15,0 @@
- .mailmap                       | 1 +
@@ -17 +17 @@
- 2 files changed, 3 insertions(+), 2 deletions(-)
+ 1 file changed, 2 insertions(+), 2 deletions(-)
@@ -19,12 +18,0 @@
-diff --git a/.mailmap b/.mailmap
-index aa3a55cd99..4765aa26b6 100644
---- a/.mailmap
-+++ b/.mailmap
-@@ -1300,6 +1300,7 @@ Sinan Kaya <okaya@kernel.org>
- Siobhan Butler <siobhan.a.butler@intel.com>
- Sirshak Das <sirshak.das@arm.com>
- Sivaprasad Tummala <sivaprasad.tummala@amd.com> <sivaprasad.tummala@intel.com>
-+Sivaramakrishnan Venkat <venkatx.sivaramakrishnan@intel.com>
- Siwar Zitouni <siwar.zitouni@6wind.com>
- Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
- Slawomir Rosek <slawomir.rosek@semihalf.com>
@@ -32 +20 @@
-index 9820b80f7e..39de0bdac5 100644
+index dce9775d23..1956e162fb 100644
@@ -35 +23 @@
-@@ -1211,7 +1211,7 @@ error_exit:
+@@ -1718,7 +1718,7 @@ error_exit:
@@ -44,9 +32,9 @@
-@@ -2684,7 +2684,7 @@ static struct unit_test_suite cryptodev_openssl_asym_testsuite  = {
- 		TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_capability),
- 		TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_dsa),
- 		TEST_CASE_ST(ut_setup_asym, ut_teardown_asym,
--				test_dh_keygenration),
-+				test_dh_key_generation),
- 		TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_sm2_sign_rnd_secret),
- 		TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_sm2_verify),
- 		TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_sm2_enc_rnd_secret),
+@@ -2291,7 +2291,7 @@ static struct unit_test_suite cryptodev_openssl_asym_testsuite  = {
+ 	.unit_test_cases = {
+ 		TEST_CASE_ST(ut_setup, ut_teardown, test_capability),
+ 		TEST_CASE_ST(ut_setup, ut_teardown, test_dsa),
+-		TEST_CASE_ST(ut_setup, ut_teardown, test_dh_keygenration),
++		TEST_CASE_ST(ut_setup, ut_teardown, test_dh_key_generation),
+ 		TEST_CASE_ST(ut_setup, ut_teardown, test_rsa_enc_dec),
+ 		TEST_CASE_ST(ut_setup, ut_teardown, test_rsa_sign_verify),
+ 		TEST_CASE_ST(ut_setup, ut_teardown, test_rsa_enc_dec_crt),

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

* patch 'bus/pci: fix device ID log' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (21 preceding siblings ...)
  2023-10-18 23:59 ` patch 'test/crypto: fix typo in asym tests' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'test/event: fix crypto null device creation' " luca.boccassi
                   ` (16 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Qiming Yang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/106aa13dce8ae3ecfdc02e4903576941a930f691

Thanks.

Luca Boccassi

---
From 106aa13dce8ae3ecfdc02e4903576941a930f691 Mon Sep 17 00:00:00 2001
From: Qiming Yang <qiming.yang@intel.com>
Date: Wed, 13 Sep 2023 08:23:33 +0000
Subject: [PATCH] bus/pci: fix device ID log

[ upstream commit 5019f6c856fbd9663dd83465c11be423c3424e94 ]

This patch fixes the issue where device ID first 0 does not print.

Fixes: e4f27af0f448 ("bus/pci: reduce boot-up logs to absolute minimum")

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
---
 drivers/bus/pci/pci_common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/bus/pci/pci_common.c b/drivers/bus/pci/pci_common.c
index fa887de11b..12b4b420f6 100644
--- a/drivers/bus/pci/pci_common.c
+++ b/drivers/bus/pci/pci_common.c
@@ -238,7 +238,7 @@ rte_pci_probe_one_driver(struct rte_pci_driver *dr,
 		}
 	}
 
-	RTE_LOG(INFO, EAL, "Probe PCI driver: %s (%x:%x) device: "PCI_PRI_FMT" (socket %i)\n",
+	RTE_LOG(INFO, EAL, "Probe PCI driver: %s (%x:%04x) device: "PCI_PRI_FMT" (socket %i)\n",
 			dr->driver.name, dev->id.vendor_id, dev->id.device_id,
 			loc->domain, loc->bus, loc->devid, loc->function,
 			dev->device.numa_node);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.459092738 +0100
+++ 0024-bus-pci-fix-device-ID-log.patch	2023-10-19 00:28:56.265805790 +0100
@@ -1 +1 @@
-From 5019f6c856fbd9663dd83465c11be423c3424e94 Mon Sep 17 00:00:00 2001
+From 106aa13dce8ae3ecfdc02e4903576941a930f691 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5019f6c856fbd9663dd83465c11be423c3424e94 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -17 +18 @@
-index f149963364..921d957bf6 100644
+index fa887de11b..12b4b420f6 100644
@@ -20 +21 @@
-@@ -304,7 +304,7 @@ rte_pci_probe_one_driver(struct rte_pci_driver *dr,
+@@ -238,7 +238,7 @@ rte_pci_probe_one_driver(struct rte_pci_driver *dr,

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

* patch 'test/event: fix crypto null device creation' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (22 preceding siblings ...)
  2023-10-18 23:59 ` patch 'bus/pci: fix device ID log' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'event/sw: remove obsolete comment' " luca.boccassi
                   ` (15 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Aakash Sasidharan; +Cc: Anoob Joseph, Abhinandan Gujjar, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/82721cbd5ce3e91912f39ad024d88b683f729bf3

Thanks.

Luca Boccassi

---
From 82721cbd5ce3e91912f39ad024d88b683f729bf3 Mon Sep 17 00:00:00 2001
From: Aakash Sasidharan <asasidharan@marvell.com>
Date: Tue, 22 Aug 2023 18:46:49 +0530
Subject: [PATCH] test/event: fix crypto null device creation

[ upstream commit cf57682e1b6fea41566325eb92b0978bd0209904 ]

Create crypto null device only if no other crypto devices
were found.

Fixes: 3c2c535ecfc0 ("test: add event crypto adapter auto-test")

Signed-off-by: Aakash Sasidharan <asasidharan@marvell.com>
Acked-by: Anoob Joseph <anoobj@marvell.com>
Acked-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
---
 app/test/test_event_crypto_adapter.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/app/test/test_event_crypto_adapter.c b/app/test/test_event_crypto_adapter.c
index c7517e215c..061faf39bd 100644
--- a/app/test/test_event_crypto_adapter.c
+++ b/app/test/test_event_crypto_adapter.c
@@ -519,11 +519,10 @@ configure_cryptodev(void)
 		return TEST_FAILED;
 	}
 
-	/* Create a NULL crypto device */
-	nb_devs = rte_cryptodev_device_count_by_driver(
-			rte_cryptodev_driver_id_get(
-			RTE_STR(CRYPTODEV_NAME_NULL_PMD)));
+
+	nb_devs = rte_cryptodev_count();
 	if (!nb_devs) {
+		/* Create a NULL crypto device */
 		ret = rte_vdev_init(
 			RTE_STR(CRYPTODEV_NAME_NULL_PMD), NULL);
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.506332094 +0100
+++ 0025-test-event-fix-crypto-null-device-creation.patch	2023-10-19 00:28:56.265805790 +0100
@@ -1 +1 @@
-From cf57682e1b6fea41566325eb92b0978bd0209904 Mon Sep 17 00:00:00 2001
+From 82721cbd5ce3e91912f39ad024d88b683f729bf3 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit cf57682e1b6fea41566325eb92b0978bd0209904 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 00b20fa443..0c56744ba0 100644
+index c7517e215c..061faf39bd 100644
@@ -23 +24 @@
-@@ -1072,11 +1072,10 @@ configure_cryptodev(void)
+@@ -519,11 +519,10 @@ configure_cryptodev(void)

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

* patch 'event/sw: remove obsolete comment' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (23 preceding siblings ...)
  2023-10-18 23:59 ` patch 'test/event: fix crypto null device creation' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'event/sw: fix ordering corruption with op release' " luca.boccassi
                   ` (14 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Harry van Haaren, Stephen Hemminger, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/290d8dd49b58d90fb502a511f9d1ee5ed84c1fb3

Thanks.

Luca Boccassi

---
From 290d8dd49b58d90fb502a511f9d1ee5ed84c1fb3 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Thu, 14 Sep 2023 10:37:51 +0100
Subject: [PATCH] event/sw: remove obsolete comment

[ upstream commit 34b067274c3b8b405e56322009844539a708820c ]

Code that the comment refers to was previously removed, but the
comment remained.

Fixes: dca926ca9faa ("event/sw: use dynamically-sized IQs")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/event/sw/sw_evdev_scheduler.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/drivers/event/sw/sw_evdev_scheduler.c b/drivers/event/sw/sw_evdev_scheduler.c
index f747b3c6d4..8d8cd04943 100644
--- a/drivers/event/sw/sw_evdev_scheduler.c
+++ b/drivers/event/sw/sw_evdev_scheduler.c
@@ -368,12 +368,6 @@ __pull_port_lb(struct sw_evdev *sw, uint32_t port_id, int allow_reorder)
 		if (!allow_reorder && !eop)
 			flags = QE_FLAG_VALID;
 
-		/*
-		 * if we don't have space for this packet in an IQ,
-		 * then move on to next queue. Technically, for a
-		 * packet that needs reordering, we don't need to check
-		 * here, but it simplifies things not to special-case
-		 */
 		uint32_t iq_num = PRIO_TO_IQ(qe->priority);
 		struct sw_qid *qid = &sw->qids[qe->queue_id];
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.552991341 +0100
+++ 0026-event-sw-remove-obsolete-comment.patch	2023-10-19 00:28:56.265805790 +0100
@@ -1 +1 @@
-From 34b067274c3b8b405e56322009844539a708820c Mon Sep 17 00:00:00 2001
+From 290d8dd49b58d90fb502a511f9d1ee5ed84c1fb3 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 34b067274c3b8b405e56322009844539a708820c ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index de6ed21643..17953fde0e 100644
+index f747b3c6d4..8d8cd04943 100644

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

* patch 'event/sw: fix ordering corruption with op release' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (24 preceding siblings ...)
  2023-10-18 23:59 ` patch 'event/sw: remove obsolete comment' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'net/i40e: fix FDIR queue receives broadcast packets' " luca.boccassi
                   ` (13 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Harry van Haaren; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From 8e05122a9fa49b59af93ffdae1a0c82e24d808d9 Mon Sep 17 00:00:00 2001
From: Harry van Haaren <harry.van.haaren@intel.com>
Date: Mon, 2 Oct 2023 11:58:35 +0100
Subject: [PATCH] event/sw: fix ordering corruption with op release

[ upstream commit 5078a8f37d82f3b54cf373389b6754e2bafd584f ]

This commit changes the logic in the scheduler to always
reset reorder-buffer (and QID/FID) entries when writing
them. This avoids stale ROB/QID/FID data re-use, which
previously caused ordering issues.

Before this commit, release events left the history-list
in an inconsistent state, and future events with op type of
forward could be incorrectly reordered.

There was a partial fix previously committed which is now
being resolved for all cases in a more general way, hence
the two fixlines here.

Fixes: 2e516d18dc01 ("event/sw: fix events mis-identified as needing reorder")
Fixes: 617995dfc5b2 ("event/sw: add scheduling logic")

Suggested-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/event/sw/sw_evdev_scheduler.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/event/sw/sw_evdev_scheduler.c b/drivers/event/sw/sw_evdev_scheduler.c
index 8d8cd04943..250c60fe6a 100644
--- a/drivers/event/sw/sw_evdev_scheduler.c
+++ b/drivers/event/sw/sw_evdev_scheduler.c
@@ -90,8 +90,10 @@ sw_schedule_atomic_to_cq(struct sw_evdev *sw, struct sw_qid * const qid,
 		sw->cq_ring_space[cq]--;
 
 		int head = (p->hist_head++ & (SW_PORT_HIST_LIST-1));
-		p->hist_list[head].fid = flow_id;
-		p->hist_list[head].qid = qid_id;
+		p->hist_list[head] = (struct sw_hist_list_entry) {
+			.qid = qid_id,
+			.fid = flow_id,
+		};
 
 		p->stats.tx_pkts++;
 		qid->stats.tx_pkts++;
@@ -162,8 +164,10 @@ sw_schedule_parallel_to_cq(struct sw_evdev *sw, struct sw_qid * const qid,
 		qid->stats.tx_pkts++;
 
 		const int head = (p->hist_head & (SW_PORT_HIST_LIST-1));
-		p->hist_list[head].fid = SW_HASH_FLOWID(qe->flow_id);
-		p->hist_list[head].qid = qid_id;
+		p->hist_list[head] = (struct sw_hist_list_entry) {
+			.qid = qid_id,
+			.fid = SW_HASH_FLOWID(qe->flow_id),
+		};
 
 		if (keep_order)
 			rob_ring_dequeue(qid->reorder_buffer_freelist,
@@ -413,7 +417,6 @@ __pull_port_lb(struct sw_evdev *sw, uint32_t port_id, int allow_reorder)
 				struct reorder_buffer_entry *rob_entry =
 						hist_entry->rob_entry;
 
-				hist_entry->rob_entry = NULL;
 				/* Although fragmentation not currently
 				 * supported by eventdev API, we support it
 				 * here. Open: How do we alert the user that
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.600093648 +0100
+++ 0027-event-sw-fix-ordering-corruption-with-op-release.patch	2023-10-19 00:28:56.265805790 +0100
@@ -1 +1 @@
-From 5078a8f37d82f3b54cf373389b6754e2bafd584f Mon Sep 17 00:00:00 2001
+From 8e05122a9fa49b59af93ffdae1a0c82e24d808d9 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5078a8f37d82f3b54cf373389b6754e2bafd584f ]
+
@@ -21 +22,0 @@
-Cc: stable@dpdk.org
@@ -31 +32 @@
-index 17953fde0e..a5fdcf301b 100644
+index 8d8cd04943..250c60fe6a 100644

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

* patch 'net/i40e: fix FDIR queue receives broadcast packets' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (25 preceding siblings ...)
  2023-10-18 23:59 ` patch 'event/sw: fix ordering corruption with op release' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'net/iavf: fix VLAN offload strip flag' " luca.boccassi
                   ` (12 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Beilei Xing; +Cc: Jingjing Wu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/297e74460e16b196560b16a26a27e2163ed8c76b

Thanks.

Luca Boccassi

---
From 297e74460e16b196560b16a26a27e2163ed8c76b Mon Sep 17 00:00:00 2001
From: Beilei Xing <beilei.xing@intel.com>
Date: Fri, 21 Jul 2023 05:35:13 +0000
Subject: [PATCH] net/i40e: fix FDIR queue receives broadcast packets

[ upstream commit c07aa47b6272cc14842af06e437cda870e867fbd ]

FDIR Rxq is excepted to only receive FDIR programming status, won't
receive broadcast packets.

Fixes: a778a1fa2e4e ("i40e: set up and initialize flow director")

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
---
 drivers/net/i40e/i40e_ethdev.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index a0569dab25..cfcf1b690e 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -6080,14 +6080,16 @@ i40e_vsi_setup(struct i40e_pf *pf,
 		}
 	}
 
-	/* MAC/VLAN configuration */
-	rte_memcpy(&filter.mac_addr, &broadcast, RTE_ETHER_ADDR_LEN);
-	filter.filter_type = I40E_MACVLAN_PERFECT_MATCH;
+	if (vsi->type != I40E_VSI_FDIR) {
+		/* MAC/VLAN configuration for non-FDIR VSI*/
+		rte_memcpy(&filter.mac_addr, &broadcast, RTE_ETHER_ADDR_LEN);
+		filter.filter_type = I40E_MACVLAN_PERFECT_MATCH;
 
-	ret = i40e_vsi_add_mac(vsi, &filter);
-	if (ret != I40E_SUCCESS) {
-		PMD_DRV_LOG(ERR, "Failed to add MACVLAN filter");
-		goto fail_msix_alloc;
+		ret = i40e_vsi_add_mac(vsi, &filter);
+		if (ret != I40E_SUCCESS) {
+			PMD_DRV_LOG(ERR, "Failed to add MACVLAN filter");
+			goto fail_msix_alloc;
+		}
 	}
 
 	/* Get VSI BW information */
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.645586403 +0100
+++ 0028-net-i40e-fix-FDIR-queue-receives-broadcast-packets.patch	2023-10-19 00:28:56.281806213 +0100
@@ -1 +1 @@
-From c07aa47b6272cc14842af06e437cda870e867fbd Mon Sep 17 00:00:00 2001
+From 297e74460e16b196560b16a26a27e2163ed8c76b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c07aa47b6272cc14842af06e437cda870e867fbd ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 50ba9aac94..0482647cc1 100644
+index a0569dab25..cfcf1b690e 100644
@@ -22 +23 @@
-@@ -6026,14 +6026,16 @@ i40e_vsi_setup(struct i40e_pf *pf,
+@@ -6080,14 +6080,16 @@ i40e_vsi_setup(struct i40e_pf *pf,

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

* patch 'net/iavf: fix VLAN offload strip flag' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (26 preceding siblings ...)
  2023-10-18 23:59 ` patch 'net/i40e: fix FDIR queue receives broadcast packets' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'net/i40e: fix buffer leak on Rx reconfiguration' " luca.boccassi
                   ` (11 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Wenjing Qiao; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/19077f1b5baf50eb03f52d9c89f9f07a607ea853

Thanks.

Luca Boccassi

---
From 19077f1b5baf50eb03f52d9c89f9f07a607ea853 Mon Sep 17 00:00:00 2001
From: Wenjing Qiao <wenjing.qiao@intel.com>
Date: Mon, 21 Aug 2023 09:52:12 +0000
Subject: [PATCH] net/iavf: fix VLAN offload strip flag

[ upstream commit e25c7ed114b296ddaa583427824acc30bcf9c85d ]

For i40e kernel driver which only supports vlan(v1) VIRTCHNL OP,
it will set strip on when setting filter on but dpdk side will not
change strip flag. To be consistent with dpdk side, disable strip
again.

Fixes: cb25d4323fbf ("net/avf: enable MAC VLAN and promisc ops")

Signed-off-by: Wenjing Qiao <wenjing.qiao@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_ethdev.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index 127d79318d..f3b3ff5e70 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -1013,6 +1013,7 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
 	struct iavf_adapter *adapter =
 		IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
 	struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+	struct rte_eth_conf *dev_conf = &dev->data->dev_conf;
 	int err;
 
 	if (!(vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_VLAN))
@@ -1021,6 +1022,23 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
 	err = iavf_add_del_vlan(adapter, vlan_id, on);
 	if (err)
 		return -EIO;
+
+	/* For i40e kernel driver which only supports vlan(v1) VIRTCHNL OP,
+	 * it will set strip on when setting filter on but dpdk side will not
+	 * change strip flag. To be consistent with dpdk side, disable strip
+	 * again.
+	 *
+	 * For i40e kernel driver which supports vlan v2, dpdk will invoke vlan v2
+	 * related function, so it won't go through here.
+	 */
+	if (adapter->hw.mac.type == IAVF_MAC_XL710 ||
+	    adapter->hw.mac.type == IAVF_MAC_X722_VF) {
+		if (on && !(dev_conf->rxmode.offloads & DEV_RX_OFFLOAD_VLAN_STRIP)) {
+			err = iavf_disable_vlan_strip(adapter);
+			if (err)
+				return -EIO;
+		}
+	}
 	return 0;
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.705720341 +0100
+++ 0029-net-iavf-fix-VLAN-offload-strip-flag.patch	2023-10-19 00:28:56.281806213 +0100
@@ -1 +1 @@
-From e25c7ed114b296ddaa583427824acc30bcf9c85d Mon Sep 17 00:00:00 2001
+From 19077f1b5baf50eb03f52d9c89f9f07a607ea853 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e25c7ed114b296ddaa583427824acc30bcf9c85d ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index c0ca733c67..9591acef65 100644
+index 127d79318d..f3b3ff5e70 100644
@@ -24 +25 @@
-@@ -1369,6 +1369,7 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
+@@ -1013,6 +1013,7 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
@@ -31,2 +32,2 @@
- 	if (adapter->closed)
-@@ -1387,6 +1388,23 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
+ 	if (!(vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_VLAN))
+@@ -1021,6 +1022,23 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
@@ -47 +48 @@
-+		if (on && !(dev_conf->rxmode.offloads & RTE_ETH_RX_OFFLOAD_VLAN_STRIP)) {
++		if (on && !(dev_conf->rxmode.offloads & DEV_RX_OFFLOAD_VLAN_STRIP)) {

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

* patch 'net/i40e: fix buffer leak on Rx reconfiguration' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (27 preceding siblings ...)
  2023-10-18 23:59 ` patch 'net/iavf: fix VLAN offload strip flag' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'net/iavf: fix port stats clearing' " luca.boccassi
                   ` (10 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/56d20825a02387f910c87ef9eb986f357d44b46f

Thanks.

Luca Boccassi

---
From 56d20825a02387f910c87ef9eb986f357d44b46f Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Thu, 31 Aug 2023 13:33:34 +0100
Subject: [PATCH] net/i40e: fix buffer leak on Rx reconfiguration

[ upstream commit 56dcaa41325a8a347ba52e5d89dce5e8dafa7f8c ]

When reconfiguring a single queue on a device, the mbuf initializer
value was not getting set, and remained at zero. This lead to mbuf leaks
as the refcount was incorrect (0), so on free it wrapped around to
UINT16_MAX. When setting up the mbuf initializer, also ensure that the
queue is explicitly marked as using a vector function by setting the
"rx_using_sse" flag.

Fixes: a3c83a2527e1 ("net/i40e: enable runtime queue setup")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/i40e/i40e_rxtx.c            | 6 ++++++
 drivers/net/i40e/i40e_rxtx_vec_common.h | 1 +
 2 files changed, 7 insertions(+)

diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index 3b6c41c271..6f5ea8c55a 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -1818,6 +1818,12 @@ i40e_dev_rx_queue_setup_runtime(struct rte_eth_dev *dev,
 		if (use_def_burst_func)
 			ad->rx_bulk_alloc_allowed = false;
 		i40e_set_rx_function(dev);
+
+		if (ad->rx_vec_allowed && i40e_rxq_vec_setup(rxq)) {
+			PMD_DRV_LOG(ERR, "Failed vector rx setup.");
+			return -EINVAL;
+		}
+
 		return 0;
 	} else if (ad->rx_vec_allowed && !rte_is_power_of_2(rxq->nb_rx_desc)) {
 		PMD_DRV_LOG(ERR, "Vector mode is allowed, but descriptor"
diff --git a/drivers/net/i40e/i40e_rxtx_vec_common.h b/drivers/net/i40e/i40e_rxtx_vec_common.h
index 31f73f6054..aa6e6ed80c 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_common.h
+++ b/drivers/net/i40e/i40e_rxtx_vec_common.h
@@ -186,6 +186,7 @@ i40e_rxq_vec_setup_default(struct i40e_rx_queue *rxq)
 	rte_compiler_barrier();
 	p = (uintptr_t)&mb_def.rearm_data;
 	rxq->mbuf_initializer = *(uint64_t *)p;
+	rxq->rx_using_sse = 1;
 	return 0;
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.753918833 +0100
+++ 0030-net-i40e-fix-buffer-leak-on-Rx-reconfiguration.patch	2023-10-19 00:28:56.285806319 +0100
@@ -1 +1 @@
-From 56dcaa41325a8a347ba52e5d89dce5e8dafa7f8c Mon Sep 17 00:00:00 2001
+From 56d20825a02387f910c87ef9eb986f357d44b46f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 56dcaa41325a8a347ba52e5d89dce5e8dafa7f8c ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index f37bf30d56..9aa5facb53 100644
+index 3b6c41c271..6f5ea8c55a 100644
@@ -27 +28 @@
-@@ -1918,6 +1918,12 @@ i40e_dev_rx_queue_setup_runtime(struct rte_eth_dev *dev,
+@@ -1818,6 +1818,12 @@ i40e_dev_rx_queue_setup_runtime(struct rte_eth_dev *dev,
@@ -41 +42 @@
-index fe1a6ec75e..8b745630e4 100644
+index 31f73f6054..aa6e6ed80c 100644
@@ -44 +45 @@
-@@ -201,6 +201,7 @@ i40e_rxq_vec_setup_default(struct i40e_rx_queue *rxq)
+@@ -186,6 +186,7 @@ i40e_rxq_vec_setup_default(struct i40e_rx_queue *rxq)

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

* patch 'net/iavf: fix port stats clearing' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (28 preceding siblings ...)
  2023-10-18 23:59 ` patch 'net/i40e: fix buffer leak on Rx reconfiguration' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'net/ice: fix initial link status' " luca.boccassi
                   ` (9 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Yiding Zhou; +Cc: Kuan Xu, Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From e2ee086768ce210b5fb58c16051589641e6b09b0 Mon Sep 17 00:00:00 2001
From: Yiding Zhou <yidingx.zhou@intel.com>
Date: Thu, 7 Sep 2023 10:39:42 +0800
Subject: [PATCH] net/iavf: fix port stats clearing

[ upstream commit 57fc68cf11cf3ec49526d8a8eca98956d5b77989 ]

After VF reset, kernel driver may reuse the original VSI without reset its
stats. Call 'iavf_dev_stats_reset' during the initialization of the VF in
order to clear any statistics that may exist from the last use of the VF
and to avoid statistics errors.

Fixes: 22b123a36d07 ("net/avf: initialize PMD")

Signed-off-by: Kuan Xu <kuanx.xu@intel.com>
Signed-off-by: Yiding Zhou <yidingx.zhou@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_ethdev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index f3b3ff5e70..b6ace7e005 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -2076,6 +2076,8 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
 		return ret;
 	}
 
+	iavf_dev_stats_reset(eth_dev);
+
 	return 0;
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.803515488 +0100
+++ 0031-net-iavf-fix-port-stats-clearing.patch	2023-10-19 00:28:56.289806424 +0100
@@ -1 +1 @@
-From 57fc68cf11cf3ec49526d8a8eca98956d5b77989 Mon Sep 17 00:00:00 2001
+From e2ee086768ce210b5fb58c16051589641e6b09b0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 57fc68cf11cf3ec49526d8a8eca98956d5b77989 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -18,3 +19,2 @@
- .mailmap                       | 1 +
- drivers/net/iavf/iavf_ethdev.c | 1 +
- 2 files changed, 2 insertions(+)
+ drivers/net/iavf/iavf_ethdev.c | 2 ++
+ 1 file changed, 2 insertions(+)
@@ -22,12 +21,0 @@
-diff --git a/.mailmap b/.mailmap
-index 85682c3ec4..013ad8cbca 100644
---- a/.mailmap
-+++ b/.mailmap
-@@ -752,6 +752,7 @@ Krzysztof Galazka <krzysztof.galazka@intel.com>
- Krzysztof Kanas <kkanas@marvell.com> <krzysztof.kanas@caviumnetworks.com>
- Krzysztof Karas <krzysztof.karas@intel.com>
- Krzysztof Witek <krzysztof.witek@6wind.com>
-+Kuan Xu <kuanx.xu@intel.com>
- Kuba Kozak <kubax.kozak@intel.com>
- Kumar Amber <kumar.amber@intel.com>
- Kumara Parameshwaran <kumaraparamesh92@gmail.com> <kparameshwar@vmware.com>
@@ -35 +23 @@
-index c71b6565f3..27a6a7b80f 100644
+index f3b3ff5e70..b6ace7e005 100644
@@ -38,3 +26,3 @@
-@@ -2748,6 +2748,7 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
- 
- 	iavf_default_rss_disable(adapter);
+@@ -2076,6 +2076,8 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
+ 		return ret;
+ 	}
@@ -42,0 +31,3 @@
++
+ 	return 0;
+ }
@@ -44,2 +34,0 @@
- 	/* Start device watchdog */
- 	iavf_dev_watchdog_enable(adapter);

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

* patch 'net/ice: fix initial link status' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (29 preceding siblings ...)
  2023-10-18 23:59 ` patch 'net/iavf: fix port stats clearing' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'net/iavf: remove log from Tx prepare function' " luca.boccassi
                   ` (8 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Qiming Yang; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From 52b008e4f5db4b600f4a6a264a4506af1617390b Mon Sep 17 00:00:00 2001
From: Qiming Yang <qiming.yang@intel.com>
Date: Wed, 13 Sep 2023 09:02:08 +0000
Subject: [PATCH] net/ice: fix initial link status

[ upstream commit 5274d4309139e963bbd369c5639ab24695c5574f ]

This patch fixed the issue which the link status still up
when the link status changed from up to downi after device
restart.

Fixes: fdcf92ed6637 ("net/ice: fix link status recovery")

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_ethdev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index e4df6847d2..7af6548afc 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -3506,6 +3506,8 @@ ice_get_init_link_status(struct rte_eth_dev *dev)
 
 	if (link_status.link_info & ICE_AQ_LINK_UP)
 		pf->init_link_up = true;
+	else
+		pf->init_link_up = false;
 }
 
 static int
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.854049407 +0100
+++ 0032-net-ice-fix-initial-link-status.patch	2023-10-19 00:28:56.293806530 +0100
@@ -1 +1 @@
-From 5274d4309139e963bbd369c5639ab24695c5574f Mon Sep 17 00:00:00 2001
+From 52b008e4f5db4b600f4a6a264a4506af1617390b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5274d4309139e963bbd369c5639ab24695c5574f ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 4bad39c2c1..ed9771be1c 100644
+index e4df6847d2..7af6548afc 100644
@@ -23 +24 @@
-@@ -3646,6 +3646,8 @@ ice_get_init_link_status(struct rte_eth_dev *dev)
+@@ -3506,6 +3506,8 @@ ice_get_init_link_status(struct rte_eth_dev *dev)

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

* patch 'net/iavf: remove log from Tx prepare function' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (30 preceding siblings ...)
  2023-10-18 23:59 ` patch 'net/ice: fix initial link status' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'net/iavf: fix TSO with big segments' " luca.boccassi
                   ` (7 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: David Marchand; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From 5d3142ed48fd78d8a4781cb8da47e519038af3ce Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 27 Sep 2023 11:41:45 +0200
Subject: [PATCH] net/iavf: remove log from Tx prepare function

[ upstream commit 4015aed58aefb3cceba6766f1fcaaa483c21ede0 ]

iavf_prep_pkts reports to the application that the packet is invalid
(from the driver pov). Having a log message only in this branch is not
consistent with all other checks in this function and it may slow down
the application if such invalid packets are being sent continuously.

Fixes: 19ee91c6bd9a ("net/iavf: check illegal packet sizes")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_rxtx.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index 45b30363df..66a81197fd 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -2383,7 +2383,6 @@ iavf_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 		if (m->data_len < IAVF_TX_MIN_PKT_LEN ||
 			m->data_len > max_frame_size) {
 			rte_errno = EINVAL;
-			PMD_DRV_LOG(ERR, "INVALID mbuf: bad data_len=[%hu]", m->data_len);
 			return i;
 		}
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.906783554 +0100
+++ 0033-net-iavf-remove-log-from-Tx-prepare-function.patch	2023-10-19 00:28:56.293806530 +0100
@@ -1 +1 @@
-From 4015aed58aefb3cceba6766f1fcaaa483c21ede0 Mon Sep 17 00:00:00 2001
+From 5d3142ed48fd78d8a4781cb8da47e519038af3ce Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4015aed58aefb3cceba6766f1fcaaa483c21ede0 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 0484988d13..21a06b8351 100644
+index 45b30363df..66a81197fd 100644
@@ -24 +25 @@
-@@ -3669,7 +3669,6 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -2383,7 +2383,6 @@ iavf_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,

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

* patch 'net/iavf: fix TSO with big segments' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (31 preceding siblings ...)
  2023-10-18 23:59 ` patch 'net/iavf: remove log from Tx prepare function' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'net/ice: remove log from Tx prepare function' " luca.boccassi
                   ` (6 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: David Marchand; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From dc9a211b46bc452b1f1dda47bc7648529bc30879 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 27 Sep 2023 11:41:46 +0200
Subject: [PATCH] net/iavf: fix TSO with big segments

[ upstream commit 8a1a5327ba71a19d8a6e1b9ceb5563b4af2c2029 ]

Packets to be segmented with TSO are usually larger than MTU.
Plus, a single segment for the whole packet may be used: in OVS case,
an external rte_malloc'd buffer is used for packets received
from vhost-user ports.

Before this fix, TSO packets were dropped by net/iavf with the following
message:
2023-09-18T14:08:52.739Z|00610|dpdk(pmd-c31/id:11)|ERR|iavf_prep_pkts():
	INVALID mbuf: bad data_len=[2962]

Remove the check on data_len.

Fixes: 19ee91c6bd9a ("net/iavf: check illegal packet sizes")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_rxtx.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index 66a81197fd..fb6694f4cd 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -2347,15 +2347,12 @@ end_of_tx:
 
 /* TX prep functions */
 uint16_t
-iavf_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 	      uint16_t nb_pkts)
 {
 	int i, ret;
 	uint64_t ol_flags;
 	struct rte_mbuf *m;
-	struct iavf_tx_queue *txq = tx_queue;
-	struct rte_eth_dev *dev = &rte_eth_devices[txq->port_id];
-	uint16_t max_frame_size = dev->data->mtu + IAVF_ETH_OVERHEAD;
 
 	for (i = 0; i < nb_pkts; i++) {
 		m = tx_pkts[i];
@@ -2379,9 +2376,7 @@ iavf_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 			return i;
 		}
 
-		/* check the data_len in mbuf */
-		if (m->data_len < IAVF_TX_MIN_PKT_LEN ||
-			m->data_len > max_frame_size) {
+		if (m->pkt_len < IAVF_TX_MIN_PKT_LEN) {
 			rte_errno = EINVAL;
 			return i;
 		}
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:57.956544264 +0100
+++ 0034-net-iavf-fix-TSO-with-big-segments.patch	2023-10-19 00:28:56.297806636 +0100
@@ -1 +1 @@
-From 8a1a5327ba71a19d8a6e1b9ceb5563b4af2c2029 Mon Sep 17 00:00:00 2001
+From dc9a211b46bc452b1f1dda47bc7648529bc30879 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 8a1a5327ba71a19d8a6e1b9ceb5563b4af2c2029 ]
+
@@ -19 +20,0 @@
-Cc: stable@dpdk.org
@@ -24,2 +25,2 @@
- drivers/net/iavf/iavf_rxtx.c | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
+ drivers/net/iavf/iavf_rxtx.c | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
@@ -28 +29 @@
-index 21a06b8351..c6ef6af1d8 100644
+index 66a81197fd..fb6694f4cd 100644
@@ -31 +32,10 @@
-@@ -3636,7 +3636,6 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -2347,15 +2347,12 @@ end_of_tx:
+ 
+ /* TX prep functions */
+ uint16_t
+-iavf_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
++iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+ 	      uint16_t nb_pkts)
+ {
+ 	int i, ret;
+ 	uint64_t ol_flags;
@@ -33,2 +43,2 @@
- 	struct iavf_tx_queue *txq = tx_queue;
- 	struct rte_eth_dev *dev = &rte_eth_devices[txq->port_id];
+-	struct iavf_tx_queue *txq = tx_queue;
+-	struct rte_eth_dev *dev = &rte_eth_devices[txq->port_id];
@@ -36,2 +45,0 @@
- 	struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
- 	struct iavf_adapter *adapter = IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
@@ -39 +47,3 @@
-@@ -3665,9 +3664,7 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+ 	for (i = 0; i < nb_pkts; i++) {
+ 		m = tx_pkts[i];
+@@ -2379,9 +2376,7 @@ iavf_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,

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

* patch 'net/ice: remove log from Tx prepare function' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (32 preceding siblings ...)
  2023-10-18 23:59 ` patch 'net/iavf: fix TSO with big segments' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'net/ice: fix TSO with big segments' " luca.boccassi
                   ` (5 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: David Marchand; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From b8822df8881feb1b833384208cb02bcd8e9744d3 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 27 Sep 2023 11:41:47 +0200
Subject: [PATCH] net/ice: remove log from Tx prepare function

[ upstream commit 9aa546d868b60027a6723f1a772d287d44f17ef8 ]

ice_prep_pkts reports to the application that the packet is invalid
(from the driver pov). Having a log message in those branches is not
consistent with all other checks in this function and it may slow down
the application if such invalid packets are being sent continuously.

Fixes: ccf33dccf7aa ("net/ice: check illegal packet sizes")
Fixes: 688cb2f2c61e ("net/ice: fix scalar Tx path segment")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_rxtx.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index bd8811649a..11b0dee9f5 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -3256,7 +3256,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		if (m->data_len < ICE_TX_MIN_PKT_LEN ||
 			m->data_len > max_frame_size) {
 			rte_errno = EINVAL;
-			PMD_DRV_LOG(ERR, "INVALID mbuf: bad data_len=[%hu]", m->data_len);
 			return i;
 		}
 
@@ -3275,7 +3274,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 
 		if (ice_check_empty_mbuf(m) != 0) {
 			rte_errno = EINVAL;
-			PMD_DRV_LOG(ERR, "INVALID mbuf:	last mbuf data_len=[0]");
 			return i;
 		}
 	}
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:58.006730456 +0100
+++ 0035-net-ice-remove-log-from-Tx-prepare-function.patch	2023-10-19 00:28:56.301806741 +0100
@@ -1 +1 @@
-From 9aa546d868b60027a6723f1a772d287d44f17ef8 Mon Sep 17 00:00:00 2001
+From b8822df8881feb1b833384208cb02bcd8e9744d3 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 9aa546d868b60027a6723f1a772d287d44f17ef8 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index e07c6d1f15..d5513e9e93 100644
+index bd8811649a..11b0dee9f5 100644
@@ -25 +26 @@
-@@ -3708,7 +3708,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -3256,7 +3256,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -33 +34 @@
-@@ -3727,7 +3726,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -3275,7 +3274,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,

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

* patch 'net/ice: fix TSO with big segments' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (33 preceding siblings ...)
  2023-10-18 23:59 ` patch 'net/ice: remove log from Tx prepare function' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'net/mlx5: fix leak in sysfs port name translation' " luca.boccassi
                   ` (4 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: David Marchand; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From cf1f681c64fffaf63d6c5085c7c1840e4b2c5346 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 27 Sep 2023 11:41:48 +0200
Subject: [PATCH] net/ice: fix TSO with big segments

[ upstream commit d7b35f53cadd6f228b3787f8dceca5481c034740 ]

Packets to be segmented with TSO are usually larger than MTU.
Plus, a single segment for the whole packet may be used: in OVS case,
an external rte_malloc'd buffer is used for packets received
from vhost-user ports.

Before this fix, TSO packets were dropped by net/ice with the following
message:
2023-09-18T13:34:31.064Z|00020|dpdk(pmd-c31/id:22)|ERR|ice_prep_pkts():
	INVALID mbuf: bad data_len=[2962]

Remove the check on data_len.

Fixes: ccf33dccf7aa ("net/ice: check illegal packet sizes")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_rxtx.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index 11b0dee9f5..603136fa91 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -3233,9 +3233,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 	int i, ret;
 	uint64_t ol_flags;
 	struct rte_mbuf *m;
-	struct ice_tx_queue *txq = tx_queue;
-	struct rte_eth_dev *dev = &rte_eth_devices[txq->port_id];
-	uint16_t max_frame_size = dev->data->mtu + ICE_ETH_OVERHEAD;
 
 	for (i = 0; i < nb_pkts; i++) {
 		m = tx_pkts[i];
@@ -3252,9 +3249,7 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 			return i;
 		}
 
-		/* check the data_len in mbuf */
-		if (m->data_len < ICE_TX_MIN_PKT_LEN ||
-			m->data_len > max_frame_size) {
+		if (m->pkt_len < ICE_TX_MIN_PKT_LEN) {
 			rte_errno = EINVAL;
 			return i;
 		}
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:58.057138618 +0100
+++ 0036-net-ice-fix-TSO-with-big-segments.patch	2023-10-19 00:28:56.305806847 +0100
@@ -1 +1 @@
-From d7b35f53cadd6f228b3787f8dceca5481c034740 Mon Sep 17 00:00:00 2001
+From cf1f681c64fffaf63d6c5085c7c1840e4b2c5346 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d7b35f53cadd6f228b3787f8dceca5481c034740 ]
+
@@ -19 +20,0 @@
-Cc: stable@dpdk.org
@@ -28 +29 @@
-index d5513e9e93..ee9cb7b955 100644
+index 11b0dee9f5..603136fa91 100644
@@ -31 +32 @@
-@@ -3685,9 +3685,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -3233,9 +3233,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -41 +42 @@
-@@ -3704,9 +3701,7 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -3252,9 +3249,7 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,

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

* patch 'net/mlx5: fix leak in sysfs port name translation' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (34 preceding siblings ...)
  2023-10-18 23:59 ` patch 'net/ice: fix TSO with big segments' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'fib: fix adding default route overwriting entire table' " luca.boccassi
                   ` (3 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: David Marchand; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/9a4ca1230f9b432ca22ecff70696d3644a7a41ce

Thanks.

Luca Boccassi

---
From 9a4ca1230f9b432ca22ecff70696d3644a7a41ce Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Tue, 1 Aug 2023 17:18:31 +0200
Subject: [PATCH] net/mlx5: fix leak in sysfs port name translation

[ upstream commit 1296e8d0d0fe74646fbb0339969cf3946f1ce84d ]

getline() may allocate a buffer even though it returns -1:
"""
If  *lineptr  is set to NULL before the call, then getline() will allocate
a buffer for storing the line.  This buffer should be freed by the user
program even if getline() failed.
"""

This leak has been observed on a RHEL8 system with two CX5 PF devices
(no VFs).

ASan reports:
==8899==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 120 byte(s) in 1 object(s) allocated from:
    #0 0x7fe58576aba8 in __interceptor_malloc
	(/lib64/libasan.so.5+0xefba8)
    #1 0x7fe583e866b2 in __getdelim (/lib64/libc.so.6+0x886b2)
    #2 0x327bd23 in mlx5_sysfs_switch_info
	../drivers/net/mlx5/linux/mlx5_ethdev_os.c:1084
    #3 0x3271f86 in mlx5_os_pci_probe_pf
	../drivers/net/mlx5/linux/mlx5_os.c:2282
    #4 0x3273c83 in mlx5_os_pci_probe
	../drivers/net/mlx5/linux/mlx5_os.c:2497
    #5 0x327475f in mlx5_os_net_probe
	../drivers/net/mlx5/linux/mlx5_os.c:2578
    #6 0xc6eac7 in drivers_probe
	../drivers/common/mlx5/mlx5_common.c:937
    #7 0xc6f150 in mlx5_common_dev_probe
	../drivers/common/mlx5/mlx5_common.c:1027
    #8 0xc8ef80 in mlx5_common_pci_probe
	../drivers/common/mlx5/mlx5_common_pci.c:168
    #9 0xc21b67 in rte_pci_probe_one_driver
	../drivers/bus/pci/pci_common.c:312
    #10 0xc2224c in pci_probe_all_drivers
	../drivers/bus/pci/pci_common.c:396
    #11 0xc222f4 in pci_probe ../drivers/bus/pci/pci_common.c:423
    #12 0xb71fff in rte_bus_probe ../lib/eal/common/eal_common_bus.c:78
    #13 0xbe6888 in rte_eal_init ../lib/eal/linux/eal.c:1300
    #14 0x5ec717 in main ../app/test-pmd/testpmd.c:4515
    #15 0x7fe583e38d84 in __libc_start_main (/lib64/libc.so.6+0x3ad84)

As far as why getline() errors, strace gives a hint:
8516  openat(AT_FDCWD, "/sys/class/net/enp130s0f0/phys_port_name",
	O_RDONLY) = 34
8516  fstat(34, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
8516  read(34, 0x621000098900, 4096)    = -1 EOPNOTSUPP (Operation
	not supported)

Fixes: f8a226ed65fa ("net/mlx5: fix sysfs port name translation")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/linux/mlx5_ethdev_os.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/mlx5/linux/mlx5_ethdev_os.c b/drivers/net/mlx5/linux/mlx5_ethdev_os.c
index 473dad3851..4bf70afe4f 100644
--- a/drivers/net/mlx5/linux/mlx5_ethdev_os.c
+++ b/drivers/net/mlx5/linux/mlx5_ethdev_os.c
@@ -1122,6 +1122,7 @@ mlx5_sysfs_switch_info(unsigned int ifindex, struct mlx5_switch_info *info)
 
 		line_size = getline(&port_name, &port_name_size, file);
 		if (line_size < 0) {
+			free(port_name);
 			fclose(file);
 			rte_errno = errno;
 			return -rte_errno;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:58.107234657 +0100
+++ 0037-net-mlx5-fix-leak-in-sysfs-port-name-translation.patch	2023-10-19 00:28:56.305806847 +0100
@@ -1 +1 @@
-From 1296e8d0d0fe74646fbb0339969cf3946f1ce84d Mon Sep 17 00:00:00 2001
+From 9a4ca1230f9b432ca22ecff70696d3644a7a41ce Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1296e8d0d0fe74646fbb0339969cf3946f1ce84d ]
+
@@ -55 +56,0 @@
-Cc: stable@dpdk.org
@@ -64 +65 @@
-index 639e629fe4..dd5a0c546d 100644
+index 473dad3851..4bf70afe4f 100644
@@ -67 +68 @@
-@@ -1083,6 +1083,7 @@ mlx5_sysfs_switch_info(unsigned int ifindex, struct mlx5_switch_info *info)
+@@ -1122,6 +1122,7 @@ mlx5_sysfs_switch_info(unsigned int ifindex, struct mlx5_switch_info *info)

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

* patch 'fib: fix adding default route overwriting entire table' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (35 preceding siblings ...)
  2023-10-18 23:59 ` patch 'net/mlx5: fix leak in sysfs port name translation' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'fib6: fix adding default route as first route' " luca.boccassi
                   ` (2 subsequent siblings)
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Vladimir Medvedkin; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From a4698a6616f1f78d7d817c331f7d0239d04c9224 Mon Sep 17 00:00:00 2001
From: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Date: Mon, 2 Oct 2023 15:11:48 +0000
Subject: [PATCH] fib: fix adding default route overwriting entire table

[ upstream commit ab1b927cd73e96643cfe93dc2493d03c737b59ae ]

When FIB contains any route covering last IP address
(255.255.255.255), upon adding a new default route
the entire FIB table will be overwritten with corresponding
default route next hop.

Previous fix added check for ledge against 0 for case
if default route is added as a first route, however
this check was also erroneously triggered in case when
ledge was wrapped around the address space
(this would happen if FIB contains any route covering
last possible address - 255.255.255.255).

This fix prevents wrap around from happening.

Fixes: 880bc2b5f3bd ("fib: fix adding default route")

Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
---
 lib/librte_fib/dir24_8.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/librte_fib/dir24_8.c b/lib/librte_fib/dir24_8.c
index 181ed03dee..49407ba638 100644
--- a/lib/librte_fib/dir24_8.c
+++ b/lib/librte_fib/dir24_8.c
@@ -392,6 +392,12 @@ modify_fib(struct dir24_8_tbl *dp, struct rte_rib *rib, uint32_t ip,
 				return ret;
 			ledge = redge +
 				(uint32_t)(1ULL << (32 - tmp_depth));
+			/*
+			 * we got to the end of address space
+			 * and wrapped around
+			 */
+			if (ledge == 0)
+				break;
 		} else {
 			redge = ip + (uint32_t)(1ULL << (32 - depth));
 			if (ledge == redge && ledge != 0)
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:58.154503944 +0100
+++ 0038-fib-fix-adding-default-route-overwriting-entire-tabl.patch	2023-10-19 00:28:56.305806847 +0100
@@ -1 +1 @@
-From ab1b927cd73e96643cfe93dc2493d03c737b59ae Mon Sep 17 00:00:00 2001
+From a4698a6616f1f78d7d817c331f7d0239d04c9224 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ab1b927cd73e96643cfe93dc2493d03c737b59ae ]
+
@@ -21 +22,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
- lib/fib/dir24_8.c | 6 ++++++
+ lib/librte_fib/dir24_8.c | 6 ++++++
@@ -28,5 +29,5 @@
-diff --git a/lib/fib/dir24_8.c b/lib/fib/dir24_8.c
-index a61897667b..c739e92304 100644
---- a/lib/fib/dir24_8.c
-+++ b/lib/fib/dir24_8.c
-@@ -388,6 +388,12 @@ modify_fib(struct dir24_8_tbl *dp, struct rte_rib *rib, uint32_t ip,
+diff --git a/lib/librte_fib/dir24_8.c b/lib/librte_fib/dir24_8.c
+index 181ed03dee..49407ba638 100644
+--- a/lib/librte_fib/dir24_8.c
++++ b/lib/librte_fib/dir24_8.c
+@@ -392,6 +392,12 @@ modify_fib(struct dir24_8_tbl *dp, struct rte_rib *rib, uint32_t ip,

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

* patch 'fib6: fix adding default route as first route' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (36 preceding siblings ...)
  2023-10-18 23:59 ` patch 'fib: fix adding default route overwriting entire table' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'net/bonding: fix link status callback stop' " luca.boccassi
  2023-10-18 23:59 ` patch 'app/procinfo: remove unnecessary rte_malloc' " luca.boccassi
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Vladimir Medvedkin; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From b4b6c8753a5e72025441650b15e79e431916bae3 Mon Sep 17 00:00:00 2001
From: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Date: Mon, 2 Oct 2023 15:12:01 +0000
Subject: [PATCH] fib6: fix adding default route as first route

[ upstream commit fd66617c5774a2869cbb69f86494d1b4803890fc ]

Currently when adding default route as first route
it is not added and no error is reported.
When we enter the loop over an address range in
the general case we will eventually reach the check
for when the range has ended, and exit the loop.
However when adding default route as first route,
since address range covered begins and ends at zero
this also triggers loop exit without writing to the table.

Fixed by adding check for default route,
i.e. both ledge and redge are equal to 0::0.

Bugzilla ID: 1272
Fixes: c3e12e0f0354 ("fib: add dataplane algorithm for IPv6")

Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
---
 lib/librte_fib/trie.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/lib/librte_fib/trie.c b/lib/librte_fib/trie.c
index 044095bf03..b096743086 100644
--- a/lib/librte_fib/trie.c
+++ b/lib/librte_fib/trie.c
@@ -456,6 +456,14 @@ get_nxt_net(uint8_t *ip, uint8_t depth)
 	}
 }
 
+static int
+v6_addr_is_zero(const uint8_t ip[RTE_FIB6_IPV6_ADDR_SIZE])
+{
+	uint8_t ip_addr[RTE_FIB6_IPV6_ADDR_SIZE] = {0};
+
+	return rte_rib6_is_equal(ip, ip_addr);
+}
+
 static int
 modify_dp(struct rte_trie_tbl *dp, struct rte_rib6 *rib,
 	const uint8_t ip[RTE_FIB6_IPV6_ADDR_SIZE],
@@ -489,11 +497,19 @@ modify_dp(struct rte_trie_tbl *dp, struct rte_rib6 *rib,
 				return ret;
 			get_nxt_net(redge, tmp_depth);
 			rte_rib6_copy_addr(ledge, redge);
+			/*
+			 * we got to the end of address space
+			 * and wrapped around
+			 */
+			if (v6_addr_is_zero(ledge))
+				break;
 		} else {
 			rte_rib6_copy_addr(redge, ip);
 			get_nxt_net(redge, depth);
-			if (rte_rib6_is_equal(ledge, redge))
+			if (rte_rib6_is_equal(ledge, redge) &&
+					!v6_addr_is_zero(ledge))
 				break;
+
 			ret = install_to_dp(dp, ledge, redge,
 				next_hop);
 			if (ret != 0)
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:58.200145676 +0100
+++ 0039-fib6-fix-adding-default-route-as-first-route.patch	2023-10-19 00:28:56.309806953 +0100
@@ -1 +1 @@
-From fd66617c5774a2869cbb69f86494d1b4803890fc Mon Sep 17 00:00:00 2001
+From b4b6c8753a5e72025441650b15e79e431916bae3 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit fd66617c5774a2869cbb69f86494d1b4803890fc ]
+
@@ -20 +21,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
- lib/fib/trie.c | 18 +++++++++++++++++-
+ lib/librte_fib/trie.c | 18 +++++++++++++++++-
@@ -27,5 +28,5 @@
-diff --git a/lib/fib/trie.c b/lib/fib/trie.c
-index 3e780afdaf..09470e7287 100644
---- a/lib/fib/trie.c
-+++ b/lib/fib/trie.c
-@@ -451,6 +451,14 @@ get_nxt_net(uint8_t *ip, uint8_t depth)
+diff --git a/lib/librte_fib/trie.c b/lib/librte_fib/trie.c
+index 044095bf03..b096743086 100644
+--- a/lib/librte_fib/trie.c
++++ b/lib/librte_fib/trie.c
+@@ -456,6 +456,14 @@ get_nxt_net(uint8_t *ip, uint8_t depth)
@@ -46 +47 @@
-@@ -484,11 +492,19 @@ modify_dp(struct rte_trie_tbl *dp, struct rte_rib6 *rib,
+@@ -489,11 +497,19 @@ modify_dp(struct rte_trie_tbl *dp, struct rte_rib6 *rib,

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

* patch 'net/bonding: fix link status callback stop' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (37 preceding siblings ...)
  2023-10-18 23:59 ` patch 'fib6: fix adding default route as first route' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-10-18 23:59 ` patch 'app/procinfo: remove unnecessary rte_malloc' " luca.boccassi
  39 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: David Marchand; +Cc: Chengwen Feng, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From f709931ab05eb6ce1b98ce0820ff03460e900f48 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Mon, 16 Oct 2023 10:47:43 +0200
Subject: [PATCH] net/bonding: fix link status callback stop

[ upstream commit 615bd385b93e89e062b4e134e9cc09a79289a0f6 ]

If a bonding port gets released, a link status alarm callback still
referenced the ethdev port that may be reused later.
Cancel this callback when stopping the port.

Bugzilla ID: 1301
Fixes: a45b288ef21a ("bond: support link status polling")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/bonding/rte_eth_bond_pmd.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 3dcdae72b6..0c9a1df000 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -2114,6 +2114,10 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)
 	eth_dev->data->dev_link.link_status = ETH_LINK_DOWN;
 	eth_dev->data->dev_started = 0;
 
+	if (internals->link_status_polling_enabled) {
+		rte_eal_alarm_cancel(bond_ethdev_slave_link_status_change_monitor,
+			(void *)&rte_eth_devices[internals->port_id]);
+	}
 	internals->link_status_polling_enabled = 0;
 	for (i = 0; i < internals->slave_count; i++) {
 		uint16_t slave_id = internals->slaves[i].port_id;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:58.246966078 +0100
+++ 0040-net-bonding-fix-link-status-callback-stop.patch	2023-10-19 00:28:56.309806953 +0100
@@ -1 +1 @@
-From 615bd385b93e89e062b4e134e9cc09a79289a0f6 Mon Sep 17 00:00:00 2001
+From f709931ab05eb6ce1b98ce0820ff03460e900f48 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 615bd385b93e89e062b4e134e9cc09a79289a0f6 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index aa7c911f19..c40d18d128 100644
+index 3dcdae72b6..0c9a1df000 100644
@@ -25,2 +26,2 @@
-@@ -2164,6 +2164,10 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)
- 	eth_dev->data->dev_link.link_status = RTE_ETH_LINK_DOWN;
+@@ -2114,6 +2114,10 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)
+ 	eth_dev->data->dev_link.link_status = ETH_LINK_DOWN;
@@ -30 +31 @@
-+		rte_eal_alarm_cancel(bond_ethdev_member_link_status_change_monitor,
++		rte_eal_alarm_cancel(bond_ethdev_slave_link_status_change_monitor,
@@ -34,2 +35,2 @@
- 	for (i = 0; i < internals->member_count; i++) {
- 		uint16_t member_id = internals->members[i].port_id;
+ 	for (i = 0; i < internals->slave_count; i++) {
+ 		uint16_t slave_id = internals->slaves[i].port_id;

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

* patch 'app/procinfo: remove unnecessary rte_malloc' has been queued to stable release 20.11.10
  2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
                   ` (38 preceding siblings ...)
  2023-10-18 23:59 ` patch 'net/bonding: fix link status callback stop' " luca.boccassi
@ 2023-10-18 23:59 ` luca.boccassi
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
  39 siblings, 1 reply; 111+ messages in thread
From: luca.boccassi @ 2023-10-18 23:59 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Chengwen Feng, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/8488f58ebf4803eb153156c1100f86d9444a3825

Thanks.

Luca Boccassi

---
From 8488f58ebf4803eb153156c1100f86d9444a3825 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Mon, 7 Aug 2023 13:43:10 -0700
Subject: [PATCH] app/procinfo: remove unnecessary rte_malloc

[ upstream commit cfe29906c69bedb5f87dadcc02703ce46e80f37e ]

Better to use malloc() which is faster than rte_malloc()
and has more error checking, as is done already for statistics.

Fixes: 077c546704da ("app/proc_info: add metrics displaying")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
---
 app/proc-info/main.c | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/app/proc-info/main.c b/app/proc-info/main.c
index 40bfbefad8..befb90a2be 100644
--- a/app/proc-info/main.c
+++ b/app/proc-info/main.c
@@ -19,7 +19,6 @@
 #include <rte_common.h>
 #include <rte_debug.h>
 #include <rte_ethdev.h>
-#include <rte_malloc.h>
 #include <rte_memory.h>
 #include <rte_memzone.h>
 #include <rte_launch.h>
@@ -602,24 +601,23 @@ metrics_display(int port_id)
 		return;
 	}
 
-	metrics = rte_malloc("proc_info_metrics",
-		sizeof(struct rte_metric_value) * len, 0);
+	metrics = malloc(sizeof(struct rte_metric_value) * len);
 	if (metrics == NULL) {
 		printf("Cannot allocate memory for metrics\n");
 		return;
 	}
 
-	names =  rte_malloc(NULL, sizeof(struct rte_metric_name) * len, 0);
+	names = malloc(sizeof(struct rte_metric_name) * len);
 	if (names == NULL) {
 		printf("Cannot allocate memory for metrics names\n");
-		rte_free(metrics);
+		free(metrics);
 		return;
 	}
 
 	if (len != rte_metrics_get_names(names, len)) {
 		printf("Cannot get metrics names\n");
-		rte_free(metrics);
-		rte_free(names);
+		free(metrics);
+		free(names);
 		return;
 	}
 
@@ -631,8 +629,8 @@ metrics_display(int port_id)
 	ret = rte_metrics_get_values(port_id, metrics, len);
 	if (ret < 0 || ret > len) {
 		printf("Cannot get metrics values\n");
-		rte_free(metrics);
-		rte_free(names);
+		free(metrics);
+		free(names);
 		return;
 	}
 
@@ -641,8 +639,8 @@ metrics_display(int port_id)
 		printf("%s: %"PRIu64"\n", names[i].name, metrics[i].value);
 
 	printf("%s############################\n", nic_stats_border);
-	rte_free(metrics);
-	rte_free(names);
+	free(metrics);
+	free(names);
 }
 
 static void
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-19 00:28:58.297301521 +0100
+++ 0041-app-procinfo-remove-unnecessary-rte_malloc.patch	2023-10-19 00:28:56.313807058 +0100
@@ -1 +1 @@
-From cfe29906c69bedb5f87dadcc02703ce46e80f37e Mon Sep 17 00:00:00 2001
+From 8488f58ebf4803eb153156c1100f86d9444a3825 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit cfe29906c69bedb5f87dadcc02703ce46e80f37e ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index af4c1d8bcb..ce53bc30df 100644
+index 40bfbefad8..befb90a2be 100644
@@ -30 +31 @@
-@@ -909,24 +908,23 @@ metrics_display(int port_id)
+@@ -602,24 +601,23 @@ metrics_display(int port_id)
@@ -60 +61 @@
-@@ -938,8 +936,8 @@ metrics_display(int port_id)
+@@ -631,8 +629,8 @@ metrics_display(int port_id)
@@ -71 +72 @@
-@@ -948,8 +946,8 @@ metrics_display(int port_id)
+@@ -641,8 +639,8 @@ metrics_display(int port_id)
@@ -80 +80,0 @@
- #endif
@@ -81,0 +82 @@
+ static void

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

* RE: patch 'test/crypto: skip some synchronous tests with CPU crypto' has been queued to stable release 20.11.10
  2023-10-18 23:59 ` patch 'test/crypto: skip some synchronous tests with CPU crypto' " luca.boccassi
@ 2023-10-19 10:22   ` Power, Ciara
  2023-10-19 10:28   ` Power, Ciara
  1 sibling, 0 replies; 111+ messages in thread
From: Power, Ciara @ 2023-10-19 10:22 UTC (permalink / raw)
  To: luca.boccassi, Dooley, Brian; +Cc: stable

Hi Luca,


> -----Original Message-----
> From: luca.boccassi@gmail.com <luca.boccassi@gmail.com>
> Sent: Thursday, October 19, 2023 12:59 AM
> To: Dooley, Brian <brian.dooley@intel.com>
> Cc: Power, Ciara <ciara.power@intel.com>; dpdk stable <stable@dpdk.org>
> Subject: patch 'test/crypto: skip some synchronous tests with CPU crypto' has
> been queued to stable release 20.11.10
> 
> Hi,
> 
> FYI, your patch has been queued to stable release 20.11.10
> 
> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> It will be pushed if I get no objections before 10/21/23. So please shout if
> anyone has objections.

This upstream patch is not applicable to 16.11 (the functions do not exist yet).
The changes below are redundant, as those Kasumi test functions already have the required checks.

Thanks,
Ciara



> 
> 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/bluca/dpdk-stable
> 
> This queued commit can be viewed at:
> https://github.com/bluca/dpdk-
> stable/commit/d513b356f406691db94c8e141dd3c594c991d0b6
> 
> Thanks.
> 
> Luca Boccassi
> 
> ---
> From d513b356f406691db94c8e141dd3c594c991d0b6 Mon Sep 17
> 00:00:00 2001
> From: Brian Dooley <brian.dooley@intel.com>
> Date: Tue, 19 Sep 2023 10:42:17 +0000
> Subject: [PATCH] test/crypto: skip some synchronous tests with CPU crypto
> 
> [ upstream commit 38318ce05459391344acb53a73c9a99537a0bd0f ]
> 
> Some synchronous tests are not supported for CPU crypto and need to be
> skipped. This commit adds in extra skips for these tests.
> 
> Fixes: 55ab4a8c4fb5 ("test/crypto: disable wireless cases for CPU crypto API")
> 
> Signed-off-by: Brian Dooley <brian.dooley@intel.com>
> Acked-by: Ciara Power <ciara.power@intel.com>
> ---
>  app/test/test_cryptodev.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c index
> 2e76763e09..694ba45e85 100644
> --- a/app/test/test_cryptodev.c
> +++ b/app/test/test_cryptodev.c
> @@ -3673,6 +3673,9 @@ test_kasumi_decryption(const struct
> kasumi_test_data *tdata)
>  	unsigned ciphertext_len;
>  	struct rte_cryptodev_info dev_info;
> 
> +	if (gbl_action_type == RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO)
> +		return TEST_SKIPPED;
> +
>  	rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info);
>  	uint64_t feat_flags = dev_info.feature_flags;
> 
> @@ -4997,6 +5000,9 @@ test_kasumi_auth_cipher(const struct
> kasumi_test_data *tdata,
>  			&cap_idx) == NULL)
>  		return -ENOTSUP;
> 
> +	if (gbl_action_type == RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO)
> +		return TEST_SKIPPED;
> +
>  	rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info);
> 
>  	uint64_t feat_flags = dev_info.feature_flags;
> --
> 2.39.2
> 
> ---
>   Diff of the applied patch vs upstream commit (please double-check if non-
> empty:
> ---
> --- -	2023-10-19 00:28:57.347017140 +0100
> +++ 0022-test-crypto-skip-some-synchronous-tests-with-CPU-cry.patch
> 	2023-10-19 00:28:56.261805684 +0100
> @@ -1 +1 @@
> -From 38318ce05459391344acb53a73c9a99537a0bd0f Mon Sep 17
> 00:00:00 2001
> +From d513b356f406691db94c8e141dd3c594c991d0b6 Mon Sep 17
> 00:00:00 2001
> @@ -5,0 +6,2 @@
> +[ upstream commit 38318ce05459391344acb53a73c9a99537a0bd0f ]
> +
> @@ -10 +11,0 @@
> -Cc: stable@dpdk.org
> @@ -19 +20 @@
> -index 8fc90342de..aff1c8e55b 100644
> +index 2e76763e09..694ba45e85 100644
> @@ -22,3 +23,3 @@
> -@@ -6394,6 +6394,9 @@ test_zuc_auth_cipher(const struct
> wireless_test_data *tdata,
> - 			tdata->digest.len) < 0)
> - 		return TEST_SKIPPED;
> +@@ -3673,6 +3673,9 @@ test_kasumi_decryption(const struct
> kasumi_test_data *tdata)
> + 	unsigned ciphertext_len;
> + 	struct rte_cryptodev_info dev_info;
> @@ -30 +30,0 @@
> -
> @@ -32,3 +32,4 @@
> -@@ -7829,6 +7832,9 @@ test_mixed_auth_cipher(const struct
> mixed_cipher_auth_test_data *tdata,
> - 	if (global_api_test_type == CRYPTODEV_RAW_API_TEST)
> - 		return TEST_SKIPPED;
> +
> +@@ -4997,6 +5000,9 @@ test_kasumi_auth_cipher(const struct
> kasumi_test_data *tdata,
> + 			&cap_idx) == NULL)
> + 		return -ENOTSUP;

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

* RE: patch 'test/crypto: skip some synchronous tests with CPU crypto' has been queued to stable release 20.11.10
  2023-10-18 23:59 ` patch 'test/crypto: skip some synchronous tests with CPU crypto' " luca.boccassi
  2023-10-19 10:22   ` Power, Ciara
@ 2023-10-19 10:28   ` Power, Ciara
  1 sibling, 0 replies; 111+ messages in thread
From: Power, Ciara @ 2023-10-19 10:28 UTC (permalink / raw)
  To: luca.boccassi, Dooley, Brian; +Cc: stable




> -----Original Message-----
> From: Power, Ciara
> Sent: Thursday, October 19, 2023 11:22 AM
> To: luca.boccassi@gmail.com; Dooley, Brian <brian.dooley@intel.com>
> Cc: stable@dpdk.org
> Subject: RE: patch 'test/crypto: skip some synchronous tests with CPU crypto'
> has been queued to stable release 20.11.10
> 
> Hi Luca,
> 
> 
> > -----Original Message-----
> > From: luca.boccassi@gmail.com <luca.boccassi@gmail.com>
> > Sent: Thursday, October 19, 2023 12:59 AM
> > To: Dooley, Brian <brian.dooley@intel.com>
> > Cc: Power, Ciara <ciara.power@intel.com>; dpdk stable
> > <stable@dpdk.org>
> > Subject: patch 'test/crypto: skip some synchronous tests with CPU
> > crypto' has been queued to stable release 20.11.10
> >
> > Hi,
> >
> > FYI, your patch has been queued to stable release 20.11.10
> >
> > Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> > It will be pushed if I get no objections before 10/21/23. So please
> > shout if anyone has objections.
> 
> This upstream patch is not applicable to 16.11 (the functions do not exist yet).
> The changes below are redundant, as those Kasumi test functions already
> have the required checks.

Apologies Luca, I misread the DPDK version number somehow..

The fixes are needed for 20.11, but the fixes shown in diff before are for the wrong functions.
I will send a patch for 20.11 directly for this.

Thanks,
Ciara



> 
> Thanks,
> Ciara
> 
> 
> 
> >
> > 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/bluca/dpdk-stable
> >
> > This queued commit can be viewed at:
> > https://github.com/bluca/dpdk-
> > stable/commit/d513b356f406691db94c8e141dd3c594c991d0b6
> >
> > Thanks.
> >
> > Luca Boccassi
> >
> > ---
> > From d513b356f406691db94c8e141dd3c594c991d0b6 Mon Sep 17
> > 00:00:00 2001
> > From: Brian Dooley <brian.dooley@intel.com>
> > Date: Tue, 19 Sep 2023 10:42:17 +0000
> > Subject: [PATCH] test/crypto: skip some synchronous tests with CPU
> > crypto
> >
> > [ upstream commit 38318ce05459391344acb53a73c9a99537a0bd0f ]
> >
> > Some synchronous tests are not supported for CPU crypto and need to be
> > skipped. This commit adds in extra skips for these tests.
> >
> > Fixes: 55ab4a8c4fb5 ("test/crypto: disable wireless cases for CPU
> > crypto API")
> >
> > Signed-off-by: Brian Dooley <brian.dooley@intel.com>
> > Acked-by: Ciara Power <ciara.power@intel.com>
> > ---
> >  app/test/test_cryptodev.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
> >
> > diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
> > index
> > 2e76763e09..694ba45e85 100644
> > --- a/app/test/test_cryptodev.c
> > +++ b/app/test/test_cryptodev.c
> > @@ -3673,6 +3673,9 @@ test_kasumi_decryption(const struct
> > kasumi_test_data *tdata)
> >  	unsigned ciphertext_len;
> >  	struct rte_cryptodev_info dev_info;
> >
> > +	if (gbl_action_type == RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO)
> > +		return TEST_SKIPPED;
> > +
> >  	rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info);
> >  	uint64_t feat_flags = dev_info.feature_flags;
> >
> > @@ -4997,6 +5000,9 @@ test_kasumi_auth_cipher(const struct
> > kasumi_test_data *tdata,
> >  			&cap_idx) == NULL)
> >  		return -ENOTSUP;
> >
> > +	if (gbl_action_type == RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO)
> > +		return TEST_SKIPPED;
> > +
> >  	rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info);
> >
> >  	uint64_t feat_flags = dev_info.feature_flags;
> > --
> > 2.39.2
> >
> > ---
> >   Diff of the applied patch vs upstream commit (please double-check if
> > non-
> > empty:
> > ---
> > --- -	2023-10-19 00:28:57.347017140 +0100
> > +++ 0022-test-crypto-skip-some-synchronous-tests-with-CPU-cry.patch
> > 	2023-10-19 00:28:56.261805684 +0100
> > @@ -1 +1 @@
> > -From 38318ce05459391344acb53a73c9a99537a0bd0f Mon Sep 17
> > 00:00:00 2001
> > +From d513b356f406691db94c8e141dd3c594c991d0b6 Mon Sep 17
> > 00:00:00 2001
> > @@ -5,0 +6,2 @@
> > +[ upstream commit 38318ce05459391344acb53a73c9a99537a0bd0f ]
> > +
> > @@ -10 +11,0 @@
> > -Cc: stable@dpdk.org
> > @@ -19 +20 @@
> > -index 8fc90342de..aff1c8e55b 100644
> > +index 2e76763e09..694ba45e85 100644
> > @@ -22,3 +23,3 @@
> > -@@ -6394,6 +6394,9 @@ test_zuc_auth_cipher(const struct
> > wireless_test_data *tdata,
> > - 			tdata->digest.len) < 0)
> > - 		return TEST_SKIPPED;
> > +@@ -3673,6 +3673,9 @@ test_kasumi_decryption(const struct
> > kasumi_test_data *tdata)
> > + 	unsigned ciphertext_len;
> > + 	struct rte_cryptodev_info dev_info;
> > @@ -30 +30,0 @@
> > -
> > @@ -32,3 +32,4 @@
> > -@@ -7829,6 +7832,9 @@ test_mixed_auth_cipher(const struct
> > mixed_cipher_auth_test_data *tdata,
> > - 	if (global_api_test_type == CRYPTODEV_RAW_API_TEST)
> > - 		return TEST_SKIPPED;
> > +
> > +@@ -4997,6 +5000,9 @@ test_kasumi_auth_cipher(const struct
> > kasumi_test_data *tdata,
> > + 			&cap_idx) == NULL)
> > + 		return -ENOTSUP;

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

* patch 'malloc: remove return from void functions' has been queued to stable release 20.11.10
  2023-10-18 23:59 ` patch 'app/procinfo: remove unnecessary rte_malloc' " luca.boccassi
@ 2023-11-08 19:24   ` luca.boccassi
  2023-11-08 19:25     ` patch 'eventdev: fix device pointer for vdev-based devices' " luca.boccassi
                       ` (35 more replies)
  0 siblings, 36 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:24 UTC (permalink / raw)
  To: Tyler Retzlaff; +Cc: Morten Brørup, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/3c037d05500c38b7accf25a4ef00762ef019f625

Thanks.

Luca Boccassi

---
From 3c037d05500c38b7accf25a4ef00762ef019f625 Mon Sep 17 00:00:00 2001
From: Tyler Retzlaff <roretzla@linux.microsoft.com>
Date: Tue, 17 Oct 2023 06:03:39 -0700
Subject: [PATCH] malloc: remove return from void functions
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 732ba1be28f75c87aa2616660d34ed0a278c7ae6 ]

Remove return from rte_free and eal_free_no_trace both functions are
declared to have a return type of void so they shouldn't return a value.

Fixes: 52f409d614a0 ("trace: add memory tracepoints")

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
---
 lib/librte_eal/common/rte_malloc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/librte_eal/common/rte_malloc.c b/lib/librte_eal/common/rte_malloc.c
index 9d39e58c08..684af4e1fc 100644
--- a/lib/librte_eal/common/rte_malloc.c
+++ b/lib/librte_eal/common/rte_malloc.c
@@ -46,13 +46,13 @@ mem_free(void *addr, const bool trace_ena)
 void
 rte_free(void *addr)
 {
-	return mem_free(addr, true);
+	mem_free(addr, true);
 }
 
 void
 eal_free_no_trace(void *addr)
 {
-	return mem_free(addr, false);
+	mem_free(addr, false);
 }
 
 static void *
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:51.952816220 +0000
+++ 0001-malloc-remove-return-from-void-functions.patch	2023-11-08 19:23:51.713395051 +0000
@@ -1 +1 @@
-From 732ba1be28f75c87aa2616660d34ed0a278c7ae6 Mon Sep 17 00:00:00 2001
+From 3c037d05500c38b7accf25a4ef00762ef019f625 Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 732ba1be28f75c87aa2616660d34ed0a278c7ae6 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
- lib/eal/common/rte_malloc.c | 4 ++--
+ lib/librte_eal/common/rte_malloc.c | 4 ++--
@@ -21,5 +22,5 @@
-diff --git a/lib/eal/common/rte_malloc.c b/lib/eal/common/rte_malloc.c
-index ebafef3f6c..9db0c399ae 100644
---- a/lib/eal/common/rte_malloc.c
-+++ b/lib/eal/common/rte_malloc.c
-@@ -41,13 +41,13 @@ mem_free(void *addr, const bool trace_ena)
+diff --git a/lib/librte_eal/common/rte_malloc.c b/lib/librte_eal/common/rte_malloc.c
+index 9d39e58c08..684af4e1fc 100644
+--- a/lib/librte_eal/common/rte_malloc.c
++++ b/lib/librte_eal/common/rte_malloc.c
+@@ -46,13 +46,13 @@ mem_free(void *addr, const bool trace_ena)

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

* patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'eventdev: fix missing driver names in info struct' " luca.boccassi
                       ` (34 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From e4af517678060237c39666b0cd50734b791c82a3 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Wed, 18 Oct 2023 14:39:31 +0100
Subject: [PATCH] eventdev: fix device pointer for vdev-based devices

[ upstream commit 928b5c701f254c64a7adb0051c0cfd25e8365584 ]

The eventdevs based on vdevs, rather than on e.g. HW PCI devices, were,
as a rule, not setting the ".dev" pointer in the eventdev structure.
This caused issues as a NULL pointer was returned in calls to info_get,
triggering crashes if the pointer is passed unchecked to e.g.
rte_dev_name() to print out the name of an event device.

Most effective, and future-proofed fix, is to not rely on the eventdev
drivers to set the pointer themselves, but to change the vdev init
function to take the vdev struct as parameter, and set the "dev" pointer
centrally on init. This allows us to fix all drivers in one go, enforced
by compiler error if the parameter is missing.

Fixes: aaa4a221da26 ("event/sw: add new software-only eventdev driver")
Fixes: 46a186b1f0c5 ("event/dsw: add device registration and build system")
Fixes: bbbb929da5e6 ("event/skeleton: add skeleton eventdev driver")
Fixes: 3c7f3dcfb099 ("event/opdl: add PMD main body and helper function")
Fixes: 9caac5dd1e7f ("event/dpaa: introduce PMD")
Fixes: 8a5d7a8ec74b ("event/dpaa2: initialize device")
Fixes: 34498de6000f ("event/octeontx: add octeontx eventdev driver")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 drivers/event/dpaa/dpaa_eventdev.c          | 6 +++---
 drivers/event/dpaa2/dpaa2_eventdev.c        | 6 +++---
 drivers/event/dsw/dsw_evdev.c               | 2 +-
 drivers/event/octeontx/ssovf_evdev.c        | 2 +-
 drivers/event/opdl/opdl_evdev.c             | 2 +-
 drivers/event/skeleton/skeleton_eventdev.c  | 6 +++---
 drivers/event/sw/sw_evdev.c                 | 2 +-
 lib/librte_eventdev/rte_eventdev_pmd_vdev.h | 3 ++-
 8 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c
index 01ddd0eb63..cdd5763e2f 100644
--- a/drivers/event/dpaa/dpaa_eventdev.c
+++ b/drivers/event/dpaa/dpaa_eventdev.c
@@ -991,14 +991,14 @@ dpaa_event_check_flags(const char *params)
 }
 
 static int
-dpaa_event_dev_create(const char *name, const char *params)
+dpaa_event_dev_create(const char *name, const char *params, struct rte_vdev_device *vdev)
 {
 	struct rte_eventdev *eventdev;
 	struct dpaa_eventdev *priv;
 
 	eventdev = rte_event_pmd_vdev_init(name,
 					   sizeof(struct dpaa_eventdev),
-					   rte_socket_id());
+					   rte_socket_id(), vdev);
 	if (eventdev == NULL) {
 		DPAA_EVENTDEV_ERR("Failed to create eventdev vdev %s", name);
 		goto fail;
@@ -1046,7 +1046,7 @@ dpaa_event_dev_probe(struct rte_vdev_device *vdev)
 
 	params = rte_vdev_device_args(vdev);
 
-	return dpaa_event_dev_create(name, params);
+	return dpaa_event_dev_create(name, params, vdev);
 }
 
 static int
diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c
index eeb2494bd0..d329796f7d 100644
--- a/drivers/event/dpaa2/dpaa2_eventdev.c
+++ b/drivers/event/dpaa2/dpaa2_eventdev.c
@@ -1082,7 +1082,7 @@ dpaa2_eventdev_setup_dpci(struct dpaa2_dpci_dev *dpci_dev,
 }
 
 static int
-dpaa2_eventdev_create(const char *name)
+dpaa2_eventdev_create(const char *name, struct rte_vdev_device *vdev)
 {
 	struct rte_eventdev *eventdev;
 	struct dpaa2_eventdev *priv;
@@ -1092,7 +1092,7 @@ dpaa2_eventdev_create(const char *name)
 
 	eventdev = rte_event_pmd_vdev_init(name,
 					   sizeof(struct dpaa2_eventdev),
-					   rte_socket_id());
+					   rte_socket_id(), vdev);
 	if (eventdev == NULL) {
 		DPAA2_EVENTDEV_ERR("Failed to create Event device %s", name);
 		goto fail;
@@ -1184,7 +1184,7 @@ dpaa2_eventdev_probe(struct rte_vdev_device *vdev)
 
 	name = rte_vdev_device_name(vdev);
 	DPAA2_EVENTDEV_INFO("Initializing %s", name);
-	return dpaa2_eventdev_create(name);
+	return dpaa2_eventdev_create(name, vdev);
 }
 
 static int
diff --git a/drivers/event/dsw/dsw_evdev.c b/drivers/event/dsw/dsw_evdev.c
index ee3f441c5a..d50e88debf 100644
--- a/drivers/event/dsw/dsw_evdev.c
+++ b/drivers/event/dsw/dsw_evdev.c
@@ -406,7 +406,7 @@ dsw_probe(struct rte_vdev_device *vdev)
 	name = rte_vdev_device_name(vdev);
 
 	dev = rte_event_pmd_vdev_init(name, sizeof(struct dsw_evdev),
-				      rte_socket_id());
+				      rte_socket_id(), vdev);
 	if (dev == NULL)
 		return -EFAULT;
 
diff --git a/drivers/event/octeontx/ssovf_evdev.c b/drivers/event/octeontx/ssovf_evdev.c
index e60a7dc69e..462039c9ae 100644
--- a/drivers/event/octeontx/ssovf_evdev.c
+++ b/drivers/event/octeontx/ssovf_evdev.c
@@ -810,7 +810,7 @@ ssovf_vdev_probe(struct rte_vdev_device *vdev)
 	}
 
 	eventdev = rte_event_pmd_vdev_init(name, sizeof(struct ssovf_evdev),
-				rte_socket_id());
+				rte_socket_id(), vdev);
 	if (eventdev == NULL) {
 		ssovf_log_err("Failed to create eventdev vdev %s", name);
 		return -ENOMEM;
diff --git a/drivers/event/opdl/opdl_evdev.c b/drivers/event/opdl/opdl_evdev.c
index fa1b9852a3..6ad12048ea 100644
--- a/drivers/event/opdl/opdl_evdev.c
+++ b/drivers/event/opdl/opdl_evdev.c
@@ -694,7 +694,7 @@ opdl_probe(struct rte_vdev_device *vdev)
 		}
 	}
 	dev = rte_event_pmd_vdev_init(name,
-			sizeof(struct opdl_evdev), socket_id);
+			sizeof(struct opdl_evdev), socket_id, vdev);
 
 	if (dev == NULL) {
 		PMD_DRV_LOG(ERR, "eventdev vdev init() failed");
diff --git a/drivers/event/skeleton/skeleton_eventdev.c b/drivers/event/skeleton/skeleton_eventdev.c
index 6fd1102596..5ad30fc1b9 100644
--- a/drivers/event/skeleton/skeleton_eventdev.c
+++ b/drivers/event/skeleton/skeleton_eventdev.c
@@ -426,12 +426,12 @@ RTE_PMD_REGISTER_PCI_TABLE(event_skeleton_pci, pci_id_skeleton_map);
 /* VDEV based event device */
 
 static int
-skeleton_eventdev_create(const char *name, int socket_id)
+skeleton_eventdev_create(const char *name, int socket_id, struct rte_vdev_device *vdev)
 {
 	struct rte_eventdev *eventdev;
 
 	eventdev = rte_event_pmd_vdev_init(name,
-			sizeof(struct skeleton_eventdev), socket_id);
+			sizeof(struct skeleton_eventdev), socket_id, vdev);
 	if (eventdev == NULL) {
 		PMD_DRV_ERR("Failed to create eventdev vdev %s", name);
 		goto fail;
@@ -456,7 +456,7 @@ skeleton_eventdev_probe(struct rte_vdev_device *vdev)
 	name = rte_vdev_device_name(vdev);
 	RTE_LOG(INFO, PMD, "Initializing %s on NUMA node %d\n", name,
 			rte_socket_id());
-	return skeleton_eventdev_create(name, rte_socket_id());
+	return skeleton_eventdev_create(name, rte_socket_id(), vdev);
 }
 
 static int
diff --git a/drivers/event/sw/sw_evdev.c b/drivers/event/sw/sw_evdev.c
index baeb982794..598d7eee21 100644
--- a/drivers/event/sw/sw_evdev.c
+++ b/drivers/event/sw/sw_evdev.c
@@ -1077,7 +1077,7 @@ sw_probe(struct rte_vdev_device *vdev)
 			min_burst_size, deq_burst_size, refill_once);
 
 	dev = rte_event_pmd_vdev_init(name,
-			sizeof(struct sw_evdev), socket_id);
+			sizeof(struct sw_evdev), socket_id, vdev);
 	if (dev == NULL) {
 		SW_LOG_ERR("eventdev vdev init() failed");
 		return -EFAULT;
diff --git a/lib/librte_eventdev/rte_eventdev_pmd_vdev.h b/lib/librte_eventdev/rte_eventdev_pmd_vdev.h
index ff79d82530..99cd5a1112 100644
--- a/lib/librte_eventdev/rte_eventdev_pmd_vdev.h
+++ b/lib/librte_eventdev/rte_eventdev_pmd_vdev.h
@@ -47,7 +47,7 @@ extern "C" {
  */
 static inline struct rte_eventdev *
 rte_event_pmd_vdev_init(const char *name, size_t dev_private_size,
-		int socket_id)
+		int socket_id, struct rte_vdev_device *vdev)
 {
 
 	struct rte_eventdev *eventdev;
@@ -69,6 +69,7 @@ rte_event_pmd_vdev_init(const char *name, size_t dev_private_size,
 			rte_panic("Cannot allocate memzone for private device"
 					" data");
 	}
+	eventdev->dev = &vdev->device;
 
 	return eventdev;
 }
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.007028801 +0000
+++ 0002-eventdev-fix-device-pointer-for-vdev-based-devices.patch	2023-11-08 19:23:51.721395216 +0000
@@ -1 +1 @@
-From 928b5c701f254c64a7adb0051c0cfd25e8365584 Mon Sep 17 00:00:00 2001
+From e4af517678060237c39666b0cd50734b791c82a3 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 928b5c701f254c64a7adb0051c0cfd25e8365584 ]
+
@@ -25 +26,0 @@
-Cc: stable@dpdk.org
@@ -30,8 +31,8 @@
- drivers/event/dpaa/dpaa_eventdev.c         | 6 +++---
- drivers/event/dpaa2/dpaa2_eventdev.c       | 6 +++---
- drivers/event/dsw/dsw_evdev.c              | 2 +-
- drivers/event/octeontx/ssovf_evdev.c       | 2 +-
- drivers/event/opdl/opdl_evdev.c            | 2 +-
- drivers/event/skeleton/skeleton_eventdev.c | 6 +++---
- drivers/event/sw/sw_evdev.c                | 2 +-
- lib/eventdev/eventdev_pmd_vdev.h           | 3 ++-
+ drivers/event/dpaa/dpaa_eventdev.c          | 6 +++---
+ drivers/event/dpaa2/dpaa2_eventdev.c        | 6 +++---
+ drivers/event/dsw/dsw_evdev.c               | 2 +-
+ drivers/event/octeontx/ssovf_evdev.c        | 2 +-
+ drivers/event/opdl/opdl_evdev.c             | 2 +-
+ drivers/event/skeleton/skeleton_eventdev.c  | 6 +++---
+ drivers/event/sw/sw_evdev.c                 | 2 +-
+ lib/librte_eventdev/rte_eventdev_pmd_vdev.h | 3 ++-
@@ -41 +42 @@
-index f615da3813..46a9b88c73 100644
+index 01ddd0eb63..cdd5763e2f 100644
@@ -44 +45 @@
-@@ -994,14 +994,14 @@ dpaa_event_check_flags(const char *params)
+@@ -991,14 +991,14 @@ dpaa_event_check_flags(const char *params)
@@ -61 +62 @@
-@@ -1051,7 +1051,7 @@ dpaa_event_dev_probe(struct rte_vdev_device *vdev)
+@@ -1046,7 +1046,7 @@ dpaa_event_dev_probe(struct rte_vdev_device *vdev)
@@ -71 +72 @@
-index ffc5550f85..dd4e64395f 100644
+index eeb2494bd0..d329796f7d 100644
@@ -74 +75 @@
-@@ -1086,7 +1086,7 @@ dpaa2_eventdev_setup_dpci(struct dpaa2_dpci_dev *dpci_dev,
+@@ -1082,7 +1082,7 @@ dpaa2_eventdev_setup_dpci(struct dpaa2_dpci_dev *dpci_dev,
@@ -83 +84 @@
-@@ -1096,7 +1096,7 @@ dpaa2_eventdev_create(const char *name)
+@@ -1092,7 +1092,7 @@ dpaa2_eventdev_create(const char *name)
@@ -92 +93 @@
-@@ -1190,7 +1190,7 @@ dpaa2_eventdev_probe(struct rte_vdev_device *vdev)
+@@ -1184,7 +1184,7 @@ dpaa2_eventdev_probe(struct rte_vdev_device *vdev)
@@ -102 +103 @@
-index 785c12f61f..1209e73a9d 100644
+index ee3f441c5a..d50e88debf 100644
@@ -105 +106 @@
-@@ -435,7 +435,7 @@ dsw_probe(struct rte_vdev_device *vdev)
+@@ -406,7 +406,7 @@ dsw_probe(struct rte_vdev_device *vdev)
@@ -115 +116 @@
-index 0eb9358981..a16f24e088 100644
+index e60a7dc69e..462039c9ae 100644
@@ -118 +119 @@
-@@ -880,7 +880,7 @@ ssovf_vdev_probe(struct rte_vdev_device *vdev)
+@@ -810,7 +810,7 @@ ssovf_vdev_probe(struct rte_vdev_device *vdev)
@@ -128 +129 @@
-index dd25749654..0cccaf7e97 100644
+index fa1b9852a3..6ad12048ea 100644
@@ -131 +132 @@
-@@ -697,7 +697,7 @@ opdl_probe(struct rte_vdev_device *vdev)
+@@ -694,7 +694,7 @@ opdl_probe(struct rte_vdev_device *vdev)
@@ -141 +142 @@
-index dd2dab2e27..7df032b7da 100644
+index 6fd1102596..5ad30fc1b9 100644
@@ -144 +145 @@
-@@ -428,12 +428,12 @@ RTE_PMD_REGISTER_PCI_TABLE(event_skeleton_pci, pci_id_skeleton_map);
+@@ -426,12 +426,12 @@ RTE_PMD_REGISTER_PCI_TABLE(event_skeleton_pci, pci_id_skeleton_map);
@@ -159 +160 @@
-@@ -459,7 +459,7 @@ skeleton_eventdev_probe(struct rte_vdev_device *vdev)
+@@ -456,7 +456,7 @@ skeleton_eventdev_probe(struct rte_vdev_device *vdev)
@@ -169 +170 @@
-index 6d1816b76d..55e7735cb0 100644
+index baeb982794..598d7eee21 100644
@@ -172 +173 @@
-@@ -1075,7 +1075,7 @@ sw_probe(struct rte_vdev_device *vdev)
+@@ -1077,7 +1077,7 @@ sw_probe(struct rte_vdev_device *vdev)
@@ -181,6 +182,6 @@
-diff --git a/lib/eventdev/eventdev_pmd_vdev.h b/lib/eventdev/eventdev_pmd_vdev.h
-index 5fa9d699ac..bb433ba955 100644
---- a/lib/eventdev/eventdev_pmd_vdev.h
-+++ b/lib/eventdev/eventdev_pmd_vdev.h
-@@ -45,7 +45,7 @@ extern "C" {
- __rte_internal
+diff --git a/lib/librte_eventdev/rte_eventdev_pmd_vdev.h b/lib/librte_eventdev/rte_eventdev_pmd_vdev.h
+index ff79d82530..99cd5a1112 100644
+--- a/lib/librte_eventdev/rte_eventdev_pmd_vdev.h
++++ b/lib/librte_eventdev/rte_eventdev_pmd_vdev.h
+@@ -47,7 +47,7 @@ extern "C" {
+  */
@@ -194 +195 @@
-@@ -67,6 +67,7 @@ rte_event_pmd_vdev_init(const char *name, size_t dev_private_size,
+@@ -69,6 +69,7 @@ rte_event_pmd_vdev_init(const char *name, size_t dev_private_size,

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

* patch 'eventdev: fix missing driver names in info struct' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
  2023-11-08 19:25     ` patch 'eventdev: fix device pointer for vdev-based devices' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/virtio: fix missing next flag in Tx packed ring' " luca.boccassi
                       ` (33 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/324f23d0f3d4b6e981c0af5f3c5ecef5e364dbef

Thanks.

Luca Boccassi

---
From 324f23d0f3d4b6e981c0af5f3c5ecef5e364dbef Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Wed, 18 Oct 2023 14:39:33 +0100
Subject: [PATCH] eventdev: fix missing driver names in info struct

[ upstream commit cbbba8b87e03a028a2ac2f3542f1927ba4edc598 ]

Rather than relying on the individual drivers to always populated the
driver name field in the info structure - something missed by some
drivers, we can do so in the eventdev rte_event_dev_info_get() function.
This fixes issues

Fixes: bbbb929da5e6 ("event/skeleton: add skeleton eventdev driver")
Fixes: 0ce3ce7c275c ("event/dpaa2: add configuration functions")

Suggested-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/librte_eventdev/rte_eventdev.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/librte_eventdev/rte_eventdev.c b/lib/librte_eventdev/rte_eventdev.c
index afbadc535b..a0b9cfa865 100644
--- a/lib/librte_eventdev/rte_eventdev.c
+++ b/lib/librte_eventdev/rte_eventdev.c
@@ -106,6 +106,9 @@ rte_event_dev_info_get(uint8_t dev_id, struct rte_event_dev_info *dev_info)
 	dev_info->dequeue_timeout_ns = dev->data->dev_conf.dequeue_timeout_ns;
 
 	dev_info->dev = dev->dev;
+	if (dev->dev != NULL && dev->dev->driver != NULL)
+		dev_info->driver_name = dev->dev->driver->name;
+
 	return 0;
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.063404883 +0000
+++ 0003-eventdev-fix-missing-driver-names-in-info-struct.patch	2023-11-08 19:23:51.725395299 +0000
@@ -1 +1 @@
-From cbbba8b87e03a028a2ac2f3542f1927ba4edc598 Mon Sep 17 00:00:00 2001
+From 324f23d0f3d4b6e981c0af5f3c5ecef5e364dbef Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit cbbba8b87e03a028a2ac2f3542f1927ba4edc598 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -18,2 +19,2 @@
- lib/eventdev/rte_eventdev.c | 2 ++
- 1 file changed, 2 insertions(+)
+ lib/librte_eventdev/rte_eventdev.c | 3 +++
+ 1 file changed, 3 insertions(+)
@@ -21,5 +22,5 @@
-diff --git a/lib/eventdev/rte_eventdev.c b/lib/eventdev/rte_eventdev.c
-index 95373bbaad..0ca32d6721 100644
---- a/lib/eventdev/rte_eventdev.c
-+++ b/lib/eventdev/rte_eventdev.c
-@@ -104,6 +104,8 @@ rte_event_dev_info_get(uint8_t dev_id, struct rte_event_dev_info *dev_info)
+diff --git a/lib/librte_eventdev/rte_eventdev.c b/lib/librte_eventdev/rte_eventdev.c
+index afbadc535b..a0b9cfa865 100644
+--- a/lib/librte_eventdev/rte_eventdev.c
++++ b/lib/librte_eventdev/rte_eventdev.c
+@@ -106,6 +106,9 @@ rte_event_dev_info_get(uint8_t dev_id, struct rte_event_dev_info *dev_info)
@@ -31,2 +32,3 @@
- 
- 	rte_eventdev_trace_info_get(dev_id, dev_info, dev_info->dev);
++
+ 	return 0;
+ }

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

* patch 'net/virtio: fix missing next flag in Tx packed ring' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
  2023-11-08 19:25     ` patch 'eventdev: fix device pointer for vdev-based devices' " luca.boccassi
  2023-11-08 19:25     ` patch 'eventdev: fix missing driver names in info struct' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/virtio: fix link state interrupt vector setting' " luca.boccassi
                       ` (32 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Fengjiang Liu; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/3c0ce46c7013e5c4aa86ceda81827241db7f7bbe

Thanks.

Luca Boccassi

---
From 3c0ce46c7013e5c4aa86ceda81827241db7f7bbe Mon Sep 17 00:00:00 2001
From: Fengjiang Liu <liufengjiang.0426@bytedance.com>
Date: Tue, 17 Oct 2023 15:26:23 +0800
Subject: [PATCH] net/virtio: fix missing next flag in Tx packed ring

[ upstream commit f923636411c557782f4718de8bee856d60afa74c ]

When the packets is sent in packed mode, and the packets data and
virtio-header are divided into two desc, set the next flag of
virtio-header desc

Bugzilla ID: 1295
Fixes: 892dc798fa9c ("net/virtio: implement Tx path for packed queues")

Signed-off-by: Fengjiang Liu <liufengjiang.0426@bytedance.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/virtio/virtqueue.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/virtio/virtqueue.h b/drivers/net/virtio/virtqueue.h
index 70121eb340..6811ab55d6 100644
--- a/drivers/net/virtio/virtqueue.h
+++ b/drivers/net/virtio/virtqueue.h
@@ -756,6 +756,7 @@ virtqueue_enqueue_xmit_packed(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
 		start_dp[idx].addr  = txvq->virtio_net_hdr_mem +
 			RTE_PTR_DIFF(&txr[idx].tx_hdr, txr);
 		start_dp[idx].len   = vq->hw->vtnet_hdr_size;
+		head_flags |= VRING_DESC_F_NEXT;
 		hdr = (struct virtio_net_hdr *)&txr[idx].tx_hdr;
 		idx++;
 		if (idx >= vq->vq_nentries) {
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.116226569 +0000
+++ 0004-net-virtio-fix-missing-next-flag-in-Tx-packed-ring.patch	2023-11-08 19:23:51.725395299 +0000
@@ -1 +1 @@
-From f923636411c557782f4718de8bee856d60afa74c Mon Sep 17 00:00:00 2001
+From 3c0ce46c7013e5c4aa86ceda81827241db7f7bbe Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit f923636411c557782f4718de8bee856d60afa74c ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -17 +17,0 @@
- .mailmap                       | 1 +
@@ -19 +19 @@
- 2 files changed, 2 insertions(+)
+ 1 file changed, 1 insertion(+)
@@ -21,12 +20,0 @@
-diff --git a/.mailmap b/.mailmap
-index 3f5bab26a8..5273df74cb 100644
---- a/.mailmap
-+++ b/.mailmap
-@@ -394,6 +394,7 @@ Farah Smith <farah.smith@broadcom.com>
- Fei Chen <chenwei.0515@bytedance.com>
- Feifei Wang <feifei.wang2@arm.com> <feifei.wang@arm.com>
- Fei Qin <fei.qin@corigine.com>
-+Fengjiang Liu <liufengjiang.0426@bytedance.com>
- Fengnan Chang <changfengnan@bytedance.com>
- Fengtian Guo <fengtian.guo@6wind.com>
- Ferdinand Thiessen <rpm@fthiessen.de>
@@ -34 +22 @@
-index c1cb941c43..5d0c0399a8 100644
+index 70121eb340..6811ab55d6 100644
@@ -37,4 +25,4 @@
-@@ -682,6 +682,7 @@ virtqueue_enqueue_xmit_packed(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
- 		 */
- 		start_dp[idx].addr = txvq->hdr_mem + RTE_PTR_DIFF(&txr[idx].tx_hdr, txr);
- 		start_dp[idx].len = vq->hw->vtnet_hdr_size;
+@@ -756,6 +756,7 @@ virtqueue_enqueue_xmit_packed(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
+ 		start_dp[idx].addr  = txvq->virtio_net_hdr_mem +
+ 			RTE_PTR_DIFF(&txr[idx].tx_hdr, txr);
+ 		start_dp[idx].len   = vq->hw->vtnet_hdr_size;

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

* patch 'net/virtio: fix link state interrupt vector setting' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (2 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/virtio: fix missing next flag in Tx packed ring' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'vhost: fix missing vring call check on virtqueue access' " luca.boccassi
                       ` (31 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Wenwu Ma; +Cc: Wei Ling, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/1945571d8bb3d300c5ca30f2e57b162df6032533

Thanks.

Luca Boccassi

---
From 1945571d8bb3d300c5ca30f2e57b162df6032533 Mon Sep 17 00:00:00 2001
From: Wenwu Ma <wenwux.ma@intel.com>
Date: Mon, 23 Oct 2023 09:46:12 +0800
Subject: [PATCH] net/virtio: fix link state interrupt vector setting

[ upstream commit efc3f842b3dd69c4e65dbdf6cdaccde8c759b5d9 ]

Setting the vector for link state interrupts should be
done before the device initialization is completed.

Fixes: ee85024cf5f7 ("net/virtio: complete init stage at the right place")

Signed-off-by: Wenwu Ma <wenwux.ma@intel.com>
Tested-by: Wei Ling <weix.ling@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/virtio/virtio_ethdev.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index 1ee738f8cc..867b3ff548 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1924,6 +1924,14 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
 		}
 	}
 
+	if (eth_dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC)
+		/* Enable vector (0) for Link State Interrupt */
+		if (VTPCI_OPS(hw)->set_config_irq(hw, 0) ==
+				VIRTIO_MSI_NO_VECTOR) {
+			PMD_DRV_LOG(ERR, "failed to set config vector");
+			return -EBUSY;
+		}
+
 	vtpci_reinit_complete(hw);
 
 	if (pci_dev)
@@ -2408,14 +2416,6 @@ virtio_dev_configure(struct rte_eth_dev *dev)
 	hw->has_tx_offload = tx_offload_enabled(hw);
 	hw->has_rx_offload = rx_offload_enabled(hw);
 
-	if (dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC)
-		/* Enable vector (0) for Link State Interrupt */
-		if (VTPCI_OPS(hw)->set_config_irq(hw, 0) ==
-				VIRTIO_MSI_NO_VECTOR) {
-			PMD_DRV_LOG(ERR, "failed to set config vector");
-			return -EBUSY;
-		}
-
 	if (vtpci_packed_queue(hw)) {
 #if defined(RTE_ARCH_X86_64) && defined(CC_AVX512_SUPPORT)
 		if ((hw->use_vec_rx || hw->use_vec_tx) &&
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.170369761 +0000
+++ 0005-net-virtio-fix-link-state-interrupt-vector-setting.patch	2023-11-08 19:23:51.729395382 +0000
@@ -1 +1 @@
-From efc3f842b3dd69c4e65dbdf6cdaccde8c759b5d9 Mon Sep 17 00:00:00 2001
+From 1945571d8bb3d300c5ca30f2e57b162df6032533 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit efc3f842b3dd69c4e65dbdf6cdaccde8c759b5d9 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 3ab56ef769..c2c0a1a111 100644
+index 1ee738f8cc..867b3ff548 100644
@@ -23 +24 @@
-@@ -1912,6 +1912,14 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
+@@ -1924,6 +1924,14 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
@@ -29 +30 @@
-+		if (VIRTIO_OPS(hw)->set_config_irq(hw, 0) ==
++		if (VTPCI_OPS(hw)->set_config_irq(hw, 0) ==
@@ -35 +36 @@
- 	virtio_reinit_complete(hw);
+ 	vtpci_reinit_complete(hw);
@@ -37,2 +38,2 @@
- 	return 0;
-@@ -2237,14 +2245,6 @@ virtio_dev_configure(struct rte_eth_dev *dev)
+ 	if (pci_dev)
+@@ -2408,14 +2416,6 @@ virtio_dev_configure(struct rte_eth_dev *dev)
@@ -44 +45 @@
--		if (VIRTIO_OPS(hw)->set_config_irq(hw, 0) ==
+-		if (VTPCI_OPS(hw)->set_config_irq(hw, 0) ==
@@ -50 +51 @@
- 	if (virtio_with_packed_queue(hw)) {
+ 	if (vtpci_packed_queue(hw)) {

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

* patch 'vhost: fix missing vring call check on virtqueue access' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (3 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/virtio: fix link state interrupt vector setting' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'vhost: fix missing " luca.boccassi
                       ` (30 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Maxime Coquelin; +Cc: Li Feng, David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From db07b9fe92fb159e54b74a80be7ad12e6336c9eb Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Fri, 20 Oct 2023 10:47:58 +0200
Subject: [PATCH] vhost: fix missing vring call check on virtqueue access

[ upstream commit af7f683615244675fc4f472a2aa42880896476ad ]

Acquiring the access lock is not enough to ensure
virtqueue's metadata such as vring pointers are valid.

The access status must also be checked.

Fixes: 6c299bb7322f ("vhost: introduce vring call API")
Fixes: c5736998305d ("vhost: fix missing virtqueue lock protection")
Fixes: 830f7e790732 ("vhost: add non-blocking API for posting interrupt")

Reported-by: Li Feng <fengli@smartx.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 lib/librte_vhost/vhost.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c
index cc5855ecfd..cb3ede8942 100644
--- a/lib/librte_vhost/vhost.c
+++ b/lib/librte_vhost/vhost.c
@@ -1253,6 +1253,7 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
 {
 	struct virtio_net *dev;
 	struct vhost_virtqueue *vq;
+	int ret = 0;
 
 	dev = get_device(vid);
 	if (!dev)
@@ -1267,14 +1268,20 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
 
 	rte_spinlock_lock(&vq->access_lock);
 
+	if (unlikely(!vq->access_ok)) {
+		ret = -1;
+		goto out_unlock;
+	}
+
 	if (vq_is_packed(dev))
 		vhost_vring_call_packed(dev, vq);
 	else
 		vhost_vring_call_split(dev, vq);
 
+out_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
-	return 0;
+	return ret;
 }
 
 int
@@ -1282,6 +1289,7 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
 {
 	struct virtio_net *dev;
 	struct vhost_virtqueue *vq;
+	int ret = 0;
 
 	dev = get_device(vid);
 	if (!dev)
@@ -1297,14 +1305,20 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
 	if (!rte_spinlock_trylock(&vq->access_lock))
 		return -EAGAIN;
 
+	if (unlikely(!vq->access_ok)) {
+		ret = -1;
+		goto out_unlock;
+	}
+
 	if (vq_is_packed(dev))
 		vhost_vring_call_packed(dev, vq);
 	else
 		vhost_vring_call_split(dev, vq);
 
+out_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
-	return 0;
+	return ret;
 }
 
 uint16_t
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.223159935 +0000
+++ 0006-vhost-fix-missing-vring-call-check-on-virtqueue-acce.patch	2023-11-08 19:23:51.733395465 +0000
@@ -1 +1 @@
-From af7f683615244675fc4f472a2aa42880896476ad Mon Sep 17 00:00:00 2001
+From db07b9fe92fb159e54b74a80be7ad12e6336c9eb Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit af7f683615244675fc4f472a2aa42880896476ad ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
- lib/vhost/vhost.c | 18 ++++++++++++++++--
+ lib/librte_vhost/vhost.c | 18 ++++++++++++++++--
@@ -23,5 +24,5 @@
-diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c
-index bdcf85bece..b438330063 100644
---- a/lib/vhost/vhost.c
-+++ b/lib/vhost/vhost.c
-@@ -1332,6 +1332,7 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
+diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c
+index cc5855ecfd..cb3ede8942 100644
+--- a/lib/librte_vhost/vhost.c
++++ b/lib/librte_vhost/vhost.c
+@@ -1253,6 +1253,7 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
@@ -35 +36 @@
-@@ -1346,14 +1347,20 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
+@@ -1267,14 +1268,20 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
@@ -37 +38 @@
- 	rte_rwlock_read_lock(&vq->access_lock);
+ 	rte_spinlock_lock(&vq->access_lock);
@@ -50 +51 @@
- 	rte_rwlock_read_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);
@@ -57 +58 @@
-@@ -1361,6 +1368,7 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
+@@ -1282,6 +1289,7 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
@@ -65,2 +66,2 @@
-@@ -1376,14 +1384,20 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
- 	if (rte_rwlock_read_trylock(&vq->access_lock))
+@@ -1297,14 +1305,20 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
+ 	if (!rte_spinlock_trylock(&vq->access_lock))
@@ -80 +81 @@
- 	rte_rwlock_read_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);

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

* patch 'vhost: fix missing check on virtqueue access' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (4 preceding siblings ...)
  2023-11-08 19:25     ` patch 'vhost: fix missing vring call check on virtqueue access' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'ethdev: fix function name in comment' " luca.boccassi
                       ` (29 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Maxime Coquelin; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/6a3395ad5264dd58ced88f79997d3304f0de9f4f

Thanks.

Luca Boccassi

---
From 6a3395ad5264dd58ced88f79997d3304f0de9f4f Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Fri, 20 Oct 2023 10:47:59 +0200
Subject: [PATCH] vhost: fix missing check on virtqueue access

[ upstream commit 094c442cdbf1da3a19ae82ca7069fee8b3a43343 ]

Acquiring the access lock is not enough to ensure
virtqueue's metadata such as vring pointers are valid.

The access status must also be checked.

Fixes: 4e0de8dac853 ("vhost: protect vring access done by application")

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 lib/librte_vhost/vhost.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c
index cb3ede8942..e62d797c89 100644
--- a/lib/librte_vhost/vhost.c
+++ b/lib/librte_vhost/vhost.c
@@ -1341,7 +1341,10 @@ rte_vhost_avail_entries(int vid, uint16_t queue_id)
 
 	rte_spinlock_lock(&vq->access_lock);
 
-	if (unlikely(!vq->enabled || vq->avail == NULL))
+	if (unlikely(!vq->access_ok))
+		goto out;
+
+	if (unlikely(!vq->enabled))
 		goto out;
 
 	ret = *(volatile uint16_t *)&vq->avail->idx - vq->last_used_idx;
@@ -1433,9 +1436,15 @@ rte_vhost_enable_guest_notification(int vid, uint16_t queue_id, int enable)
 
 	rte_spinlock_lock(&vq->access_lock);
 
+	if (unlikely(!vq->access_ok)) {
+		ret = -1;
+		goto out_unlock;
+	}
+
 	vq->notif_enable = enable;
 	ret = vhost_enable_guest_notification(dev, vq, enable);
 
+out_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
 	return ret;
@@ -1495,7 +1504,10 @@ rte_vhost_rx_queue_count(int vid, uint16_t qid)
 
 	rte_spinlock_lock(&vq->access_lock);
 
-	if (unlikely(vq->enabled == 0 || vq->avail == NULL))
+	if (unlikely(!vq->access_ok))
+		goto out;
+
+	if (unlikely(!vq->enabled))
 		goto out;
 
 	ret = *((volatile uint16_t *)&vq->avail->idx) - vq->last_avail_idx;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.275363126 +0000
+++ 0007-vhost-fix-missing-check-on-virtqueue-access.patch	2023-11-08 19:23:51.733395465 +0000
@@ -1 +1 @@
-From 094c442cdbf1da3a19ae82ca7069fee8b3a43343 Mon Sep 17 00:00:00 2001
+From 6a3395ad5264dd58ced88f79997d3304f0de9f4f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 094c442cdbf1da3a19ae82ca7069fee8b3a43343 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -17 +18 @@
- lib/vhost/vhost.c | 16 ++++++++++++++--
+ lib/librte_vhost/vhost.c | 16 ++++++++++++++--
@@ -20,5 +21,5 @@
-diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c
-index b438330063..43173c9eee 100644
---- a/lib/vhost/vhost.c
-+++ b/lib/vhost/vhost.c
-@@ -1420,7 +1420,10 @@ rte_vhost_avail_entries(int vid, uint16_t queue_id)
+diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c
+index cb3ede8942..e62d797c89 100644
+--- a/lib/librte_vhost/vhost.c
++++ b/lib/librte_vhost/vhost.c
+@@ -1341,7 +1341,10 @@ rte_vhost_avail_entries(int vid, uint16_t queue_id)
@@ -26 +27 @@
- 	rte_rwlock_write_lock(&vq->access_lock);
+ 	rte_spinlock_lock(&vq->access_lock);
@@ -36 +37 @@
-@@ -1512,9 +1515,15 @@ rte_vhost_enable_guest_notification(int vid, uint16_t queue_id, int enable)
+@@ -1433,9 +1436,15 @@ rte_vhost_enable_guest_notification(int vid, uint16_t queue_id, int enable)
@@ -38 +39 @@
- 	rte_rwlock_write_lock(&vq->access_lock);
+ 	rte_spinlock_lock(&vq->access_lock);
@@ -49 +50 @@
- 	rte_rwlock_write_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);
@@ -52 +53 @@
-@@ -1607,7 +1616,10 @@ rte_vhost_rx_queue_count(int vid, uint16_t qid)
+@@ -1495,7 +1504,10 @@ rte_vhost_rx_queue_count(int vid, uint16_t qid)
@@ -54 +55 @@
- 	rte_rwlock_write_lock(&vq->access_lock);
+ 	rte_spinlock_lock(&vq->access_lock);
@@ -56 +57 @@
--	if (unlikely(!vq->enabled || vq->avail == NULL))
+-	if (unlikely(vq->enabled == 0 || vq->avail == NULL))

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

* patch 'ethdev: fix function name in comment' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (5 preceding siblings ...)
  2023-11-08 19:25     ` patch 'vhost: fix missing " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'app/testpmd: fix early exit from signal' " luca.boccassi
                       ` (28 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Ferruh Yigit, Huisong Li, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/6821f2a66caf7c772f0050d346df27e8c3af0c18

Thanks.

Luca Boccassi

---
From 6821f2a66caf7c772f0050d346df27e8c3af0c18 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Fri, 20 Oct 2023 14:05:56 +0100
Subject: [PATCH] ethdev: fix function name in comment

[ upstream commit 4b98bef701c0bf39752031dd8943326945e2b5d1 ]

For those using the function comments as a guide, provide the name of
the correct callback function to use when wanting to count dropped
packets from the ethdev Tx buffering system.

Fixes: d6c99e62c852 ("ethdev: add buffered Tx")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
Acked-by: Huisong Li <lihuisong@huawei.com>
---
 lib/librte_ethdev/rte_ethdev.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
index 4ea5ad445a..58599e19a7 100644
--- a/lib/librte_ethdev/rte_ethdev.h
+++ b/lib/librte_ethdev/rte_ethdev.h
@@ -3325,7 +3325,7 @@ rte_eth_tx_buffer_init(struct rte_eth_dev_tx_buffer *buffer, uint16_t size);
  * for example, to count dropped packets, or to retry transmission of packets
  * which cannot be sent, this function should be used to register a suitable
  * callback function to implement the desired behaviour.
- * The example callback "rte_eth_count_unsent_packet_callback()" is also
+ * The example callback "rte_eth_tx_buffer_count_callback()" is also
  * provided as reference.
  *
  * @param buffer
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.328632200 +0000
+++ 0008-ethdev-fix-function-name-in-comment.patch	2023-11-08 19:23:51.741395630 +0000
@@ -1 +1 @@
-From 4b98bef701c0bf39752031dd8943326945e2b5d1 Mon Sep 17 00:00:00 2001
+From 6821f2a66caf7c772f0050d346df27e8c3af0c18 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4b98bef701c0bf39752031dd8943326945e2b5d1 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -17 +18 @@
- lib/ethdev/rte_ethdev.h | 2 +-
+ lib/librte_ethdev/rte_ethdev.h | 2 +-
@@ -20,5 +21,5 @@
-diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h
-index d1c10f2bbf..a53dd5a1ef 100644
---- a/lib/ethdev/rte_ethdev.h
-+++ b/lib/ethdev/rte_ethdev.h
-@@ -3732,7 +3732,7 @@ rte_eth_tx_buffer_init(struct rte_eth_dev_tx_buffer *buffer, uint16_t size);
+diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
+index 4ea5ad445a..58599e19a7 100644
+--- a/lib/librte_ethdev/rte_ethdev.h
++++ b/lib/librte_ethdev/rte_ethdev.h
+@@ -3325,7 +3325,7 @@ rte_eth_tx_buffer_init(struct rte_eth_dev_tx_buffer *buffer, uint16_t size);

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

* patch 'app/testpmd: fix early exit from signal' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (6 preceding siblings ...)
  2023-11-08 19:25     ` patch 'ethdev: fix function name in comment' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/hns3: fix unchecked Rx free threshold' " luca.boccassi
                       ` (27 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Ferruh Yigit, David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/14d0084034451375f62e3ae03de173fbdcdbd19c

Thanks.

Luca Boccassi

---
From 14d0084034451375f62e3ae03de173fbdcdbd19c Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Thu, 26 Oct 2023 10:11:33 -0700
Subject: [PATCH] app/testpmd: fix early exit from signal

[ upstream commit a996cd04aeeaeca88e6313174101a1229349fb47 ]

Other signals may occur causing read to get interrupted.
Loop until quit flag is set by signal, a character is entered,
or end of file. This fixes bug where testpmd would exit early
because of signal used by TAP device.

Bugzilla ID: 1305
Fixes: 0fd1386c30c3 ("app/testpmd: cleanup cleanly from signal")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
---
 app/test-pmd/testpmd.c | 25 ++++++++-----------------
 1 file changed, 8 insertions(+), 17 deletions(-)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 568b9f7390..4fa8284a0e 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -10,7 +10,6 @@
 #include <time.h>
 #include <fcntl.h>
 #include <sys/mman.h>
-#include <sys/select.h>
 #include <sys/types.h>
 #include <errno.h>
 #include <stdbool.h>
@@ -4059,25 +4058,17 @@ main(int argc, char** argv)
 			}
 		} else {
 			char c;
-			fd_set fds;
 
 			printf("Press enter to exit\n");
-
-			FD_ZERO(&fds);
-			FD_SET(0, &fds);
-
-			/* wait for signal or enter */
-			ret = select(1, &fds, NULL, NULL, NULL);
-			if (ret < 0 && errno != EINTR)
-				rte_exit(EXIT_FAILURE,
-					 "Select failed: %s\n",
-					 strerror(errno));
-
-			/* if got enter then consume it */
-			if (ret == 1 && read(0, &c, 1) < 0)
-				rte_exit(EXIT_FAILURE,
-					 "Read failed: %s\n",
+			while (f_quit == 0) {
+				/* end-of-file or any character exits loop */
+				if (read(0, &c, 1) >= 0)
+					break;
+				if (errno == EINTR)
+					continue;
+				rte_exit(EXIT_FAILURE, "Read failed: %s\n",
 					 strerror(errno));
+			}
 		}
 	}
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.388614698 +0000
+++ 0009-app-testpmd-fix-early-exit-from-signal.patch	2023-11-08 19:23:51.745395713 +0000
@@ -1 +1 @@
-From a996cd04aeeaeca88e6313174101a1229349fb47 Mon Sep 17 00:00:00 2001
+From 14d0084034451375f62e3ae03de173fbdcdbd19c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a996cd04aeeaeca88e6313174101a1229349fb47 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index 595b77748c..9e4e99e53b 100644
+index 568b9f7390..4fa8284a0e 100644
@@ -26 +27,2 @@
-@@ -11,7 +11,6 @@
+@@ -10,7 +10,6 @@
+ #include <time.h>
@@ -28 +29,0 @@
- #ifndef RTE_EXEC_ENV_WINDOWS
@@ -31 +31,0 @@
- #endif
@@ -34 +34,2 @@
-@@ -4743,25 +4742,17 @@ main(int argc, char** argv)
+ #include <stdbool.h>
+@@ -4059,25 +4058,17 @@ main(int argc, char** argv)

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

* patch 'net/hns3: fix unchecked Rx free threshold' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (7 preceding siblings ...)
  2023-11-08 19:25     ` patch 'app/testpmd: fix early exit from signal' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/hns3: fix crash for NEON and SVE' " luca.boccassi
                       ` (26 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/83132d1f9f526b0b4446f5f6d918f35631986457

Thanks.

Luca Boccassi

---
From 83132d1f9f526b0b4446f5f6d918f35631986457 Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Fri, 27 Oct 2023 14:09:40 +0800
Subject: [PATCH] net/hns3: fix unchecked Rx free threshold

[ upstream commit c1f0cd3a4c834c2e550370b6d31b6bcd456a15f9 ]

To reduce the frequency of updating the head pointer of Rx queue,
driver just updates this pointer when the number of processed
descriptors is greater than the Rx free threshold. If the Rx free
threshold is set to a value greater than or equal to the number of
descriptors in Rx queue, the driver does not update this pointer.
As a result, the hardware cannot receive more packets.

This patch fix it by adding Rx free threshold check.

Fixes: bba636698316 ("net/hns3: support Rx/Tx and related operations")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
---
 drivers/net/hns3/hns3_rxtx.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
index 963a20627b..e0abcce695 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -1788,6 +1788,12 @@ hns3_rx_queue_conf_check(struct hns3_hw *hw, const struct rte_eth_rxconf *conf,
 		return -EINVAL;
 	}
 
+	if (conf->rx_free_thresh >= nb_desc) {
+		hns3_err(hw, "rx_free_thresh (%u) must be less than %u",
+			 conf->rx_free_thresh, nb_desc);
+		return -EINVAL;
+	}
+
 	if (conf->rx_drop_en == 0)
 		hns3_warn(hw, "if no descriptors available, packets are always "
 			  "dropped and rx_drop_en (1) is fixed on");
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.445443238 +0000
+++ 0010-net-hns3-fix-unchecked-Rx-free-threshold.patch	2023-11-08 19:23:51.753395878 +0000
@@ -1 +1 @@
-From c1f0cd3a4c834c2e550370b6d31b6bcd456a15f9 Mon Sep 17 00:00:00 2001
+From 83132d1f9f526b0b4446f5f6d918f35631986457 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c1f0cd3a4c834c2e550370b6d31b6bcd456a15f9 ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index f3c3b38c55..13214d02d5 100644
+index 963a20627b..e0abcce695 100644
@@ -27 +28 @@
-@@ -1785,6 +1785,12 @@ hns3_rx_queue_conf_check(struct hns3_hw *hw, const struct rte_eth_rxconf *conf,
+@@ -1788,6 +1788,12 @@ hns3_rx_queue_conf_check(struct hns3_hw *hw, const struct rte_eth_rxconf *conf,

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

* patch 'net/hns3: fix crash for NEON and SVE' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (8 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/hns3: fix unchecked Rx free threshold' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/hns3: fix double stats for IMP and global reset' " luca.boccassi
                       ` (25 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Huisong Li; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From ce4857d3dc4602b75d034e4df9f8f261fac9a92c Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Fri, 27 Oct 2023 14:09:41 +0800
Subject: [PATCH] net/hns3: fix crash for NEON and SVE

[ upstream commit 01843ab2f2fc8c3137258ec39b2cb6f62ba7b8a2 ]

Driver may fail to allocate bulk mbufs for Neon and SVE when rearm
mbuf. Currently, driver keeps going to handle packets even if there
isn't available descriptors to receive packets at this moment.
As a result, driver probably fills the mbufs with invalid data to
application and accesses to illegal address because of the VLD bit
of the descriptor at the "rx_rearm_start" position still being set.
So driver has to clear VLD bit for this descriptor in this scenario
in case of receiving packets later.

In addition, it is possible that the sum of the "rx_rearm_nb" and
"rx_rearm_start" is greater than total descriptor number of Rx queue
in the above scenario. So the index of rxq->sw_ring[] to set mbuf
pointer to NULL should also be fixed to avoid out-of-bounds memory
access.

Fixes: a3d4f4d291d7 ("net/hns3: support NEON Rx")
Fixes: f81a18f49152 ("net/hns3: fix mbuf leakage when RxQ started after reset")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
---
 drivers/net/hns3/hns3_rxtx.c         | 2 +-
 drivers/net/hns3/hns3_rxtx_vec.c     | 5 +++++
 drivers/net/hns3/hns3_rxtx_vec_sve.c | 5 +++++
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
index e0abcce695..4f1354fb19 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -55,7 +55,7 @@ hns3_rx_queue_release_mbufs(struct hns3_rx_queue *rxq)
 			}
 		}
 		for (i = 0; i < rxq->rx_rearm_nb; i++)
-			rxq->sw_ring[rxq->rx_rearm_start + i].mbuf = NULL;
+			rxq->sw_ring[(rxq->rx_rearm_start + i) % rxq->nb_rx_desc].mbuf = NULL;
 	}
 
 	for (i = 0; i < rxq->bulk_mbuf_num; i++)
diff --git a/drivers/net/hns3/hns3_rxtx_vec.c b/drivers/net/hns3/hns3_rxtx_vec.c
index 63f910165e..a3c81005f0 100644
--- a/drivers/net/hns3/hns3_rxtx_vec.c
+++ b/drivers/net/hns3/hns3_rxtx_vec.c
@@ -57,6 +57,11 @@ hns3_rxq_rearm_mbuf(struct hns3_rx_queue *rxq)
 
 	if (unlikely(rte_mempool_get_bulk(rxq->mb_pool, (void *)rxep,
 					  HNS3_DEFAULT_RXQ_REARM_THRESH) < 0)) {
+		/*
+		 * Clear VLD bit for the first descriptor rearmed in case
+		 * of going to receive packets later.
+		 */
+		rxdp[0].rx.bd_base_info = 0;
 		rte_eth_devices[rxq->port_id].data->rx_mbuf_alloc_failed++;
 		return;
 	}
diff --git a/drivers/net/hns3/hns3_rxtx_vec_sve.c b/drivers/net/hns3/hns3_rxtx_vec_sve.c
index 888008d73f..37d4029412 100644
--- a/drivers/net/hns3/hns3_rxtx_vec_sve.c
+++ b/drivers/net/hns3/hns3_rxtx_vec_sve.c
@@ -243,6 +243,11 @@ hns3_rxq_rearm_mbuf_sve(struct hns3_rx_queue *rxq)
 
 	if (unlikely(rte_mempool_get_bulk(rxq->mb_pool, (void *)rxep,
 					  HNS3_DEFAULT_RXQ_REARM_THRESH) < 0)) {
+		/*
+		 * Clear VLD bit for the first descriptor rearmed in case
+		 * of going to receive packets later.
+		 */
+		rxdp[0].rx.bd_base_info = 0;
 		rte_eth_devices[rxq->port_id].data->rx_mbuf_alloc_failed++;
 		return;
 	}
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.501435963 +0000
+++ 0011-net-hns3-fix-crash-for-NEON-and-SVE.patch	2023-11-08 19:23:51.757395961 +0000
@@ -1 +1 @@
-From 01843ab2f2fc8c3137258ec39b2cb6f62ba7b8a2 Mon Sep 17 00:00:00 2001
+From ce4857d3dc4602b75d034e4df9f8f261fac9a92c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 01843ab2f2fc8c3137258ec39b2cb6f62ba7b8a2 ]
+
@@ -23 +24,0 @@
-Cc: stable@dpdk.org
@@ -27,3 +28,4 @@
- drivers/net/hns3/hns3_rxtx.c     | 2 +-
- drivers/net/hns3/hns3_rxtx_vec.h | 5 +++++
- 2 files changed, 6 insertions(+), 1 deletion(-)
+ drivers/net/hns3/hns3_rxtx.c         | 2 +-
+ drivers/net/hns3/hns3_rxtx_vec.c     | 5 +++++
+ drivers/net/hns3/hns3_rxtx_vec_sve.c | 5 +++++
+ 3 files changed, 11 insertions(+), 1 deletion(-)
@@ -32 +34 @@
-index 13214d02d5..f28ca040be 100644
+index e0abcce695..4f1354fb19 100644
@@ -35 +37 @@
-@@ -51,7 +51,7 @@ hns3_rx_queue_release_mbufs(struct hns3_rx_queue *rxq)
+@@ -55,7 +55,7 @@ hns3_rx_queue_release_mbufs(struct hns3_rx_queue *rxq)
@@ -44,5 +46,21 @@
-diff --git a/drivers/net/hns3/hns3_rxtx_vec.h b/drivers/net/hns3/hns3_rxtx_vec.h
-index a9a6774294..9018e79c2f 100644
---- a/drivers/net/hns3/hns3_rxtx_vec.h
-+++ b/drivers/net/hns3/hns3_rxtx_vec.h
-@@ -106,6 +106,11 @@ hns3_rxq_rearm_mbuf(struct hns3_rx_queue *rxq)
+diff --git a/drivers/net/hns3/hns3_rxtx_vec.c b/drivers/net/hns3/hns3_rxtx_vec.c
+index 63f910165e..a3c81005f0 100644
+--- a/drivers/net/hns3/hns3_rxtx_vec.c
++++ b/drivers/net/hns3/hns3_rxtx_vec.c
+@@ -57,6 +57,11 @@ hns3_rxq_rearm_mbuf(struct hns3_rx_queue *rxq)
+ 
+ 	if (unlikely(rte_mempool_get_bulk(rxq->mb_pool, (void *)rxep,
+ 					  HNS3_DEFAULT_RXQ_REARM_THRESH) < 0)) {
++		/*
++		 * Clear VLD bit for the first descriptor rearmed in case
++		 * of going to receive packets later.
++		 */
++		rxdp[0].rx.bd_base_info = 0;
+ 		rte_eth_devices[rxq->port_id].data->rx_mbuf_alloc_failed++;
+ 		return;
+ 	}
+diff --git a/drivers/net/hns3/hns3_rxtx_vec_sve.c b/drivers/net/hns3/hns3_rxtx_vec_sve.c
+index 888008d73f..37d4029412 100644
+--- a/drivers/net/hns3/hns3_rxtx_vec_sve.c
++++ b/drivers/net/hns3/hns3_rxtx_vec_sve.c
+@@ -243,6 +243,11 @@ hns3_rxq_rearm_mbuf_sve(struct hns3_rx_queue *rxq)

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

* patch 'net/hns3: fix double stats for IMP and global reset' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (9 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/hns3: fix crash for NEON and SVE' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/hns3: remove reset log in secondary' " luca.boccassi
                       ` (24 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From 0e1cff3cf2fe665acffebb182c4d3b5068aaf48b Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Fri, 27 Oct 2023 14:09:42 +0800
Subject: [PATCH] net/hns3: fix double stats for IMP and global reset

[ upstream commit c48e74370c5eafbe8db5c826a797344e4fdf8f49 ]

There is a stats counter for IMP and global reset in PF driver.
hns3 driver has two following task to detect reset event:
(1) interrupt handled task(A): triggered by interrupt and detect
    which reset level. And the reset service will be executed
    after 10us.
(2) polling task(B): scan reset source register to detect if
    driver has to do reset. And the reset service will be executed
    after deferred 3s.

They'll both count the number of one reset plus 1.
Task(A) adds it before doing the reset service. And in the reset service,
task(B) adds it if hw->reset.schedule is 'SCHEDULE_REQUESTED'.
Normally, this reset counter is just added by 1 once. Unfortunately,
this counter is added by 2 in the following case:
1. Task(B) detect the reset event, like IMP. hw->reset.schedule is
   set to 'SCHEDULE_REQUESTED'.
2. Task(A) is just triggered before running the reset service of task(B).
   Note: the reset counter is added by 1 at this moment before running
   the reset service of task(A). Additionally, the reset service of
   task(B) is canceled in task(A) because of schedule status being
   'SCHEDULE_REQUESTED'.
3. Then the reset service of task(A) is executed at last.
   Note: The reset counter is added by 1 again in this step because of
   schedule status still being 'SCHEDULE_REQUESTED'.

So this patch fix it by setting the scheduling status to
'SCHEDULE_REQUESTED' in step 2.

Fixes: 2790c6464725 ("net/hns3: support device reset")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
---
 drivers/net/hns3/hns3_intr.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hns3/hns3_intr.c b/drivers/net/hns3/hns3_intr.c
index 7e945ba2e3..190c964635 100644
--- a/drivers/net/hns3/hns3_intr.c
+++ b/drivers/net/hns3/hns3_intr.c
@@ -1781,8 +1781,8 @@ hns3_schedule_reset(struct hns3_adapter *hns)
 		return;
 	if (rte_atomic16_read(&hns->hw.reset.schedule) == SCHEDULE_DEFERRED)
 		rte_eal_alarm_cancel(hw->reset.ops->reset_service, hns);
-	else
-		rte_atomic16_set(&hns->hw.reset.schedule, SCHEDULE_REQUESTED);
+
+	rte_atomic16_set(&hns->hw.reset.schedule, SCHEDULE_REQUESTED);
 
 	rte_eal_alarm_set(SWITCH_CONTEXT_US, hw->reset.ops->reset_service, hns);
 }
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.607432108 +0000
+++ 0012-net-hns3-fix-double-stats-for-IMP-and-global-reset.patch	2023-11-08 19:23:51.761396044 +0000
@@ -1 +1 @@
-From c48e74370c5eafbe8db5c826a797344e4fdf8f49 Mon Sep 17 00:00:00 2001
+From 0e1cff3cf2fe665acffebb182c4d3b5068aaf48b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c48e74370c5eafbe8db5c826a797344e4fdf8f49 ]
+
@@ -35 +36,0 @@
-Cc: stable@dpdk.org
@@ -43 +44 @@
-index 44a1119415..baf5f58e9e 100644
+index 7e945ba2e3..190c964635 100644
@@ -46,3 +47,3 @@
-@@ -2434,8 +2434,8 @@ hns3_schedule_reset(struct hns3_adapter *hns)
- 	if (__atomic_load_n(&hw->reset.schedule, __ATOMIC_RELAXED) ==
- 			    SCHEDULE_DEFERRED)
+@@ -1781,8 +1781,8 @@ hns3_schedule_reset(struct hns3_adapter *hns)
+ 		return;
+ 	if (rte_atomic16_read(&hns->hw.reset.schedule) == SCHEDULE_DEFERRED)
@@ -51 +52 @@
--		__atomic_store_n(&hw->reset.schedule, SCHEDULE_REQUESTED,
+-		rte_atomic16_set(&hns->hw.reset.schedule, SCHEDULE_REQUESTED);
@@ -53,2 +54 @@
-+	__atomic_store_n(&hw->reset.schedule, SCHEDULE_REQUESTED,
- 				 __ATOMIC_RELAXED);
++	rte_atomic16_set(&hns->hw.reset.schedule, SCHEDULE_REQUESTED);
@@ -56,0 +57 @@
+ }

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

* patch 'net/hns3: remove reset log in secondary' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (10 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/hns3: fix double stats for IMP and global reset' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'test/bonding: remove unreachable statement' " luca.boccassi
                       ` (23 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From aca18a766ad56e413a287316c4dea56eea6438ce Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Fri, 27 Oct 2023 14:09:43 +0800
Subject: [PATCH] net/hns3: remove reset log in secondary

[ upstream commit 5394df455749f60614a19d791d1d73c26b74dea1 ]

The reset event is checked and done in primary. And the secondary
doesn't check and display reset log. There is a patch to remove the
check code for secondary. please see commit a8f1f7cf1b42 ("net/hns3:
fix crash when secondary process access FW")

This patch removes the redundant log print of reset.

Fixes: a8f1f7cf1b42 ("net/hns3: fix crash when secondary process access FW")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c    | 11 +++++------
 drivers/net/hns3/hns3_ethdev_vf.c | 11 +++++------
 2 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index b898c7b5a3..2acb2a56d6 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -5481,14 +5481,13 @@ hns3_is_reset_pending(struct hns3_adapter *hns)
 	enum hns3_reset_level reset;
 
 	/*
-	 * Check the registers to confirm whether there is reset pending.
-	 * Note: This check may lead to schedule reset task, but only primary
-	 *       process can process the reset event. Therefore, limit the
-	 *       checking under only primary process.
+	 * Only primary can process can process the reset event,
+	 * so don't check reset event in secondary.
 	 */
-	if (rte_eal_process_type() == RTE_PROC_PRIMARY)
-		hns3_check_event_cause(hns, NULL);
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return false;
 
+	hns3_check_event_cause(hns, NULL);
 	reset = hns3_get_reset_level(hns, &hw->reset.pending);
 	if (hw->reset.level != HNS3_NONE_RESET && hw->reset.level < reset) {
 		hns3_warn(hw, "High level reset %d is pending", reset);
diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index 8937e73305..cc04659369 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -2308,14 +2308,13 @@ hns3vf_is_reset_pending(struct hns3_adapter *hns)
 		return false;
 
 	/*
-	 * Check the registers to confirm whether there is reset pending.
-	 * Note: This check may lead to schedule reset task, but only primary
-	 *       process can process the reset event. Therefore, limit the
-	 *       checking under only primary process.
+	 * Only primary can process can process the reset event,
+	 * so don't check reset event in secondary.
 	 */
-	if (rte_eal_process_type() == RTE_PROC_PRIMARY)
-		hns3vf_check_event_cause(hns, NULL);
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return false;
 
+	hns3vf_check_event_cause(hns, NULL);
 	reset = hns3vf_get_reset_level(hw, &hw->reset.pending);
 	if (hw->reset.level != HNS3_NONE_RESET && hw->reset.level < reset) {
 		hns3_warn(hw, "High level reset %d is pending", reset);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.670397316 +0000
+++ 0013-net-hns3-remove-reset-log-in-secondary.patch	2023-11-08 19:23:51.769396209 +0000
@@ -1 +1 @@
-From 5394df455749f60614a19d791d1d73c26b74dea1 Mon Sep 17 00:00:00 2001
+From aca18a766ad56e413a287316c4dea56eea6438ce Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5394df455749f60614a19d791d1d73c26b74dea1 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index 964f47f164..3bdce1fa4b 100644
+index b898c7b5a3..2acb2a56d6 100644
@@ -26 +27 @@
-@@ -5512,14 +5512,13 @@ hns3_is_reset_pending(struct hns3_adapter *hns)
+@@ -5481,14 +5481,13 @@ hns3_is_reset_pending(struct hns3_adapter *hns)
@@ -44,2 +45,2 @@
- 	if (reset != HNS3_NONE_RESET && hw->reset.level != HNS3_NONE_RESET &&
- 	    hw->reset.level < reset) {
+ 	if (hw->reset.level != HNS3_NONE_RESET && hw->reset.level < reset) {
+ 		hns3_warn(hw, "High level reset %d is pending", reset);
@@ -47 +48 @@
-index 007f5d619f..5f3422d14e 100644
+index 8937e73305..cc04659369 100644
@@ -50 +51 @@
-@@ -1715,14 +1715,13 @@ hns3vf_is_reset_pending(struct hns3_adapter *hns)
+@@ -2308,14 +2308,13 @@ hns3vf_is_reset_pending(struct hns3_adapter *hns)
@@ -68,2 +69,2 @@
- 	if (hw->reset.level != HNS3_NONE_RESET && reset != HNS3_NONE_RESET &&
- 	    hw->reset.level < reset) {
+ 	if (hw->reset.level != HNS3_NONE_RESET && hw->reset.level < reset) {
+ 		hns3_warn(hw, "High level reset %d is pending", reset);

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

* patch 'test/bonding: remove unreachable statement' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (11 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/hns3: remove reset log in secondary' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'test/bonding: add missing check' " luca.boccassi
                       ` (22 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Long Wu; +Cc: Chaoyong He, Peng Zhang, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/9b198fcbaf36cfa08918e233767fa5850088c66f

Thanks.

Luca Boccassi

---
From 9b198fcbaf36cfa08918e233767fa5850088c66f Mon Sep 17 00:00:00 2001
From: Long Wu <long.wu@corigine.com>
Date: Tue, 10 Oct 2023 14:23:02 +0800
Subject: [PATCH] test/bonding: remove unreachable statement

[ upstream commit 9f4f98c9898fc6aa730ed02571790aa0b2ac4813 ]

CI found that execution cannot reach the expression "else"
inside this statement.

Coverity issue: 403097
Fixes: 5e41ab250dfa ("app/test: unit tests for bonding mode 4")

Signed-off-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test/test_link_bonding_mode4.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/app/test/test_link_bonding_mode4.c b/app/test/test_link_bonding_mode4.c
index 2c835fa7ad..b73f52e19f 100644
--- a/app/test/test_link_bonding_mode4.c
+++ b/app/test/test_link_bonding_mode4.c
@@ -644,8 +644,7 @@ bond_handshake(void)
 	/* If response didn't send - report failure */
 	TEST_ASSERT_EQUAL(all_slaves_done, 1, "Bond handshake failed\n");
 
-	/* If flags doesn't match - report failure */
-	return all_slaves_done == 1 ? TEST_SUCCESS : TEST_FAILED;
+	return TEST_SUCCESS;
 }
 
 #define TEST_LACP_SLAVE_COUT RTE_DIM(test_params.slave_ports)
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.732341834 +0000
+++ 0014-test-bonding-remove-unreachable-statement.patch	2023-11-08 19:23:51.769396209 +0000
@@ -1 +1 @@
-From 9f4f98c9898fc6aa730ed02571790aa0b2ac4813 Mon Sep 17 00:00:00 2001
+From 9b198fcbaf36cfa08918e233767fa5850088c66f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 9f4f98c9898fc6aa730ed02571790aa0b2ac4813 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 645fc1e0d4..ff13dbed93 100644
+index 2c835fa7ad..b73f52e19f 100644
@@ -25 +26 @@
-@@ -641,8 +641,7 @@ bond_handshake(void)
+@@ -644,8 +644,7 @@ bond_handshake(void)
@@ -27 +28 @@
- 	TEST_ASSERT_EQUAL(all_members_done, 1, "Bond handshake failed\n");
+ 	TEST_ASSERT_EQUAL(all_slaves_done, 1, "Bond handshake failed\n");
@@ -30 +31 @@
--	return all_members_done == 1 ? TEST_SUCCESS : TEST_FAILED;
+-	return all_slaves_done == 1 ? TEST_SUCCESS : TEST_FAILED;
@@ -34 +35 @@
- #define TEST_LACP_MEMBER_COUT RTE_DIM(test_params.member_ports)
+ #define TEST_LACP_SLAVE_COUT RTE_DIM(test_params.slave_ports)

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

* patch 'test/bonding: add missing check' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (12 preceding siblings ...)
  2023-11-08 19:25     ` patch 'test/bonding: remove unreachable statement' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/bonding: fix possible overrun' " luca.boccassi
                       ` (21 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Long Wu; +Cc: Chaoyong He, Peng Zhang, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/894b6863a30800d67b9d19c7ffdbbbcfdefb6ef8

Thanks.

Luca Boccassi

---
From 894b6863a30800d67b9d19c7ffdbbbcfdefb6ef8 Mon Sep 17 00:00:00 2001
From: Long Wu <long.wu@corigine.com>
Date: Tue, 10 Oct 2023 14:23:04 +0800
Subject: [PATCH] test/bonding: add missing check

[ upstream commit 0ecafc2e44268e4d0626dcf0c811590466291f20 ]

CI found the function without checking return value in this place.

Coverity issue: 403101
Fixes: 92073ef961ee ("bond: unit tests")

Signed-off-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test/test_link_bonding.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/app/test/test_link_bonding.c b/app/test/test_link_bonding.c
index 4f810efb0a..886fe1680e 100644
--- a/app/test/test_link_bonding.c
+++ b/app/test/test_link_bonding.c
@@ -445,7 +445,8 @@ test_add_already_bonded_slave_to_bonded_device(void)
 	uint16_t slaves[RTE_MAX_ETHPORTS];
 	char pmd_name[RTE_ETH_NAME_MAX_LEN];
 
-	test_add_slave_to_bonded_device();
+	TEST_ASSERT_SUCCESS(test_add_slave_to_bonded_device(),
+			"Failed to add member to bonding device");
 
 	current_slave_count = rte_eth_bond_slaves_get(test_params->bonded_port_id,
 			slaves, RTE_MAX_ETHPORTS);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.784869629 +0000
+++ 0015-test-bonding-add-missing-check.patch	2023-11-08 19:23:51.777396376 +0000
@@ -1 +1 @@
-From 0ecafc2e44268e4d0626dcf0c811590466291f20 Mon Sep 17 00:00:00 2001
+From 894b6863a30800d67b9d19c7ffdbbbcfdefb6ef8 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0ecafc2e44268e4d0626dcf0c811590466291f20 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 4d715c4465..4d54706c21 100644
+index 4f810efb0a..886fe1680e 100644
@@ -24,2 +25,2 @@
-@@ -449,7 +449,8 @@ test_add_already_bonding_member_to_bonding_device(void)
- 	uint16_t members[RTE_MAX_ETHPORTS];
+@@ -445,7 +445,8 @@ test_add_already_bonded_slave_to_bonded_device(void)
+ 	uint16_t slaves[RTE_MAX_ETHPORTS];
@@ -28,2 +29,2 @@
--	test_add_member_to_bonding_device();
-+	TEST_ASSERT_SUCCESS(test_add_member_to_bonding_device(),
+-	test_add_slave_to_bonded_device();
++	TEST_ASSERT_SUCCESS(test_add_slave_to_bonded_device(),
@@ -32,2 +33,2 @@
- 	current_member_count = rte_eth_bond_members_get(test_params->bonding_port_id,
- 			members, RTE_MAX_ETHPORTS);
+ 	current_slave_count = rte_eth_bond_slaves_get(test_params->bonded_port_id,
+ 			slaves, RTE_MAX_ETHPORTS);

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

* patch 'net/bonding: fix possible overrun' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (13 preceding siblings ...)
  2023-11-08 19:25     ` patch 'test/bonding: add missing check' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/txgbe: add proper memory barriers in Rx' " luca.boccassi
                       ` (20 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Long Wu; +Cc: Chaoyong He, Peng Zhang, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From bc4acb974322da25075fe9056feafe092560c681 Mon Sep 17 00:00:00 2001
From: Long Wu <long.wu@corigine.com>
Date: Wed, 1 Nov 2023 10:19:59 +0800
Subject: [PATCH] net/bonding: fix possible overrun

[ upstream commit 925f8582c49c79f588cb4c96f510fb94becbb3bc ]

CI found that overrunning array of 32 2-byte elements at
element index 65535 (byte offset 131071) by dereferencing
pointer "members + agg_new_idx".

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

Signed-off-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/bonding/rte_eth_bond_8023ad.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c
index 4ead74412b..6d97fbfdda 100644
--- a/drivers/net/bonding/rte_eth_bond_8023ad.c
+++ b/drivers/net/bonding/rte_eth_bond_8023ad.c
@@ -652,12 +652,9 @@ tx_machine(struct bond_dev_private *internals, uint16_t slave_id)
 }
 
 static uint16_t
-max_index(uint64_t *a, int n)
+max_index(uint64_t *a, uint16_t n)
 {
-	if (n <= 0)
-		return -1;
-
-	int i, max_i = 0;
+	uint16_t i, max_i = 0;
 	uint64_t max = a[0];
 
 	for (i = 1; i < n; ++i) {
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.829216495 +0000
+++ 0016-net-bonding-fix-possible-overrun.patch	2023-11-08 19:23:51.777396376 +0000
@@ -1 +1 @@
-From 925f8582c49c79f588cb4c96f510fb94becbb3bc Mon Sep 17 00:00:00 2001
+From bc4acb974322da25075fe9056feafe092560c681 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 925f8582c49c79f588cb4c96f510fb94becbb3bc ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index 677067870f..79f1b3f1a0 100644
+index 4ead74412b..6d97fbfdda 100644
@@ -26 +27 @@
-@@ -654,12 +654,9 @@ tx_machine(struct bond_dev_private *internals, uint16_t member_id)
+@@ -652,12 +652,9 @@ tx_machine(struct bond_dev_private *internals, uint16_t slave_id)

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

* patch 'net/txgbe: add proper memory barriers in Rx' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (14 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/bonding: fix possible overrun' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'ethdev: fix 32-bit build with GCC 13' " luca.boccassi
                       ` (19 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From 4cac7f3cd2acfdba14d300fe6e86c7ace3b3a865 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Wed, 1 Nov 2023 11:32:40 +0800
Subject: [PATCH] net/txgbe: add proper memory barriers in Rx

[ upstream commit 5bf954b7d91ad20ee87befbad9fdb53f03dd488b ]

Refer to commit 85e46c532bc7 ("net/ixgbe: add proper memory barriers in
Rx"). Fix the same issue as ixgbe.

Segmentation fault has been observed while running the
txgbe_recv_pkts_lro() function to receive packets on the Loongson 3A5000
processor. It's caused by the out-of-order execution of CPU. So add a
proper memory barrier to ensure the read ordering be correct.

We also did the same thing in the txgbe_recv_pkts() function to make the
rxd data be valid even though we did not find segmentation fault in this
function.

Fixes: 0e484278c85f ("net/txgbe: support Rx")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/txgbe_rxtx.c | 47 +++++++++++++++-------------------
 1 file changed, 21 insertions(+), 26 deletions(-)

diff --git a/drivers/net/txgbe/txgbe_rxtx.c b/drivers/net/txgbe/txgbe_rxtx.c
index ae6aa07a01..a630e533a7 100644
--- a/drivers/net/txgbe/txgbe_rxtx.c
+++ b/drivers/net/txgbe/txgbe_rxtx.c
@@ -1405,11 +1405,22 @@ txgbe_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
 		 * of accesses cannot be reordered by the compiler. If they were
 		 * not volatile, they could be reordered which could lead to
 		 * using invalid descriptor fields when read from rxd.
+		 *
+		 * Meanwhile, to prevent the CPU from executing out of order, we
+		 * need to use a proper memory barrier to ensure the memory
+		 * ordering below.
 		 */
 		rxdp = &rx_ring[rx_id];
 		staterr = rxdp->qw1.lo.status;
 		if (!(staterr & rte_cpu_to_le_32(TXGBE_RXD_STAT_DD)))
 			break;
+
+		/*
+		 * Use acquire fence to ensure that status_error which includes
+		 * DD bit is loaded before loading of other descriptor words.
+		 */
+		rte_atomic_thread_fence(__ATOMIC_ACQUIRE);
+
 		rxd = *rxdp;
 
 		/*
@@ -1655,32 +1666,10 @@ txgbe_recv_pkts_lro(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts,
 
 next_desc:
 		/*
-		 * The code in this whole file uses the volatile pointer to
-		 * ensure the read ordering of the status and the rest of the
-		 * descriptor fields (on the compiler level only!!!). This is so
-		 * UGLY - why not to just use the compiler barrier instead? DPDK
-		 * even has the rte_compiler_barrier() for that.
-		 *
-		 * But most importantly this is just wrong because this doesn't
-		 * ensure memory ordering in a general case at all. For
-		 * instance, DPDK is supposed to work on Power CPUs where
-		 * compiler barrier may just not be enough!
-		 *
-		 * I tried to write only this function properly to have a
-		 * starting point (as a part of an LRO/RSC series) but the
-		 * compiler cursed at me when I tried to cast away the
-		 * "volatile" from rx_ring (yes, it's volatile too!!!). So, I'm
-		 * keeping it the way it is for now.
-		 *
-		 * The code in this file is broken in so many other places and
-		 * will just not work on a big endian CPU anyway therefore the
-		 * lines below will have to be revisited together with the rest
-		 * of the txgbe PMD.
-		 *
-		 * TODO:
-		 *    - Get rid of "volatile" and let the compiler do its job.
-		 *    - Use the proper memory barrier (rte_rmb()) to ensure the
-		 *      memory ordering below.
+		 * "Volatile" only prevents caching of the variable marked
+		 * volatile. Most important, "volatile" cannot prevent the CPU
+		 * from executing out of order. So, it is necessary to use a
+		 * proper memory barrier to ensure the memory ordering below.
 		 */
 		rxdp = &rx_ring[rx_id];
 		staterr = rte_le_to_cpu_32(rxdp->qw1.lo.status);
@@ -1688,6 +1677,12 @@ next_desc:
 		if (!(staterr & TXGBE_RXD_STAT_DD))
 			break;
 
+		/*
+		 * Use acquire fence to ensure that status_error which includes
+		 * DD bit is loaded before loading of other descriptor words.
+		 */
+		rte_atomic_thread_fence(__ATOMIC_ACQUIRE);
+
 		rxd = *rxdp;
 
 		PMD_RX_LOG(DEBUG, "port_id=%u queue_id=%u rx_id=%u "
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.869234053 +0000
+++ 0017-net-txgbe-add-proper-memory-barriers-in-Rx.patch	2023-11-08 19:23:51.785396541 +0000
@@ -1 +1 @@
-From 5bf954b7d91ad20ee87befbad9fdb53f03dd488b Mon Sep 17 00:00:00 2001
+From 4cac7f3cd2acfdba14d300fe6e86c7ace3b3a865 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5bf954b7d91ad20ee87befbad9fdb53f03dd488b ]
+
@@ -19 +20,0 @@
-Cc: stable@dpdk.org
@@ -23,2 +24,2 @@
- drivers/net/txgbe/txgbe_rxtx.c | 49 +++++++++++++++-------------------
- 1 file changed, 22 insertions(+), 27 deletions(-)
+ drivers/net/txgbe/txgbe_rxtx.c | 47 +++++++++++++++-------------------
+ 1 file changed, 21 insertions(+), 26 deletions(-)
@@ -27 +28 @@
-index 834ada886a..1cd4b25965 100644
+index ae6aa07a01..a630e533a7 100644
@@ -30,10 +31 @@
-@@ -1226,7 +1226,7 @@ txgbe_rx_scan_hw_ring(struct txgbe_rx_queue *rxq)
- 		for (j = 0; j < LOOK_AHEAD; j++)
- 			s[j] = rte_le_to_cpu_32(rxdp[j].qw1.lo.status);
- 
--		rte_atomic_thread_fence(__ATOMIC_ACQUIRE);
-+		rte_atomic_thread_fence(rte_memory_order_acquire);
- 
- 		/* Compute how many status bits were set */
- 		for (nb_dd = 0; nb_dd < LOOK_AHEAD &&
-@@ -1476,11 +1476,22 @@ txgbe_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
+@@ -1405,11 +1405,22 @@ txgbe_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
@@ -57 +49 @@
-+		rte_atomic_thread_fence(rte_memory_order_acquire);
++		rte_atomic_thread_fence(__ATOMIC_ACQUIRE);
@@ -62 +54 @@
-@@ -1726,32 +1737,10 @@ txgbe_recv_pkts_lro(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts,
+@@ -1655,32 +1666,10 @@ txgbe_recv_pkts_lro(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts,
@@ -99 +91 @@
-@@ -1759,6 +1748,12 @@ next_desc:
+@@ -1688,6 +1677,12 @@ next_desc:
@@ -107 +99 @@
-+		rte_atomic_thread_fence(rte_memory_order_acquire);
++		rte_atomic_thread_fence(__ATOMIC_ACQUIRE);

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

* patch 'ethdev: fix 32-bit build with GCC 13' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (15 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/txgbe: add proper memory barriers in Rx' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/enic: avoid extra unlock in MTU set' " luca.boccassi
                       ` (18 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Ruifeng Wang; +Cc: Luca Boccassi, Ori Kam, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/6cdc03899a13bacd67bdb887377f69b2993b02ca

Thanks.

Luca Boccassi

---
From 6cdc03899a13bacd67bdb887377f69b2993b02ca Mon Sep 17 00:00:00 2001
From: Ruifeng Wang <ruifeng.wang@arm.com>
Date: Wed, 1 Nov 2023 15:15:54 +0800
Subject: [PATCH] ethdev: fix 32-bit build with GCC 13

[ upstream commit 3d67012ab70252190fcfea12c122567a4d010228 ]

aarch32 build with gcc-13.0.1 generated following warning:

In function 'memcpy',
 inlined from 'rte_memcpy' at .../eal/arm/include/rte_memcpy_32.h:296:9,
 inlined from 'rte_flow_conv_action_conf' at .../rte_flow.c:726:20,
 inlined from 'rte_flow_conv_actions' at .../ethdev/rte_flow.c:936:10:
warning: '__builtin_memcpy' specified bound 4294967264 exceeds maximum
         object size 2147483647 [-Wstringop-overflow=]

The issue is due to possible wrapping in unsigned arithmetic.
The 'size' can be 0. 'off' is 32. When 'tmp' is equal to (unsigned)-32,
the copy length is more than half the address space. Hence the warning.

Cast variables to 64-bit to avoid wrapping.

Fixes: 063911ee1df4 ("ethdev: add flow API object converter")

Reported-by: Luca Boccassi <bluca@debian.org>
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Ori Kam <orika@nvidia.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 lib/librte_ethdev/rte_flow.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/librte_ethdev/rte_flow.c b/lib/librte_ethdev/rte_flow.c
index a06f64c271..5a0f1feb0c 100644
--- a/lib/librte_ethdev/rte_flow.c
+++ b/lib/librte_ethdev/rte_flow.c
@@ -580,7 +580,7 @@ rte_flow_conv_action_conf(void *buf, const size_t size,
 		if (src.rss->key_len && src.rss->key) {
 			off = RTE_ALIGN_CEIL(off, sizeof(*dst.rss->key));
 			tmp = sizeof(*src.rss->key) * src.rss->key_len;
-			if (size >= off + tmp)
+			if (size >= (uint64_t)off + (uint64_t)tmp)
 				dst.rss->key = rte_memcpy
 					((void *)((uintptr_t)dst.rss + off),
 					 src.rss->key, tmp);
@@ -589,7 +589,7 @@ rte_flow_conv_action_conf(void *buf, const size_t size,
 		if (src.rss->queue_num) {
 			off = RTE_ALIGN_CEIL(off, sizeof(*dst.rss->queue));
 			tmp = sizeof(*src.rss->queue) * src.rss->queue_num;
-			if (size >= off + tmp)
+			if (size >= (uint64_t)off + (uint64_t)tmp)
 				dst.rss->queue = rte_memcpy
 					((void *)((uintptr_t)dst.rss + off),
 					 src.rss->queue, tmp);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.912025432 +0000
+++ 0018-ethdev-fix-32-bit-build-with-GCC-13.patch	2023-11-08 19:23:51.785396541 +0000
@@ -1 +1 @@
-From 3d67012ab70252190fcfea12c122567a4d010228 Mon Sep 17 00:00:00 2001
+From 6cdc03899a13bacd67bdb887377f69b2993b02ca Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3d67012ab70252190fcfea12c122567a4d010228 ]
+
@@ -22 +23,0 @@
-Cc: stable@dpdk.org
@@ -29 +30 @@
- lib/ethdev/rte_flow.c | 4 ++--
+ lib/librte_ethdev/rte_flow.c | 4 ++--
@@ -32,5 +33,5 @@
-diff --git a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c
-index 4d6c28ee0e..20ee8430ea 100644
---- a/lib/ethdev/rte_flow.c
-+++ b/lib/ethdev/rte_flow.c
-@@ -724,7 +724,7 @@ rte_flow_conv_action_conf(void *buf, const size_t size,
+diff --git a/lib/librte_ethdev/rte_flow.c b/lib/librte_ethdev/rte_flow.c
+index a06f64c271..5a0f1feb0c 100644
+--- a/lib/librte_ethdev/rte_flow.c
++++ b/lib/librte_ethdev/rte_flow.c
+@@ -580,7 +580,7 @@ rte_flow_conv_action_conf(void *buf, const size_t size,
@@ -45 +46 @@
-@@ -733,7 +733,7 @@ rte_flow_conv_action_conf(void *buf, const size_t size,
+@@ -589,7 +589,7 @@ rte_flow_conv_action_conf(void *buf, const size_t size,

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

* patch 'net/enic: avoid extra unlock in MTU set' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (16 preceding siblings ...)
  2023-11-08 19:25     ` patch 'ethdev: fix 32-bit build with GCC 13' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/hns3: fix setting DCB capability' " luca.boccassi
                       ` (17 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Weiguo Li; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/02f1c312bf87e5fdbf0c7696bfa16b2d7f2a8323

Thanks.

Luca Boccassi

---
From 02f1c312bf87e5fdbf0c7696bfa16b2d7f2a8323 Mon Sep 17 00:00:00 2001
From: Weiguo Li <liweiguo@xencore.cn>
Date: Wed, 1 Nov 2023 15:28:09 +0800
Subject: [PATCH] net/enic: avoid extra unlock in MTU set

[ upstream commit e90884a65bf6d8ed0e1e5618af42cf5856a422f1 ]

The 'set_mtu_done' goto statement is being executed in a context
where the 'mtu_lock' has not been previously locked.

To avoid the extra unlocking operation, replace the goto statement
with a return statement.

Fixes: c3e09182bcd6 ("net/enic: support scatter Rx in MTU update")

Signed-off-by: Weiguo Li <liweiguo@xencore.cn>
Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/enic/enic_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index 498476fce5..7e21557f58 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -1630,7 +1630,7 @@ int enic_set_mtu(struct enic *enic, uint16_t new_mtu)
 	 * packet length.
 	 */
 	if (!eth_dev->data->dev_started)
-		goto set_mtu_done;
+		return rc;
 
 	/*
 	 * The device has started, re-do RQs on the fly. In the process, we
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.950910547 +0000
+++ 0019-net-enic-avoid-extra-unlock-in-MTU-set.patch	2023-11-08 19:23:51.785396541 +0000
@@ -1 +1 @@
-From e90884a65bf6d8ed0e1e5618af42cf5856a422f1 Mon Sep 17 00:00:00 2001
+From 02f1c312bf87e5fdbf0c7696bfa16b2d7f2a8323 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e90884a65bf6d8ed0e1e5618af42cf5856a422f1 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -18 +18,0 @@
- .mailmap                     | 2 +-
@@ -20 +20 @@
- 2 files changed, 2 insertions(+), 2 deletions(-)
+ 1 file changed, 1 insertion(+), 1 deletion(-)
@@ -22,13 +21,0 @@
-diff --git a/.mailmap b/.mailmap
-index 1e6d750979..c384d97a1a 100644
---- a/.mailmap
-+++ b/.mailmap
-@@ -1502,7 +1502,7 @@ Waterman Cao <waterman.cao@intel.com>
- Weichun Chen <weichunx.chen@intel.com>
- Wei Dai <wei.dai@intel.com>
- Weifeng Li <liweifeng96@126.com>
--Weiguo Li <liwg06@foxmail.com>
-+Weiguo Li <liweiguo@xencore.cn> <liwg06@foxmail.com>
- Wei Huang <wei.huang@intel.com>
- Wei Hu <weh@microsoft.com>
- Wei Hu (Xavier) <xavier.huwei@huawei.com>
@@ -36 +23 @@
-index 19a99a82c5..a6aaa760ca 100644
+index 498476fce5..7e21557f58 100644
@@ -39 +26 @@
-@@ -1639,7 +1639,7 @@ int enic_set_mtu(struct enic *enic, uint16_t new_mtu)
+@@ -1630,7 +1630,7 @@ int enic_set_mtu(struct enic *enic, uint16_t new_mtu)

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

* patch 'net/hns3: fix setting DCB capability' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (17 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/enic: avoid extra unlock in MTU set' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/hns3: fix some return values' " luca.boccassi
                       ` (16 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Huisong Li; +Cc: Jie Hai, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From 4cf3c2381b0ccbd1491f3662e4739bac41a8c72d Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Tue, 31 Oct 2023 20:23:54 +0800
Subject: [PATCH] net/hns3: fix setting DCB capability

[ upstream commit ac61c444e647298dded80a2ab52966a2dbe22b68 ]

The "hw->capability" is set after querying firmware and version.
But the DCB capability of PF is set in other place.
So this patch moves setting DCB capability to the place where
all capabilities are set.

Fixes: ab2e2e344163 ("net/hns3: get device capability in primary process")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_cmd.c    | 25 +++++++++++++++++++++++++
 drivers/net/hns3/hns3_ethdev.c |  8 --------
 2 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/drivers/net/hns3/hns3_cmd.c b/drivers/net/hns3/hns3_cmd.c
index dc65ef8c26..2a67c264c6 100644
--- a/drivers/net/hns3/hns3_cmd.c
+++ b/drivers/net/hns3/hns3_cmd.c
@@ -448,6 +448,28 @@ hns3_build_api_caps(void)
 	return rte_cpu_to_le_32(api_caps);
 }
 
+static void
+hns3_set_dcb_capability(struct hns3_hw *hw)
+{
+	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
+	struct rte_pci_device *pci_dev;
+	struct rte_eth_dev *eth_dev;
+	uint16_t device_id;
+
+	if (hns->is_vf)
+		return;
+
+	eth_dev = &rte_eth_devices[hw->data->port_id];
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
+	device_id = pci_dev->id.device_id;
+
+	if (device_id == HNS3_DEV_ID_25GE_RDMA ||
+	    device_id == HNS3_DEV_ID_50GE_RDMA ||
+	    device_id == HNS3_DEV_ID_100G_RDMA_MACSEC ||
+	    device_id == HNS3_DEV_ID_200G_RDMA)
+		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_DCB_B, 1);
+}
+
 static int
 hns3_cmd_query_firmware_version_and_capability(struct hns3_hw *hw)
 {
@@ -465,6 +487,9 @@ hns3_cmd_query_firmware_version_and_capability(struct hns3_hw *hw)
 		return ret;
 
 	hw->fw_version = rte_le_to_cpu_32(resp->firmware);
+
+	hns3_set_dcb_capability(hw);
+
 	hns3_parse_capability(hw, resp);
 
 	return 0;
diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 2acb2a56d6..454f73ac77 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -3112,19 +3112,11 @@ hns3_get_capability(struct hns3_hw *hw)
 	struct rte_pci_device *pci_dev;
 	struct hns3_pf *pf = &hns->pf;
 	struct rte_eth_dev *eth_dev;
-	uint16_t device_id;
 	uint8_t revision;
 	int ret;
 
 	eth_dev = &rte_eth_devices[hw->data->port_id];
 	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
-	device_id = pci_dev->id.device_id;
-
-	if (device_id == HNS3_DEV_ID_25GE_RDMA ||
-	    device_id == HNS3_DEV_ID_50GE_RDMA ||
-	    device_id == HNS3_DEV_ID_100G_RDMA_MACSEC ||
-	    device_id == HNS3_DEV_ID_200G_RDMA)
-		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_DCB_B, 1);
 
 	/* Get PCI revision id */
 	ret = rte_pci_read_config(pci_dev, &revision, HNS3_PCI_REVISION_ID_LEN,
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:52.992733685 +0000
+++ 0020-net-hns3-fix-setting-DCB-capability.patch	2023-11-08 19:23:51.793396707 +0000
@@ -1 +1 @@
-From ac61c444e647298dded80a2ab52966a2dbe22b68 Mon Sep 17 00:00:00 2001
+From 4cf3c2381b0ccbd1491f3662e4739bac41a8c72d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ac61c444e647298dded80a2ab52966a2dbe22b68 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -18,2 +19,2 @@
- drivers/net/hns3/hns3_ethdev.c | 13 -------------
- 2 files changed, 25 insertions(+), 13 deletions(-)
+ drivers/net/hns3/hns3_ethdev.c |  8 --------
+ 2 files changed, 25 insertions(+), 8 deletions(-)
@@ -22 +23 @@
-index ca1d3f1b8c..62c55f347f 100644
+index dc65ef8c26..2a67c264c6 100644
@@ -25 +26 @@
-@@ -525,6 +525,28 @@ hns3_build_api_caps(void)
+@@ -448,6 +448,28 @@ hns3_build_api_caps(void)
@@ -54 +55 @@
-@@ -542,6 +564,9 @@ hns3_cmd_query_firmware_version_and_capability(struct hns3_hw *hw)
+@@ -465,6 +487,9 @@ hns3_cmd_query_firmware_version_and_capability(struct hns3_hw *hw)
@@ -61,3 +62,3 @@
- 	/*
- 	 * Make sure mask the capability before parse capability because it
- 	 * may overwrite resp's data.
+ 	hns3_parse_capability(hw, resp);
+ 
+ 	return 0;
@@ -65 +66 @@
-index 0feea52542..472737e8a8 100644
+index 2acb2a56d6..454f73ac77 100644
@@ -68,5 +69,2 @@
-@@ -2719,22 +2719,9 @@ static int
- hns3_get_capability(struct hns3_hw *hw)
- {
- 	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
--	struct rte_pci_device *pci_dev;
+@@ -3112,19 +3112,11 @@ hns3_get_capability(struct hns3_hw *hw)
+ 	struct rte_pci_device *pci_dev;
@@ -74 +72 @@
--	struct rte_eth_dev *eth_dev;
+ 	struct rte_eth_dev *eth_dev;
@@ -75,0 +74 @@
+ 	uint8_t revision;
@@ -78,2 +77,2 @@
--	eth_dev = &rte_eth_devices[hw->data->port_id];
--	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
+ 	eth_dev = &rte_eth_devices[hw->data->port_id];
+ 	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
@@ -87,4 +86,3 @@
--
- 	ret = hns3_get_pci_revision_id(hw, &hw->revision);
- 	if (ret)
- 		return ret;
+ 
+ 	/* Get PCI revision id */
+ 	ret = rte_pci_read_config(pci_dev, &revision, HNS3_PCI_REVISION_ID_LEN,

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

* patch 'net/hns3: fix some return values' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (18 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/hns3: fix setting DCB capability' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/hns3: fix some error logs' " luca.boccassi
                       ` (15 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Jie Hai; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From a6dd3475c50042cc1aecaef153dbbaa71e556b4d Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Tue, 31 Oct 2023 20:23:56 +0800
Subject: [PATCH] net/hns3: fix some return values

[ upstream commit 08159599978f7f7eb6c4aaed7c290e33b8bc3d64 ]

1. Fix the return value of hns3_get_imissed_stats_num as 'uint16_t'.
2. Add some error check for return value.

Fixes: fcba820d9b9e ("net/hns3: support flow director")

Signed-off-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_ethdev_vf.c |  5 ++++-
 drivers/net/hns3/hns3_fdir.c      |  2 +-
 drivers/net/hns3/hns3_stats.c     | 10 ++++++++--
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index cc04659369..0b15b3bd2f 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -2659,8 +2659,11 @@ hns3vf_reinit_dev(struct hns3_adapter *hns)
 		 */
 		if (pci_dev->kdrv == RTE_PCI_KDRV_IGB_UIO ||
 		    pci_dev->kdrv == RTE_PCI_KDRV_UIO_GENERIC) {
-			if (hns3vf_enable_msix(pci_dev, true))
+			ret = hns3vf_enable_msix(pci_dev, true);
+			if (ret != 0) {
 				hns3_err(hw, "Failed to enable msix");
+				return ret;
+			}
 		}
 
 		rte_intr_enable(&pci_dev->intr_handle);
diff --git a/drivers/net/hns3/hns3_fdir.c b/drivers/net/hns3/hns3_fdir.c
index f210c8b1e4..cbb78bfcd6 100644
--- a/drivers/net/hns3/hns3_fdir.c
+++ b/drivers/net/hns3/hns3_fdir.c
@@ -962,7 +962,7 @@ int hns3_fdir_filter_program(struct hns3_adapter *hns,
 				 rule->key_conf.spec.src_port,
 				 rule->key_conf.spec.dst_port, ret);
 		else
-			hns3_remove_fdir_filter(hw, fdir_info, &rule->key_conf);
+			ret = hns3_remove_fdir_filter(hw, fdir_info, &rule->key_conf);
 
 		return ret;
 	}
diff --git a/drivers/net/hns3/hns3_stats.c b/drivers/net/hns3/hns3_stats.c
index 7e645361cf..5cbdbecb6f 100644
--- a/drivers/net/hns3/hns3_stats.c
+++ b/drivers/net/hns3/hns3_stats.c
@@ -1144,9 +1144,15 @@ int
 hns3_stats_init(struct hns3_hw *hw)
 {
 	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
+	int ret;
 
-	if (!hns->is_vf)
-		hns3_mac_stats_reset(hw);
+	if (!hns->is_vf) {
+		ret = hns3_mac_stats_reset(hw);
+		if (ret) {
+			hns3_err(hw, "reset mac stats failed, ret = %d", ret);
+			return ret;
+		}
+	}
 
 	return hns3_tqp_stats_init(hw);
 }
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:53.037677581 +0000
+++ 0021-net-hns3-fix-some-return-values.patch	2023-11-08 19:23:51.797396789 +0000
@@ -1 +1 @@
-From 08159599978f7f7eb6c4aaed7c290e33b8bc3d64 Mon Sep 17 00:00:00 2001
+From a6dd3475c50042cc1aecaef153dbbaa71e556b4d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 08159599978f7f7eb6c4aaed7c290e33b8bc3d64 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -16,2 +17,2 @@
- drivers/net/hns3/hns3_stats.c     | 15 ++++++++++-----
- 3 files changed, 15 insertions(+), 7 deletions(-)
+ drivers/net/hns3/hns3_stats.c     | 10 ++++++++--
+ 3 files changed, 13 insertions(+), 4 deletions(-)
@@ -20 +21 @@
-index 0a227e6e45..156fb905f9 100644
+index cc04659369..0b15b3bd2f 100644
@@ -23 +24 @@
-@@ -2081,8 +2081,11 @@ hns3vf_reinit_dev(struct hns3_adapter *hns)
+@@ -2659,8 +2659,11 @@ hns3vf_reinit_dev(struct hns3_adapter *hns)
@@ -35 +36 @@
- 		rte_intr_enable(pci_dev->intr_handle);
+ 		rte_intr_enable(&pci_dev->intr_handle);
@@ -37 +38 @@
-index c80fa59e63..d100e58d10 100644
+index f210c8b1e4..cbb78bfcd6 100644
@@ -40 +41 @@
-@@ -978,7 +978,7 @@ int hns3_fdir_filter_program(struct hns3_adapter *hns,
+@@ -962,7 +962,7 @@ int hns3_fdir_filter_program(struct hns3_adapter *hns,
@@ -50 +51 @@
-index c2e692a2c5..9a1e8935e5 100644
+index 7e645361cf..5cbdbecb6f 100644
@@ -53,19 +54,2 @@
-@@ -771,7 +771,7 @@ hns3_mac_stats_reset(struct hns3_hw *hw)
- 	return 0;
- }
- 
--static int
-+static uint16_t
- hns3_get_imissed_stats_num(struct hns3_adapter *hns)
- {
- #define NO_IMISSED_STATS_NUM   0
-@@ -993,7 +993,7 @@ hns3_imissed_stats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats,
- 	struct hns3_adapter *hns = dev->data->dev_private;
- 	struct hns3_hw *hw = &hns->hw;
- 	struct hns3_rx_missed_stats *imissed_stats = &hw->imissed_stats;
--	int imissed_stats_num;
-+	uint16_t imissed_stats_num;
- 	int cnt = *count;
- 	char *addr;
- 	uint16_t i;
-@@ -1170,7 +1170,7 @@ hns3_imissed_stats_name_get(struct rte_eth_dev *dev,
+@@ -1144,9 +1144,15 @@ int
+ hns3_stats_init(struct hns3_hw *hw)
@@ -73,10 +57,2 @@
- 	struct hns3_adapter *hns = dev->data->dev_private;
- 	uint32_t cnt = *count;
--	int imissed_stats_num;
-+	uint16_t imissed_stats_num;
- 	uint16_t i;
- 
- 	imissed_stats_num = hns3_get_imissed_stats_num(hns);
-@@ -1539,8 +1539,13 @@ hns3_stats_init(struct hns3_hw *hw)
- 		return ret;
- 	}
+ 	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
++	int ret;

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

* patch 'net/hns3: fix some error logs' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (19 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/hns3: fix some return values' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/hns3: keep set/get algo key functions local' " luca.boccassi
                       ` (14 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Jie Hai; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/45ed930d5ad9eb823a936ed2210aa7a2f5775ef1

Thanks.

Luca Boccassi

---
From 45ed930d5ad9eb823a936ed2210aa7a2f5775ef1 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Tue, 31 Oct 2023 20:23:57 +0800
Subject: [PATCH] net/hns3: fix some error logs

[ upstream commit fdafdca875eafe36950542cbfbdb21b01b371081 ]

This patch fixes some error log.

Fixes: 62e3ccc2b94c ("net/hns3: support flow control")

Signed-off-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_dcb.c  | 2 +-
 drivers/net/hns3/hns3_flow.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hns3/hns3_dcb.c b/drivers/net/hns3/hns3_dcb.c
index 6f9335a41f..31c5c460f2 100644
--- a/drivers/net/hns3/hns3_dcb.c
+++ b/drivers/net/hns3/hns3_dcb.c
@@ -1051,7 +1051,7 @@ hns3_dcb_map_cfg(struct hns3_hw *hw)
 
 	ret = hns3_pg_to_pri_map(hw);
 	if (ret) {
-		hns3_err(hw, "pri_to_pg mapping fail: %d", ret);
+		hns3_err(hw, "pg_to_pri mapping fail: %d", ret);
 		return ret;
 	}
 
diff --git a/drivers/net/hns3/hns3_flow.c b/drivers/net/hns3/hns3_flow.c
index 79910ff982..2f49b47151 100644
--- a/drivers/net/hns3/hns3_flow.c
+++ b/drivers/net/hns3/hns3_flow.c
@@ -907,7 +907,7 @@ hns3_parse_sctp(const struct rte_flow_item *item, struct hns3_fdir_rule *rule,
 			return rte_flow_error_set(error, EINVAL,
 						  RTE_FLOW_ERROR_TYPE_ITEM_MASK,
 						  item,
-						  "Only support src & dst port in SCTP");
+						  "Only support src & dst port & v-tag in SCTP");
 		if (sctp_mask->hdr.src_port) {
 			hns3_set_bit(rule->input_set, INNER_SRC_PORT, 1);
 			rule->key_conf.mask.src_port =
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:53.080646025 +0000
+++ 0022-net-hns3-fix-some-error-logs.patch	2023-11-08 19:23:51.801396872 +0000
@@ -1 +1 @@
-From fdafdca875eafe36950542cbfbdb21b01b371081 Mon Sep 17 00:00:00 2001
+From 45ed930d5ad9eb823a936ed2210aa7a2f5775ef1 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit fdafdca875eafe36950542cbfbdb21b01b371081 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index 07b8c46a81..2831d3dc62 100644
+index 6f9335a41f..31c5c460f2 100644
@@ -21 +22 @@
-@@ -1082,7 +1082,7 @@ hns3_dcb_map_cfg(struct hns3_hw *hw)
+@@ -1051,7 +1051,7 @@ hns3_dcb_map_cfg(struct hns3_hw *hw)
@@ -31 +32 @@
-index a5a7e452d8..7fbe65313c 100644
+index 79910ff982..2f49b47151 100644
@@ -34 +35 @@
-@@ -927,7 +927,7 @@ hns3_parse_sctp(const struct rte_flow_item *item, struct hns3_fdir_rule *rule,
+@@ -907,7 +907,7 @@ hns3_parse_sctp(const struct rte_flow_item *item, struct hns3_fdir_rule *rule,

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

* patch 'net/hns3: keep set/get algo key functions local' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (20 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/hns3: fix some error logs' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/hns3: fix uninitialized hash algo value' " luca.boccassi
                       ` (13 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Jie Hai; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From 0b6d1e010952f4a4c9ef24559b6ad7f19700becd Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Tue, 31 Oct 2023 20:23:58 +0800
Subject: [PATCH] net/hns3: keep set/get algo key functions local

[ upstream commit 4d996f3b2a1dcce2fff59a0a9490c04480e4c805 ]

The functions "hns3_rss_set_algo_key()" and "hns3_rss_get_algo_key()"
are the inner interfaces to set hardware. Driver already had an API,
"hns3_update_rss_algo_key()", to export and to update RSS algo or key.
So above two innter interface don't export.

Fixes: 7da415d27d88 ("net/hns3: use hardware config to report hash key")

Signed-off-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_rss.c | 4 ++--
 drivers/net/hns3/hns3_rss.h | 4 ----
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/net/hns3/hns3_rss.c b/drivers/net/hns3/hns3_rss.c
index cb4a2bbede..cb1339d4da 100644
--- a/drivers/net/hns3/hns3_rss.c
+++ b/drivers/net/hns3/hns3_rss.c
@@ -283,7 +283,7 @@ static const struct {
  * rss_generic_config command function, opcode:0x0D01.
  * Used to set algorithm and hash key of RSS.
  */
-int
+static int
 hns3_set_rss_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
 		      const uint8_t *key, uint8_t key_len)
 {
@@ -324,7 +324,7 @@ hns3_set_rss_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
 	return 0;
 }
 
-int
+static int
 hns3_rss_get_algo_key(struct hns3_hw *hw,  uint8_t *hash_algo,
 		      uint8_t *key, uint8_t key_len)
 {
diff --git a/drivers/net/hns3/hns3_rss.h b/drivers/net/hns3/hns3_rss.h
index 151880f65a..20bf984d44 100644
--- a/drivers/net/hns3/hns3_rss.h
+++ b/drivers/net/hns3/hns3_rss.h
@@ -194,11 +194,7 @@ bool hns3_check_rss_types_valid(struct hns3_hw *hw, uint64_t types);
 int hns3_set_rss_tuple_by_rss_hf(struct hns3_hw *hw, uint64_t rss_hf);
 int hns3_set_rss_tuple_field(struct hns3_hw *hw, uint64_t tuple_fields);
 int hns3_get_rss_tuple_field(struct hns3_hw *hw, uint64_t *tuple_fields);
-int hns3_set_rss_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
-			  const uint8_t *key, uint8_t key_len);
 int hns3_restore_filter(struct hns3_adapter *hns);
-int hns3_rss_get_algo_key(struct hns3_hw *hw,  uint8_t *hash_algo,
-			  uint8_t *key, uint8_t key_len);
 uint64_t hns3_rss_calc_tuple_filed(uint64_t rss_hf);
 int hns3_update_rss_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
 			     uint8_t *key, uint8_t key_len);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:53.123264532 +0000
+++ 0023-net-hns3-keep-set-get-algo-key-functions-local.patch	2023-11-08 19:23:51.805396955 +0000
@@ -1 +1 @@
-From 4d996f3b2a1dcce2fff59a0a9490c04480e4c805 Mon Sep 17 00:00:00 2001
+From 0b6d1e010952f4a4c9ef24559b6ad7f19700becd Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4d996f3b2a1dcce2fff59a0a9490c04480e4c805 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 6126512bd7..9bb8426256 100644
+index cb4a2bbede..cb1339d4da 100644
@@ -30 +31 @@
- hns3_rss_set_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
+ hns3_set_rss_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
@@ -33 +34 @@
-@@ -324,7 +324,7 @@ hns3_rss_set_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
+@@ -324,7 +324,7 @@ hns3_set_rss_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
@@ -43 +44 @@
-index 415430a399..9d182a8025 100644
+index 151880f65a..20bf984d44 100644
@@ -46 +47 @@
-@@ -190,10 +190,6 @@ bool hns3_check_rss_types_valid(struct hns3_hw *hw, uint64_t types);
+@@ -194,11 +194,7 @@ bool hns3_check_rss_types_valid(struct hns3_hw *hw, uint64_t types);
@@ -50 +51 @@
--int hns3_rss_set_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
+-int hns3_set_rss_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
@@ -51,0 +53 @@
+ int hns3_restore_filter(struct hns3_adapter *hns);

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

* patch 'net/hns3: fix uninitialized hash algo value' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (21 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/hns3: keep set/get algo key functions local' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/tap: fix L4 checksum offloading' " luca.boccassi
                       ` (12 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Jie Hai; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From ca5911f4323102100937c0d513556483972a0cbe Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Tue, 31 Oct 2023 20:23:59 +0800
Subject: [PATCH] net/hns3: fix uninitialized hash algo value

[ upstream commit 177cf5c93f9ac86d8a2b817115ef1e979023414c ]

This patch initializes "hash_algo" as zero to avoid using
it uninitialized.

Fixes: e3069658da9f ("net/hns3: reimplement hash flow function")

Signed-off-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_rss.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hns3/hns3_rss.c b/drivers/net/hns3/hns3_rss.c
index cb1339d4da..42b20c4c01 100644
--- a/drivers/net/hns3/hns3_rss.c
+++ b/drivers/net/hns3/hns3_rss.c
@@ -771,7 +771,7 @@ hns3_dev_rss_hash_conf_get(struct rte_eth_dev *dev,
 {
 	struct hns3_adapter *hns = dev->data->dev_private;
 	struct hns3_hw *hw = &hns->hw;
-	uint8_t hash_algo;
+	uint8_t hash_algo = 0;
 	int ret;
 
 	rte_spinlock_lock(&hw->lock);
@@ -993,7 +993,7 @@ hns3_update_rss_algo_key(struct hns3_hw *hw, uint8_t hash_func,
 {
 	uint8_t rss_key[HNS3_RSS_KEY_SIZE_MAX] = {0};
 	bool modify_key, modify_algo;
-	uint8_t hash_algo;
+	uint8_t hash_algo = 0;
 	int ret;
 
 	modify_key = (key != NULL && key_len > 0);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:53.164098109 +0000
+++ 0024-net-hns3-fix-uninitialized-hash-algo-value.patch	2023-11-08 19:23:51.805396955 +0000
@@ -1 +1 @@
-From 177cf5c93f9ac86d8a2b817115ef1e979023414c Mon Sep 17 00:00:00 2001
+From ca5911f4323102100937c0d513556483972a0cbe Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 177cf5c93f9ac86d8a2b817115ef1e979023414c ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index 9bb8426256..eeeca71a5c 100644
+index cb1339d4da..42b20c4c01 100644

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

* patch 'net/tap: fix L4 checksum offloading' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (22 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/hns3: fix uninitialized hash algo value' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/tap: fix IPv4 " luca.boccassi
                       ` (11 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: David Marchand; +Cc: Ales Musil, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/3c5688e78a52578d1e27d68dd126ee3fe5a61b31

Thanks.

Luca Boccassi

---
From 3c5688e78a52578d1e27d68dd126ee3fe5a61b31 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 24 Aug 2023 09:18:20 +0200
Subject: [PATCH] net/tap: fix L4 checksum offloading

[ upstream commit 0bbafe48ae0a35e306b1cd91b0e7726ae4451f9a ]

The L4 checksum offloading API does not require l4_len to be set.
Make the driver discover the L4 headers size by itself.

Fixes: 6546e76056e3 ("net/tap: calculate checksums of multi segs packets")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Tested-by: Ales Musil <amusil@redhat.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/tap/rte_eth_tap.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index e6dc870594..2a7006c7b2 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -656,13 +656,22 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
 		    ((mbuf->ol_flags & (PKT_TX_IP_CKSUM | PKT_TX_IPV4) ||
 		     (mbuf->ol_flags & PKT_TX_L4_MASK) == PKT_TX_UDP_CKSUM ||
 		     (mbuf->ol_flags & PKT_TX_L4_MASK) == PKT_TX_TCP_CKSUM))) {
+			unsigned int l4_len = 0;
+
 			is_cksum = 1;
 
+			if ((mbuf->ol_flags & PKT_TX_L4_MASK) ==
+					PKT_TX_UDP_CKSUM)
+				l4_len = sizeof(struct rte_udp_hdr);
+			else if ((mbuf->ol_flags & PKT_TX_L4_MASK) ==
+					PKT_TX_TCP_CKSUM)
+				l4_len = sizeof(struct rte_tcp_hdr);
+
 			/* Support only packets with at least layer 4
 			 * header included in the first segment
 			 */
 			seg_len = rte_pktmbuf_data_len(mbuf);
-			l234_hlen = mbuf->l2_len + mbuf->l3_len + mbuf->l4_len;
+			l234_hlen = mbuf->l2_len + mbuf->l3_len + l4_len;
 			if (seg_len < l234_hlen)
 				return -1;
 
@@ -672,7 +681,7 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
 			rte_memcpy(m_copy, rte_pktmbuf_mtod(mbuf, void *),
 					l234_hlen);
 			tap_tx_l3_cksum(m_copy, mbuf->ol_flags,
-				       mbuf->l2_len, mbuf->l3_len, mbuf->l4_len,
+				       mbuf->l2_len, mbuf->l3_len, l4_len,
 				       &l4_cksum, &l4_phdr_cksum,
 				       &l4_raw_cksum);
 			iovecs[k].iov_base = m_copy;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:53.203624041 +0000
+++ 0025-net-tap-fix-L4-checksum-offloading.patch	2023-11-08 19:23:51.805396955 +0000
@@ -1 +1 @@
-From 0bbafe48ae0a35e306b1cd91b0e7726ae4451f9a Mon Sep 17 00:00:00 2001
+From 3c5688e78a52578d1e27d68dd126ee3fe5a61b31 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0bbafe48ae0a35e306b1cd91b0e7726ae4451f9a ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -16 +16,0 @@
- .mailmap                      |  1 +
@@ -18 +18 @@
- 2 files changed, 12 insertions(+), 2 deletions(-)
+ 1 file changed, 11 insertions(+), 2 deletions(-)
@@ -20,12 +19,0 @@
-diff --git a/.mailmap b/.mailmap
-index c384d97a1a..c0ab6d090b 100644
---- a/.mailmap
-+++ b/.mailmap
-@@ -41,6 +41,7 @@ Aleksandr Loktionov <aleksandr.loktionov@intel.com>
- Aleksandr Miloshenko <a.miloshenko@f5.com>
- Aleksey Baulin <aleksey.baulin@gmail.com>
- Aleksey Katargin <gureedo@gmail.com>
-+Ales Musil <amusil@redhat.com>
- Alexander Bechikov <asb.tyum@gmail.com>
- Alexander Belyakov <abelyako@gmail.com>
- Alexander Chernavin <achernavin@netgate.com>
@@ -33 +21 @@
-index b25a52655f..66335d2755 100644
+index e6dc870594..2a7006c7b2 100644
@@ -36,4 +24,4 @@
-@@ -645,13 +645,22 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
- 		    ((mbuf->ol_flags & (RTE_MBUF_F_TX_IP_CKSUM | RTE_MBUF_F_TX_IPV4) ||
- 		      (mbuf->ol_flags & RTE_MBUF_F_TX_L4_MASK) == RTE_MBUF_F_TX_UDP_CKSUM ||
- 		      (mbuf->ol_flags & RTE_MBUF_F_TX_L4_MASK) == RTE_MBUF_F_TX_TCP_CKSUM))) {
+@@ -656,13 +656,22 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
+ 		    ((mbuf->ol_flags & (PKT_TX_IP_CKSUM | PKT_TX_IPV4) ||
+ 		     (mbuf->ol_flags & PKT_TX_L4_MASK) == PKT_TX_UDP_CKSUM ||
+ 		     (mbuf->ol_flags & PKT_TX_L4_MASK) == PKT_TX_TCP_CKSUM))) {
@@ -44,2 +32,2 @@
-+			if ((mbuf->ol_flags & RTE_MBUF_F_TX_L4_MASK) ==
-+					RTE_MBUF_F_TX_UDP_CKSUM)
++			if ((mbuf->ol_flags & PKT_TX_L4_MASK) ==
++					PKT_TX_UDP_CKSUM)
@@ -47,2 +35,2 @@
-+			else if ((mbuf->ol_flags & RTE_MBUF_F_TX_L4_MASK) ==
-+					RTE_MBUF_F_TX_TCP_CKSUM)
++			else if ((mbuf->ol_flags & PKT_TX_L4_MASK) ==
++					PKT_TX_TCP_CKSUM)
@@ -60 +48 @@
-@@ -661,7 +670,7 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
+@@ -672,7 +681,7 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,

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

* patch 'net/tap: fix IPv4 checksum offloading' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (23 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/tap: fix L4 checksum offloading' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'app/procinfo: fix RSS info' " luca.boccassi
                       ` (10 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: David Marchand; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/8932ba110ac486f7fec81fa3bee5c2e25a2c0e8c

Thanks.

Luca Boccassi

---
From 8932ba110ac486f7fec81fa3bee5c2e25a2c0e8c Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 24 Aug 2023 09:18:21 +0200
Subject: [PATCH] net/tap: fix IPv4 checksum offloading

[ upstream commit 3e9c82e88069b1e6e945479626b4c054edf8ba96 ]

Checking that one of RTE_MBUF_F_TX_IPV4 or RTE_MBUF_F_TX_IP_CKSUM is
present is not compliant with the offloading API which specifies that IP
checksum requires RTE_MBUF_F_TX_IP_CKSUM.
On the other hand, RTE_MBUF_F_TX_IP_CKSUM is invalid for IPv6 packets,
so we can simply check for RTE_MBUF_F_TX_IP_CKSUM and assume this is an
IPv4 packet.

Fixes: 8ae3023387e9 ("net/tap: add Rx/Tx checksum offload support")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/tap/rte_eth_tap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index 2a7006c7b2..67b3a45fd2 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -570,7 +570,7 @@ tap_tx_l3_cksum(char *packet, uint64_t ol_flags, unsigned int l2_len,
 {
 	void *l3_hdr = packet + l2_len;
 
-	if (ol_flags & (PKT_TX_IP_CKSUM | PKT_TX_IPV4)) {
+	if (ol_flags & PKT_TX_IP_CKSUM) {
 		struct rte_ipv4_hdr *iph = l3_hdr;
 		uint16_t cksum;
 
@@ -653,7 +653,7 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
 
 		nb_segs = mbuf->nb_segs;
 		if (txq->csum &&
-		    ((mbuf->ol_flags & (PKT_TX_IP_CKSUM | PKT_TX_IPV4) ||
+		    ((mbuf->ol_flags & PKT_TX_IP_CKSUM ||
 		     (mbuf->ol_flags & PKT_TX_L4_MASK) == PKT_TX_UDP_CKSUM ||
 		     (mbuf->ol_flags & PKT_TX_L4_MASK) == PKT_TX_TCP_CKSUM))) {
 			unsigned int l4_len = 0;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:53.247309215 +0000
+++ 0026-net-tap-fix-IPv4-checksum-offloading.patch	2023-11-08 19:23:51.809397038 +0000
@@ -1 +1 @@
-From 3e9c82e88069b1e6e945479626b4c054edf8ba96 Mon Sep 17 00:00:00 2001
+From 8932ba110ac486f7fec81fa3bee5c2e25a2c0e8c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3e9c82e88069b1e6e945479626b4c054edf8ba96 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index 66335d2755..939c68db9a 100644
+index 2a7006c7b2..67b3a45fd2 100644
@@ -26 +27 @@
-@@ -559,7 +559,7 @@ tap_tx_l3_cksum(char *packet, uint64_t ol_flags, unsigned int l2_len,
+@@ -570,7 +570,7 @@ tap_tx_l3_cksum(char *packet, uint64_t ol_flags, unsigned int l2_len,
@@ -30,2 +31,2 @@
--	if (ol_flags & (RTE_MBUF_F_TX_IP_CKSUM | RTE_MBUF_F_TX_IPV4)) {
-+	if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
+-	if (ol_flags & (PKT_TX_IP_CKSUM | PKT_TX_IPV4)) {
++	if (ol_flags & PKT_TX_IP_CKSUM) {
@@ -35 +36 @@
-@@ -642,7 +642,7 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
+@@ -653,7 +653,7 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
@@ -39,4 +40,4 @@
--		    ((mbuf->ol_flags & (RTE_MBUF_F_TX_IP_CKSUM | RTE_MBUF_F_TX_IPV4) ||
-+		    ((mbuf->ol_flags & RTE_MBUF_F_TX_IP_CKSUM ||
- 		      (mbuf->ol_flags & RTE_MBUF_F_TX_L4_MASK) == RTE_MBUF_F_TX_UDP_CKSUM ||
- 		      (mbuf->ol_flags & RTE_MBUF_F_TX_L4_MASK) == RTE_MBUF_F_TX_TCP_CKSUM))) {
+-		    ((mbuf->ol_flags & (PKT_TX_IP_CKSUM | PKT_TX_IPV4) ||
++		    ((mbuf->ol_flags & PKT_TX_IP_CKSUM ||
+ 		     (mbuf->ol_flags & PKT_TX_L4_MASK) == PKT_TX_UDP_CKSUM ||
+ 		     (mbuf->ol_flags & PKT_TX_L4_MASK) == PKT_TX_TCP_CKSUM))) {

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

* patch 'app/procinfo: fix RSS info' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (24 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/tap: fix IPv4 " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'app/procinfo: adjust format of " luca.boccassi
                       ` (9 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Jie Hai
  Cc: Dongdong Liu, Reshma Pattan, Chengwen Feng, Huisong Li, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/9b55b196c03980d24b7e2b86ada4207371f1c630

Thanks.

Luca Boccassi

---
From 9b55b196c03980d24b7e2b86ada4207371f1c630 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Thu, 2 Nov 2023 16:20:16 +0800
Subject: [PATCH] app/procinfo: fix RSS info

[ upstream commit 33079eccf5c1a99af722fe168d8465f602bc98b2 ]

Command show-port should show RSS info (rss_key, len and rss_hf),
However, the information is shown only when rss_conf.rss_key is not
NULL. Since no memory is allocated for rss_conf.rss_key, rss_key
will always be NULL and the rss_info will never show. This patch
fixes it.

Fixes: 8a37f37fc243 ("app/procinfo: add --show-port")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
Acked-by: Huisong Li <lihuisong@huawei.com>
---
 app/proc-info/main.c | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/app/proc-info/main.c b/app/proc-info/main.c
index befb90a2be..247d8b256c 100644
--- a/app/proc-info/main.c
+++ b/app/proc-info/main.c
@@ -94,6 +94,8 @@ static char *mempool_name;
 static uint32_t enable_iter_mempool;
 static char *mempool_iter_name;
 
+#define RSS_HASH_KEY_SIZE 64
+
 /**< display usage */
 static void
 proc_info_usage(const char *prgname)
@@ -703,6 +705,7 @@ show_port(void)
 		struct rte_eth_fc_conf fc_conf;
 		struct rte_ether_addr mac;
 		struct rte_eth_dev_owner owner;
+		uint8_t rss_key[RSS_HASH_KEY_SIZE];
 
 		/* Skip if port is not in mask */
 		if ((enabled_port_mask & (1ul << i)) == 0)
@@ -846,17 +849,17 @@ show_port(void)
 			printf("\n");
 		}
 
+		rss_conf.rss_key = rss_key;
+		rss_conf.rss_key_len = dev_info.hash_key_size;
 		ret = rte_eth_dev_rss_hash_conf_get(i, &rss_conf);
 		if (ret == 0) {
-			if (rss_conf.rss_key) {
-				printf("  - RSS\n");
-				printf("\t  -- RSS len %u key (hex):",
-						rss_conf.rss_key_len);
-				for (k = 0; k < rss_conf.rss_key_len; k++)
-					printf(" %x", rss_conf.rss_key[k]);
-				printf("\t  -- hf 0x%"PRIx64"\n",
-						rss_conf.rss_hf);
-			}
+			printf("  - RSS\n");
+			printf("\t  -- RSS len %u key (hex):",
+					rss_conf.rss_key_len);
+			for (k = 0; k < rss_conf.rss_key_len; k++)
+				printf(" %x", rss_conf.rss_key[k]);
+			printf("\t  -- hf 0x%"PRIx64"\n",
+					rss_conf.rss_hf);
 		}
 
 #ifdef RTE_LIB_SECURITY
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:53.288968644 +0000
+++ 0027-app-procinfo-fix-RSS-info.patch	2023-11-08 19:23:51.809397038 +0000
@@ -1 +1 @@
-From 33079eccf5c1a99af722fe168d8465f602bc98b2 Mon Sep 17 00:00:00 2001
+From 9b55b196c03980d24b7e2b86ada4207371f1c630 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 33079eccf5c1a99af722fe168d8465f602bc98b2 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
-index ce53bc30df..3a441ba075 100644
+index befb90a2be..247d8b256c 100644
@@ -28,3 +29,3 @@
-@@ -151,6 +151,8 @@ struct desc_param {
- static struct desc_param rx_desc_param;
- static struct desc_param tx_desc_param;
+@@ -94,6 +94,8 @@ static char *mempool_name;
+ static uint32_t enable_iter_mempool;
+ static char *mempool_iter_name;
@@ -34 +35 @@
- /* display usage */
+ /**< display usage */
@@ -37 +38 @@
-@@ -1011,6 +1013,7 @@ show_port(void)
+@@ -703,6 +705,7 @@ show_port(void)
@@ -45 +46 @@
-@@ -1169,17 +1172,17 @@ show_port(void)
+@@ -846,17 +849,17 @@ show_port(void)

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

* patch 'app/procinfo: adjust format of RSS info' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (25 preceding siblings ...)
  2023-11-08 19:25     ` patch 'app/procinfo: fix RSS info' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/nfp: fix link status interrupt' " luca.boccassi
                       ` (8 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Jie Hai; +Cc: Dongdong Liu, Reshma Pattan, Chengwen Feng, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/8056f3bea1ed30167c901c5f9de1594a5f7c54f6

Thanks.

Luca Boccassi

---
From 8056f3bea1ed30167c901c5f9de1594a5f7c54f6 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Thu, 2 Nov 2023 16:20:17 +0800
Subject: [PATCH] app/procinfo: adjust format of RSS info

[ upstream commit 66d4bacc39fb765051594669c33aab4f5d0f9d6c ]

This patch splits the length and value of RSS key into two parts,
removes spaces between RSS keys, and adds line breaks between RSS
key and RSS hf.

Before the adjustment, RSS info is shown as:
  - RSS
	  -- RSS len 40 key (hex): 6d 5a 56 da 25 5b e c2 41 67 \
	     25 3d 43 a3 8f b0 d0 ca 2b cb ae 7b 30 b4 77 cb 2d \
	     a3 80 30 f2 c 6a 42 b7 3b be ac 1 fa -- hf 0x0
and after:
  - RSS info
	  -- key len : 40
	  -- key (hex) : 6d5a56da255b0ec24167253d43a38fb0d0c \
		a2bcbae7b30b477cb2da38030f20c6a42b73bbeac01fa
	  -- hash function : 0x0

Fixes: 8a37f37fc243 ("app/procinfo: add --show-port")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
---
 app/proc-info/main.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/app/proc-info/main.c b/app/proc-info/main.c
index 247d8b256c..b50ee6501f 100644
--- a/app/proc-info/main.c
+++ b/app/proc-info/main.c
@@ -853,12 +853,13 @@ show_port(void)
 		rss_conf.rss_key_len = dev_info.hash_key_size;
 		ret = rte_eth_dev_rss_hash_conf_get(i, &rss_conf);
 		if (ret == 0) {
-			printf("  - RSS\n");
-			printf("\t  -- RSS len %u key (hex):",
+			printf("  - RSS info\n");
+			printf("\t  -- key len : %u\n",
 					rss_conf.rss_key_len);
+			printf("\t  -- key (hex) : ");
 			for (k = 0; k < rss_conf.rss_key_len; k++)
-				printf(" %x", rss_conf.rss_key[k]);
-			printf("\t  -- hf 0x%"PRIx64"\n",
+				printf("%02x", rss_conf.rss_key[k]);
+			printf("\n\t  -- hash function : 0x%"PRIx64"\n",
 					rss_conf.rss_hf);
 		}
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:53.329709588 +0000
+++ 0028-app-procinfo-adjust-format-of-RSS-info.patch	2023-11-08 19:23:51.813397120 +0000
@@ -1 +1 @@
-From 66d4bacc39fb765051594669c33aab4f5d0f9d6c Mon Sep 17 00:00:00 2001
+From 8056f3bea1ed30167c901c5f9de1594a5f7c54f6 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 66d4bacc39fb765051594669c33aab4f5d0f9d6c ]
+
@@ -23 +24,0 @@
-Cc: stable@dpdk.org
@@ -34 +35 @@
-index 3a441ba075..4c577fa417 100644
+index 247d8b256c..b50ee6501f 100644
@@ -37 +38 @@
-@@ -1176,12 +1176,13 @@ show_port(void)
+@@ -853,12 +853,13 @@ show_port(void)

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

* patch 'net/nfp: fix link status interrupt' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (26 preceding siblings ...)
  2023-11-08 19:25     ` patch 'app/procinfo: adjust format of " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/nfp: fix DMA error after abnormal exit' " luca.boccassi
                       ` (7 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Peng Zhang; +Cc: Shihong Wang, Chaoyong He, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From fff9e4948d6b2bcb6376d09d36e7ceea50dfa5b5 Mon Sep 17 00:00:00 2001
From: Peng Zhang <peng.zhang@corigine.com>
Date: Thu, 2 Nov 2023 10:23:12 +0800
Subject: [PATCH] net/nfp: fix link status interrupt

[ upstream commit 94d0631a8275afa4314ee1d4f08d2fbd02325124 ]

In rare cases, when DPDK application exit, the interrupt handler was not
processed the interrupt in time, resulting in the LSC interrupt mask bit
not being cleared. So when the DPDK application start again, the newly
coming LSC interrupts cannot be received and processed properly.

Fix this problem by force clear the LSC interrupt mask on port
initialization.

Fixes: 6c53f87b3497 ("nfp: add link status interrupt")

Signed-off-by: Shihong Wang <shihong.wang@corigine.com>
Signed-off-by: Peng Zhang <peng.zhang@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
---
 drivers/net/nfp/nfp_net.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
index f9844851bf..b60457b9bd 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
@@ -3040,6 +3040,8 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
 					   (void *)eth_dev);
 		/* Telling the firmware about the LSC interrupt entry */
 		nn_cfg_writeb(hw, NFP_NET_CFG_LSC, NFP_NET_IRQ_LSC_IDX);
+		/* Unmask the LSC interrupt */
+		nfp_net_irq_unmask(eth_dev);
 		/* Recording current stats counters values */
 		nfp_net_stats_reset(eth_dev);
 	}
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:53.371552953 +0000
+++ 0029-net-nfp-fix-link-status-interrupt.patch	2023-11-08 19:23:51.813397120 +0000
@@ -1 +1 @@
-From 94d0631a8275afa4314ee1d4f08d2fbd02325124 Mon Sep 17 00:00:00 2001
+From fff9e4948d6b2bcb6376d09d36e7ceea50dfa5b5 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 94d0631a8275afa4314ee1d4f08d2fbd02325124 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -21,57 +22,16 @@
- drivers/net/nfp/nfp_ethdev.c     | 2 ++
- drivers/net/nfp/nfp_ethdev_vf.c  | 2 ++
- drivers/net/nfp/nfp_net_common.c | 2 +-
- drivers/net/nfp/nfp_net_common.h | 1 +
- 4 files changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c
-index f5e06970ec..d4cc6ca64a 100644
---- a/drivers/net/nfp/nfp_ethdev.c
-+++ b/drivers/net/nfp/nfp_ethdev.c
-@@ -592,6 +592,8 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
- 			nfp_net_dev_interrupt_handler, (void *)eth_dev);
- 	/* Telling the firmware about the LSC interrupt entry */
- 	nn_cfg_writeb(hw, NFP_NET_CFG_LSC, NFP_NET_IRQ_LSC_IDX);
-+	/* Unmask the LSC interrupt */
-+	nfp_net_irq_unmask(eth_dev);
- 	/* Recording current stats counters values */
- 	nfp_net_stats_reset(eth_dev);
- 
-diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c
-index e1bd5555e9..7927f53403 100644
---- a/drivers/net/nfp/nfp_ethdev_vf.c
-+++ b/drivers/net/nfp/nfp_ethdev_vf.c
-@@ -353,6 +353,8 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev)
- 			nfp_net_dev_interrupt_handler, (void *)eth_dev);
- 	/* Telling the firmware about the LSC interrupt entry */
- 	nn_cfg_writeb(hw, NFP_NET_CFG_LSC, NFP_NET_IRQ_LSC_IDX);
-+	/* Unmask the LSC interrupt */
-+	nfp_net_irq_unmask(eth_dev);
- 	/* Recording current stats counters values */
- 	nfp_net_stats_reset(eth_dev);
- 
-diff --git a/drivers/net/nfp/nfp_net_common.c b/drivers/net/nfp/nfp_net_common.c
-index 2326c812c7..f517fcb5de 100644
---- a/drivers/net/nfp/nfp_net_common.c
-+++ b/drivers/net/nfp/nfp_net_common.c
-@@ -1379,7 +1379,7 @@ nfp_net_dev_link_status_print(struct rte_eth_dev *dev)
-  * If MSI-X auto-masking is enabled clear the mask bit, otherwise
-  * clear the ICR for the entry.
-  */
--static void
-+void
- nfp_net_irq_unmask(struct rte_eth_dev *dev)
- {
- 	struct nfp_net_hw *hw;
-diff --git a/drivers/net/nfp/nfp_net_common.h b/drivers/net/nfp/nfp_net_common.h
-index 2cad10668c..88a65b19a6 100644
---- a/drivers/net/nfp/nfp_net_common.h
-+++ b/drivers/net/nfp/nfp_net_common.h
-@@ -207,6 +207,7 @@ int nfp_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id);
- int nfp_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id);
- void nfp_net_params_setup(struct nfp_net_hw *hw);
- void nfp_net_cfg_queue_setup(struct nfp_net_hw *hw);
-+void nfp_net_irq_unmask(struct rte_eth_dev *dev);
- void nfp_net_dev_interrupt_handler(void *param);
- void nfp_net_dev_interrupt_delayed_handler(void *param);
- int nfp_net_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu);
+ drivers/net/nfp/nfp_net.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
+index f9844851bf..b60457b9bd 100644
+--- a/drivers/net/nfp/nfp_net.c
++++ b/drivers/net/nfp/nfp_net.c
+@@ -3040,6 +3040,8 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
+ 					   (void *)eth_dev);
+ 		/* Telling the firmware about the LSC interrupt entry */
+ 		nn_cfg_writeb(hw, NFP_NET_CFG_LSC, NFP_NET_IRQ_LSC_IDX);
++		/* Unmask the LSC interrupt */
++		nfp_net_irq_unmask(eth_dev);
+ 		/* Recording current stats counters values */
+ 		nfp_net_stats_reset(eth_dev);
+ 	}

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

* patch 'net/nfp: fix DMA error after abnormal exit' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (27 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/nfp: fix link status interrupt' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/tap: fix RSS for fragmented packets' " luca.boccassi
                       ` (6 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Shihong Wang; +Cc: Peng Zhang, Chaoyong He, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/61bbbaea8c324384d2f9692af90c11a49293b4da

Thanks.

Luca Boccassi

---
From 61bbbaea8c324384d2f9692af90c11a49293b4da Mon Sep 17 00:00:00 2001
From: Shihong Wang <shihong.wang@corigine.com>
Date: Thu, 2 Nov 2023 10:23:13 +0800
Subject: [PATCH] net/nfp: fix DMA error after abnormal exit

[ upstream commit 9e442599802e788874110339901f4eeb8f0ecc3b ]

When DPDK application exit abnormally, there might have DMA error,
and which will cause the load of firmware failed.

Fix this by force the physical port down to clear the possible DMA error.

Fixes: 896c265ef954 ("net/nfp: use new CPP interface")

Signed-off-by: Shihong Wang <shihong.wang@corigine.com>
Signed-off-by: Peng Zhang <peng.zhang@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
---
 drivers/net/nfp/nfp_net.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
index b60457b9bd..4b890e3375 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
@@ -3662,6 +3662,7 @@ static int nfp_pf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
 	int ret = -ENODEV;
 	int err;
 	int i;
+	uint32_t j;
 
 	if (!dev)
 		return ret;
@@ -3696,6 +3697,10 @@ static int nfp_pf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
 		return -EIO;
 	}
 
+	/* Force the physical port down to clear the possible DMA error */
+	for (j = 0; j < nfp_eth_table->count; j++)
+		nfp_eth_set_configured(cpp, nfp_eth_table->ports[j].index, 0);
+
 	if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
 		if (nfp_fw_setup(dev, cpp, nfp_eth_table, hwinfo)) {
 			PMD_DRV_LOG(INFO, "Error when uploading firmware");
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:53.414114389 +0000
+++ 0030-net-nfp-fix-DMA-error-after-abnormal-exit.patch	2023-11-08 19:23:51.817397203 +0000
@@ -1 +1 @@
-From 9e442599802e788874110339901f4eeb8f0ecc3b Mon Sep 17 00:00:00 2001
+From 61bbbaea8c324384d2f9692af90c11a49293b4da Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 9e442599802e788874110339901f4eeb8f0ecc3b ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
- drivers/net/nfp/nfp_ethdev.c | 5 +++++
+ drivers/net/nfp/nfp_net.c | 5 +++++
@@ -21,14 +22,14 @@
-diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c
-index d4cc6ca64a..e988bcf5ac 100644
---- a/drivers/net/nfp/nfp_ethdev.c
-+++ b/drivers/net/nfp/nfp_ethdev.c
-@@ -849,6 +849,7 @@ app_cleanup:
- static int
- nfp_pf_init(struct rte_pci_device *pci_dev)
- {
-+	uint32_t i;
- 	int ret = 0;
- 	uint64_t addr;
- 	uint32_t cpp_id;
-@@ -907,6 +908,10 @@ nfp_pf_init(struct rte_pci_device *pci_dev)
- 		goto hwinfo_cleanup;
+diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
+index b60457b9bd..4b890e3375 100644
+--- a/drivers/net/nfp/nfp_net.c
++++ b/drivers/net/nfp/nfp_net.c
+@@ -3662,6 +3662,7 @@ static int nfp_pf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
+ 	int ret = -ENODEV;
+ 	int err;
+ 	int i;
++	uint32_t j;
+ 
+ 	if (!dev)
+ 		return ret;
+@@ -3696,6 +3697,10 @@ static int nfp_pf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
+ 		return -EIO;
@@ -38,2 +39,2 @@
-+	for (i = 0; i < nfp_eth_table->count; i++)
-+		nfp_eth_set_configured(cpp, nfp_eth_table->ports[i].index, 0);
++	for (j = 0; j < nfp_eth_table->count; j++)
++		nfp_eth_set_configured(cpp, nfp_eth_table->ports[j].index, 0);
@@ -41,3 +42,3 @@
- 	if (nfp_fw_setup(pci_dev, cpp, nfp_eth_table, hwinfo) != 0) {
- 		PMD_INIT_LOG(ERR, "Error when uploading firmware");
- 		ret = -EIO;
+ 	if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
+ 		if (nfp_fw_setup(dev, cpp, nfp_eth_table, hwinfo)) {
+ 			PMD_DRV_LOG(INFO, "Error when uploading firmware");

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

* patch 'net/tap: fix RSS for fragmented packets' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (28 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/nfp: fix DMA error after abnormal exit' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'common/mlx5: fix controller index parsing' " luca.boccassi
                       ` (5 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Madhuker Mythri; +Cc: Stephen Hemminger, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From d64cac7f1630decd135a935c706e1861452ad30a Mon Sep 17 00:00:00 2001
From: Madhuker Mythri <madhuker.mythri@oracle.com>
Date: Wed, 1 Nov 2023 11:02:47 -0700
Subject: [PATCH] net/tap: fix RSS for fragmented packets

[ upstream commit db6a3ddb166bb53ac7929e4b5c4cad94f6fa6871 ]

As per analysis on Tap PMD, the existing RSS algorithm considering
4-tuple (Src-IP, Dst-IP, Src-port and Dst-port) and identification of
fragment packets is not done, thus we are seeing all the fragmented
chunks of single packet differs in RSS hash value and distributed across
multiple queues.
The RSS algorithm assumes that, all the incoming IP packets are based on
L4-protocol(UDP/TCP) and trying to fetch the L4 fields(Src-port and
Dst-port) for each incoming packet, but for the fragmented chunks these
L4-header will not be present (except for first packet) and should not
consider in RSS hash for L4 header fields in-case of fragmented chunks.
Which is a bug in the RSS algorithm implemented in the BPF functionality
under TAP PMD.

So, modified the RSS eBPF C-program and generated the structure of
C-array in the 'tap_bpf_insns.h' file, which is in eBPF byte-code
instructions format.

Bugzilla ID: 870
Fixes: cdc07e83bb24 ("net/tap: add eBPF program file")

Signed-off-by: Madhuker Mythri <madhuker.mythri@oracle.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/tap/tap_bpf_insns.h   | 3269 +++++++++++++++--------------
 drivers/net/tap/tap_bpf_program.c |   45 +-
 2 files changed, 1695 insertions(+), 1619 deletions(-)

diff --git a/drivers/net/tap/tap_bpf_insns.h b/drivers/net/tap/tap_bpf_insns.h
index 1a91bbad13..53fa76c4e6 100644
--- a/drivers/net/tap/tap_bpf_insns.h
+++ b/drivers/net/tap/tap_bpf_insns.h
@@ -1,10 +1,10 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright 2017 Mellanox Technologies, Ltd
+ * Auto-generated from tap_bpf_program.c
+ * This not the original source file. Do NOT edit it.
  */
 
 #include <tap_bpf.h>
 
-/* bpf_insn array matching cls_q section. See tap_bpf_program.c file */
 static struct bpf_insn cls_q_insns[] = {
 	{0x61,    2,    1,       52, 0x00000000},
 	{0x18,    3,    0,        0, 0xdeadbeef},
@@ -23,18 +23,17 @@ static struct bpf_insn cls_q_insns[] = {
 	{0x95,    0,    0,        0, 0x00000000},
 };
 
-/* bpf_insn array matching l3_l4 section. see tap_bpf_program.c file */
 static struct bpf_insn l3_l4_hash_insns[] = {
 	{0xbf,    7,    1,        0, 0x00000000},
-	{0x61,    8,    7,       16, 0x00000000},
-	{0x61,    6,    7,       76, 0x00000000},
+	{0x61,    6,    7,       16, 0x00000000},
+	{0x61,    8,    7,       76, 0x00000000},
 	{0x61,    9,    7,       80, 0x00000000},
 	{0x18,    1,    0,        0, 0xdeadbeef},
 	{0x00,    0,    0,        0, 0x00000000},
 	{0x63,   10,    1,       -4, 0x00000000},
 	{0xbf,    2,   10,        0, 0x00000000},
 	{0x07,    2,    0,        0, 0xfffffffc},
-	{0x18,    1,    1,        0, 0x0000cafe},
+	{0x18,    1,    0,        0, 0x00000000},
 	{0x00,    0,    0,        0, 0x00000000},
 	{0x85,    0,    0,        0, 0x00000001},
 	{0x55,    0,    0,       21, 0x00000000},
@@ -58,7 +57,7 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{0x07,    1,    0,        0, 0xffffffd0},
 	{0xb7,    2,    0,        0, 0x00000023},
 	{0x85,    0,    0,        0, 0x00000006},
-	{0x05,    0,    0,     1632, 0x00000000},
+	{0x05,    0,    0,     1680, 0x00000000},
 	{0xb7,    1,    0,        0, 0x0000000e},
 	{0x61,    2,    7,       20, 0x00000000},
 	{0x15,    2,    0,       10, 0x00000000},
@@ -66,1630 +65,1678 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{0x55,    2,    0,        8, 0x0000a888},
 	{0xbf,    2,    7,        0, 0x00000000},
 	{0xb7,    7,    0,        0, 0x00000000},
-	{0xbf,    1,    6,        0, 0x00000000},
+	{0xbf,    1,    8,        0, 0x00000000},
 	{0x07,    1,    0,        0, 0x00000012},
-	{0x2d,    1,    9,     1622, 0x00000000},
+	{0x2d,    1,    9,     1670, 0x00000000},
 	{0xb7,    1,    0,        0, 0x00000012},
-	{0x69,    8,    6,       16, 0x00000000},
+	{0x69,    6,    8,       16, 0x00000000},
 	{0xbf,    7,    2,        0, 0x00000000},
+	{0x57,    6,    0,        0, 0x0000ffff},
 	{0x7b,   10,    7,      -56, 0x00000000},
-	{0x57,    8,    0,        0, 0x0000ffff},
-	{0x15,    8,    0,      409, 0x0000dd86},
+	{0x15,    6,    0,      443, 0x0000dd86},
 	{0xb7,    7,    0,        0, 0x00000003},
-	{0x55,    8,    0,     1614, 0x00000008},
-	{0x0f,    6,    1,        0, 0x00000000},
+	{0x55,    6,    0,     1662, 0x00000008},
+	{0x0f,    8,    1,        0, 0x00000000},
 	{0xb7,    7,    0,        0, 0x00000000},
-	{0xbf,    1,    6,        0, 0x00000000},
+	{0xbf,    1,    8,        0, 0x00000000},
 	{0x07,    1,    0,        0, 0x00000018},
-	{0x2d,    1,    9,     1609, 0x00000000},
-	{0x71,    3,    6,       12, 0x00000000},
-	{0xbf,    1,    3,        0, 0x00000000},
-	{0x67,    1,    0,        0, 0x00000038},
-	{0xc7,    1,    0,        0, 0x00000020},
-	{0x77,    1,    0,        0, 0x0000001f},
-	{0x57,    1,    0,        0, 0x2cc681d1},
-	{0x67,    3,    0,        0, 0x00000018},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x40000000},
-	{0xb7,    2,    0,        0, 0x00000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x598d03a2},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x20000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb31a0745},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x10000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x66340e8a},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x08000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xcc681d15},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x04000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x98d03a2b},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x02000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x31a07456},
-	{0x57,    3,    0,        0, 0x01000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6340e8ad},
-	{0x71,    3,    6,       13, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000010},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00800000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc681d15b},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00400000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8d03a2b7},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00200000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1a07456f},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00100000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x340e8ade},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00080000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x681d15bd},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00040000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd03a2b7b},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00020000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa07456f6},
-	{0x57,    3,    0,        0, 0x00010000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x40e8aded},
-	{0x71,    3,    6,       14, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000008},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00008000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x81d15bdb},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00004000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x03a2b7b7},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00002000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x07456f6f},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00001000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x0e8adedf},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000800},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1d15bdbf},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000400},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3a2b7b7e},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000200},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7456f6fd},
-	{0x57,    3,    0,        0, 0x00000100},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe8adedfa},
-	{0x71,    3,    6,       15, 0x00000000},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000080},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd15bdbf4},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000040},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa2b7b7e9},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000020},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x456f6fd3},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000010},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8adedfa7},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000008},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x15bdbf4f},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000004},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x2b7b7e9e},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000002},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x56f6fd3d},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xadedfa7b},
-	{0x71,    4,    6,       16, 0x00000000},
+	{0x2d,    1,    9,     1657, 0x00000000},
+	{0xb7,    1,    0,        0, 0x00000000},
+	{0x71,    3,    8,       12, 0x00000000},
+	{0x71,    2,    8,        9, 0x00000000},
+	{0x15,    2,    0,        1, 0x00000011},
+	{0x55,    2,    0,       21, 0x00000006},
+	{0x71,    2,    8,        7, 0x00000000},
+	{0x71,    4,    8,        6, 0x00000000},
 	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000038},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0xb7,    3,    0,        0, 0xffffffff},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x5bdbf4f7},
+	{0x67,    5,    0,        0, 0x00000008},
+	{0x57,    5,    0,        0, 0x00001f00},
+	{0x4f,    5,    2,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000020},
+	{0x4f,    4,    5,        0, 0x00000000},
+	{0x55,    4,    0,       12, 0x00000000},
+	{0xbf,    2,    8,        0, 0x00000000},
+	{0x07,    2,    0,        0, 0x00000014},
+	{0x71,    4,    2,        0, 0x00000000},
 	{0x67,    4,    0,        0, 0x00000018},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb7b7e9ef},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6f6fd3df},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdedfa7bf},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xbdbf4f7f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7b7e9eff},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf6fd3dff},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xedfa7bfe},
-	{0x71,    4,    6,       17, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000010},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdbf4f7fc},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb7e9eff9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6fd3dff2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdfa7bfe5},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xbf4f7fca},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7e9eff94},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfd3dff28},
-	{0x57,    4,    0,        0, 0x00010000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfa7bfe51},
-	{0x71,    4,    6,       18, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000008},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf4f7fca2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe9eff945},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd3dff28a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa7bfe514},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x4f7fca28},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9eff9450},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3dff28a0},
-	{0x57,    4,    0,        0, 0x00000100},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7bfe5141},
-	{0x71,    4,    6,       19, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000080},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf7fca283},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xeff94506},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdff28a0c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xbfe51418},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7fca2831},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xff945063},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xff28a0c6},
-	{0x57,    4,    0,        0, 0x00000001},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfe51418c},
-	{0x71,    4,    6,       20, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000008},
-	{0x71,    5,    6,       21, 0x00000000},
-	{0x4f,    4,    5,        0, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000030},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfca28319},
-	{0x67,    4,    0,        0, 0x00000010},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x40000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf9450633},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x20000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf28a0c67},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x10000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe51418ce},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x08000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xca28319d},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x04000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9450633b},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x02000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x28a0c676},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x01000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x51418ced},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00800000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa28319db},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00400000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x450633b6},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00200000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8a0c676c},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00100000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1418ced8},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00080000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x28319db1},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00040000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x50633b63},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00020000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa0c676c6},
-	{0x57,    4,    0,        0, 0x00010000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x418ced8d},
-	{0x71,    3,    6,       22, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000008},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00008000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8319db1a},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00004000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x0633b634},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00002000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x0c676c68},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00001000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x18ced8d1},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000800},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x319db1a3},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000400},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x633b6347},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000200},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc676c68f},
-	{0x57,    3,    0,        0, 0x00000100},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8ced8d1f},
-	{0x71,    3,    6,       23, 0x00000000},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000080},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x19db1a3e},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000040},
-	{0x79,    5,   10,      -56, 0x00000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x33b6347d},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000020},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x676c68fa},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000010},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xced8d1f4},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000008},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9db1a3e9},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000004},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3b6347d2},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000002},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x76c68fa5},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x1d,    3,    2,     1177, 0x00000000},
-	{0xa7,    1,    0,        0, 0xed8d1f4a},
-	{0x05,    0,    0,     1175, 0x00000000},
-	{0x0f,    6,    1,        0, 0x00000000},
-	{0xb7,    7,    0,        0, 0x00000000},
-	{0xbf,    1,    6,        0, 0x00000000},
-	{0x07,    1,    0,        0, 0x0000002c},
-	{0x2d,    1,    9,     1202, 0x00000000},
-	{0x61,    4,    6,        8, 0x00000000},
-	{0xbf,    1,    4,        0, 0x00000000},
-	{0x67,    1,    0,        0, 0x00000038},
-	{0xc7,    1,    0,        0, 0x00000020},
-	{0x77,    1,    0,        0, 0x0000001f},
-	{0x57,    1,    0,        0, 0x2cc681d1},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000040},
-	{0xb7,    2,    0,        0, 0x00000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x598d03a2},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000020},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb31a0745},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000010},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x66340e8a},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000008},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xcc681d15},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000004},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x98d03a2b},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000002},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x31a07456},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6340e8ad},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00008000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc681d15b},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00004000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8d03a2b7},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00002000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1a07456f},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00001000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x340e8ade},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000800},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x681d15bd},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000400},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd03a2b7b},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000200},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa07456f6},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000100},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x40e8aded},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00800000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x81d15bdb},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00400000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x03a2b7b7},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00200000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x07456f6f},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00100000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x0e8adedf},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00080000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1d15bdbf},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00040000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3a2b7b7e},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00020000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7456f6fd},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00010000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe8adedfa},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000020},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0xb7,    3,    0,        0, 0xffffffff},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd15bdbf4},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa2b7b7e9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x456f6fd3},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8adedfa7},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x15bdbf4f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x2b7b7e9e},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x56f6fd3d},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xadedfa7b},
-	{0x61,    4,    6,       12, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000080},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x5bdbf4f7},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb7b7e9ef},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6f6fd3df},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdedfa7bf},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xbdbf4f7f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7b7e9eff},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf6fd3dff},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000001},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xedfa7bfe},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdbf4f7fc},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb7e9eff9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6fd3dff2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdfa7bfe5},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xbf4f7fca},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7e9eff94},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfd3dff28},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000100},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfa7bfe51},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf4f7fca2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe9eff945},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd3dff28a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa7bfe514},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x4f7fca28},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9eff9450},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3dff28a0},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00010000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7bfe5141},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000020},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf7fca283},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xeff94506},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdff28a0c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xbfe51418},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7fca2831},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xff945063},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xff28a0c6},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfe51418c},
-	{0x61,    4,    6,       16, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000080},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfca28319},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf9450633},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf28a0c67},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe51418ce},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xca28319d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9450633b},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x28a0c676},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000001},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x51418ced},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa28319db},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x450633b6},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8a0c676c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1418ced8},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x28319db1},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x50633b63},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa0c676c6},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000100},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x418ced8d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8319db1a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x0633b634},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x0c676c68},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x18ced8d1},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x319db1a3},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x633b6347},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc676c68f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00010000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8ced8d1f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000020},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x19db1a3e},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x33b6347d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x676c68fa},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xced8d1f4},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9db1a3e9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3b6347d2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x76c68fa5},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xed8d1f4a},
-	{0x61,    4,    6,       20, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000080},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdb1a3e94},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb6347d28},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6c68fa51},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd8d1f4a3},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb1a3e946},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6347d28d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc68fa51a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000001},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8d1f4a35},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1a3e946b},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x347d28d7},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x68fa51ae},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd1f4a35c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa3e946b9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x47d28d73},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8fa51ae7},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000100},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1f4a35cf},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3e946b9e},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7d28d73c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfa51ae78},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf4a35cf1},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe946b9e3},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd28d73c7},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa51ae78e},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00010000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x4a35cf1c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000020},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x946b9e38},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x28d73c71},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x51ae78e3},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa35cf1c6},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x46b9e38d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8d73c71b},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1ae78e36},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x35cf1c6c},
-	{0x61,    4,    6,       24, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000080},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6b9e38d9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd73c71b2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xae78e364},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x5cf1c6c9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb9e38d92},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x73c71b25},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe78e364b},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000001},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xcf1c6c96},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9e38d92c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3c71b259},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x78e364b2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf1c6c964},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe38d92c9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc71b2593},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8e364b27},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000100},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1c6c964e},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x38d92c9c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x71b25938},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe364b270},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc6c964e0},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8d92c9c0},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1b259380},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x364b2700},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00010000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6c964e01},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000020},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd92c9c03},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb2593807},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x64b2700f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc964e01e},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x92c9c03d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x2593807a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x4b2700f4},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x964e01e8},
-	{0x61,    4,    6,       28, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000080},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x2c9c03d1},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x593807a3},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb2700f46},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x64e01e8d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc9c03d1a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x93807a35},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x2700f46b},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000001},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x4e01e8d6},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9c03d1ad},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3807a35b},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x700f46b6},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe01e8d6c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc03d1ad9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x807a35b3},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x00f46b66},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000100},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x01e8d6cc},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x03d1ad99},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x07a35b32},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x0f46b665},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1e8d6cca},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3d1ad994},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7a35b328},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf46b6651},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00010000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe8d6cca2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000020},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd1ad9944},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa35b3289},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x46b66512},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8d6cca25},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1ad9944a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x35b32894},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6b665129},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd6cca253},
-	{0x61,    4,    6,       32, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000080},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xad9944a7},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x5b32894f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb665129f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6cca253e},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd9944a7d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb32894fb},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x665129f6},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000001},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xcca253ec},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9944a7d9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x32894fb2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x65129f65},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xca253eca},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x944a7d95},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x2894fb2a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x5129f655},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000100},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa253ecab},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x44a7d956},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x894fb2ac},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x129f6558},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x253ecab1},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x4a7d9563},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x94fb2ac7},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x29f6558f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00010000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x53ecab1e},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000020},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa7d9563d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x4fb2ac7a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9f6558f5},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3ecab1ea},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7d9563d5},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfb2ac7ab},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf6558f56},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xecab1eac},
-	{0x61,    4,    6,       36, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000080},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd9563d59},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb2ac7ab2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6558f564},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xcab1eac8},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9563d590},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x2ac7ab20},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x558f5641},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000001},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xab1eac83},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x563d5906},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xac7ab20c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x58f56418},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb1eac831},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x63d59063},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc7ab20c7},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8f56418f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000100},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1eac831e},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3d59063c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7ab20c78},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf56418f0},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xeac831e1},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd59063c2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xab20c784},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x56418f09},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00010000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xac831e12},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000020},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x59063c25},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb20c784b},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6418f097},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc831e12f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9063c25f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x20c784be},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x418f097c},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x831e12f9},
-	{0x71,    4,    6,       40, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000008},
-	{0x71,    5,    6,       41, 0x00000000},
-	{0x4f,    4,    5,        0, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000030},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x063c25f3},
-	{0x67,    4,    0,        0, 0x00000010},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x40000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x0c784be7},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x20000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x18f097cf},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x10000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x31e12f9f},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x08000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x63c25f3f},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x04000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc784be7f},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x02000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8f097cff},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x01000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1e12f9fe},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00800000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3c25f3fc},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00400000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x784be7f8},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00200000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf097cff0},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00100000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe12f9fe0},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00080000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc25f3fc1},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00040000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x84be7f83},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00020000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x097cff07},
-	{0x57,    4,    0,        0, 0x00010000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x12f9fe0f},
-	{0x71,    3,    6,       42, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000008},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00008000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x25f3fc1f},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00004000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x4be7f83f},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00002000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x97cff07f},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00001000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x2f9fe0fe},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000800},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x5f3fc1fd},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000400},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xbe7f83fb},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000200},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7cff07f7},
-	{0x57,    3,    0,        0, 0x00000100},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf9fe0fee},
-	{0x71,    3,    6,       43, 0x00000000},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000080},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf3fc1fdc},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000040},
-	{0x79,    5,   10,      -56, 0x00000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe7f83fb8},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000020},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xcff07f70},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000010},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9fe0fee1},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000008},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3fc1fdc2},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000004},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7f83fb85},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000002},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xff07f70a},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfe0fee15},
-	{0x71,    2,    0,      201, 0x00000000},
+	{0x71,    1,    2,        1, 0x00000000},
+	{0x67,    1,    0,        0, 0x00000010},
+	{0x4f,    1,    4,        0, 0x00000000},
+	{0x71,    4,    2,        3, 0x00000000},
+	{0x4f,    1,    4,        0, 0x00000000},
+	{0x71,    2,    2,        2, 0x00000000},
 	{0x67,    2,    0,        0, 0x00000008},
-	{0x71,    3,    0,      200, 0x00000000},
-	{0x4f,    2,    3,        0, 0x00000000},
-	{0x71,    3,    0,      203, 0x00000000},
+	{0x4f,    1,    2,        0, 0x00000000},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x67,    4,    0,        0, 0x00000038},
+	{0xc7,    4,    0,        0, 0x00000038},
+	{0xb7,    2,    0,        0, 0x00000000},
+	{0x65,    4,    0,        1, 0xffffffff},
+	{0xb7,    7,    0,        0, 0x2cc681d1},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000040},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x598d03a2},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000020},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xb31a0745},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000010},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x66340e8a},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000008},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xcc681d15},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000004},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x98d03a2b},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000002},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x31a07456},
+	{0x71,    4,    8,       13, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000001},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x6340e8ad},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x67,    3,    0,        0, 0x00000038},
+	{0xc7,    3,    0,        0, 0x00000038},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0xc681d15b},
+	{0x6d,    2,    3,        1, 0x00000000},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000040},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x8d03a2b7},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000020},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x1a07456f},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000010},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x340e8ade},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000008},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x681d15bd},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000004},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xd03a2b7b},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000002},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xa07456f6},
+	{0x71,    3,    8,       14, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000001},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x40e8aded},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x67,    4,    0,        0, 0x00000038},
+	{0xc7,    4,    0,        0, 0x00000038},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xa7,    7,    0,        0, 0x81d15bdb},
+	{0x6d,    2,    4,        1, 0x00000000},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000040},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x03a2b7b7},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000020},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x07456f6f},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000010},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x0e8adedf},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000008},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x1d15bdbf},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000004},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x3a2b7b7e},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000002},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x7456f6fd},
+	{0x71,    4,    8,       15, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000001},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xe8adedfa},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x67,    3,    0,        0, 0x00000038},
+	{0xc7,    3,    0,        0, 0x00000038},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0xd15bdbf4},
+	{0x6d,    2,    3,        1, 0x00000000},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000040},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xa2b7b7e9},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000020},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x456f6fd3},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000010},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x8adedfa7},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000008},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x15bdbf4f},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000004},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x2b7b7e9e},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000002},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x56f6fd3d},
+	{0x71,    3,    8,       16, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000001},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xadedfa7b},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x67,    4,    0,        0, 0x00000038},
+	{0xc7,    4,    0,        0, 0x00000038},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xa7,    7,    0,        0, 0x5bdbf4f7},
+	{0x6d,    2,    4,        1, 0x00000000},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000040},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xb7b7e9ef},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000020},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x6f6fd3df},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000010},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xdedfa7bf},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000008},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xbdbf4f7f},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000004},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x7b7e9eff},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000002},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xf6fd3dff},
+	{0x71,    4,    8,       17, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000001},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xedfa7bfe},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x67,    3,    0,        0, 0x00000038},
+	{0xc7,    3,    0,        0, 0x00000038},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0xdbf4f7fc},
+	{0x6d,    2,    3,        1, 0x00000000},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000040},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xb7e9eff9},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000020},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x6fd3dff2},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000010},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xdfa7bfe5},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000008},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xbf4f7fca},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000004},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x7e9eff94},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000002},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xfd3dff28},
+	{0x71,    3,    8,       18, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000001},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xfa7bfe51},
+	{0xbf,    6,    3,        0, 0x00000000},
+	{0x67,    6,    0,        0, 0x00000038},
+	{0xc7,    6,    0,        0, 0x00000038},
+	{0xbf,    4,    5,        0, 0x00000000},
+	{0xa7,    4,    0,        0, 0xf4f7fca2},
+	{0x6d,    2,    6,        1, 0x00000000},
+	{0xbf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000040},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xe9eff945},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000020},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xd3dff28a},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000010},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xa7bfe514},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000008},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x4f7fca28},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000004},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x9eff9450},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000002},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x3dff28a0},
+	{0x71,    5,    8,       19, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000001},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x7bfe5141},
+	{0xbf,    3,    5,        0, 0x00000000},
+	{0x67,    3,    0,        0, 0x00000038},
+	{0xc7,    3,    0,        0, 0x00000038},
+	{0xbf,    7,    4,        0, 0x00000000},
+	{0xa7,    7,    0,        0, 0xf7fca283},
+	{0x6d,    2,    3,        1, 0x00000000},
+	{0xbf,    7,    4,        0, 0x00000000},
+	{0xbf,    3,    5,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000040},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xeff94506},
+	{0xbf,    3,    5,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000020},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xdff28a0c},
+	{0xbf,    3,    5,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000010},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xbfe51418},
+	{0xbf,    3,    5,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000008},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x7fca2831},
+	{0xbf,    3,    5,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000004},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xff945063},
+	{0xbf,    3,    5,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000002},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xff28a0c6},
+	{0x57,    5,    0,        0, 0x00000001},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xfe51418c},
+	{0xbf,    4,    1,        0, 0x00000000},
+	{0x67,    4,    0,        0, 0x00000020},
+	{0xc7,    4,    0,        0, 0x00000020},
+	{0xbf,    3,    7,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0xfca28319},
+	{0x6d,    2,    4,        1, 0x00000000},
+	{0xbf,    3,    7,        0, 0x00000000},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x40000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xf9450633},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x20000000},
+	{0x79,    6,   10,      -56, 0x00000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xf28a0c67},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x10000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xe51418ce},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x08000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xca28319d},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x04000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x9450633b},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x02000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x28a0c676},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x01000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x51418ced},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00800000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xa28319db},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00400000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x450633b6},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00200000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x8a0c676c},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00100000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x1418ced8},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00080000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x28319db1},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00040000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x50633b63},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00020000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xa0c676c6},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00010000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x418ced8d},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00008000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x8319db1a},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00004000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x0633b634},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00002000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x0c676c68},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00001000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x18ced8d1},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000800},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x319db1a3},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000400},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x633b6347},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000200},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xc676c68f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000100},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x8ced8d1f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000080},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x19db1a3e},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000040},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x33b6347d},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000020},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x676c68fa},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000010},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xced8d1f4},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000008},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x9db1a3e9},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000004},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x3b6347d2},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000002},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x76c68fa5},
+	{0x57,    1,    0,        0, 0x00000001},
+	{0x15,    1,    0,     1194, 0x00000000},
+	{0xa7,    3,    0,        0, 0xed8d1f4a},
+	{0x05,    0,    0,     1192, 0x00000000},
+	{0x0f,    8,    1,        0, 0x00000000},
+	{0xb7,    7,    0,        0, 0x00000000},
+	{0xbf,    1,    8,        0, 0x00000000},
+	{0x07,    1,    0,        0, 0x0000002c},
+	{0x2d,    1,    9,     1216, 0x00000000},
+	{0x61,    2,    8,        8, 0x00000000},
+	{0xdc,    2,    0,        0, 0x00000040},
+	{0xc7,    2,    0,        0, 0x00000020},
+	{0x71,    3,    8,        6, 0x00000000},
+	{0x15,    3,    0,        2, 0x00000011},
+	{0xb7,    1,    0,        0, 0x00000000},
+	{0x55,    3,    0,       12, 0x00000006},
+	{0xbf,    3,    8,        0, 0x00000000},
+	{0x07,    3,    0,        0, 0x00000028},
+	{0x71,    4,    3,        0, 0x00000000},
+	{0x67,    4,    0,        0, 0x00000018},
+	{0x71,    1,    3,        1, 0x00000000},
+	{0x67,    1,    0,        0, 0x00000010},
+	{0x4f,    1,    4,        0, 0x00000000},
+	{0x71,    4,    3,        3, 0x00000000},
+	{0x4f,    1,    4,        0, 0x00000000},
+	{0x71,    3,    3,        2, 0x00000000},
 	{0x67,    3,    0,        0, 0x00000008},
-	{0x71,    4,    0,      202, 0x00000000},
-	{0x4f,    3,    4,        0, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000010},
-	{0x4f,    3,    2,        0, 0x00000000},
-	{0x67,    1,    0,        0, 0x00000020},
-	{0x77,    1,    0,        0, 0x00000020},
-	{0xbf,    2,    1,        0, 0x00000000},
-	{0x3f,    2,    3,        0, 0x00000000},
-	{0x2f,    2,    3,        0, 0x00000000},
-	{0x1f,    1,    2,        0, 0x00000000},
-	{0x57,    1,    0,        0, 0x0000000f},
-	{0x67,    1,    0,        0, 0x00000002},
-	{0x0f,    0,    1,        0, 0x00000000},
+	{0x4f,    1,    3,        0, 0x00000000},
+	{0xbf,    4,    2,        0, 0x00000000},
+	{0x77,    4,    0,        0, 0x0000001f},
+	{0x57,    4,    0,        0, 0x2cc681d1},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x40000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x598d03a2},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x20000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xb31a0745},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x10000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x66340e8a},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x08000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xcc681d15},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x04000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x98d03a2b},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x02000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x31a07456},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x01000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x6340e8ad},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00800000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xc681d15b},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00400000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x8d03a2b7},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00200000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x1a07456f},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00100000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x340e8ade},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00080000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x681d15bd},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00040000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xd03a2b7b},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00020000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xa07456f6},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00010000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x40e8aded},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00008000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x81d15bdb},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00004000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x03a2b7b7},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00002000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x07456f6f},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00001000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x0e8adedf},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000800},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x1d15bdbf},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000400},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x3a2b7b7e},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000200},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x7456f6fd},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000100},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xe8adedfa},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000080},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xd15bdbf4},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000040},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xa2b7b7e9},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000020},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x456f6fd3},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000010},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x8adedfa7},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000008},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x15bdbf4f},
+	{0x61,    3,    8,       12, 0x00000000},
+	{0xbf,    5,    2,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000004},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x2b7b7e9e},
+	{0xdc,    3,    0,        0, 0x00000040},
+	{0xbf,    5,    2,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000002},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x56f6fd3d},
+	{0xc7,    3,    0,        0, 0x00000020},
+	{0x57,    2,    0,        0, 0x00000001},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xadedfa7b},
+	{0xb7,    2,    0,        0, 0x00000000},
+	{0xbf,    5,    4,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x5bdbf4f7},
+	{0x6d,    2,    3,        1, 0x00000000},
+	{0xbf,    5,    4,        0, 0x00000000},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x40000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xb7b7e9ef},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x20000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x6f6fd3df},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x10000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xdedfa7bf},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x08000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xbdbf4f7f},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x04000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x7b7e9eff},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x02000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xf6fd3dff},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x01000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xedfa7bfe},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00800000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xdbf4f7fc},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00400000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xb7e9eff9},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00200000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x6fd3dff2},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00100000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xdfa7bfe5},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00080000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xbf4f7fca},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00040000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x7e9eff94},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00020000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xfd3dff28},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00010000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xfa7bfe51},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00008000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xf4f7fca2},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00004000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xe9eff945},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00002000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xd3dff28a},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00001000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xa7bfe514},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000800},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x4f7fca28},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000400},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x9eff9450},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000200},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x3dff28a0},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000100},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x7bfe5141},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000080},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xf7fca283},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000040},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xeff94506},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000020},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xdff28a0c},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000010},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xbfe51418},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000008},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x7fca2831},
+	{0x61,    4,    8,       16, 0x00000000},
+	{0xbf,    6,    3,        0, 0x00000000},
+	{0x57,    6,    0,        0, 0x00000004},
+	{0x15,    6,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xff945063},
+	{0xdc,    4,    0,        0, 0x00000040},
+	{0xbf,    6,    3,        0, 0x00000000},
+	{0x57,    6,    0,        0, 0x00000002},
+	{0x15,    6,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xff28a0c6},
+	{0xc7,    4,    0,        0, 0x00000020},
+	{0x57,    3,    0,        0, 0x00000001},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xfe51418c},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xa7,    7,    0,        0, 0xfca28319},
+	{0x6d,    2,    4,        1, 0x00000000},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x40000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xf9450633},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x20000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xf28a0c67},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x10000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xe51418ce},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x08000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xca28319d},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x04000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x9450633b},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x02000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x28a0c676},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x01000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x51418ced},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00800000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xa28319db},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00400000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x450633b6},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00200000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x8a0c676c},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00100000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x1418ced8},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00080000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x28319db1},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00040000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x50633b63},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00020000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xa0c676c6},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00010000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x418ced8d},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00008000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x8319db1a},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00004000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x0633b634},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00002000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x0c676c68},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00001000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x18ced8d1},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000800},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x319db1a3},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000400},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x633b6347},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000200},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xc676c68f},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000100},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x8ced8d1f},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000080},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x19db1a3e},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000040},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x33b6347d},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000020},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x676c68fa},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000010},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xced8d1f4},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000008},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x9db1a3e9},
+	{0x61,    3,    8,       20, 0x00000000},
+	{0xbf,    5,    4,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000004},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x3b6347d2},
+	{0xdc,    3,    0,        0, 0x00000040},
+	{0xbf,    5,    4,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000002},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x76c68fa5},
+	{0xc7,    3,    0,        0, 0x00000020},
+	{0x57,    4,    0,        0, 0x00000001},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xed8d1f4a},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0xdb1a3e94},
+	{0x6d,    2,    3,        1, 0x00000000},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x40000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xb6347d28},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x20000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x6c68fa51},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x10000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xd8d1f4a3},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x08000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xb1a3e946},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x04000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x6347d28d},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x02000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xc68fa51a},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x01000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x8d1f4a35},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00800000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x1a3e946b},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00400000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x347d28d7},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00200000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x68fa51ae},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00100000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xd1f4a35c},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00080000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xa3e946b9},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00040000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x47d28d73},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00020000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x8fa51ae7},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00010000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x1f4a35cf},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00008000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x3e946b9e},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00004000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x7d28d73c},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00002000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xfa51ae78},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00001000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xf4a35cf1},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000800},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xe946b9e3},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000400},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xd28d73c7},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000200},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xa51ae78e},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000100},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x4a35cf1c},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000080},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x946b9e38},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000040},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x28d73c71},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000020},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x51ae78e3},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000010},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xa35cf1c6},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000008},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x46b9e38d},
+	{0x61,    4,    8,       24, 0x00000000},
+	{0xbf,    6,    3,        0, 0x00000000},
+	{0x57,    6,    0,        0, 0x00000004},
+	{0x15,    6,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x8d73c71b},
+	{0xdc,    4,    0,        0, 0x00000040},
+	{0xbf,    6,    3,        0, 0x00000000},
+	{0x57,    6,    0,        0, 0x00000002},
+	{0x15,    6,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x1ae78e36},
+	{0xc7,    4,    0,        0, 0x00000020},
+	{0x57,    3,    0,        0, 0x00000001},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x35cf1c6c},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xa7,    7,    0,        0, 0x6b9e38d9},
+	{0x6d,    2,    4,        1, 0x00000000},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x40000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xd73c71b2},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x20000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xae78e364},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x10000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x5cf1c6c9},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x08000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xb9e38d92},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x04000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x73c71b25},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x02000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xe78e364b},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x01000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xcf1c6c96},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00800000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x9e38d92c},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00400000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x3c71b259},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00200000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x78e364b2},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00100000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xf1c6c964},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00080000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xe38d92c9},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00040000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xc71b2593},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00020000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x8e364b27},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00010000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x1c6c964e},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00008000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x38d92c9c},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00004000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x71b25938},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00002000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xe364b270},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00001000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xc6c964e0},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000800},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x8d92c9c0},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000400},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x1b259380},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000200},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x364b2700},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000100},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x6c964e01},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000080},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xd92c9c03},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000040},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xb2593807},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000020},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x64b2700f},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000010},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xc964e01e},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000008},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x92c9c03d},
+	{0x61,    3,    8,       28, 0x00000000},
+	{0xbf,    5,    4,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000004},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x2593807a},
+	{0xdc,    3,    0,        0, 0x00000040},
+	{0xbf,    5,    4,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000002},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x4b2700f4},
+	{0xc7,    3,    0,        0, 0x00000020},
+	{0x57,    4,    0,        0, 0x00000001},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x964e01e8},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x2c9c03d1},
+	{0x6d,    2,    3,        1, 0x00000000},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x40000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x593807a3},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x20000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xb2700f46},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x10000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x64e01e8d},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x08000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xc9c03d1a},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x04000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x93807a35},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x02000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x2700f46b},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x01000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x4e01e8d6},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00800000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x9c03d1ad},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00400000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x3807a35b},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00200000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x700f46b6},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00100000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xe01e8d6c},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00080000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xc03d1ad9},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00040000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x807a35b3},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00020000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x00f46b66},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00010000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x01e8d6cc},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00008000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x03d1ad99},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00004000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x07a35b32},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00002000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x0f46b665},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00001000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x1e8d6cca},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000800},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x3d1ad994},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000400},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x7a35b328},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000200},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xf46b6651},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000100},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xe8d6cca2},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000080},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xd1ad9944},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000040},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xa35b3289},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000020},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x46b66512},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000010},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x8d6cca25},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000008},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x1ad9944a},
+	{0x61,    4,    8,       32, 0x00000000},
+	{0xbf,    6,    3,        0, 0x00000000},
+	{0x57,    6,    0,        0, 0x00000004},
+	{0x15,    6,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x35b32894},
+	{0xdc,    4,    0,        0, 0x00000040},
+	{0xbf,    6,    3,        0, 0x00000000},
+	{0x57,    6,    0,        0, 0x00000002},
+	{0x15,    6,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x6b665129},
+	{0xc7,    4,    0,        0, 0x00000020},
+	{0x57,    3,    0,        0, 0x00000001},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xd6cca253},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xa7,    7,    0,        0, 0xad9944a7},
+	{0x6d,    2,    4,        1, 0x00000000},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x40000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x5b32894f},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x20000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xb665129f},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x10000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x6cca253e},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x08000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xd9944a7d},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x04000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xb32894fb},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x02000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x665129f6},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x01000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xcca253ec},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00800000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x9944a7d9},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00400000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x32894fb2},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00200000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x65129f65},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00100000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xca253eca},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00080000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x944a7d95},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00040000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x2894fb2a},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00020000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x5129f655},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00010000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xa253ecab},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00008000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x44a7d956},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00004000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x894fb2ac},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00002000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x129f6558},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00001000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x253ecab1},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000800},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x4a7d9563},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000400},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x94fb2ac7},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000200},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x29f6558f},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000100},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x53ecab1e},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000080},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xa7d9563d},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000040},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x4fb2ac7a},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000020},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x9f6558f5},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000010},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x3ecab1ea},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000008},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x7d9563d5},
+	{0x61,    3,    8,       36, 0x00000000},
+	{0xbf,    5,    4,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000004},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xfb2ac7ab},
+	{0xdc,    3,    0,        0, 0x00000040},
+	{0xbf,    5,    4,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000002},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xf6558f56},
+	{0xc7,    3,    0,        0, 0x00000020},
+	{0x57,    4,    0,        0, 0x00000001},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xecab1eac},
+	{0xbf,    4,    7,        0, 0x00000000},
+	{0xa7,    4,    0,        0, 0xd9563d59},
+	{0x6d,    2,    3,        1, 0x00000000},
+	{0xbf,    4,    7,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x40000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xb2ac7ab2},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x20000000},
+	{0x79,    6,   10,      -56, 0x00000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x6558f564},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x10000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xcab1eac8},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x08000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x9563d590},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x04000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x2ac7ab20},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x02000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x558f5641},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x01000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xab1eac83},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00800000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x563d5906},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00400000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xac7ab20c},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00200000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x58f56418},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00100000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xb1eac831},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00080000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x63d59063},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00040000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xc7ab20c7},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00020000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x8f56418f},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00010000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x1eac831e},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00008000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x3d59063c},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00004000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x7ab20c78},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00002000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xf56418f0},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00001000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xeac831e1},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000800},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xd59063c2},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000400},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xab20c784},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000200},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x56418f09},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000100},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xac831e12},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000080},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x59063c25},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000040},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xb20c784b},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000020},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x6418f097},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000010},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xc831e12f},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000008},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x9063c25f},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000004},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x20c784be},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000002},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x418f097c},
+	{0x57,    3,    0,        0, 0x00000001},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x831e12f9},
+	{0xbf,    5,    1,        0, 0x00000000},
+	{0x67,    5,    0,        0, 0x00000020},
+	{0xc7,    5,    0,        0, 0x00000020},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0x063c25f3},
+	{0x6d,    2,    5,        1, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x40000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x0c784be7},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x20000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x18f097cf},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x10000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x31e12f9f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x08000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x63c25f3f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x04000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xc784be7f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x02000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x8f097cff},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x01000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x1e12f9fe},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00800000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x3c25f3fc},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00400000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x784be7f8},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00200000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xf097cff0},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00100000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xe12f9fe0},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00080000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xc25f3fc1},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00040000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x84be7f83},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00020000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x097cff07},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00010000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x12f9fe0f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00008000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x25f3fc1f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00004000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x4be7f83f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00002000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x97cff07f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00001000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x2f9fe0fe},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000800},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x5f3fc1fd},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000400},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xbe7f83fb},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000200},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x7cff07f7},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000100},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xf9fe0fee},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000080},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xf3fc1fdc},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000040},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xe7f83fb8},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000020},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xcff07f70},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000010},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x9fe0fee1},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000008},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x3fc1fdc2},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000004},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x7f83fb85},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000002},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xff07f70a},
+	{0x57,    1,    0,        0, 0x00000001},
+	{0x15,    1,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xfe0fee15},
+	{0x71,    1,    0,      201, 0x00000000},
+	{0x67,    1,    0,        0, 0x00000008},
+	{0x71,    2,    0,      200, 0x00000000},
+	{0x4f,    1,    2,        0, 0x00000000},
+	{0x71,    2,    0,      202, 0x00000000},
+	{0x67,    2,    0,        0, 0x00000010},
+	{0x71,    4,    0,      203, 0x00000000},
+	{0x67,    4,    0,        0, 0x00000018},
+	{0x4f,    4,    2,        0, 0x00000000},
+	{0x4f,    4,    1,        0, 0x00000000},
+	{0x67,    3,    0,        0, 0x00000020},
+	{0x77,    3,    0,        0, 0x00000020},
+	{0x9f,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x0000000f},
+	{0x67,    3,    0,        0, 0x00000002},
+	{0x0f,    0,    3,        0, 0x00000000},
 	{0x71,    1,    0,      137, 0x00000000},
 	{0x67,    1,    0,        0, 0x00000008},
 	{0x71,    2,    0,      136, 0x00000000},
 	{0x4f,    1,    2,        0, 0x00000000},
 	{0x71,    2,    0,      138, 0x00000000},
+	{0x67,    2,    0,        0, 0x00000010},
 	{0x71,    3,    0,      139, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000008},
+	{0x67,    3,    0,        0, 0x00000018},
 	{0x4f,    3,    2,        0, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000010},
 	{0x4f,    3,    1,        0, 0x00000000},
 	{0x07,    3,    0,        0, 0x7cafe800},
-	{0x63,    5,    3,       52, 0x00000000},
+	{0x63,    6,    3,       52, 0x00000000},
 	{0xb7,    7,    0,        0, 0x00000001},
 	{0xbf,    0,    7,        0, 0x00000000},
 	{0x95,    0,    0,        0, 0x00000000},
diff --git a/drivers/net/tap/tap_bpf_program.c b/drivers/net/tap/tap_bpf_program.c
index 20c310e5e7..d9bb65831a 100644
--- a/drivers/net/tap/tap_bpf_program.c
+++ b/drivers/net/tap/tap_bpf_program.c
@@ -131,6 +131,8 @@ rss_l3_l4(struct __sk_buff *skb)
 	__u8 *key = 0;
 	__u32 len;
 	__u32 queue = 0;
+	bool mf = 0;
+	__u16 frag_off = 0;
 
 	rsskey = map_lookup_elem(&map_keys, &key_idx);
 	if (!rsskey) {
@@ -155,6 +157,8 @@ rss_l3_l4(struct __sk_buff *skb)
 			return TC_ACT_OK;
 
 		__u8 *src_dst_addr = data + off + offsetof(struct iphdr, saddr);
+		__u8 *frag_off_addr = data + off + offsetof(struct iphdr, frag_off);
+		__u8 *prot_addr = data + off + offsetof(struct iphdr, protocol);
 		__u8 *src_dst_port = data + off + sizeof(struct iphdr);
 		struct ipv4_l3_l4_tuple v4_tuple = {
 			.src_addr = IPv4(*(src_dst_addr + 0),
@@ -165,11 +169,25 @@ rss_l3_l4(struct __sk_buff *skb)
 					*(src_dst_addr + 5),
 					*(src_dst_addr + 6),
 					*(src_dst_addr + 7)),
-			.sport = PORT(*(src_dst_port + 0),
-					*(src_dst_port + 1)),
-			.dport = PORT(*(src_dst_port + 2),
-					*(src_dst_port + 3)),
+			.sport = 0,
+			.dport = 0,
 		};
+		/** Fetch the L4-payer port numbers only in-case of TCP/UDP
+		 ** and also if the packet is not fragmented. Since fragmented
+		 ** chunks do not have L4 TCP/UDP header.
+		 **/
+		if (*prot_addr == IPPROTO_UDP || *prot_addr == IPPROTO_TCP) {
+			frag_off = PORT(*(frag_off_addr + 0),
+					*(frag_off_addr + 1));
+			mf = frag_off & 0x2000;
+			frag_off = frag_off & 0x1fff;
+			if (mf == 0 && frag_off == 0) {
+				v4_tuple.sport = PORT(*(src_dst_port + 0),
+						*(src_dst_port + 1));
+				v4_tuple.dport = PORT(*(src_dst_port + 2),
+						*(src_dst_port + 3));
+			}
+		}
 		__u8 input_len = sizeof(v4_tuple) / sizeof(__u32);
 		if (rsskey->hash_fields & (1 << HASH_FIELD_IPV4_L3))
 			input_len--;
@@ -182,6 +200,9 @@ rss_l3_l4(struct __sk_buff *skb)
 					offsetof(struct ipv6hdr, saddr);
 		__u8 *src_dst_port = data + off +
 					sizeof(struct ipv6hdr);
+		__u8 *next_hdr = data + off +
+					offsetof(struct ipv6hdr, nexthdr);
+
 		struct ipv6_l3_l4_tuple v6_tuple;
 		for (j = 0; j < 4; j++)
 			*((uint32_t *)&v6_tuple.src_addr + j) =
@@ -191,10 +212,18 @@ rss_l3_l4(struct __sk_buff *skb)
 			*((uint32_t *)&v6_tuple.dst_addr + j) =
 				__builtin_bswap32(*((uint32_t *)
 						src_dst_addr + 4 + j));
-		v6_tuple.sport = PORT(*(src_dst_port + 0),
-			      *(src_dst_port + 1));
-		v6_tuple.dport = PORT(*(src_dst_port + 2),
-			      *(src_dst_port + 3));
+
+		/** Fetch the L4 header port-numbers only if next-header
+		 * is TCP/UDP **/
+		if (*next_hdr == IPPROTO_UDP || *next_hdr == IPPROTO_TCP) {
+			v6_tuple.sport = PORT(*(src_dst_port + 0),
+				      *(src_dst_port + 1));
+			v6_tuple.dport = PORT(*(src_dst_port + 2),
+				      *(src_dst_port + 3));
+		} else {
+			v6_tuple.sport = 0;
+			v6_tuple.dport = 0;
+		}
 
 		__u8 input_len = sizeof(v6_tuple) / sizeof(__u32);
 		if (rsskey->hash_fields & (1 << HASH_FIELD_IPV6_L3))
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:53.455491431 +0000
+++ 0031-net-tap-fix-RSS-for-fragmented-packets.patch	2023-11-08 19:23:51.821397286 +0000
@@ -1 +1 @@
-From db6a3ddb166bb53ac7929e4b5c4cad94f6fa6871 Mon Sep 17 00:00:00 2001
+From d64cac7f1630decd135a935c706e1861452ad30a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit db6a3ddb166bb53ac7929e4b5c4cad94f6fa6871 ]
+
@@ -25 +26,0 @@
-Cc: stable@dpdk.org
@@ -31,2 +32,2 @@
- drivers/net/tap/bpf/tap_bpf_program.c |   45 +-
- drivers/net/tap/tap_bpf_insns.h       | 3269 +++++++++++++------------
+ drivers/net/tap/tap_bpf_insns.h   | 3269 +++++++++++++++--------------
+ drivers/net/tap/tap_bpf_program.c |   45 +-
@@ -35,85 +35,0 @@
-diff --git a/drivers/net/tap/bpf/tap_bpf_program.c b/drivers/net/tap/bpf/tap_bpf_program.c
-index d65021d8a1..f05aed021c 100644
---- a/drivers/net/tap/bpf/tap_bpf_program.c
-+++ b/drivers/net/tap/bpf/tap_bpf_program.c
-@@ -133,6 +133,8 @@ rss_l3_l4(struct __sk_buff *skb)
- 	__u8 *key = 0;
- 	__u32 len;
- 	__u32 queue = 0;
-+	bool mf = 0;
-+	__u16 frag_off = 0;
- 
- 	rsskey = map_lookup_elem(&map_keys, &key_idx);
- 	if (!rsskey) {
-@@ -157,6 +159,8 @@ rss_l3_l4(struct __sk_buff *skb)
- 			return TC_ACT_OK;
- 
- 		__u8 *src_dst_addr = data + off + offsetof(struct iphdr, saddr);
-+		__u8 *frag_off_addr = data + off + offsetof(struct iphdr, frag_off);
-+		__u8 *prot_addr = data + off + offsetof(struct iphdr, protocol);
- 		__u8 *src_dst_port = data + off + sizeof(struct iphdr);
- 		struct ipv4_l3_l4_tuple v4_tuple = {
- 			.src_addr = IPv4(*(src_dst_addr + 0),
-@@ -167,11 +171,25 @@ rss_l3_l4(struct __sk_buff *skb)
- 					*(src_dst_addr + 5),
- 					*(src_dst_addr + 6),
- 					*(src_dst_addr + 7)),
--			.sport = PORT(*(src_dst_port + 0),
--					*(src_dst_port + 1)),
--			.dport = PORT(*(src_dst_port + 2),
--					*(src_dst_port + 3)),
-+			.sport = 0,
-+			.dport = 0,
- 		};
-+		/** Fetch the L4-payer port numbers only in-case of TCP/UDP
-+		 ** and also if the packet is not fragmented. Since fragmented
-+		 ** chunks do not have L4 TCP/UDP header.
-+		 **/
-+		if (*prot_addr == IPPROTO_UDP || *prot_addr == IPPROTO_TCP) {
-+			frag_off = PORT(*(frag_off_addr + 0),
-+					*(frag_off_addr + 1));
-+			mf = frag_off & 0x2000;
-+			frag_off = frag_off & 0x1fff;
-+			if (mf == 0 && frag_off == 0) {
-+				v4_tuple.sport = PORT(*(src_dst_port + 0),
-+						*(src_dst_port + 1));
-+				v4_tuple.dport = PORT(*(src_dst_port + 2),
-+						*(src_dst_port + 3));
-+			}
-+		}
- 		__u8 input_len = sizeof(v4_tuple) / sizeof(__u32);
- 		if (rsskey->hash_fields & (1 << HASH_FIELD_IPV4_L3))
- 			input_len--;
-@@ -184,6 +202,9 @@ rss_l3_l4(struct __sk_buff *skb)
- 					offsetof(struct ipv6hdr, saddr);
- 		__u8 *src_dst_port = data + off +
- 					sizeof(struct ipv6hdr);
-+		__u8 *next_hdr = data + off +
-+					offsetof(struct ipv6hdr, nexthdr);
-+
- 		struct ipv6_l3_l4_tuple v6_tuple;
- 		for (j = 0; j < 4; j++)
- 			*((uint32_t *)&v6_tuple.src_addr + j) =
-@@ -193,10 +214,18 @@ rss_l3_l4(struct __sk_buff *skb)
- 			*((uint32_t *)&v6_tuple.dst_addr + j) =
- 				__builtin_bswap32(*((uint32_t *)
- 						src_dst_addr + 4 + j));
--		v6_tuple.sport = PORT(*(src_dst_port + 0),
--			      *(src_dst_port + 1));
--		v6_tuple.dport = PORT(*(src_dst_port + 2),
--			      *(src_dst_port + 3));
-+
-+		/** Fetch the L4 header port-numbers only if next-header
-+		 * is TCP/UDP **/
-+		if (*next_hdr == IPPROTO_UDP || *next_hdr == IPPROTO_TCP) {
-+			v6_tuple.sport = PORT(*(src_dst_port + 0),
-+				      *(src_dst_port + 1));
-+			v6_tuple.dport = PORT(*(src_dst_port + 2),
-+				      *(src_dst_port + 3));
-+		} else {
-+			v6_tuple.sport = 0;
-+			v6_tuple.dport = 0;
-+		}
- 
- 		__u8 input_len = sizeof(v6_tuple) / sizeof(__u32);
- 		if (rsskey->hash_fields & (1 << HASH_FIELD_IPV6_L3))
@@ -3450,0 +3367,85 @@
+diff --git a/drivers/net/tap/tap_bpf_program.c b/drivers/net/tap/tap_bpf_program.c
+index 20c310e5e7..d9bb65831a 100644
+--- a/drivers/net/tap/tap_bpf_program.c
++++ b/drivers/net/tap/tap_bpf_program.c
+@@ -131,6 +131,8 @@ rss_l3_l4(struct __sk_buff *skb)
+ 	__u8 *key = 0;
+ 	__u32 len;
+ 	__u32 queue = 0;
++	bool mf = 0;
++	__u16 frag_off = 0;
+ 
+ 	rsskey = map_lookup_elem(&map_keys, &key_idx);
+ 	if (!rsskey) {
+@@ -155,6 +157,8 @@ rss_l3_l4(struct __sk_buff *skb)
+ 			return TC_ACT_OK;
+ 
+ 		__u8 *src_dst_addr = data + off + offsetof(struct iphdr, saddr);
++		__u8 *frag_off_addr = data + off + offsetof(struct iphdr, frag_off);
++		__u8 *prot_addr = data + off + offsetof(struct iphdr, protocol);
+ 		__u8 *src_dst_port = data + off + sizeof(struct iphdr);
+ 		struct ipv4_l3_l4_tuple v4_tuple = {
+ 			.src_addr = IPv4(*(src_dst_addr + 0),
+@@ -165,11 +169,25 @@ rss_l3_l4(struct __sk_buff *skb)
+ 					*(src_dst_addr + 5),
+ 					*(src_dst_addr + 6),
+ 					*(src_dst_addr + 7)),
+-			.sport = PORT(*(src_dst_port + 0),
+-					*(src_dst_port + 1)),
+-			.dport = PORT(*(src_dst_port + 2),
+-					*(src_dst_port + 3)),
++			.sport = 0,
++			.dport = 0,
+ 		};
++		/** Fetch the L4-payer port numbers only in-case of TCP/UDP
++		 ** and also if the packet is not fragmented. Since fragmented
++		 ** chunks do not have L4 TCP/UDP header.
++		 **/
++		if (*prot_addr == IPPROTO_UDP || *prot_addr == IPPROTO_TCP) {
++			frag_off = PORT(*(frag_off_addr + 0),
++					*(frag_off_addr + 1));
++			mf = frag_off & 0x2000;
++			frag_off = frag_off & 0x1fff;
++			if (mf == 0 && frag_off == 0) {
++				v4_tuple.sport = PORT(*(src_dst_port + 0),
++						*(src_dst_port + 1));
++				v4_tuple.dport = PORT(*(src_dst_port + 2),
++						*(src_dst_port + 3));
++			}
++		}
+ 		__u8 input_len = sizeof(v4_tuple) / sizeof(__u32);
+ 		if (rsskey->hash_fields & (1 << HASH_FIELD_IPV4_L3))
+ 			input_len--;
+@@ -182,6 +200,9 @@ rss_l3_l4(struct __sk_buff *skb)
+ 					offsetof(struct ipv6hdr, saddr);
+ 		__u8 *src_dst_port = data + off +
+ 					sizeof(struct ipv6hdr);
++		__u8 *next_hdr = data + off +
++					offsetof(struct ipv6hdr, nexthdr);
++
+ 		struct ipv6_l3_l4_tuple v6_tuple;
+ 		for (j = 0; j < 4; j++)
+ 			*((uint32_t *)&v6_tuple.src_addr + j) =
+@@ -191,10 +212,18 @@ rss_l3_l4(struct __sk_buff *skb)
+ 			*((uint32_t *)&v6_tuple.dst_addr + j) =
+ 				__builtin_bswap32(*((uint32_t *)
+ 						src_dst_addr + 4 + j));
+-		v6_tuple.sport = PORT(*(src_dst_port + 0),
+-			      *(src_dst_port + 1));
+-		v6_tuple.dport = PORT(*(src_dst_port + 2),
+-			      *(src_dst_port + 3));
++
++		/** Fetch the L4 header port-numbers only if next-header
++		 * is TCP/UDP **/
++		if (*next_hdr == IPPROTO_UDP || *next_hdr == IPPROTO_TCP) {
++			v6_tuple.sport = PORT(*(src_dst_port + 0),
++				      *(src_dst_port + 1));
++			v6_tuple.dport = PORT(*(src_dst_port + 2),
++				      *(src_dst_port + 3));
++		} else {
++			v6_tuple.sport = 0;
++			v6_tuple.dport = 0;
++		}
+ 
+ 		__u8 input_len = sizeof(v6_tuple) / sizeof(__u32);
+ 		if (rsskey->hash_fields & (1 << HASH_FIELD_IPV6_L3))

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

* patch 'common/mlx5: fix controller index parsing' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (29 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/tap: fix RSS for fragmented packets' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/ice: fix L1 check interval' " luca.boccassi
                       ` (4 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Dariusz Sosnowski; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From a623fc032e26bb47b6848e82f0dba59b1afd04b7 Mon Sep 17 00:00:00 2001
From: Dariusz Sosnowski <dsosnowski@nvidia.com>
Date: Tue, 31 Oct 2023 16:27:27 +0200
Subject: [PATCH] common/mlx5: fix controller index parsing

[ upstream commit 3cd5e500b5cb1b72ee182be4043018f22a5f8a3b ]

When probing the Linux kernel network interfaces attached to E-Switch,
mlx5 PMD decides the representor type and represented entity
using phys_port_name exposed by the mlx5 kernel driver in sysfs.
mlx5 PMD first checks this name for multihost controller index.
In multihost scenarios, phys_port_name is prefixed with "c[0-9]+" string.
Included integer is the controller index.

Assuming that phys_port_name contains a string representing a physical
port, i.e. "p[0-9]+" string, the parsing logic is incorrect.
Both "p[0-9]+" and "c[0-9]+" match the formatting string used to parse
phys_port_name, but controller index is still filled out.

This patch fixes this behavior by storing the parsed index
in a temporary variable and setting controller index
if and only if phys_port_name matches multihost controller syntax.

Fixes: 59df97f1a832 ("common/mlx5: support sub-function representor parsing")

Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/common/mlx5/linux/mlx5_common_os.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/common/mlx5/linux/mlx5_common_os.c b/drivers/common/mlx5/linux/mlx5_common_os.c
index 96e036fc66..507a0e3873 100644
--- a/drivers/common/mlx5/linux/mlx5_common_os.c
+++ b/drivers/common/mlx5/linux/mlx5_common_os.c
@@ -100,10 +100,11 @@ mlx5_translate_port_name(const char *port_name_in,
 	char ctrl = 0, pf_c1, pf_c2, vf_c1, vf_c2, eol;
 	char *end;
 	int sc_items;
+	int32_t ctrl_num = -1;
 
-	sc_items = sscanf(port_name_in, "%c%d",
-			  &ctrl, &port_info_out->ctrl_num);
+	sc_items = sscanf(port_name_in, "%c%d", &ctrl, &ctrl_num);
 	if (sc_items == 2 && ctrl == 'c') {
+		port_info_out->ctrl_num = ctrl_num;
 		port_name_in++; /* 'c' */
 		port_name_in += snprintf(NULL, 0, "%d",
 					  port_info_out->ctrl_num);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:53.498864182 +0000
+++ 0032-common-mlx5-fix-controller-index-parsing.patch	2023-11-08 19:23:51.821397286 +0000
@@ -1 +1 @@
-From 3cd5e500b5cb1b72ee182be4043018f22a5f8a3b Mon Sep 17 00:00:00 2001
+From a623fc032e26bb47b6848e82f0dba59b1afd04b7 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3cd5e500b5cb1b72ee182be4043018f22a5f8a3b ]
+
@@ -23 +24,0 @@
-Cc: stable@dpdk.org
@@ -32 +33 @@
-index 7260c1a19f..41345e1597 100644
+index 96e036fc66..507a0e3873 100644
@@ -35 +36 @@
-@@ -96,10 +96,11 @@ mlx5_translate_port_name(const char *port_name_in,
+@@ -100,10 +100,11 @@ mlx5_translate_port_name(const char *port_name_in,

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

* patch 'net/ice: fix L1 check interval' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (30 preceding siblings ...)
  2023-11-08 19:25     ` patch 'common/mlx5: fix controller index parsing' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/ice: fix DCF port statistics' " luca.boccassi
                       ` (3 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Timothy Miskell; +Cc: Jonathan Tsai, Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From e0f81abc3c873ff7c9d442f7a9a8a0889973c92e Mon Sep 17 00:00:00 2001
From: Timothy Miskell <timothy.miskell@intel.com>
Date: Thu, 19 Oct 2023 17:26:10 +0000
Subject: [PATCH] net/ice: fix L1 check interval

[ upstream commit ff628a22c51f9cc5f69c715005a42456a2aec4f6 ]

For edge cases where the transceiver is physically inserted first and
immediately afterwards the DPDK PF is started the LSC event may occur
outside the current setting for the maximum check interval window. This
change lengthens the check interval to account for this along with other
reported cases where the link event may be longer than 1 second.

Fixes: cf911d90e366 ("net/ice: support link update")

Signed-off-by: Timothy Miskell <timothy.miskell@intel.com>
Tested-by: Jonathan Tsai <jonathan1.tsai@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_ethdev.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index 7af6548afc..017059fc87 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -3783,8 +3783,8 @@ ice_atomic_write_link_status(struct rte_eth_dev *dev,
 static int
 ice_link_update(struct rte_eth_dev *dev, int wait_to_complete)
 {
-#define CHECK_INTERVAL 100  /* 100ms */
-#define MAX_REPEAT_TIME 10  /* 1s (10 * 100ms) in total */
+#define CHECK_INTERVAL 50  /* 50ms */
+#define MAX_REPEAT_TIME 40  /* 2s (40 * 50ms) in total */
 	struct ice_hw *hw = ICE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct ice_link_status link_status;
 	struct rte_eth_link link, old;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:53.539469801 +0000
+++ 0033-net-ice-fix-L1-check-interval.patch	2023-11-08 19:23:51.825397369 +0000
@@ -1 +1 @@
-From ff628a22c51f9cc5f69c715005a42456a2aec4f6 Mon Sep 17 00:00:00 2001
+From e0f81abc3c873ff7c9d442f7a9a8a0889973c92e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ff628a22c51f9cc5f69c715005a42456a2aec4f6 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -19 +19,0 @@
- .mailmap                     | 2 ++
@@ -21 +21 @@
- 2 files changed, 4 insertions(+), 2 deletions(-)
+ 1 file changed, 2 insertions(+), 2 deletions(-)
@@ -23,20 +22,0 @@
-diff --git a/.mailmap b/.mailmap
-index c0ab6d090b..d91775daf1 100644
---- a/.mailmap
-+++ b/.mailmap
-@@ -676,6 +676,7 @@ John Romein <romein@astron.nl>
- John W. Linville <linville@tuxdriver.com>
- Jonas Pfefferle <jpf@zurich.ibm.com> <pepperjo@japf.ch>
- Jonathan Erb <jonathan.erb@threatblockr.com> <jonathan.erb@banduracyber.com>
-+Jonathan Tsai <jonathan1.tsai@intel.com>
- Jon DeVree <nuxi@vault24.org>
- Jon Loeliger <jdl@netgate.com>
- Joongi Kim <joongi@an.kaist.ac.kr>
-@@ -1417,6 +1418,7 @@ Tianli Lai <laitianli@tom.com>
- Tianyu Li <tianyu.li@arm.com>
- Timmons C. Player <timmons.player@spirent.com>
- Timothy McDaniel <timothy.mcdaniel@intel.com>
-+Timothy Miskell <timothy.miskell@intel.com>
- Timothy Redaelli <tredaelli@redhat.com>
- Tim Shearer <tim.shearer@overturenetworks.com>
- Ting Xu <ting.xu@intel.com>
@@ -44 +24 @@
-index 305077e74e..6ef06b9926 100644
+index 7af6548afc..017059fc87 100644
@@ -47 +27 @@
-@@ -3992,8 +3992,8 @@ ice_atomic_write_link_status(struct rte_eth_dev *dev,
+@@ -3783,8 +3783,8 @@ ice_atomic_write_link_status(struct rte_eth_dev *dev,

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

* patch 'net/ice: fix DCF port statistics' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (31 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/ice: fix L1 check interval' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'crypto/nitrox: fix panic with high number of segments' " luca.boccassi
                       ` (2 subsequent siblings)
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Zhichao Zeng; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/3c0b09563498e2652fba886a62e37b840b425554

Thanks.

Luca Boccassi

---
From 3c0b09563498e2652fba886a62e37b840b425554 Mon Sep 17 00:00:00 2001
From: Zhichao Zeng <zhichaox.zeng@intel.com>
Date: Thu, 2 Nov 2023 09:50:47 +0800
Subject: [PATCH] net/ice: fix DCF port statistics

[ upstream commit 70aef239d0de6b2048aecb1220da1d78edb75168 ]

Call 'ice_dcf_stats_reset' during the initialization of the DCF port in
order to clear any statistics that may exist from the last use of the DCF
and to avoid statistics errors.

Fixes: 7564d5509611 ("net/ice: add DCF hardware initialization")

Signed-off-by: Zhichao Zeng <zhichaox.zeng@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_dcf_ethdev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ice/ice_dcf_ethdev.c b/drivers/net/ice/ice_dcf_ethdev.c
index eb8095a61f..9d791456f7 100644
--- a/drivers/net/ice/ice_dcf_ethdev.c
+++ b/drivers/net/ice/ice_dcf_ethdev.c
@@ -940,6 +940,8 @@ ice_dcf_dev_init(struct rte_eth_dev *eth_dev)
 		return -1;
 	}
 
+	ice_dcf_stats_reset(eth_dev);
+
 	return 0;
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:53.585401406 +0000
+++ 0034-net-ice-fix-DCF-port-statistics.patch	2023-11-08 19:23:51.829397452 +0000
@@ -1 +1 @@
-From 70aef239d0de6b2048aecb1220da1d78edb75168 Mon Sep 17 00:00:00 2001
+From 3c0b09563498e2652fba886a62e37b840b425554 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 70aef239d0de6b2048aecb1220da1d78edb75168 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 065ec728c2..29699c2c32 100644
+index eb8095a61f..9d791456f7 100644
@@ -23 +24 @@
-@@ -1937,6 +1937,8 @@ ice_dcf_dev_init(struct rte_eth_dev *eth_dev)
+@@ -940,6 +940,8 @@ ice_dcf_dev_init(struct rte_eth_dev *eth_dev)
@@ -29 +29,0 @@
- 	dcf_config_promisc(adapter, false, false);
@@ -31,0 +32 @@
+ 

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

* patch 'crypto/nitrox: fix panic with high number of segments' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (32 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/ice: fix DCF port statistics' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/iavf: fix Tx preparation' " luca.boccassi
  2023-11-08 19:25     ` patch 'net/ice: " luca.boccassi
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Nagadheeraj Rottela; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/01ae596f4e79c506347416b1e6e38714338bda58

Thanks.

Luca Boccassi

---
From 01ae596f4e79c506347416b1e6e38714338bda58 Mon Sep 17 00:00:00 2001
From: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
Date: Thu, 17 Aug 2023 17:15:56 +0530
Subject: [PATCH] crypto/nitrox: fix panic with high number of segments

[ upstream commit 4a469e1216384d19a6dc3950686f479e30e319a9 ]

When the number of segments in source or destination mbuf is higher than
max supported then the application was panicked during the creation of
sglist when RTE_VERIFY was called. Validate the number of mbuf segments
and return an error instead of panicking.

Fixes: 678f3eca1dfd ("crypto/nitrox: support cipher-only operations")
Fixes: 9282bdee5cdf ("crypto/nitrox: add cipher auth chain processing")

Signed-off-by: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
---
 drivers/crypto/nitrox/nitrox_sym_reqmgr.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/drivers/crypto/nitrox/nitrox_sym_reqmgr.c b/drivers/crypto/nitrox/nitrox_sym_reqmgr.c
index fe3ca25a0c..384d095e92 100644
--- a/drivers/crypto/nitrox/nitrox_sym_reqmgr.c
+++ b/drivers/crypto/nitrox/nitrox_sym_reqmgr.c
@@ -10,8 +10,11 @@
 #include "nitrox_sym_reqmgr.h"
 #include "nitrox_logs.h"
 
-#define MAX_SGBUF_CNT 16
-#define MAX_SGCOMP_CNT 5
+#define MAX_SUPPORTED_MBUF_SEGS 16
+/* IV + AAD + ORH + CC + DIGEST */
+#define ADDITIONAL_SGBUF_CNT 5
+#define MAX_SGBUF_CNT (MAX_SUPPORTED_MBUF_SEGS + ADDITIONAL_SGBUF_CNT)
+#define MAX_SGCOMP_CNT (RTE_ALIGN_MUL_CEIL(MAX_SGBUF_CNT, 4) / 4)
 /* SLC_STORE_INFO */
 #define MIN_UDD_LEN 16
 /* PKT_IN_HDR + SLC_STORE_INFO */
@@ -303,7 +306,7 @@ create_sglist_from_mbuf(struct nitrox_sgtable *sgtbl, struct rte_mbuf *mbuf,
 		datalen -= mlen;
 	}
 
-	RTE_VERIFY(cnt <= MAX_SGBUF_CNT);
+	RTE_ASSERT(cnt <= MAX_SGBUF_CNT);
 	sgtbl->map_bufs_cnt = cnt;
 	return 0;
 }
@@ -375,7 +378,7 @@ create_cipher_outbuf(struct nitrox_softreq *sr)
 	sr->out.sglist[cnt].virt = &sr->resp.completion;
 	cnt++;
 
-	RTE_VERIFY(cnt <= MAX_SGBUF_CNT);
+	RTE_ASSERT(cnt <= MAX_SGBUF_CNT);
 	sr->out.map_bufs_cnt = cnt;
 
 	create_sgcomp(&sr->out);
@@ -600,7 +603,7 @@ create_aead_outbuf(struct nitrox_softreq *sr, struct nitrox_sglist *digest)
 						     resp.completion);
 	sr->out.sglist[cnt].virt = &sr->resp.completion;
 	cnt++;
-	RTE_VERIFY(cnt <= MAX_SGBUF_CNT);
+	RTE_ASSERT(cnt <= MAX_SGBUF_CNT);
 	sr->out.map_bufs_cnt = cnt;
 
 	create_sgcomp(&sr->out);
@@ -774,6 +777,14 @@ nitrox_process_se_req(uint16_t qno, struct rte_crypto_op *op,
 {
 	int err;
 
+	if (unlikely(op->sym->m_src->nb_segs > MAX_SUPPORTED_MBUF_SEGS ||
+		     (op->sym->m_dst &&
+		      op->sym->m_dst->nb_segs > MAX_SUPPORTED_MBUF_SEGS))) {
+		NITROX_LOG(ERR, "Mbuf segments not supported. "
+			   "Max supported %d\n", MAX_SUPPORTED_MBUF_SEGS);
+		return -ENOTSUP;
+	}
+
 	softreq_init(sr, sr->iova);
 	sr->ctx = ctx;
 	sr->op = op;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:53.626728284 +0000
+++ 0035-crypto-nitrox-fix-panic-with-high-number-of-segments.patch	2023-11-08 19:23:51.829397452 +0000
@@ -1 +1 @@
-From 4a469e1216384d19a6dc3950686f479e30e319a9 Mon Sep 17 00:00:00 2001
+From 01ae596f4e79c506347416b1e6e38714338bda58 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4a469e1216384d19a6dc3950686f479e30e319a9 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 9edb0cc00f..d7e8ff7db4 100644
+index fe3ca25a0c..384d095e92 100644

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

* patch 'net/iavf: fix Tx preparation' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (33 preceding siblings ...)
  2023-11-08 19:25     ` patch 'crypto/nitrox: fix panic with high number of segments' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-08 19:25     ` patch 'net/ice: " luca.boccassi
  35 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Qi Zhang; +Cc: Qiming Yang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From f2d782858db14fc7867179c79a73274ac4dc101e Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Thu, 2 Nov 2023 08:05:04 -0400
Subject: [PATCH] net/iavf: fix Tx preparation

[ upstream commit 0f536bae86b30e82ba95c279f1d6f9095d7f5b6e ]

1. check nb_segs > Tx ring size for TSO case.
2. report nb_mtu_seg_max and nb_seg_max in dev_info.

Fixes: a2b29a7733ef ("net/avf: enable basic Rx Tx")

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Qiming Yang <qiming.yang@intel.com>
---
 drivers/net/iavf/iavf_ethdev.c | 2 ++
 drivers/net/iavf/iavf_rxtx.c   | 7 ++++---
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index b6ace7e005..643c73a488 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -843,6 +843,8 @@ iavf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 		.nb_max = IAVF_MAX_RING_DESC,
 		.nb_min = IAVF_MIN_RING_DESC,
 		.nb_align = IAVF_ALIGN_RING_DESC,
+		.nb_mtu_seg_max = IAVF_TX_MAX_MTU_SEG,
+		.nb_seg_max = IAVF_MAX_RING_DESC,
 	};
 
 	return 0;
diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index fb6694f4cd..7daaa0dbc2 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -2347,12 +2347,12 @@ end_of_tx:
 
 /* TX prep functions */
 uint16_t
-iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
-	      uint16_t nb_pkts)
+iavf_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 {
 	int i, ret;
 	uint64_t ol_flags;
 	struct rte_mbuf *m;
+	struct iavf_tx_queue *txq = tx_queue;
 
 	for (i = 0; i < nb_pkts; i++) {
 		m = tx_pkts[i];
@@ -2365,7 +2365,8 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 				return i;
 			}
 		} else if ((m->tso_segsz < IAVF_MIN_TSO_MSS) ||
-			   (m->tso_segsz > IAVF_MAX_TSO_MSS)) {
+			   (m->tso_segsz > IAVF_MAX_TSO_MSS) ||
+			   (m->nb_segs > txq->nb_tx_desc)) {
 			/* MSS outside the range are considered malicious */
 			rte_errno = EINVAL;
 			return i;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:53.666746255 +0000
+++ 0036-net-iavf-fix-Tx-preparation.patch	2023-11-08 19:23:51.833397534 +0000
@@ -1 +1 @@
-From 0f536bae86b30e82ba95c279f1d6f9095d7f5b6e Mon Sep 17 00:00:00 2001
+From f2d782858db14fc7867179c79a73274ac4dc101e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0f536bae86b30e82ba95c279f1d6f9095d7f5b6e ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -16,2 +17,2 @@
- drivers/net/iavf/iavf_rxtx.c   | 3 ++-
- 2 files changed, 4 insertions(+), 1 deletion(-)
+ drivers/net/iavf/iavf_rxtx.c   | 7 ++++---
+ 2 files changed, 6 insertions(+), 3 deletions(-)
@@ -20 +21 @@
-index 98cc5c8ea8..0c6ab4ac5a 100644
+index b6ace7e005..643c73a488 100644
@@ -23 +24 @@
-@@ -1207,6 +1207,8 @@ iavf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
+@@ -843,6 +843,8 @@ iavf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
@@ -31 +32 @@
- 	dev_info->err_handle_mode = RTE_ETH_ERROR_HANDLE_MODE_PASSIVE;
+ 	return 0;
@@ -33 +34 @@
-index 610912f635..45f638c1d2 100644
+index fb6694f4cd..7daaa0dbc2 100644
@@ -36 +37,16 @@
-@@ -3656,7 +3656,8 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -2347,12 +2347,12 @@ end_of_tx:
+ 
+ /* TX prep functions */
+ uint16_t
+-iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+-	      uint16_t nb_pkts)
++iavf_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
+ {
+ 	int i, ret;
+ 	uint64_t ol_flags;
+ 	struct rte_mbuf *m;
++	struct iavf_tx_queue *txq = tx_queue;
+ 
+ 	for (i = 0; i < nb_pkts; i++) {
+ 		m = tx_pkts[i];
+@@ -2365,7 +2365,8 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,

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

* patch 'net/ice: fix Tx preparation' has been queued to stable release 20.11.10
  2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
                       ` (34 preceding siblings ...)
  2023-11-08 19:25     ` patch 'net/iavf: fix Tx preparation' " luca.boccassi
@ 2023-11-08 19:25     ` luca.boccassi
  2023-11-15 11:45       ` patch 'event/dlb2: fix name check in self-test' " luca.boccassi
  35 siblings, 1 reply; 111+ messages in thread
From: luca.boccassi @ 2023-11-08 19:25 UTC (permalink / raw)
  To: Qi Zhang; +Cc: Qiming Yang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/10/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/632656a03fd9444fc40fa833f54d38184d167a9d

Thanks.

Luca Boccassi

---
From 632656a03fd9444fc40fa833f54d38184d167a9d Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Thu, 2 Nov 2023 10:22:07 -0400
Subject: [PATCH] net/ice: fix Tx preparation

[ upstream commit 2f13ba5333b06589ba0e0e307dadcfaa95daf3dc ]

1. Check nb_segs > 8 for NO TSO case
2. Check nb_segs > Tx ring size for TSO case
3. report nb_mtu_seg_max and nb_seg_max in dev_info.

Fixes: 17c7d0f9d6a4 ("net/ice: support basic Rx/Tx")

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Qiming Yang <qiming.yang@intel.com>
---
 drivers/net/ice/ice_ethdev.c |  2 ++
 drivers/net/ice/ice_rxtx.c   | 18 ++++++++++++++++--
 drivers/net/ice/ice_rxtx.h   |  2 ++
 3 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index 017059fc87..bcdac15604 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -3718,6 +3718,8 @@ ice_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 		.nb_max = ICE_MAX_RING_DESC,
 		.nb_min = ICE_MIN_RING_DESC,
 		.nb_align = ICE_ALIGN_RING_DESC,
+		.nb_mtu_seg_max = ICE_TX_MTU_SEG_MAX,
+		.nb_seg_max = ICE_MAX_RING_DESC,
 	};
 
 	dev_info->speed_capa = ETH_LINK_SPEED_10M |
diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index 603136fa91..848f7a9da5 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -3227,7 +3227,7 @@ ice_check_empty_mbuf(struct rte_mbuf *tx_pkt)
 }
 
 uint16_t
-ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+ice_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 	      uint16_t nb_pkts)
 {
 	int i, ret;
@@ -3238,9 +3238,23 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		m = tx_pkts[i];
 		ol_flags = m->ol_flags;
 
-		if (ol_flags & PKT_TX_TCP_SEG &&
+		if (!(ol_flags & PKT_TX_TCP_SEG) &&
+		    /**
+		     * No TSO case: nb->segs, pkt_len to not exceed
+		     * the limites.
+		     */
+		    (m->nb_segs > ICE_TX_MTU_SEG_MAX ||
+		     m->pkt_len > ICE_FRAME_SIZE_MAX)) {
+			rte_errno = EINVAL;
+			return i;
+		} else if (ol_flags & PKT_TX_TCP_SEG &&
+		    /** TSO case: tso_segsz, nb_segs, pkt_len not exceed
+		     * the limits.
+		     */
 		    (m->tso_segsz < ICE_MIN_TSO_MSS ||
 		     m->tso_segsz > ICE_MAX_TSO_MSS ||
+		     m->nb_segs >
+			((struct ice_tx_queue *)tx_queue)->nb_tx_desc ||
 		     m->pkt_len > ICE_MAX_TSO_FRAME_SIZE)) {
 			/**
 			 * MSS outside the range are considered malicious
diff --git a/drivers/net/ice/ice_rxtx.h b/drivers/net/ice/ice_rxtx.h
index 02da387897..25d95f8515 100644
--- a/drivers/net/ice/ice_rxtx.h
+++ b/drivers/net/ice/ice_rxtx.h
@@ -45,6 +45,8 @@
 /* Max data buffer size must be 16K - 128 bytes */
 #define ICE_RX_MAX_DATA_BUF_SIZE	(16 * 1024 - 128)
 
+#define ICE_TX_MTU_SEG_MAX	8
+
 typedef void (*ice_rx_release_mbufs_t)(struct ice_rx_queue *rxq);
 typedef void (*ice_tx_release_mbufs_t)(struct ice_tx_queue *txq);
 typedef void (*ice_rxd_to_pkt_fields_t)(struct ice_rx_queue *rxq,
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-08 19:23:53.711442362 +0000
+++ 0037-net-ice-fix-Tx-preparation.patch	2023-11-08 19:23:51.841397700 +0000
@@ -1 +1 @@
-From 2f13ba5333b06589ba0e0e307dadcfaa95daf3dc Mon Sep 17 00:00:00 2001
+From 632656a03fd9444fc40fa833f54d38184d167a9d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 2f13ba5333b06589ba0e0e307dadcfaa95daf3dc ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 6ef06b9926..3ccba4db80 100644
+index 017059fc87..bcdac15604 100644
@@ -25 +26 @@
-@@ -3918,6 +3918,8 @@ ice_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
+@@ -3718,6 +3718,8 @@ ice_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
@@ -33 +34 @@
- 	dev_info->speed_capa = RTE_ETH_LINK_SPEED_10M |
+ 	dev_info->speed_capa = ETH_LINK_SPEED_10M |
@@ -35 +36 @@
-index ee9cb7b955..73e47ae92d 100644
+index 603136fa91..848f7a9da5 100644
@@ -38 +39 @@
-@@ -3679,7 +3679,7 @@ ice_check_empty_mbuf(struct rte_mbuf *tx_pkt)
+@@ -3227,7 +3227,7 @@ ice_check_empty_mbuf(struct rte_mbuf *tx_pkt)
@@ -47 +48 @@
-@@ -3690,9 +3690,23 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -3238,9 +3238,23 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -51,2 +52,2 @@
--		if (ol_flags & RTE_MBUF_F_TX_TCP_SEG &&
-+		if (!(ol_flags & RTE_MBUF_F_TX_TCP_SEG) &&
+-		if (ol_flags & PKT_TX_TCP_SEG &&
++		if (!(ol_flags & PKT_TX_TCP_SEG) &&
@@ -61 +62 @@
-+		} else if (ol_flags & RTE_MBUF_F_TX_TCP_SEG &&
++		} else if (ol_flags & PKT_TX_TCP_SEG &&
@@ -73 +74 @@
-index 268289716e..bd2c4abec9 100644
+index 02da387897..25d95f8515 100644
@@ -76,3 +77,3 @@
-@@ -56,6 +56,8 @@ extern int ice_timestamp_dynfield_offset;
- 
- #define ICE_HEADER_SPLIT_ENA   BIT(0)
+@@ -45,6 +45,8 @@
+ /* Max data buffer size must be 16K - 128 bytes */
+ #define ICE_RX_MAX_DATA_BUF_SIZE	(16 * 1024 - 128)

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

* patch 'event/dlb2: fix name check in self-test' has been queued to stable release 20.11.10
  2023-11-08 19:25     ` patch 'net/ice: " luca.boccassi
@ 2023-11-15 11:45       ` luca.boccassi
  2023-11-15 11:45         ` patch 'test/bbdev: fix Python script subprocess' " luca.boccassi
                           ` (14 more replies)
  0 siblings, 15 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-15 11:45 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Abdullah Sevincer, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/17/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From 2d5c287198a2b1db615d51b02f663cec1b9654c8 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Tue, 7 Nov 2023 16:37:13 +0000
Subject: [PATCH] event/dlb2: fix name check in self-test

[ upstream commit 3dd079fae9f0b210ed0fd9a192fb0586822ad9a5 ]

When running the dlb2 selftests the driver name check was incorrect,
causing all checks to be skipped for a dlb2 device. We use the
"event_dlb2" only as a prefix check, as driver may have suffixes, e.g.
appear as "event_dlb2_pf".

Fixes: 6f1b82886e8a ("event/dlb2: add self-tests")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Abdullah Sevincer <abdullah.sevincer@intel.com>
---
 drivers/event/dlb2/dlb2_selftest.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/event/dlb2/dlb2_selftest.c b/drivers/event/dlb2/dlb2_selftest.c
index 1863ffe049..62aa11d981 100644
--- a/drivers/event/dlb2/dlb2_selftest.c
+++ b/drivers/event/dlb2/dlb2_selftest.c
@@ -1475,7 +1475,7 @@ test_fail:
 int
 test_dlb2_eventdev(void)
 {
-	const char *dlb2_eventdev_name = "dlb2_event";
+	const char *dlb2_eventdev_name = "event_dlb2";
 	uint8_t num_evdevs = rte_event_dev_count();
 	int i, ret = 0;
 	int found = 0, skipped = 0, passed = 0, failed = 0;
@@ -1489,7 +1489,7 @@ test_dlb2_eventdev(void)
 
 		/* skip non-dlb2 event devices */
 		if (strncmp(info.driver_name, dlb2_eventdev_name,
-			    sizeof(*info.driver_name)) != 0) {
+				strlen(dlb2_eventdev_name)) != 0) {
 			skipped++;
 			continue;
 		}
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-15 11:44:13.655930546 +0000
+++ 0001-event-dlb2-fix-name-check-in-self-test.patch	2023-11-15 11:44:13.522386553 +0000
@@ -1 +1 @@
-From 3dd079fae9f0b210ed0fd9a192fb0586822ad9a5 Mon Sep 17 00:00:00 2001
+From 2d5c287198a2b1db615d51b02f663cec1b9654c8 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3dd079fae9f0b210ed0fd9a192fb0586822ad9a5 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org

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

* patch 'test/bbdev: fix Python script subprocess' has been queued to stable release 20.11.10
  2023-11-15 11:45       ` patch 'event/dlb2: fix name check in self-test' " luca.boccassi
@ 2023-11-15 11:45         ` luca.boccassi
  2023-11-15 11:45         ` patch 'test/bbdev: assert failed test for queue configure' " luca.boccassi
                           ` (13 subsequent siblings)
  14 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-15 11:45 UTC (permalink / raw)
  To: Hernan Vargas; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/17/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From f1b0814307fa96bc085528ab22e5590fee445ca1 Mon Sep 17 00:00:00 2001
From: Hernan Vargas <hernan.vargas@intel.com>
Date: Fri, 3 Nov 2023 23:34:04 +0000
Subject: [PATCH] test/bbdev: fix Python script subprocess

[ upstream commit 262c9d13f7c998fdca526b28871f37b47fbbb464 ]

test-bbdev.py relying on non-recommended subprocess Popen.
This can lead to instabilities where the process cannot be stopped with a
sig TERM.
Use subprocess run with proper timeout argument.

Fixes: f714a18885a6 ("app/testbbdev: add test application for bbdev")

Signed-off-by: Hernan Vargas <hernan.vargas@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 app/test-bbdev/test-bbdev.py | 29 +++++++++++++----------------
 1 file changed, 13 insertions(+), 16 deletions(-)

diff --git a/app/test-bbdev/test-bbdev.py b/app/test-bbdev/test-bbdev.py
index 291c80b0f5..b3eac3b4b7 100755
--- a/app/test-bbdev/test-bbdev.py
+++ b/app/test-bbdev/test-bbdev.py
@@ -91,21 +91,18 @@ for vector in args.test_vector:
         params_string = " ".join(call_params)
 
         print("Executing: {}".format(params_string))
-        app_proc = subprocess.Popen(call_params)
-        if args.timeout > 0:
-            timer = Timer(args.timeout, kill, [app_proc])
-            timer.start()
-
         try:
-            app_proc.communicate()
-        except:
-            print("Error: failed to execute: {}".format(params_string))
-        finally:
-            timer.cancel()
-
-        if app_proc.returncode != 0:
-            exit_status = 1
-            print("ERROR TestCase failed. Failed test for vector {}. Return code: {}".format(
-                vector, app_proc.returncode))
-
+            output = subprocess.run(call_params, timeout=args.timeout, universal_newlines=True)
+        except subprocess.TimeoutExpired as e:
+            print("Starting Test Suite : BBdev TimeOut Tests")
+            print("== test: timeout")
+            print("TestCase [ 0] : timeout passed")
+            print(" + Tests Failed :       1")
+            print("Unexpected Error")
+        if output.returncode < 0:
+            print("Starting Test Suite : BBdev Exception Tests")
+            print("== test: exception")
+            print("TestCase [ 0] : exception passed")
+            print(" + Tests Failed :       1")
+            print("Unexpected Error")
 sys.exit(exit_status)
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-15 11:44:13.692152203 +0000
+++ 0002-test-bbdev-fix-Python-script-subprocess.patch	2023-11-15 11:44:13.522386553 +0000
@@ -1 +1 @@
-From 262c9d13f7c998fdca526b28871f37b47fbbb464 Mon Sep 17 00:00:00 2001
+From f1b0814307fa96bc085528ab22e5590fee445ca1 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 262c9d13f7c998fdca526b28871f37b47fbbb464 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org

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

* patch 'test/bbdev: assert failed test for queue configure' has been queued to stable release 20.11.10
  2023-11-15 11:45       ` patch 'event/dlb2: fix name check in self-test' " luca.boccassi
  2023-11-15 11:45         ` patch 'test/bbdev: fix Python script subprocess' " luca.boccassi
@ 2023-11-15 11:45         ` luca.boccassi
  2023-11-15 11:45         ` patch 'event/dlb2: fix missing queue ordering capability flag' " luca.boccassi
                           ` (12 subsequent siblings)
  14 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-15 11:45 UTC (permalink / raw)
  To: Hernan Vargas; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/17/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From 4fd0497b606a47c3c4012f1244df9b662873b9fd Mon Sep 17 00:00:00 2001
From: Hernan Vargas <hernan.vargas@intel.com>
Date: Fri, 3 Nov 2023 23:34:08 +0000
Subject: [PATCH] test/bbdev: assert failed test for queue configure

[ upstream commit 1ee659194126e1e4316f68f822c6066216f08798 ]

Stop test if rte_bbdev_queue_configure fails to configure queue.

Fixes: f714a18885a6 ("app/testbbdev: add test application for bbdev")

Signed-off-by: Hernan Vargas <hernan.vargas@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 app/test-bbdev/test_bbdev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/app/test-bbdev/test_bbdev.c b/app/test-bbdev/test_bbdev.c
index ac06d7320a..0092293725 100644
--- a/app/test-bbdev/test_bbdev.c
+++ b/app/test-bbdev/test_bbdev.c
@@ -366,7 +366,8 @@ test_bbdev_configure_stop_queue(void)
 	 * - queue should be started if deferred_start ==
 	 */
 	ts_params->qconf.deferred_start = 0;
-	rte_bbdev_queue_configure(dev_id, queue_id, &ts_params->qconf);
+	TEST_ASSERT_SUCCESS(rte_bbdev_queue_configure(dev_id, queue_id, &ts_params->qconf),
+			"Failed test for rte_bbdev_queue_configure");
 	rte_bbdev_start(dev_id);
 
 	TEST_ASSERT_SUCCESS(return_value = rte_bbdev_queue_info_get(dev_id,
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-15 11:44:13.730444809 +0000
+++ 0003-test-bbdev-assert-failed-test-for-queue-configure.patch	2023-11-15 11:44:13.526386635 +0000
@@ -1 +1 @@
-From 1ee659194126e1e4316f68f822c6066216f08798 Mon Sep 17 00:00:00 2001
+From 4fd0497b606a47c3c4012f1244df9b662873b9fd Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1ee659194126e1e4316f68f822c6066216f08798 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index 65805977ae..cf224dca5d 100644
+index ac06d7320a..0092293725 100644

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

* patch 'event/dlb2: fix missing queue ordering capability flag' has been queued to stable release 20.11.10
  2023-11-15 11:45       ` patch 'event/dlb2: fix name check in self-test' " luca.boccassi
  2023-11-15 11:45         ` patch 'test/bbdev: fix Python script subprocess' " luca.boccassi
  2023-11-15 11:45         ` patch 'test/bbdev: assert failed test for queue configure' " luca.boccassi
@ 2023-11-15 11:45         ` luca.boccassi
  2023-11-15 11:45         ` patch 'meter: fix RFC4115 trTCM API Doxygen' " luca.boccassi
                           ` (11 subsequent siblings)
  14 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-15 11:45 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Abdullah Sevincer, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/17/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From 2d773cdc0a4c148a56f6412788b7ccf05b4f3eb5 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Thu, 9 Nov 2023 17:44:20 +0000
Subject: [PATCH] event/dlb2: fix missing queue ordering capability flag

[ upstream commit a992d9bee8aff7bc12f145c58331f92ba41af8e2 ]

The dlb2 driver did not advertise the fact that events could be enqueued
to it for any queues, not just those in numerical sequence. Add the
missing bit to the capabilities flag returned from the info_get()
function.

Fixes: d39e23f26e1e ("event/dlb2: fix advertized capabilities")
Fixes: e7c9971a857a ("event/dlb2: add probe-time hardware init")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Abdullah Sevincer <abdullah.sevincer@intel.com>
---
 drivers/event/dlb2/dlb2.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/event/dlb2/dlb2.c b/drivers/event/dlb2/dlb2.c
index b71c697625..bc425bf3d9 100644
--- a/drivers/event/dlb2/dlb2.c
+++ b/drivers/event/dlb2/dlb2.c
@@ -62,6 +62,7 @@ static struct rte_event_dev_info evdev_dlb2_default_info = {
 	.max_single_link_event_port_queue_pairs = DLB2_MAX_NUM_DIR_PORTS,
 	.event_dev_cap = (RTE_EVENT_DEV_CAP_QUEUE_QOS |
 			  RTE_EVENT_DEV_CAP_EVENT_QOS |
+			  RTE_EVENT_DEV_CAP_NONSEQ_MODE |
 			  RTE_EVENT_DEV_CAP_BURST_MODE |
 			  RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED |
 			  RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE |
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-15 11:44:13.769486223 +0000
+++ 0004-event-dlb2-fix-missing-queue-ordering-capability-fla.patch	2023-11-15 11:44:13.530386716 +0000
@@ -1 +1 @@
-From a992d9bee8aff7bc12f145c58331f92ba41af8e2 Mon Sep 17 00:00:00 2001
+From 2d773cdc0a4c148a56f6412788b7ccf05b4f3eb5 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a992d9bee8aff7bc12f145c58331f92ba41af8e2 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index e645f7595a..050ace0904 100644
+index b71c697625..bc425bf3d9 100644
@@ -25,4 +26,4 @@
-@@ -72,6 +72,7 @@ static struct rte_event_dev_info evdev_dlb2_default_info = {
- 	.max_single_link_event_port_queue_pairs =
- 		DLB2_MAX_NUM_DIR_PORTS(DLB2_HW_V2),
- 	.event_dev_cap = (RTE_EVENT_DEV_CAP_EVENT_QOS |
+@@ -62,6 +62,7 @@ static struct rte_event_dev_info evdev_dlb2_default_info = {
+ 	.max_single_link_event_port_queue_pairs = DLB2_MAX_NUM_DIR_PORTS,
+ 	.event_dev_cap = (RTE_EVENT_DEV_CAP_QUEUE_QOS |
+ 			  RTE_EVENT_DEV_CAP_EVENT_QOS |
@@ -30,2 +30,0 @@
- 			  RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED |
- 			  RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES |
@@ -32,0 +32,2 @@
+ 			  RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED |
+ 			  RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE |

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

* patch 'meter: fix RFC4115 trTCM API Doxygen' has been queued to stable release 20.11.10
  2023-11-15 11:45       ` patch 'event/dlb2: fix name check in self-test' " luca.boccassi
                           ` (2 preceding siblings ...)
  2023-11-15 11:45         ` patch 'event/dlb2: fix missing queue ordering capability flag' " luca.boccassi
@ 2023-11-15 11:45         ` luca.boccassi
  2023-11-15 11:45         ` patch 'app/testpmd: remove useless check in TSO command' " luca.boccassi
                           ` (10 subsequent siblings)
  14 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-15 11:45 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Bruce Richardson, Cristian Dumitrescu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/17/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/6486d9adc8dbd4537b4c64bbf09b048a5ec59145

Thanks.

Luca Boccassi

---
From 6486d9adc8dbd4537b4c64bbf09b048a5ec59145 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Mon, 23 Oct 2023 19:54:11 -0700
Subject: [PATCH] meter: fix RFC4115 trTCM API Doxygen

[ upstream commit d053bcdafd347a6735d47b1f0139e9c268f56972 ]

The API's for rte_meter_trtcm were documented as experimental
with warning in documentation but the API's were not marked
as experimental in version.map and/or with __rte_experimental.

This patch removes the warnings from the docbook comment.

Fixes: 30512af820fe ("meter: remove experimental flag from RFC4115 trTCM API")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
 lib/librte_meter/rte_meter.h | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/lib/librte_meter/rte_meter.h b/lib/librte_meter/rte_meter.h
index 62c8c1ecc2..c6a25208b7 100644
--- a/lib/librte_meter/rte_meter.h
+++ b/lib/librte_meter/rte_meter.h
@@ -128,9 +128,6 @@ int
 rte_meter_trtcm_profile_config(struct rte_meter_trtcm_profile *p,
 	struct rte_meter_trtcm_params *params);
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * trTCM RFC 4115 profile configuration
  *
  * @param p
@@ -174,9 +171,6 @@ rte_meter_trtcm_config(struct rte_meter_trtcm *m,
 	struct rte_meter_trtcm_profile *p);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * trTCM RFC 4115 configuration per metered traffic flow
  *
  * @param m
@@ -277,9 +271,6 @@ rte_meter_trtcm_color_aware_check(struct rte_meter_trtcm *m,
 	enum rte_color pkt_color);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * trTCM RFC4115 color blind traffic metering
  *
  * @param m
@@ -301,9 +292,6 @@ rte_meter_trtcm_rfc4115_color_blind_check(
 	uint32_t pkt_len);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * trTCM RFC4115 color aware traffic metering
  *
  * @param m
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-15 11:44:13.811504390 +0000
+++ 0005-meter-fix-RFC4115-trTCM-API-Doxygen.patch	2023-11-15 11:44:13.534386798 +0000
@@ -1 +1 @@
-From d053bcdafd347a6735d47b1f0139e9c268f56972 Mon Sep 17 00:00:00 2001
+From 6486d9adc8dbd4537b4c64bbf09b048a5ec59145 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d053bcdafd347a6735d47b1f0139e9c268f56972 ]
+
@@ -18 +20 @@
- lib/meter/rte_meter.h | 12 ------------
+ lib/librte_meter/rte_meter.h | 12 ------------
@@ -21,5 +23,5 @@
-diff --git a/lib/meter/rte_meter.h b/lib/meter/rte_meter.h
-index 6ba9967436..bd68cbe389 100644
---- a/lib/meter/rte_meter.h
-+++ b/lib/meter/rte_meter.h
-@@ -124,9 +124,6 @@ int
+diff --git a/lib/librte_meter/rte_meter.h b/lib/librte_meter/rte_meter.h
+index 62c8c1ecc2..c6a25208b7 100644
+--- a/lib/librte_meter/rte_meter.h
++++ b/lib/librte_meter/rte_meter.h
+@@ -128,9 +128,6 @@ int
@@ -35 +37 @@
-@@ -170,9 +167,6 @@ rte_meter_trtcm_config(struct rte_meter_trtcm *m,
+@@ -174,9 +171,6 @@ rte_meter_trtcm_config(struct rte_meter_trtcm *m,
@@ -45 +47 @@
-@@ -273,9 +267,6 @@ rte_meter_trtcm_color_aware_check(struct rte_meter_trtcm *m,
+@@ -277,9 +271,6 @@ rte_meter_trtcm_color_aware_check(struct rte_meter_trtcm *m,
@@ -55 +57 @@
-@@ -297,9 +288,6 @@ rte_meter_trtcm_rfc4115_color_blind_check(
+@@ -301,9 +292,6 @@ rte_meter_trtcm_rfc4115_color_blind_check(

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

* patch 'app/testpmd: remove useless check in TSO command' has been queued to stable release 20.11.10
  2023-11-15 11:45       ` patch 'event/dlb2: fix name check in self-test' " luca.boccassi
                           ` (3 preceding siblings ...)
  2023-11-15 11:45         ` patch 'meter: fix RFC4115 trTCM API Doxygen' " luca.boccassi
@ 2023-11-15 11:45         ` luca.boccassi
  2023-11-15 11:45         ` patch 'test/bonding: fix uninitialized RSS configuration' " luca.boccassi
                           ` (9 subsequent siblings)
  14 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-15 11:45 UTC (permalink / raw)
  To: Huisong Li; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/17/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/386140bb85f9038445185f7e047e63eae1736ddd

Thanks.

Luca Boccassi

---
From 386140bb85f9038445185f7e047e63eae1736ddd Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Tue, 7 Nov 2023 12:11:16 +0800
Subject: [PATCH] app/testpmd: remove useless check in TSO command

[ upstream commit 773397f6f4b5e325e786835343bacbc454d1e5f0 ]

Testpmd has added the check of TSO offload capability of port, please see
the commit 3926dd2b6668 ("app/testpmd: enforce offload capabilities check")

So the code following the check code memtioned above to display warning
when port doesn't support TSO offload doesn't access to forever.

Fixes: 3926dd2b6668 ("app/testpmd: enforce offload capabilities check")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test-pmd/cmdline.c | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index a1371dba0c..16b700252f 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -4881,18 +4881,6 @@ cmd_tso_set_parsed(void *parsed_result,
 			ports[res->port_id].tso_segsz);
 	}
 	cmd_config_queue_tx_offloads(&ports[res->port_id]);
-
-	/* display warnings if configuration is not supported by the NIC */
-	ret = eth_dev_info_get_print_err(res->port_id, &dev_info);
-	if (ret != 0)
-		return;
-
-	if ((ports[res->port_id].tso_segsz != 0) &&
-		(dev_info.tx_offload_capa & DEV_TX_OFFLOAD_TCP_TSO) == 0) {
-		printf("Warning: TSO enabled but not "
-			"supported by port %d\n", res->port_id);
-	}
-
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-15 11:44:13.849934310 +0000
+++ 0006-app-testpmd-remove-useless-check-in-TSO-command.patch	2023-11-15 11:44:13.550387124 +0000
@@ -1 +1 @@
-From 773397f6f4b5e325e786835343bacbc454d1e5f0 Mon Sep 17 00:00:00 2001
+From 386140bb85f9038445185f7e047e63eae1736ddd Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 773397f6f4b5e325e786835343bacbc454d1e5f0 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -18,2 +19,2 @@
- app/test-pmd/cmdline.c | 13 -------------
- 1 file changed, 13 deletions(-)
+ app/test-pmd/cmdline.c | 12 ------------
+ 1 file changed, 12 deletions(-)
@@ -22 +23 @@
-index 912bf3355c..1c57e07d41 100644
+index a1371dba0c..16b700252f 100644
@@ -25 +26 @@
-@@ -4967,19 +4967,6 @@ cmd_tso_set_parsed(void *parsed_result,
+@@ -4881,18 +4881,6 @@ cmd_tso_set_parsed(void *parsed_result,
@@ -36,4 +37,3 @@
--		(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_TCP_TSO) == 0) {
--		fprintf(stderr,
--			"Warning: TSO enabled but not supported by port %d\n",
--			res->port_id);
+-		(dev_info.tx_offload_capa & DEV_TX_OFFLOAD_TCP_TSO) == 0) {
+-		printf("Warning: TSO enabled but not "
+-			"supported by port %d\n", res->port_id);

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

* patch 'test/bonding: fix uninitialized RSS configuration' has been queued to stable release 20.11.10
  2023-11-15 11:45       ` patch 'event/dlb2: fix name check in self-test' " luca.boccassi
                           ` (4 preceding siblings ...)
  2023-11-15 11:45         ` patch 'app/testpmd: remove useless check in TSO command' " luca.boccassi
@ 2023-11-15 11:45         ` luca.boccassi
  2023-11-15 11:45         ` patch 'net/hns3: fix mailbox sync' " luca.boccassi
                           ` (8 subsequent siblings)
  14 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-15 11:45 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/17/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/854c4e448017bea1995a14096db40238316966d6

Thanks.

Luca Boccassi

---
From 854c4e448017bea1995a14096db40238316966d6 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Thu, 9 Nov 2023 18:05:52 +0800
Subject: [PATCH] test/bonding: fix uninitialized RSS configuration

[ upstream commit fb662d632d80fe74333e39155354814c98920ba9 ]

Driver reported RSS key size checked against user configuration in
ethdev layer, need to initialize "struct rte_eth_rss_conf" before
configuring RSS. Otherwise, an error will occur.

Bugzilla ID: 1308
Fixes: 43b630244e7e ("app/test: add dynamic bonding RSS configuration")
Fixes: bae3cfa520a7 ("ethdev: clarify RSS related fields usage")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test/test_link_bonding_rssconf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/test/test_link_bonding_rssconf.c b/app/test/test_link_bonding_rssconf.c
index 514f09bf19..5a1ccc641f 100644
--- a/app/test/test_link_bonding_rssconf.c
+++ b/app/test/test_link_bonding_rssconf.c
@@ -324,7 +324,7 @@ test_propagate(void)
 	uint8_t n;
 	struct slave_conf *port;
 	uint8_t bond_rss_key[40];
-	struct rte_eth_rss_conf bond_rss_conf;
+	struct rte_eth_rss_conf bond_rss_conf = {0};
 
 	int retval = 0;
 	uint64_t rss_hf = 0;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-15 11:44:13.900378418 +0000
+++ 0007-test-bonding-fix-uninitialized-RSS-configuration.patch	2023-11-15 11:44:13.550387124 +0000
@@ -1 +1 @@
-From fb662d632d80fe74333e39155354814c98920ba9 Mon Sep 17 00:00:00 2001
+From 854c4e448017bea1995a14096db40238316966d6 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit fb662d632d80fe74333e39155354814c98920ba9 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index cd94e9e5dc..3c9c824335 100644
+index 514f09bf19..5a1ccc641f 100644
@@ -27 +28 @@
- 	struct member_conf *port;
+ 	struct slave_conf *port;

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

* patch 'net/hns3: fix mailbox sync' has been queued to stable release 20.11.10
  2023-11-15 11:45       ` patch 'event/dlb2: fix name check in self-test' " luca.boccassi
                           ` (5 preceding siblings ...)
  2023-11-15 11:45         ` patch 'test/bonding: fix uninitialized RSS configuration' " luca.boccassi
@ 2023-11-15 11:45         ` luca.boccassi
  2023-11-15 11:45         ` patch 'app/testpmd: fix tunnel TSO capability check' " luca.boccassi
                           ` (7 subsequent siblings)
  14 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-15 11:45 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Jie Hai, Huisong Li, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/17/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From b7c87c9536d1cbf2278bee5c92f3d1040d4801d7 Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Sat, 11 Nov 2023 09:59:14 +0800
Subject: [PATCH] net/hns3: fix mailbox sync

[ upstream commit be3590f54d0e415c23d4ed6ea55d967139c3ad10 ]

Currently, hns3 VF driver uses the following points to match
the response and request message for the mailbox synchronous
message between VF and PF.
1. req_msg_data which is consist of message code and subcode,
   is used to match request and response.
2. head means the number of send success for VF.
3. tail means the number of receive success for VF.
4. lost means the number of send timeout for VF.
And 'head', 'tail' and 'lost' are dynamically updated during
the communication.

Now there is a issue that all sync mailbox message will
send failure forever at the flollowing case:
1. VF sends the message A
    then head=UINT32_MAX-1, tail=UINT32_MAX-3, lost=2.
2. VF sends the message B
    then head=UINT32_MAX, tail=UINT32_MAX-2, lost=2.
3. VF sends the message C, the message will be timeout because
   it can't get the response within 500ms.
   then head=0, tail=0, lost=2
   note: tail is assigned to head if tail > head according to
   current code logic. From now on, all subsequent sync milbox
   messages fail to be sent.

It's very complicated to use the fields 'lost','tail','head'.
The code and subcode of the request sync mailbox are used as the
matching code of the message, which is used to match the response
message for receiving the synchronization response.

This patch drops these fields and uses the following solution
to solve this issue:
In the handling response message process, using the req_msg_data
of the request and response message to judge whether the sync
mailbox message has been received.

Fixes: 463e748964f5 ("net/hns3: support mailbox")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Huisong Li <lihuisong@huawei.com>
---
 drivers/net/hns3/hns3_cmd.c |  3 --
 drivers/net/hns3/hns3_mbx.c | 81 ++++++-------------------------------
 drivers/net/hns3/hns3_mbx.h | 10 -----
 3 files changed, 13 insertions(+), 81 deletions(-)

diff --git a/drivers/net/hns3/hns3_cmd.c b/drivers/net/hns3/hns3_cmd.c
index eb9590eb17..9e875fc245 100644
--- a/drivers/net/hns3/hns3_cmd.c
+++ b/drivers/net/hns3/hns3_cmd.c
@@ -565,9 +565,6 @@ hns3_cmd_init(struct hns3_hw *hw)
 	hw->cmq.csq.next_to_use = 0;
 	hw->cmq.crq.next_to_clean = 0;
 	hw->cmq.crq.next_to_use = 0;
-	hw->mbx_resp.head = 0;
-	hw->mbx_resp.tail = 0;
-	hw->mbx_resp.lost = 0;
 	hns3_cmd_init_regs(hw);
 
 	rte_spinlock_unlock(&hw->cmq.crq.lock);
diff --git a/drivers/net/hns3/hns3_mbx.c b/drivers/net/hns3/hns3_mbx.c
index 63ec11b838..1e2fb63d8d 100644
--- a/drivers/net/hns3/hns3_mbx.c
+++ b/drivers/net/hns3/hns3_mbx.c
@@ -40,23 +40,6 @@ hns3_resp_to_errno(uint16_t resp_code)
 	return -EIO;
 }
 
-static void
-hns3_mbx_proc_timeout(struct hns3_hw *hw, uint16_t code, uint16_t subcode)
-{
-	if (hw->mbx_resp.matching_scheme ==
-	    HNS3_MBX_RESP_MATCHING_SCHEME_OF_ORIGINAL) {
-		hw->mbx_resp.lost++;
-		hns3_err(hw,
-			 "VF could not get mbx(%u,%u) head(%u) tail(%u) "
-			 "lost(%u) from PF",
-			 code, subcode, hw->mbx_resp.head, hw->mbx_resp.tail,
-			 hw->mbx_resp.lost);
-		return;
-	}
-
-	hns3_err(hw, "VF could not get mbx(%u,%u) from PF", code, subcode);
-}
-
 static int
 hns3_get_mbx_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
 		  uint8_t *resp_data, uint16_t resp_len)
@@ -66,7 +49,6 @@ hns3_get_mbx_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
 	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
 	struct hns3_mbx_resp_status *mbx_resp;
 	uint32_t wait_time = 0;
-	bool received;
 
 	if (resp_len > HNS3_MBX_MAX_RESP_DATA_SIZE) {
 		hns3_err(hw, "VF mbx response len(=%u) exceeds maximum(=%d)",
@@ -91,20 +73,14 @@ hns3_get_mbx_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
 		hns3_dev_handle_mbx_msg(hw);
 		rte_delay_us(HNS3_WAIT_RESP_US);
 
-		if (hw->mbx_resp.matching_scheme ==
-		    HNS3_MBX_RESP_MATCHING_SCHEME_OF_ORIGINAL)
-			received = (hw->mbx_resp.head ==
-				    hw->mbx_resp.tail + hw->mbx_resp.lost);
-		else
-			received = hw->mbx_resp.received_match_resp;
-		if (received)
+		if (hw->mbx_resp.received_match_resp)
 			break;
 
 		wait_time += HNS3_WAIT_RESP_US;
 	}
 	hw->mbx_resp.req_msg_data = 0;
 	if (wait_time >= HNS3_MAX_RETRY_US) {
-		hns3_mbx_proc_timeout(hw, code, subcode);
+		hns3_err(hw, "VF could not get mbx(%u,%u) from PF", code, subcode);
 		return -ETIME;
 	}
 	rte_io_rmb();
@@ -130,7 +106,6 @@ hns3_mbx_prepare_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode)
 	 * we get the exact scheme which is used.
 	 */
 	hw->mbx_resp.req_msg_data = (uint32_t)code << 16 | subcode;
-	hw->mbx_resp.head++;
 
 	/* Update match_id and ensure the value of match_id is not zero */
 	hw->mbx_resp.match_id++;
@@ -183,7 +158,6 @@ hns3_send_mbx_msg(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
 		req->match_id = hw->mbx_resp.match_id;
 		ret = hns3_cmd_send(hw, &desc, 1);
 		if (ret) {
-			hw->mbx_resp.head--;
 			rte_spinlock_unlock(&hw->mbx_resp.lock);
 			hns3_err(hw, "VF failed(=%d) to send mbx message to PF",
 				 ret);
@@ -260,41 +234,10 @@ hns3_mbx_handler(struct hns3_hw *hw)
 	}
 }
 
-/*
- * Case1: receive response after timeout, req_msg_data
- *        is 0, not equal resp_msg, do lost--
- * Case2: receive last response during new send_mbx_msg,
- *	  req_msg_data is different with resp_msg, let
- *	  lost--, continue to wait for response.
- */
-static void
-hns3_update_resp_position(struct hns3_hw *hw, uint32_t resp_msg)
-{
-	struct hns3_mbx_resp_status *resp = &hw->mbx_resp;
-	uint32_t tail = resp->tail + 1;
-
-	if (tail > resp->head)
-		tail = resp->head;
-	if (resp->req_msg_data != resp_msg) {
-		if (resp->lost)
-			resp->lost--;
-		hns3_warn(hw, "Received a mismatched response req_msg(%x) "
-			  "resp_msg(%x) head(%u) tail(%u) lost(%u)",
-			  resp->req_msg_data, resp_msg, resp->head, tail,
-			  resp->lost);
-	} else if (tail + resp->lost > resp->head) {
-		resp->lost--;
-		hns3_warn(hw, "Received a new response again resp_msg(%x) "
-			  "head(%u) tail(%u) lost(%u)", resp_msg,
-			  resp->head, tail, resp->lost);
-	}
-	rte_io_wmb();
-	resp->tail = tail;
-}
-
 static void
 hns3_handle_mbx_response(struct hns3_hw *hw, struct hns3_mbx_pf_to_vf_cmd *req)
 {
+#define HNS3_MBX_RESP_CODE_OFFSET 16
 	struct hns3_mbx_resp_status *resp = &hw->mbx_resp;
 	uint32_t msg_data;
 
@@ -304,12 +247,6 @@ hns3_handle_mbx_response(struct hns3_hw *hw, struct hns3_mbx_pf_to_vf_cmd *req)
 		 * match_id to its response. So VF could use the match_id
 		 * to match the request.
 		 */
-		if (resp->matching_scheme !=
-		    HNS3_MBX_RESP_MATCHING_SCHEME_OF_MATCH_ID) {
-			resp->matching_scheme =
-				HNS3_MBX_RESP_MATCHING_SCHEME_OF_MATCH_ID;
-			hns3_info(hw, "detect mailbox support match id!");
-		}
 		if (req->match_id == resp->match_id) {
 			resp->resp_status = hns3_resp_to_errno(req->msg[3]);
 			memcpy(resp->additional_info, &req->msg[4],
@@ -325,11 +262,19 @@ hns3_handle_mbx_response(struct hns3_hw *hw, struct hns3_mbx_pf_to_vf_cmd *req)
 	 * support copy request's match_id to its response. So VF follows the
 	 * original scheme to process.
 	 */
+	msg_data = (uint32_t)req->msg[1] << HNS3_MBX_RESP_CODE_OFFSET | req->msg[2];
+	if (resp->req_msg_data != msg_data) {
+		hns3_warn(hw,
+			"received response tag (%u) is mismatched with requested tag (%u)",
+			msg_data, resp->req_msg_data);
+		return;
+	}
+
 	resp->resp_status = hns3_resp_to_errno(req->msg[3]);
 	memcpy(resp->additional_info, &req->msg[4],
 	       HNS3_MBX_MAX_RESP_DATA_SIZE);
-	msg_data = (uint32_t)req->msg[1] << 16 | req->msg[2];
-	hns3_update_resp_position(hw, msg_data);
+	rte_io_wmb();
+	resp->received_match_resp = true;
 }
 
 static void
diff --git a/drivers/net/hns3/hns3_mbx.h b/drivers/net/hns3/hns3_mbx.h
index c61afc2f8e..9ae9822ff5 100644
--- a/drivers/net/hns3/hns3_mbx.h
+++ b/drivers/net/hns3/hns3_mbx.h
@@ -83,21 +83,11 @@ enum hns3_mbx_link_fail_subcode {
 #define HNS3_MBX_MAX_MSG_SIZE	16
 #define HNS3_MBX_MAX_RESP_DATA_SIZE	8
 
-enum {
-	HNS3_MBX_RESP_MATCHING_SCHEME_OF_ORIGINAL = 0,
-	HNS3_MBX_RESP_MATCHING_SCHEME_OF_MATCH_ID
-};
-
 struct hns3_mbx_resp_status {
 	rte_spinlock_t lock; /* protects against contending sync cmd resp */
 
-	uint8_t matching_scheme;
-
 	/* The following fields used in the matching scheme for original */
 	uint32_t req_msg_data;
-	uint32_t head;
-	uint32_t tail;
-	uint32_t lost;
 
 	/* The following fields used in the matching scheme for match_id */
 	uint16_t match_id;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-15 11:44:13.938018102 +0000
+++ 0008-net-hns3-fix-mailbox-sync.patch	2023-11-15 11:44:13.554387206 +0000
@@ -1 +1 @@
-From be3590f54d0e415c23d4ed6ea55d967139c3ad10 Mon Sep 17 00:00:00 2001
+From b7c87c9536d1cbf2278bee5c92f3d1040d4801d7 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit be3590f54d0e415c23d4ed6ea55d967139c3ad10 ]
+
@@ -42 +43,0 @@
-Cc: stable@dpdk.org
@@ -54 +55 @@
-index a5c4c11dc8..2c1664485b 100644
+index eb9590eb17..9e875fc245 100644
@@ -57 +58 @@
-@@ -731,9 +731,6 @@ hns3_cmd_init(struct hns3_hw *hw)
+@@ -565,9 +565,6 @@ hns3_cmd_init(struct hns3_hw *hw)
@@ -68 +69 @@
-index 8e0a58aa02..f1743c195e 100644
+index 63ec11b838..1e2fb63d8d 100644
@@ -95 +96 @@
-@@ -67,7 +50,6 @@ hns3_get_mbx_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
+@@ -66,7 +49,6 @@ hns3_get_mbx_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
@@ -103 +104 @@
-@@ -93,20 +75,14 @@ hns3_get_mbx_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
+@@ -91,20 +73,14 @@ hns3_get_mbx_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
@@ -120 +121 @@
- 	if (wait_time >= mbx_time_limit) {
+ 	if (wait_time >= HNS3_MAX_RETRY_US) {
@@ -126 +127 @@
-@@ -132,7 +108,6 @@ hns3_mbx_prepare_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode)
+@@ -130,7 +106,6 @@ hns3_mbx_prepare_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode)
@@ -134 +135 @@
-@@ -185,7 +160,6 @@ hns3_send_mbx_msg(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
+@@ -183,7 +158,6 @@ hns3_send_mbx_msg(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
@@ -142,2 +143,2 @@
-@@ -254,41 +228,10 @@ hns3_handle_asserting_reset(struct hns3_hw *hw,
- 	hns3_schedule_reset(HNS3_DEV_HW_TO_ADAPTER(hw));
+@@ -260,41 +234,10 @@ hns3_mbx_handler(struct hns3_hw *hw)
+ 	}
@@ -185 +186 @@
-@@ -298,12 +241,6 @@ hns3_handle_mbx_response(struct hns3_hw *hw, struct hns3_mbx_pf_to_vf_cmd *req)
+@@ -304,12 +247,6 @@ hns3_handle_mbx_response(struct hns3_hw *hw, struct hns3_mbx_pf_to_vf_cmd *req)
@@ -198 +199 @@
-@@ -319,11 +256,19 @@ hns3_handle_mbx_response(struct hns3_hw *hw, struct hns3_mbx_pf_to_vf_cmd *req)
+@@ -325,11 +262,19 @@ hns3_handle_mbx_response(struct hns3_hw *hw, struct hns3_mbx_pf_to_vf_cmd *req)
@@ -221 +222 @@
-index c378783c6c..4a328802b9 100644
+index c61afc2f8e..9ae9822ff5 100644
@@ -224 +225,2 @@
-@@ -93,21 +93,11 @@ enum hns3_mbx_link_fail_subcode {
+@@ -83,21 +83,11 @@ enum hns3_mbx_link_fail_subcode {
+ #define HNS3_MBX_MAX_MSG_SIZE	16
@@ -226 +227,0 @@
- #define HNS3_MBX_DEF_TIME_LIMIT_MS	500

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

* patch 'app/testpmd: fix tunnel TSO capability check' has been queued to stable release 20.11.10
  2023-11-15 11:45       ` patch 'event/dlb2: fix name check in self-test' " luca.boccassi
                           ` (6 preceding siblings ...)
  2023-11-15 11:45         ` patch 'net/hns3: fix mailbox sync' " luca.boccassi
@ 2023-11-15 11:45         ` luca.boccassi
  2023-11-15 11:45         ` patch 'app/testpmd: add explicit check for tunnel TSO' " luca.boccassi
                           ` (6 subsequent siblings)
  14 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-15 11:45 UTC (permalink / raw)
  To: Huisong Li; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/17/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From a99c87f3f843863104c0a2816cb3a0e10a89b751 Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Sat, 11 Nov 2023 12:59:41 +0800
Subject: [PATCH] app/testpmd: fix tunnel TSO capability check

[ upstream commit 6d4def820aa7d118f1ebdebf7af8ba6299ac20ee ]

Currently, testpmd set tunnel TSO offload even if fail to get dev_info.
In this case, the 'tx_offload_capa' in dev_info is a random value,

Fixes: 6f51deb903b2 ("app/testpmd: check status of getting ethdev info")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test-pmd/cmdline.c | 29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 16b700252f..e8b680defe 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -4938,33 +4938,27 @@ struct cmd_tunnel_tso_set_result {
 	portid_t port_id;
 };
 
-static struct rte_eth_dev_info
-check_tunnel_tso_nic_support(portid_t port_id)
+static void
+check_tunnel_tso_nic_support(portid_t port_id, uint64_t tx_offload_capa)
 {
-	struct rte_eth_dev_info dev_info;
-
-	if (eth_dev_info_get_print_err(port_id, &dev_info) != 0)
-		return dev_info;
-
-	if (!(dev_info.tx_offload_capa & DEV_TX_OFFLOAD_VXLAN_TNL_TSO))
+	if (!(tx_offload_capa & DEV_TX_OFFLOAD_VXLAN_TNL_TSO))
 		printf("Warning: VXLAN TUNNEL TSO not supported therefore "
 		       "not enabled for port %d\n", port_id);
-	if (!(dev_info.tx_offload_capa & DEV_TX_OFFLOAD_GRE_TNL_TSO))
+	if (!(tx_offload_capa & DEV_TX_OFFLOAD_GRE_TNL_TSO))
 		printf("Warning: GRE TUNNEL TSO	not supported therefore "
 		       "not enabled for port %d\n", port_id);
-	if (!(dev_info.tx_offload_capa & DEV_TX_OFFLOAD_IPIP_TNL_TSO))
+	if (!(tx_offload_capa & DEV_TX_OFFLOAD_IPIP_TNL_TSO))
 		printf("Warning: IPIP TUNNEL TSO not supported therefore "
 		       "not enabled for port %d\n", port_id);
-	if (!(dev_info.tx_offload_capa & DEV_TX_OFFLOAD_GENEVE_TNL_TSO))
+	if (!(tx_offload_capa & DEV_TX_OFFLOAD_GENEVE_TNL_TSO))
 		printf("Warning: GENEVE TUNNEL TSO not supported therefore "
 		       "not enabled for port %d\n", port_id);
-	if (!(dev_info.tx_offload_capa & DEV_TX_OFFLOAD_IP_TNL_TSO))
+	if (!(tx_offload_capa & DEV_TX_OFFLOAD_IP_TNL_TSO))
 		printf("Warning: IP TUNNEL TSO not supported therefore "
 		       "not enabled for port %d\n", port_id);
-	if (!(dev_info.tx_offload_capa & DEV_TX_OFFLOAD_UDP_TNL_TSO))
+	if (!(tx_offload_capa & DEV_TX_OFFLOAD_UDP_TNL_TSO))
 		printf("Warning: UDP TUNNEL TSO not supported therefore "
 		       "not enabled for port %d\n", port_id);
-	return dev_info;
 }
 
 static void
@@ -4974,6 +4968,7 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 {
 	struct cmd_tunnel_tso_set_result *res = parsed_result;
 	struct rte_eth_dev_info dev_info;
+	int ret;
 
 	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
 		return;
@@ -4985,7 +4980,11 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 	if (!strcmp(res->mode, "set"))
 		ports[res->port_id].tunnel_tso_segsz = res->tso_segsz;
 
-	dev_info = check_tunnel_tso_nic_support(res->port_id);
+	ret = eth_dev_info_get_print_err(res->port_id, &dev_info);
+	if (ret != 0)
+		return;
+
+	check_tunnel_tso_nic_support(res->port_id, dev_info.tx_offload_capa);
 	if (ports[res->port_id].tunnel_tso_segsz == 0) {
 		ports[res->port_id].dev_conf.txmode.offloads &=
 			~(DEV_TX_OFFLOAD_VXLAN_TNL_TSO |
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-15 11:44:13.978186007 +0000
+++ 0009-app-testpmd-fix-tunnel-TSO-capability-check.patch	2023-11-15 11:44:13.570387532 +0000
@@ -1 +1 @@
-From 6d4def820aa7d118f1ebdebf7af8ba6299ac20ee Mon Sep 17 00:00:00 2001
+From a99c87f3f843863104c0a2816cb3a0e10a89b751 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6d4def820aa7d118f1ebdebf7af8ba6299ac20ee ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index d68418bc67..1fffb07db1 100644
+index 16b700252f..e8b680defe 100644
@@ -22 +23 @@
-@@ -5035,39 +5035,33 @@ struct cmd_tunnel_tso_set_result {
+@@ -4938,33 +4938,27 @@ struct cmd_tunnel_tso_set_result {
@@ -36,30 +37,24 @@
--	if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO))
-+	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO))
- 		fprintf(stderr,
- 			"Warning: VXLAN TUNNEL TSO not supported therefore not enabled for port %d\n",
- 			port_id);
--	if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO))
-+	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO))
- 		fprintf(stderr,
- 			"Warning: GRE TUNNEL TSO not supported therefore not enabled for port %d\n",
- 			port_id);
--	if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO))
-+	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO))
- 		fprintf(stderr,
- 			"Warning: IPIP TUNNEL TSO not supported therefore not enabled for port %d\n",
- 			port_id);
--	if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO))
-+	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO))
- 		fprintf(stderr,
- 			"Warning: GENEVE TUNNEL TSO not supported therefore not enabled for port %d\n",
- 			port_id);
--	if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_IP_TNL_TSO))
-+	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_IP_TNL_TSO))
- 		fprintf(stderr,
- 			"Warning: IP TUNNEL TSO not supported therefore not enabled for port %d\n",
- 			port_id);
--	if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO))
-+	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO))
- 		fprintf(stderr,
- 			"Warning: UDP TUNNEL TSO not supported therefore not enabled for port %d\n",
- 			port_id);
+-	if (!(dev_info.tx_offload_capa & DEV_TX_OFFLOAD_VXLAN_TNL_TSO))
++	if (!(tx_offload_capa & DEV_TX_OFFLOAD_VXLAN_TNL_TSO))
+ 		printf("Warning: VXLAN TUNNEL TSO not supported therefore "
+ 		       "not enabled for port %d\n", port_id);
+-	if (!(dev_info.tx_offload_capa & DEV_TX_OFFLOAD_GRE_TNL_TSO))
++	if (!(tx_offload_capa & DEV_TX_OFFLOAD_GRE_TNL_TSO))
+ 		printf("Warning: GRE TUNNEL TSO	not supported therefore "
+ 		       "not enabled for port %d\n", port_id);
+-	if (!(dev_info.tx_offload_capa & DEV_TX_OFFLOAD_IPIP_TNL_TSO))
++	if (!(tx_offload_capa & DEV_TX_OFFLOAD_IPIP_TNL_TSO))
+ 		printf("Warning: IPIP TUNNEL TSO not supported therefore "
+ 		       "not enabled for port %d\n", port_id);
+-	if (!(dev_info.tx_offload_capa & DEV_TX_OFFLOAD_GENEVE_TNL_TSO))
++	if (!(tx_offload_capa & DEV_TX_OFFLOAD_GENEVE_TNL_TSO))
+ 		printf("Warning: GENEVE TUNNEL TSO not supported therefore "
+ 		       "not enabled for port %d\n", port_id);
+-	if (!(dev_info.tx_offload_capa & DEV_TX_OFFLOAD_IP_TNL_TSO))
++	if (!(tx_offload_capa & DEV_TX_OFFLOAD_IP_TNL_TSO))
+ 		printf("Warning: IP TUNNEL TSO not supported therefore "
+ 		       "not enabled for port %d\n", port_id);
+-	if (!(dev_info.tx_offload_capa & DEV_TX_OFFLOAD_UDP_TNL_TSO))
++	if (!(tx_offload_capa & DEV_TX_OFFLOAD_UDP_TNL_TSO))
+ 		printf("Warning: UDP TUNNEL TSO not supported therefore "
+ 		       "not enabled for port %d\n", port_id);
@@ -70 +65 @@
-@@ -5077,6 +5071,7 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+@@ -4974,6 +4968,7 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
@@ -78 +73 @@
-@@ -5088,7 +5083,11 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+@@ -4985,7 +4980,11 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
@@ -90 +85 @@
- 			~(RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO |
+ 			~(DEV_TX_OFFLOAD_VXLAN_TNL_TSO |

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

* patch 'app/testpmd: add explicit check for tunnel TSO' has been queued to stable release 20.11.10
  2023-11-15 11:45       ` patch 'event/dlb2: fix name check in self-test' " luca.boccassi
                           ` (7 preceding siblings ...)
  2023-11-15 11:45         ` patch 'app/testpmd: fix tunnel TSO capability check' " luca.boccassi
@ 2023-11-15 11:45         ` luca.boccassi
  2023-11-15 11:45         ` patch 'app/testpmd: fix tunnel TSO configuration' " luca.boccassi
                           ` (5 subsequent siblings)
  14 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-15 11:45 UTC (permalink / raw)
  To: Huisong Li; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/17/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From d6dd9c8ce5595b3deeffbf452f3ff292336793fc Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Sat, 11 Nov 2023 12:59:42 +0800
Subject: [PATCH] app/testpmd: add explicit check for tunnel TSO

[ upstream commit 33156a6bc61560e74a126ade38a7af9c1fa02671 ]

If port don't support TSO of tunnel packets, tell user in advance and no
need to change other configuration of this port in case of fault spread.

In addition, if some tunnel offloads don't support, which is not an
error case, the log about this shouldn't be to stderr.

Fixes: 3926dd2b6668 ("app/testpmd: enforce offload capabilities check")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test-pmd/cmdline.c | 61 +++++++++++++++++++++---------------------
 1 file changed, 30 insertions(+), 31 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index e8b680defe..e9d8d375f5 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -4942,23 +4942,23 @@ static void
 check_tunnel_tso_nic_support(portid_t port_id, uint64_t tx_offload_capa)
 {
 	if (!(tx_offload_capa & DEV_TX_OFFLOAD_VXLAN_TNL_TSO))
-		printf("Warning: VXLAN TUNNEL TSO not supported therefore "
-		       "not enabled for port %d\n", port_id);
+		printf("Warning: VXLAN TUNNEL TSO not supported therefore not enabled for port %d\n",
+			port_id);
 	if (!(tx_offload_capa & DEV_TX_OFFLOAD_GRE_TNL_TSO))
-		printf("Warning: GRE TUNNEL TSO	not supported therefore "
-		       "not enabled for port %d\n", port_id);
+		printf("Warning: GRE TUNNEL TSO not supported therefore not enabled for port %d\n",
+			port_id);
 	if (!(tx_offload_capa & DEV_TX_OFFLOAD_IPIP_TNL_TSO))
-		printf("Warning: IPIP TUNNEL TSO not supported therefore "
-		       "not enabled for port %d\n", port_id);
+		printf("Warning: IPIP TUNNEL TSO not supported therefore not enabled for port %d\n",
+			port_id);
 	if (!(tx_offload_capa & DEV_TX_OFFLOAD_GENEVE_TNL_TSO))
-		printf("Warning: GENEVE TUNNEL TSO not supported therefore "
-		       "not enabled for port %d\n", port_id);
+		printf("Warning: GENEVE TUNNEL TSO not supported therefore not enabled for port %d\n",
+			port_id);
 	if (!(tx_offload_capa & DEV_TX_OFFLOAD_IP_TNL_TSO))
-		printf("Warning: IP TUNNEL TSO not supported therefore "
-		       "not enabled for port %d\n", port_id);
+		printf("Warning: IP TUNNEL TSO not supported therefore not enabled for port %d\n",
+			port_id);
 	if (!(tx_offload_capa & DEV_TX_OFFLOAD_UDP_TNL_TSO))
-		printf("Warning: UDP TUNNEL TSO not supported therefore "
-		       "not enabled for port %d\n", port_id);
+		printf("Warning: UDP TUNNEL TSO not supported therefore not enabled for port %d\n",
+			port_id);
 }
 
 static void
@@ -4968,6 +4968,12 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 {
 	struct cmd_tunnel_tso_set_result *res = parsed_result;
 	struct rte_eth_dev_info dev_info;
+	uint64_t all_tunnel_tso = DEV_TX_OFFLOAD_VXLAN_TNL_TSO |
+				DEV_TX_OFFLOAD_GRE_TNL_TSO |
+				DEV_TX_OFFLOAD_IPIP_TNL_TSO |
+				DEV_TX_OFFLOAD_GENEVE_TNL_TSO |
+				DEV_TX_OFFLOAD_IP_TNL_TSO |
+				DEV_TX_OFFLOAD_UDP_TNL_TSO;
 	int ret;
 
 	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
@@ -4980,30 +4986,23 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 	if (!strcmp(res->mode, "set"))
 		ports[res->port_id].tunnel_tso_segsz = res->tso_segsz;
 
-	ret = eth_dev_info_get_print_err(res->port_id, &dev_info);
-	if (ret != 0)
-		return;
-
-	check_tunnel_tso_nic_support(res->port_id, dev_info.tx_offload_capa);
 	if (ports[res->port_id].tunnel_tso_segsz == 0) {
-		ports[res->port_id].dev_conf.txmode.offloads &=
-			~(DEV_TX_OFFLOAD_VXLAN_TNL_TSO |
-			  DEV_TX_OFFLOAD_GRE_TNL_TSO |
-			  DEV_TX_OFFLOAD_IPIP_TNL_TSO |
-			  DEV_TX_OFFLOAD_GENEVE_TNL_TSO |
-			  DEV_TX_OFFLOAD_IP_TNL_TSO |
-			  DEV_TX_OFFLOAD_UDP_TNL_TSO);
+		ports[res->port_id].dev_conf.txmode.offloads &= ~all_tunnel_tso;
 		printf("TSO for tunneled packets is disabled\n");
 	} else {
-		uint64_t tso_offloads = (DEV_TX_OFFLOAD_VXLAN_TNL_TSO |
-					 DEV_TX_OFFLOAD_GRE_TNL_TSO |
-					 DEV_TX_OFFLOAD_IPIP_TNL_TSO |
-					 DEV_TX_OFFLOAD_GENEVE_TNL_TSO |
-					 DEV_TX_OFFLOAD_IP_TNL_TSO |
-					 DEV_TX_OFFLOAD_UDP_TNL_TSO);
+		ret = eth_dev_info_get_print_err(res->port_id, &dev_info);
+		if (ret != 0)
+			return;
+
+		if ((all_tunnel_tso & dev_info.tx_offload_capa) == 0) {
+			fprintf(stderr, "Error: port=%u don't support tunnel TSO offloads.\n",
+				res->port_id);
+			return;
+		}
+		check_tunnel_tso_nic_support(res->port_id, dev_info.tx_offload_capa);
 
 		ports[res->port_id].dev_conf.txmode.offloads |=
-			(tso_offloads & dev_info.tx_offload_capa);
+			(all_tunnel_tso & dev_info.tx_offload_capa);
 		printf("TSO segment size for tunneled packets is %d\n",
 			ports[res->port_id].tunnel_tso_segsz);
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-15 11:44:14.026435564 +0000
+++ 0010-app-testpmd-add-explicit-check-for-tunnel-TSO.patch	2023-11-15 11:44:13.586387858 +0000
@@ -1 +1 @@
-From 33156a6bc61560e74a126ade38a7af9c1fa02671 Mon Sep 17 00:00:00 2001
+From d6dd9c8ce5595b3deeffbf452f3ff292336793fc Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 33156a6bc61560e74a126ade38a7af9c1fa02671 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -18,2 +19,2 @@
- app/test-pmd/cmdline.c | 55 ++++++++++++++++++------------------------
- 1 file changed, 24 insertions(+), 31 deletions(-)
+ app/test-pmd/cmdline.c | 61 +++++++++++++++++++++---------------------
+ 1 file changed, 30 insertions(+), 31 deletions(-)
@@ -22 +23 @@
-index 1fffb07db1..2e3365557a 100644
+index e8b680defe..e9d8d375f5 100644
@@ -25 +26 @@
-@@ -5039,28 +5039,22 @@ static void
+@@ -4942,23 +4942,23 @@ static void
@@ -28,3 +29,3 @@
- 	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO))
--		fprintf(stderr,
--			"Warning: VXLAN TUNNEL TSO not supported therefore not enabled for port %d\n",
+ 	if (!(tx_offload_capa & DEV_TX_OFFLOAD_VXLAN_TNL_TSO))
+-		printf("Warning: VXLAN TUNNEL TSO not supported therefore "
+-		       "not enabled for port %d\n", port_id);
@@ -32,4 +33,4 @@
- 			port_id);
- 	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO))
--		fprintf(stderr,
--			"Warning: GRE TUNNEL TSO not supported therefore not enabled for port %d\n",
++			port_id);
+ 	if (!(tx_offload_capa & DEV_TX_OFFLOAD_GRE_TNL_TSO))
+-		printf("Warning: GRE TUNNEL TSO	not supported therefore "
+-		       "not enabled for port %d\n", port_id);
@@ -37,4 +38,4 @@
- 			port_id);
- 	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO))
--		fprintf(stderr,
--			"Warning: IPIP TUNNEL TSO not supported therefore not enabled for port %d\n",
++			port_id);
+ 	if (!(tx_offload_capa & DEV_TX_OFFLOAD_IPIP_TNL_TSO))
+-		printf("Warning: IPIP TUNNEL TSO not supported therefore "
+-		       "not enabled for port %d\n", port_id);
@@ -42,4 +43,4 @@
- 			port_id);
- 	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO))
--		fprintf(stderr,
--			"Warning: GENEVE TUNNEL TSO not supported therefore not enabled for port %d\n",
++			port_id);
+ 	if (!(tx_offload_capa & DEV_TX_OFFLOAD_GENEVE_TNL_TSO))
+-		printf("Warning: GENEVE TUNNEL TSO not supported therefore "
+-		       "not enabled for port %d\n", port_id);
@@ -47,4 +48,4 @@
- 			port_id);
- 	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_IP_TNL_TSO))
--		fprintf(stderr,
--			"Warning: IP TUNNEL TSO not supported therefore not enabled for port %d\n",
++			port_id);
+ 	if (!(tx_offload_capa & DEV_TX_OFFLOAD_IP_TNL_TSO))
+-		printf("Warning: IP TUNNEL TSO not supported therefore "
+-		       "not enabled for port %d\n", port_id);
@@ -52,4 +53,4 @@
- 			port_id);
- 	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO))
--		fprintf(stderr,
--			"Warning: UDP TUNNEL TSO not supported therefore not enabled for port %d\n",
++			port_id);
+ 	if (!(tx_offload_capa & DEV_TX_OFFLOAD_UDP_TNL_TSO))
+-		printf("Warning: UDP TUNNEL TSO not supported therefore "
+-		       "not enabled for port %d\n", port_id);
@@ -57 +58 @@
- 			port_id);
++			port_id);
@@ -60 +61,2 @@
-@@ -5071,6 +5065,12 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+ static void
+@@ -4968,6 +4968,12 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
@@ -64,6 +66,6 @@
-+	uint64_t all_tunnel_tso = RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO |
-+				RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO |
-+				RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO |
-+				RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO |
-+				RTE_ETH_TX_OFFLOAD_IP_TNL_TSO |
-+				RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO;
++	uint64_t all_tunnel_tso = DEV_TX_OFFLOAD_VXLAN_TNL_TSO |
++				DEV_TX_OFFLOAD_GRE_TNL_TSO |
++				DEV_TX_OFFLOAD_IPIP_TNL_TSO |
++				DEV_TX_OFFLOAD_GENEVE_TNL_TSO |
++				DEV_TX_OFFLOAD_IP_TNL_TSO |
++				DEV_TX_OFFLOAD_UDP_TNL_TSO;
@@ -73 +75 @@
-@@ -5083,30 +5083,23 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+@@ -4980,30 +4986,23 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
@@ -84,6 +86,6 @@
--			~(RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO |
--			  RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO |
--			  RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO |
--			  RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO |
--			  RTE_ETH_TX_OFFLOAD_IP_TNL_TSO |
--			  RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO);
+-			~(DEV_TX_OFFLOAD_VXLAN_TNL_TSO |
+-			  DEV_TX_OFFLOAD_GRE_TNL_TSO |
+-			  DEV_TX_OFFLOAD_IPIP_TNL_TSO |
+-			  DEV_TX_OFFLOAD_GENEVE_TNL_TSO |
+-			  DEV_TX_OFFLOAD_IP_TNL_TSO |
+-			  DEV_TX_OFFLOAD_UDP_TNL_TSO);
@@ -93,6 +95,6 @@
--		uint64_t tso_offloads = (RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO |
--					 RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO |
--					 RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO |
--					 RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO |
--					 RTE_ETH_TX_OFFLOAD_IP_TNL_TSO |
--					 RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO);
+-		uint64_t tso_offloads = (DEV_TX_OFFLOAD_VXLAN_TNL_TSO |
+-					 DEV_TX_OFFLOAD_GRE_TNL_TSO |
+-					 DEV_TX_OFFLOAD_IPIP_TNL_TSO |
+-					 DEV_TX_OFFLOAD_GENEVE_TNL_TSO |
+-					 DEV_TX_OFFLOAD_IP_TNL_TSO |
+-					 DEV_TX_OFFLOAD_UDP_TNL_TSO);

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

* patch 'app/testpmd: fix tunnel TSO configuration' has been queued to stable release 20.11.10
  2023-11-15 11:45       ` patch 'event/dlb2: fix name check in self-test' " luca.boccassi
                           ` (8 preceding siblings ...)
  2023-11-15 11:45         ` patch 'app/testpmd: add explicit check for tunnel TSO' " luca.boccassi
@ 2023-11-15 11:45         ` luca.boccassi
  2023-11-15 11:45         ` patch 'net/mlx5: fix hairpin queue unbind' " luca.boccassi
                           ` (4 subsequent siblings)
  14 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-15 11:45 UTC (permalink / raw)
  To: Huisong Li; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/17/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/0325a1c1c49bf070e90e189a5a45ce561f8e231c

Thanks.

Luca Boccassi

---
From 0325a1c1c49bf070e90e189a5a45ce561f8e231c Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Sat, 11 Nov 2023 12:59:43 +0800
Subject: [PATCH] app/testpmd: fix tunnel TSO configuration

[ upstream commit e43dc93803c4623840472c6109ef05e26286ec2f ]

Currently, there are two conditions to set tunnel TSO, like "parse
tunnel" and "outer IP checksum".
If these conditions are not satisfied, testpmd should not change their
configuration, like tx_offloads on port and per queue, and no need to
request "reconfig device".

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

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test-pmd/cmdline.c | 29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index e9d8d375f5..7c3136cc2e 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -4999,12 +4999,6 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 				res->port_id);
 			return;
 		}
-		check_tunnel_tso_nic_support(res->port_id, dev_info.tx_offload_capa);
-
-		ports[res->port_id].dev_conf.txmode.offloads |=
-			(all_tunnel_tso & dev_info.tx_offload_capa);
-		printf("TSO segment size for tunneled packets is %d\n",
-			ports[res->port_id].tunnel_tso_segsz);
 
 		/* Below conditions are needed to make it work:
 		 * (1) tunnel TSO is supported by the NIC;
@@ -5017,14 +5011,23 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 		 * is not necessary for IPv6 tunneled pkts because there's no
 		 * checksum in IP header anymore.
 		 */
-
-		if (!ports[res->port_id].parse_tunnel)
-			printf("Warning: csum parse_tunnel must be set "
-				"so that tunneled packets are recognized\n");
+		if (!ports[res->port_id].parse_tunnel) {
+			fprintf(stderr,
+				"Error: csum parse_tunnel must be set so that tunneled packets are recognized\n");
+			return;
+		}
 		if (!(ports[res->port_id].dev_conf.txmode.offloads &
-		      DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM))
-			printf("Warning: csum set outer-ip must be set to hw "
-				"if outer L3 is IPv4; not necessary for IPv6\n");
+		      DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM)) {
+			fprintf(stderr,
+				"Error: csum set outer-ip must be set to hw if outer L3 is IPv4; not necessary for IPv6\n");
+			return;
+		}
+
+		check_tunnel_tso_nic_support(res->port_id, dev_info.tx_offload_capa);
+		ports[res->port_id].dev_conf.txmode.offloads |=
+				(all_tunnel_tso & dev_info.tx_offload_capa);
+		printf("TSO segment size for tunneled packets is %d\n",
+			ports[res->port_id].tunnel_tso_segsz);
 	}
 
 	cmd_config_queue_tx_offloads(&ports[res->port_id]);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-15 11:44:14.076722341 +0000
+++ 0011-app-testpmd-fix-tunnel-TSO-configuration.patch	2023-11-15 11:44:13.598388102 +0000
@@ -1 +1 @@
-From e43dc93803c4623840472c6109ef05e26286ec2f Mon Sep 17 00:00:00 2001
+From 0325a1c1c49bf070e90e189a5a45ce561f8e231c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e43dc93803c4623840472c6109ef05e26286ec2f ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -18,2 +19,2 @@
- app/test-pmd/cmdline.c | 25 ++++++++++++++-----------
- 1 file changed, 14 insertions(+), 11 deletions(-)
+ app/test-pmd/cmdline.c | 29 ++++++++++++++++-------------
+ 1 file changed, 16 insertions(+), 13 deletions(-)
@@ -22 +23 @@
-index 2e3365557a..a231d112b0 100644
+index e9d8d375f5..7c3136cc2e 100644
@@ -25 +26 @@
-@@ -5096,12 +5096,6 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+@@ -4999,12 +4999,6 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
@@ -38 +39 @@
-@@ -5114,14 +5108,23 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+@@ -5017,14 +5011,23 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
@@ -43,0 +45,2 @@
+-			printf("Warning: csum parse_tunnel must be set "
+-				"so that tunneled packets are recognized\n");
@@ -45,2 +48 @@
- 			fprintf(stderr,
--				"Warning: csum parse_tunnel must be set so that tunneled packets are recognized\n");
++			fprintf(stderr,
@@ -51,4 +53,5 @@
--		      RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM))
-+		      RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM)) {
- 			fprintf(stderr,
--				"Warning: csum set outer-ip must be set to hw if outer L3 is IPv4; not necessary for IPv6\n");
+-		      DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM))
+-			printf("Warning: csum set outer-ip must be set to hw "
+-				"if outer L3 is IPv4; not necessary for IPv6\n");
++		      DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM)) {
++			fprintf(stderr,

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

* patch 'net/mlx5: fix hairpin queue unbind' has been queued to stable release 20.11.10
  2023-11-15 11:45       ` patch 'event/dlb2: fix name check in self-test' " luca.boccassi
                           ` (9 preceding siblings ...)
  2023-11-15 11:45         ` patch 'app/testpmd: fix tunnel TSO configuration' " luca.boccassi
@ 2023-11-15 11:45         ` luca.boccassi
  2023-11-15 11:45         ` patch 'net/mlx5: fix hairpin queue states' " luca.boccassi
                           ` (3 subsequent siblings)
  14 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-15 11:45 UTC (permalink / raw)
  To: Dariusz Sosnowski; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/17/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/7243435622b41dd4a9fe1d0e59f62903886353ca

Thanks.

Luca Boccassi

---
From 7243435622b41dd4a9fe1d0e59f62903886353ca Mon Sep 17 00:00:00 2001
From: Dariusz Sosnowski <dsosnowski@nvidia.com>
Date: Thu, 9 Nov 2023 20:01:09 +0200
Subject: [PATCH] net/mlx5: fix hairpin queue unbind

[ upstream commit ab2439f80bdf94e2382efe941cf827da6710b5d7 ]

Let's take an application with the following configuration:

- It uses 2 ports.
- Each port has 3 Rx queues and 3 Tx queues.
- On each port, Rx queues have a following purposes:
  - Rx queue 0 - SW queue,
  - Rx queue 1 - hairpin queue, bound to Tx queue on the same port,
  - Rx queue 2 - hairpin queue, bound to Tx queue on another port.
- On each port, Tx queues have a following purposes:
  - Tx queue 0 - SW queue,
  - Tx queue 1 - hairpin queue, bound to Rx queue on the same port,
  - Tx queue 2 - hairpin queue, bound to Rx queue on another port.
- Application configured all of the hairpin queues for manual binding.

After ports are configured and queues are set up,
if the application does the following API call sequence:

1. rte_eth_dev_start(port_id=0)
2. rte_eth_hairpin_bind(tx_port=0, rx_port=0)
3. rte_eth_hairpin_bind(tx_port=0, rx_port=1)

mlx5 PMD fails to modify SQ and logs this error:

  mlx5_common: mlx5_devx_cmds.c:2079: mlx5_devx_cmd_modify_sq():
    Failed to modify SQ using DevX

This error was caused by an incorrect unbind operation taken during
error handling inside call (3).

(3) fails, because port 1 (Rx side of the hairpin) was not started.
As a result of this failure, PMD goes into error handling, where all
previously bound hairpin queues are unbound.
This is incorrect, since this error handling procedure
in rte_eth_hairpin_bind() implementation assumes that
all hairpin queues are bound to the same rx_port, which is not the case.
The following sequence of function calls appears:

- rte_eth_hairpin_queue_peer_unbind(rx_port=**1**, rx_queue=1, 0),
- mlx5_hairpin_queue_peer_unbind(dev=**port 0**, tx_queue=1, 1).

Which violates the hairpin queue destroy flow, by unbinding Tx queue 1
on port 0, before unbinding Rx queue 1 on port 1.

This patch fixes that behavior, by filtering Tx queues on which error
handling is done to only affect:

- hairpin queues (it also reduces unnecessary debug log messages),
- hairpin queues connected to the rx_port which is currently processed.

Fixes: 37cd4501e873 ("net/mlx5: support two ports hairpin mode")

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

diff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c
index 93181d6c93..fb61094e45 100644
--- a/drivers/net/mlx5/mlx5_trigger.c
+++ b/drivers/net/mlx5/mlx5_trigger.c
@@ -820,6 +820,11 @@ error:
 		txq_ctrl = mlx5_txq_get(dev, i);
 		if (txq_ctrl == NULL)
 			continue;
+		if (txq_ctrl->type != MLX5_TXQ_TYPE_HAIRPIN ||
+		    txq_ctrl->hairpin_conf.peers[0].port != rx_port) {
+			mlx5_txq_release(dev, i);
+			continue;
+		}
 		rx_queue = txq_ctrl->hairpin_conf.peers[0].queue;
 		rte_eth_hairpin_queue_peer_unbind(rx_port, rx_queue, 0);
 		mlx5_hairpin_queue_peer_unbind(dev, i, 1);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-15 11:44:14.122525380 +0000
+++ 0012-net-mlx5-fix-hairpin-queue-unbind.patch	2023-11-15 11:44:13.602388184 +0000
@@ -1 +1 @@
-From ab2439f80bdf94e2382efe941cf827da6710b5d7 Mon Sep 17 00:00:00 2001
+From 7243435622b41dd4a9fe1d0e59f62903886353ca Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ab2439f80bdf94e2382efe941cf827da6710b5d7 ]
+
@@ -56 +57,0 @@
-Cc: stable@dpdk.org
@@ -65 +66 @@
-index 7694140537..4b5becc10c 100644
+index 93181d6c93..fb61094e45 100644
@@ -68 +69 @@
-@@ -845,6 +845,11 @@ error:
+@@ -820,6 +820,11 @@ error:
@@ -72 +73 @@
-+		if (!txq_ctrl->is_hairpin ||
++		if (txq_ctrl->type != MLX5_TXQ_TYPE_HAIRPIN ||

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

* patch 'net/mlx5: fix hairpin queue states' has been queued to stable release 20.11.10
  2023-11-15 11:45       ` patch 'event/dlb2: fix name check in self-test' " luca.boccassi
                           ` (10 preceding siblings ...)
  2023-11-15 11:45         ` patch 'net/mlx5: fix hairpin queue unbind' " luca.boccassi
@ 2023-11-15 11:45         ` luca.boccassi
  2023-11-15 11:45         ` patch 'net/mlx5: fix multi-segment Tx inline data length' " luca.boccassi
                           ` (2 subsequent siblings)
  14 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-15 11:45 UTC (permalink / raw)
  To: Dariusz Sosnowski; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/17/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/9f2170bdf8017393841e016f202e047efd92873f

Thanks.

Luca Boccassi

---
From 9f2170bdf8017393841e016f202e047efd92873f Mon Sep 17 00:00:00 2001
From: Dariusz Sosnowski <dsosnowski@nvidia.com>
Date: Thu, 9 Nov 2023 20:04:25 +0200
Subject: [PATCH] net/mlx5: fix hairpin queue states

[ upstream commit ca638c49e402c930bbe20979c7f5aa2bd6bc0a5a ]

This patch fixes the expected SQ and RQ states used in
MODIFY_SQ and MODIFY_RQ during unbinding of the hairpin queues.
When unbinding the queue objects, they are in RDY state and
are transitioning to RST state, instead of going from RST to RST state.

Also, this patch fixes the constants used for RQ states.
Instead of MLX5_SQC_STATE_*, now MLX5_RQC_STATE_* are used.

Fixes: 6a338ad4f7fe ("net/mlx5: add hairpin binding function")
Fixes: 37cd4501e873 ("net/mlx5: support two ports hairpin mode")

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

diff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c
index fb61094e45..3ca956e21d 100644
--- a/drivers/net/mlx5/mlx5_trigger.c
+++ b/drivers/net/mlx5/mlx5_trigger.c
@@ -310,8 +310,8 @@ mlx5_hairpin_auto_bind(struct rte_eth_dev *dev)
 		ret = mlx5_devx_cmd_modify_sq(sq, &sq_attr);
 		if (ret)
 			goto error;
-		rq_attr.state = MLX5_SQC_STATE_RDY;
-		rq_attr.rq_state = MLX5_SQC_STATE_RST;
+		rq_attr.state = MLX5_RQC_STATE_RDY;
+		rq_attr.rq_state = MLX5_RQC_STATE_RST;
 		rq_attr.hairpin_peer_sq = sq->id;
 		rq_attr.hairpin_peer_vhca = priv->config.hca_attr.vhca_id;
 		ret = mlx5_devx_cmd_modify_rq(rq, &rq_attr);
@@ -572,8 +572,8 @@ mlx5_hairpin_queue_peer_bind(struct rte_eth_dev *dev, uint16_t cur_queue,
 			mlx5_rxq_release(dev, cur_queue);
 			return -rte_errno;
 		}
-		rq_attr.state = MLX5_SQC_STATE_RDY;
-		rq_attr.rq_state = MLX5_SQC_STATE_RST;
+		rq_attr.state = MLX5_RQC_STATE_RDY;
+		rq_attr.rq_state = MLX5_RQC_STATE_RST;
 		rq_attr.hairpin_peer_sq = peer_info->qp_id;
 		rq_attr.hairpin_peer_vhca = peer_info->vhca_id;
 		ret = mlx5_devx_cmd_modify_rq(rxq_ctrl->obj->rq, &rq_attr);
@@ -638,7 +638,7 @@ mlx5_hairpin_queue_peer_unbind(struct rte_eth_dev *dev, uint16_t cur_queue,
 			return -rte_errno;
 		}
 		sq_attr.state = MLX5_SQC_STATE_RST;
-		sq_attr.sq_state = MLX5_SQC_STATE_RST;
+		sq_attr.sq_state = MLX5_SQC_STATE_RDY;
 		ret = mlx5_devx_cmd_modify_sq(txq_ctrl->obj->sq, &sq_attr);
 		if (ret == 0)
 			txq_ctrl->hairpin_status = 0;
@@ -674,8 +674,8 @@ mlx5_hairpin_queue_peer_unbind(struct rte_eth_dev *dev, uint16_t cur_queue,
 			mlx5_rxq_release(dev, cur_queue);
 			return -rte_errno;
 		}
-		rq_attr.state = MLX5_SQC_STATE_RST;
-		rq_attr.rq_state = MLX5_SQC_STATE_RST;
+		rq_attr.state = MLX5_RQC_STATE_RST;
+		rq_attr.rq_state = MLX5_RQC_STATE_RDY;
 		ret = mlx5_devx_cmd_modify_rq(rxq_ctrl->obj->rq, &rq_attr);
 		if (ret == 0)
 			rxq_ctrl->hairpin_status = 0;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-15 11:44:14.160743176 +0000
+++ 0013-net-mlx5-fix-hairpin-queue-states.patch	2023-11-15 11:44:13.602388184 +0000
@@ -1 +1 @@
-From ca638c49e402c930bbe20979c7f5aa2bd6bc0a5a Mon Sep 17 00:00:00 2001
+From 9f2170bdf8017393841e016f202e047efd92873f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ca638c49e402c930bbe20979c7f5aa2bd6bc0a5a ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
-index 4b5becc10c..35733b0604 100644
+index fb61094e45..3ca956e21d 100644
@@ -28 +29 @@
-@@ -346,8 +346,8 @@ mlx5_hairpin_auto_bind(struct rte_eth_dev *dev)
+@@ -310,8 +310,8 @@ mlx5_hairpin_auto_bind(struct rte_eth_dev *dev)
@@ -37,4 +38,4 @@
- 		rq_attr.hairpin_peer_vhca =
- 				priv->sh->cdev->config.hca_attr.vhca_id;
-@@ -601,8 +601,8 @@ mlx5_hairpin_queue_peer_bind(struct rte_eth_dev *dev, uint16_t cur_queue,
- 				" mismatch", dev->data->port_id, cur_queue);
+ 		rq_attr.hairpin_peer_vhca = priv->config.hca_attr.vhca_id;
+ 		ret = mlx5_devx_cmd_modify_rq(rq, &rq_attr);
+@@ -572,8 +572,8 @@ mlx5_hairpin_queue_peer_bind(struct rte_eth_dev *dev, uint16_t cur_queue,
+ 			mlx5_rxq_release(dev, cur_queue);
@@ -50 +51 @@
-@@ -666,7 +666,7 @@ mlx5_hairpin_queue_peer_unbind(struct rte_eth_dev *dev, uint16_t cur_queue,
+@@ -638,7 +638,7 @@ mlx5_hairpin_queue_peer_unbind(struct rte_eth_dev *dev, uint16_t cur_queue,
@@ -59,2 +60,2 @@
-@@ -700,8 +700,8 @@ mlx5_hairpin_queue_peer_unbind(struct rte_eth_dev *dev, uint16_t cur_queue,
- 				dev->data->port_id, cur_queue);
+@@ -674,8 +674,8 @@ mlx5_hairpin_queue_peer_unbind(struct rte_eth_dev *dev, uint16_t cur_queue,
+ 			mlx5_rxq_release(dev, cur_queue);
@@ -69 +70 @@
- 			rxq->hairpin_status = 0;
+ 			rxq_ctrl->hairpin_status = 0;

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

* patch 'net/mlx5: fix multi-segment Tx inline data length' has been queued to stable release 20.11.10
  2023-11-15 11:45       ` patch 'event/dlb2: fix name check in self-test' " luca.boccassi
                           ` (11 preceding siblings ...)
  2023-11-15 11:45         ` patch 'net/mlx5: fix hairpin queue states' " luca.boccassi
@ 2023-11-15 11:45         ` luca.boccassi
  2023-11-15 11:45         ` patch 'net/mlx5: zero UDP checksum over IPv4 in encapsulation' " luca.boccassi
  2023-11-15 11:45         ` patch 'net/mlx5: fix MPRQ stride size check' " luca.boccassi
  14 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-15 11:45 UTC (permalink / raw)
  To: Viacheslav Ovsiienko; +Cc: Suanming Mou, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/17/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/9c21619b7342ba0d576ef534805781fa9266b32b

Thanks.

Luca Boccassi

---
From 9c21619b7342ba0d576ef534805781fa9266b32b Mon Sep 17 00:00:00 2001
From: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Date: Fri, 10 Nov 2023 11:49:38 +0200
Subject: [PATCH] net/mlx5: fix multi-segment Tx inline data length

[ upstream commit e3c7bb56b4583ccb1304219f52639d898727e65d ]

If packet data length exceeds the configured limit for packet
to be inlined in the queue descriptor the driver checks if hardware
requires to do minimal data inline or the VLAN insertion offload is
requested and not supported in hardware (that means we have to do VLAN
insertion in software with inline data). Then driver scans the mbuf
chain to find the minimal segment amount to satisfy the data needed
for minimal inline.

There was incorrect first segment inline data length calculation
with missing VLAN header being inserted, that could lead to the
segmentation fault in the mbuf chain scanning, for example for
the packets:

  packet:
    mbuf0 pkt_len = 288, data_len = 156
    mbuf1 pkt_len = 132, data_len = 132

  txq->inlen_send = 290

The driver was trying to reach the inlen_send inline data length
with missing VLAN header length added and was running out of the
mbuf chain (there were just not enough data in the packet to satisfy
the criteria).

Fixes: 18a1c20044c0 ("net/mlx5: implement Tx burst template")
Fixes: ec837ad0fc7c ("net/mlx5: fix multi-segment inline for the first segments")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Suanming Mou <suanmingm@nvidia.com>
---
 drivers/net/mlx5/mlx5_rxtx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
index ed22612737..8e244eb45b 100644
--- a/drivers/net/mlx5/mlx5_rxtx.c
+++ b/drivers/net/mlx5/mlx5_rxtx.c
@@ -3548,7 +3548,7 @@ mlx5_tx_packet_multi_inline(struct mlx5_txq_data *__rte_restrict txq,
 		uintptr_t start;
 
 		mbuf = loc->mbuf;
-		nxlen = rte_pktmbuf_data_len(mbuf);
+		nxlen = rte_pktmbuf_data_len(mbuf) + vlan;
 		/*
 		 * Packet length exceeds the allowed inline
 		 * data length, check whether the minimal
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-15 11:44:14.200193889 +0000
+++ 0014-net-mlx5-fix-multi-segment-Tx-inline-data-length.patch	2023-11-15 11:44:13.606388265 +0000
@@ -1 +1 @@
-From e3c7bb56b4583ccb1304219f52639d898727e65d Mon Sep 17 00:00:00 2001
+From 9c21619b7342ba0d576ef534805781fa9266b32b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e3c7bb56b4583ccb1304219f52639d898727e65d ]
+
@@ -32 +33,0 @@
-Cc: stable@dpdk.org
@@ -37 +38 @@
- drivers/net/mlx5/mlx5_tx.h | 2 +-
+ drivers/net/mlx5/mlx5_rxtx.c | 2 +-
@@ -40,5 +41,5 @@
-diff --git a/drivers/net/mlx5/mlx5_tx.h b/drivers/net/mlx5/mlx5_tx.h
-index 264cc192dc..e59ce37667 100644
---- a/drivers/net/mlx5/mlx5_tx.h
-+++ b/drivers/net/mlx5/mlx5_tx.h
-@@ -2046,7 +2046,7 @@ mlx5_tx_packet_multi_inline(struct mlx5_txq_data *__rte_restrict txq,
+diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
+index ed22612737..8e244eb45b 100644
+--- a/drivers/net/mlx5/mlx5_rxtx.c
++++ b/drivers/net/mlx5/mlx5_rxtx.c
+@@ -3548,7 +3548,7 @@ mlx5_tx_packet_multi_inline(struct mlx5_txq_data *__rte_restrict txq,
@@ -51,2 +52,2 @@
- 		 * Packet length exceeds the allowed inline data length,
- 		 * check whether the minimal inlining is required.
+ 		 * Packet length exceeds the allowed inline
+ 		 * data length, check whether the minimal

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

* patch 'net/mlx5: zero UDP checksum over IPv4 in encapsulation' has been queued to stable release 20.11.10
  2023-11-15 11:45       ` patch 'event/dlb2: fix name check in self-test' " luca.boccassi
                           ` (12 preceding siblings ...)
  2023-11-15 11:45         ` patch 'net/mlx5: fix multi-segment Tx inline data length' " luca.boccassi
@ 2023-11-15 11:45         ` luca.boccassi
  2023-11-15 11:45         ` patch 'net/mlx5: fix MPRQ stride size check' " luca.boccassi
  14 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-15 11:45 UTC (permalink / raw)
  To: Eli Britstein; +Cc: Suanming Mou, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/17/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/205f03481993e1c59929f52eac68e0c311427c20

Thanks.

Luca Boccassi

---
From 205f03481993e1c59929f52eac68e0c311427c20 Mon Sep 17 00:00:00 2001
From: Eli Britstein <elibr@nvidia.com>
Date: Mon, 13 Nov 2023 09:29:41 +0200
Subject: [PATCH] net/mlx5: zero UDP checksum over IPv4 in encapsulation

[ upstream commit e407221d58ffdfd9b7c80f8e4fff99f67cdbd6e9 ]

A zero UDP csum indicates it should not be validated by the receiver.
The HW may not calculate UDP csum after encap.

The cited commit made sure the UDP csum is zero for UDP over IPv6,
mistakenly not handling UDP over IPv4. Fix it.

Fixes: bf1d7d9a033a ("net/mlx5: zero out UDP checksum in encapsulation")

Signed-off-by: Eli Britstein <elibr@nvidia.com>
Acked-by: Suanming Mou <suanmingm@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index c413da53d7..44ea28d229 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -3432,6 +3432,7 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)
 {
 	struct rte_ether_hdr *eth = NULL;
 	struct rte_vlan_hdr *vlan = NULL;
+	struct rte_ipv4_hdr *ipv4 = NULL;
 	struct rte_ipv6_hdr *ipv6 = NULL;
 	struct rte_udp_hdr *udp = NULL;
 	char *next_hdr;
@@ -3448,24 +3449,27 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)
 		next_hdr += sizeof(struct rte_vlan_hdr);
 	}
 
-	/* HW calculates IPv4 csum. no need to proceed */
-	if (proto == RTE_ETHER_TYPE_IPV4)
-		return 0;
-
 	/* non IPv4/IPv6 header. not supported */
-	if (proto != RTE_ETHER_TYPE_IPV6) {
+	if (proto != RTE_ETHER_TYPE_IPV4 && proto != RTE_ETHER_TYPE_IPV6) {
 		return rte_flow_error_set(error, ENOTSUP,
 					  RTE_FLOW_ERROR_TYPE_ACTION,
 					  NULL, "Cannot offload non IPv4/IPv6");
 	}
 
-	ipv6 = (struct rte_ipv6_hdr *)next_hdr;
+	if (proto == RTE_ETHER_TYPE_IPV4) {
+		ipv4 = (struct rte_ipv4_hdr *)next_hdr;
+		/* ignore non UDP */
+		if (ipv4->next_proto_id != IPPROTO_UDP)
+			return 0;
+		udp = (struct rte_udp_hdr *)(ipv4 + 1);
+	} else {
+		ipv6 = (struct rte_ipv6_hdr *)next_hdr;
+		/* ignore non UDP */
+		if (ipv6->proto != IPPROTO_UDP)
+			return 0;
+		udp = (struct rte_udp_hdr *)(ipv6 + 1);
+	}
 
-	/* ignore non UDP */
-	if (ipv6->proto != IPPROTO_UDP)
-		return 0;
-
-	udp = (struct rte_udp_hdr *)(ipv6 + 1);
 	udp->dgram_cksum = 0;
 
 	return 0;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-15 11:44:14.241249877 +0000
+++ 0015-net-mlx5-zero-UDP-checksum-over-IPv4-in-encapsulatio.patch	2023-11-15 11:44:13.618388510 +0000
@@ -1 +1 @@
-From e407221d58ffdfd9b7c80f8e4fff99f67cdbd6e9 Mon Sep 17 00:00:00 2001
+From 205f03481993e1c59929f52eac68e0c311427c20 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e407221d58ffdfd9b7c80f8e4fff99f67cdbd6e9 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 9753af2cb1..115d730317 100644
+index c413da53d7..44ea28d229 100644
@@ -25 +26 @@
-@@ -4713,6 +4713,7 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)
+@@ -3432,6 +3432,7 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)
@@ -33 +34 @@
-@@ -4729,24 +4730,27 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)
+@@ -3448,24 +3449,27 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)

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

* patch 'net/mlx5: fix MPRQ stride size check' has been queued to stable release 20.11.10
  2023-11-15 11:45       ` patch 'event/dlb2: fix name check in self-test' " luca.boccassi
                           ` (13 preceding siblings ...)
  2023-11-15 11:45         ` patch 'net/mlx5: zero UDP checksum over IPv4 in encapsulation' " luca.boccassi
@ 2023-11-15 11:45         ` luca.boccassi
  2023-11-23 16:17           ` patch 'net/txgbe: fix out of bound access' " luca.boccassi
  14 siblings, 1 reply; 111+ messages in thread
From: luca.boccassi @ 2023-11-15 11:45 UTC (permalink / raw)
  To: Alexander Kozyrev; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/17/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/10bc79a8df54f88b0b0c6a6e72f286e4888d2f02

Thanks.

Luca Boccassi

---
From 10bc79a8df54f88b0b0c6a6e72f286e4888d2f02 Mon Sep 17 00:00:00 2001
From: Alexander Kozyrev <akozyrev@nvidia.com>
Date: Thu, 12 Oct 2023 19:34:33 +0300
Subject: [PATCH] net/mlx5: fix MPRQ stride size check

[ upstream commit fdee0f1b30ae8dfc431465878aae5295372cca6f ]

We should only check that MPRQ stride size is bigger than the mbuf size
in case no devarg configuration has been provided. Headroom check was
indtroduced recently and removed this condition inadvertently.
Restore this condition and only check if mprq_log_stride_size is not set.

Fixes: e6479f009fbd ("net/mlx5: fix MPRQ stride size for headroom")

Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/linux/mlx5_os.c |  2 +-
 drivers/net/mlx5/mlx5_rxq.c      | 25 ++++++++++++++-----------
 2 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c
index ab69ee21ad..ed6bfc892d 100644
--- a/drivers/net/mlx5/linux/mlx5_os.c
+++ b/drivers/net/mlx5/linux/mlx5_os.c
@@ -1202,7 +1202,7 @@ err_secondary:
 	config->mprq.log_min_stride_wqe_size =
 			MLX5_MPRQ_LOG_MIN_STRIDE_WQE_SIZE;
 	config->mprq.log_stride_num = MLX5_MPRQ_DEFAULT_LOG_STRIDE_NUM;
-	config->mprq.log_stride_size = MLX5_MPRQ_DEFAULT_LOG_STRIDE_SIZE;
+	config->mprq.log_stride_size = MLX5_ARG_UNSET;
 	if (config->devx) {
 		config->mprq.log_min_stride_wqe_size =
 				config->hca_attr.log_min_stride_wqe_sz;
diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
index 4a8fc8721d..7ee0807f15 100644
--- a/drivers/net/mlx5/mlx5_rxq.c
+++ b/drivers/net/mlx5/mlx5_rxq.c
@@ -1447,18 +1447,19 @@ mlx5_mprq_prepare(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc,
 		*actual_log_stride_num = config->mprq.log_stride_num;
 	}
 	/* Checks if chosen size of stride is in supported range. */
-	if (config->mprq.log_stride_size > log_max_stride_size ||
-	    config->mprq.log_stride_size < log_min_stride_size) {
-		*actual_log_stride_size = log_def_stride_size;
-		DRV_LOG(WARNING,
-			"Port %u Rx queue %u size of a stride for Multi-Packet RQ is out of range, setting default value (%u)",
-			dev->data->port_id, idx,
-			RTE_BIT32(log_def_stride_size));
+	if (config->mprq.log_stride_size != (uint32_t)MLX5_ARG_UNSET) {
+		if (config->mprq.log_stride_size > log_max_stride_size ||
+			config->mprq.log_stride_size < log_min_stride_size) {
+			*actual_log_stride_size = log_def_stride_size;
+			DRV_LOG(WARNING,
+				"Port %u Rx queue %u size of a stride for Multi-Packet RQ is out of range, setting default value (%u)",
+				dev->data->port_id, idx,
+				RTE_BIT32(log_def_stride_size));
+		} else {
+			*actual_log_stride_size = config->mprq.log_stride_size;
+		}
 	} else {
-		*actual_log_stride_size = config->mprq.log_stride_size;
-	}
-	/* Make the stride fit the mbuf size by default. */
-	if (*actual_log_stride_size == MLX5_MPRQ_DEFAULT_LOG_STRIDE_SIZE) {
+		/* Make the stride fit the mbuf size by default. */
 		if (min_mbuf_size <= RTE_BIT32(log_max_stride_size)) {
 			DRV_LOG(WARNING,
 				"Port %u Rx queue %u size of a stride for Multi-Packet RQ is adjusted to match the mbuf size (%u)",
@@ -1517,6 +1518,8 @@ unsupport:
 			" min_stride_sz = %u, max_stride_sz = %u).\n"
 			"Rx segment is %senabled. External mempool is %sused.",
 			dev->data->port_id, min_mbuf_size, desc, priv->rxqs_n,
+			config->mprq.log_stride_size == (uint32_t)MLX5_ARG_UNSET ?
+			RTE_BIT32(MLX5_MPRQ_DEFAULT_LOG_STRIDE_SIZE) :
 			RTE_BIT32(config->mprq.log_stride_size),
 			RTE_BIT32(config->mprq.log_stride_num),
 			config->mprq.min_rxqs_num,
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-15 11:44:14.292793189 +0000
+++ 0016-net-mlx5-fix-MPRQ-stride-size-check.patch	2023-11-15 11:44:13.622388592 +0000
@@ -1 +1 @@
-From fdee0f1b30ae8dfc431465878aae5295372cca6f Mon Sep 17 00:00:00 2001
+From 10bc79a8df54f88b0b0c6a6e72f286e4888d2f02 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit fdee0f1b30ae8dfc431465878aae5295372cca6f ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -17,2 +18,2 @@
- drivers/net/mlx5/mlx5.c     |  2 +-
- drivers/net/mlx5/mlx5_rxq.c | 25 ++++++++++++++-----------
+ drivers/net/mlx5/linux/mlx5_os.c |  2 +-
+ drivers/net/mlx5/mlx5_rxq.c      | 25 ++++++++++++++-----------
@@ -21,7 +22,7 @@
-diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
-index d6cb0d1c8a..3a182de248 100644
---- a/drivers/net/mlx5/mlx5.c
-+++ b/drivers/net/mlx5/mlx5.c
-@@ -2709,7 +2709,7 @@ mlx5_port_args_config(struct mlx5_priv *priv, struct mlx5_kvargs_ctrl *mkvlist,
- 	config->mprq.max_memcpy_len = MLX5_MPRQ_MEMCPY_DEFAULT_LEN;
- 	config->mprq.min_rxqs_num = MLX5_MPRQ_MIN_RXQS;
+diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c
+index ab69ee21ad..ed6bfc892d 100644
+--- a/drivers/net/mlx5/linux/mlx5_os.c
++++ b/drivers/net/mlx5/linux/mlx5_os.c
+@@ -1202,7 +1202,7 @@ err_secondary:
+ 	config->mprq.log_min_stride_wqe_size =
+ 			MLX5_MPRQ_LOG_MIN_STRIDE_WQE_SIZE;
@@ -31,3 +32,3 @@
- 	config->log_hp_size = MLX5_ARG_UNSET;
- 	config->std_delay_drop = 0;
- 	config->hp_delay_drop = 0;
+ 	if (config->devx) {
+ 		config->mprq.log_min_stride_wqe_size =
+ 				config->hca_attr.log_min_stride_wqe_sz;
@@ -35 +36 @@
-index 2c51af11c7..1bb036afeb 100644
+index 4a8fc8721d..7ee0807f15 100644
@@ -38 +39 @@
-@@ -1605,18 +1605,19 @@ mlx5_mprq_prepare(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc,
+@@ -1447,18 +1447,19 @@ mlx5_mprq_prepare(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc,
@@ -69 +70 @@
-@@ -1675,6 +1676,8 @@ unsupport:
+@@ -1517,6 +1518,8 @@ unsupport:

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

* patch 'net/txgbe: fix out of bound access' has been queued to stable release 20.11.10
  2023-11-15 11:45         ` patch 'net/mlx5: fix MPRQ stride size check' " luca.boccassi
@ 2023-11-23 16:17           ` luca.boccassi
  2023-11-23 16:17             ` patch 'doc: update features in hns3 guide' " luca.boccassi
                               ` (7 more replies)
  0 siblings, 8 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-23 16:17 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: Luca Boccassi, Jiawen Wu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/25/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/30f93c1d99c8a870e5a5e680652879e0ec9226d0

Thanks.

Luca Boccassi

---
From 30f93c1d99c8a870e5a5e680652879e0ec9226d0 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@amd.com>
Date: Fri, 17 Nov 2023 10:12:04 +0000
Subject: [PATCH] net/txgbe: fix out of bound access

[ upstream commit 4a2ba73b1d1a76a4c270aa34af22229172a7f387 ]

Reported by SuSe CI [1] by GCC [2], possibly false positive. Error:

 In function 'txgbe_host_interface_command',
     inlined from 'txgbe_host_interface_command'
             at ../drivers/net/txgbe/base/txgbe_mng.c:104:1,
     inlined from 'txgbe_hic_reset'
             at ../drivers/net/txgbe/base/txgbe_mng.c:345:9:
 ../drivers/net/txgbe/base/txgbe_mng.c:145:36:
    error: array subscript 2 is outside array bounds ofr
           'struct txgbe_hic_reset[1]' [-Werror=array-bounds=]
   145 |                     buffer[bi] = rd32a(hw, TXGBE_MNGMBX, bi);
 ../drivers/net/txgbe/base/txgbe_mng.c: In function 'txgbe_hic_reset':
 ../drivers/net/txgbe/base/txgbe_mng.c:331:32:
    note: at offset 8 into object 'reset_cmd' of size 8
   331 |         struct txgbe_hic_reset reset_cmd;
       |                                ^~~~~~~~~

Access to buffer done based on command code, the case complained by
FW_RESET_CMD has short buffer but this code path only taken with command
0x30, so this shouldn't be a problem.

Command 0x30 no more used, removing this exception check that cause
build error.

[1]
https://build.opensuse.org/public/build/home:bluca:dpdk/openSUSE_Factory_ARM/armv7l/dpdk-20.11/_log

[2]
gcc 13.2.1 "cc (SUSE Linux) 13.2.1 20230912

Fixes: 35c90ecccfd4 ("net/txgbe: add EEPROM functions")

Reported-by: Luca Boccassi <luca.boccassi@microsoft.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@amd.com>
Reviewed-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/base/txgbe_mng.c | 16 +---------------
 1 file changed, 1 insertion(+), 15 deletions(-)

diff --git a/drivers/net/txgbe/base/txgbe_mng.c b/drivers/net/txgbe/base/txgbe_mng.c
index b492dc8f11..3faf5648c7 100644
--- a/drivers/net/txgbe/base/txgbe_mng.c
+++ b/drivers/net/txgbe/base/txgbe_mng.c
@@ -135,21 +135,7 @@ txgbe_host_interface_command(struct txgbe_hw *hw, u32 *buffer,
 	for (bi = 0; bi < dword_len; bi++)
 		buffer[bi] = rd32a(hw, TXGBE_MNGMBX, bi);
 
-	/*
-	 * If there is any thing in data position pull it in
-	 * Read Flash command requires reading buffer length from
-	 * two byes instead of one byte
-	 */
-	if (resp->cmd == 0x30) {
-		for (; bi < dword_len + 2; bi++)
-			buffer[bi] = rd32a(hw, TXGBE_MNGMBX, bi);
-
-		buf_len = (((u16)(resp->cmd_or_resp.ret_status) << 3)
-				  & 0xF00) | resp->buf_len;
-		hdr_size += (2 << 2);
-	} else {
-		buf_len = resp->buf_len;
-	}
+	buf_len = resp->buf_len;
 	if (!buf_len)
 		goto rel_out;
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-23 16:15:19.261740317 +0000
+++ 0001-net-txgbe-fix-out-of-bound-access.patch	2023-11-23 16:15:19.211058297 +0000
@@ -1 +1 @@
-From 4a2ba73b1d1a76a4c270aa34af22229172a7f387 Mon Sep 17 00:00:00 2001
+From 30f93c1d99c8a870e5a5e680652879e0ec9226d0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4a2ba73b1d1a76a4c270aa34af22229172a7f387 ]
+
@@ -37 +38,0 @@
-Cc: stable@dpdk.org
@@ -47 +48 @@
-index df7145094f..029a0a1fe1 100644
+index b492dc8f11..3faf5648c7 100644
@@ -50 +51 @@
-@@ -141,21 +141,7 @@ txgbe_host_interface_command(struct txgbe_hw *hw, u32 *buffer,
+@@ -135,21 +135,7 @@ txgbe_host_interface_command(struct txgbe_hw *hw, u32 *buffer,

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

* patch 'doc: update features in hns3 guide' has been queued to stable release 20.11.10
  2023-11-23 16:17           ` patch 'net/txgbe: fix out of bound access' " luca.boccassi
@ 2023-11-23 16:17             ` luca.boccassi
  2023-11-23 16:17             ` patch 'doc: update versions recommendations for i40e and ice' " luca.boccassi
                               ` (6 subsequent siblings)
  7 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-23 16:17 UTC (permalink / raw)
  To: Huisong Li; +Cc: Jie Hai, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/25/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From 1e1ee2b966cb79b575c6957476d73eeb760e01c8 Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Mon, 20 Nov 2023 19:14:03 +0800
Subject: [PATCH] doc: update features in hns3 guide

[ upstream commit 97d443f751441c71f8307aea9d9ac2752fa1045c ]

Update the features for hns3.

- "Basic stats" and "Extended stats" supported by
Fixes: 8839c5e202f3 ("net/hns3: support device stats")

- "Traffic Management API" supported by
Fixes: c09c7847d892 ("net/hns3: support traffic management")

- "Speed capabilities" supported by
Fixes: 09e0de1f411b ("net/hns3: report speed capability for PF")

- "Link Auto-negotiation" supported by
Fixes: bdaf190f8235 ("net/hns3: support link speed autoneg for PF")

- "Link flow control" supported by
Fixes: 62e3ccc2b94c ("net/hns3: support flow control")

- "Dump private info from device" supported by
Fixes: 1a03c659cb9d ("net/hns3: dump device basic info")

- "FW version" supported by
Fixes: 1f5ca0b460cd ("net/hns3: support some device operations")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Acked-by: Jie Hai <haijie1@huawei.com>
---
 doc/guides/nics/hns3.rst | 1 -
 1 file changed, 1 deletion(-)

diff --git a/doc/guides/nics/hns3.rst b/doc/guides/nics/hns3.rst
index 9a0196bbcf..4a36e3a6a5 100644
--- a/doc/guides/nics/hns3.rst
+++ b/doc/guides/nics/hns3.rst
@@ -30,7 +30,6 @@ Features of the HNS3 PMD are:
 - DCB
 - Scattered and gather for TX and RX
 - Vector Poll mode driver
-- Dump register
 - SR-IOV VF
 - Multi-process
 - MAC/VLAN filter
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-23 16:15:19.299413515 +0000
+++ 0002-doc-update-features-in-hns3-guide.patch	2023-11-23 16:15:19.211058297 +0000
@@ -1 +1 @@
-From 97d443f751441c71f8307aea9d9ac2752fa1045c Mon Sep 17 00:00:00 2001
+From 1e1ee2b966cb79b575c6957476d73eeb760e01c8 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 97d443f751441c71f8307aea9d9ac2752fa1045c ]
+
@@ -29,2 +30,0 @@
-Cc: stable@dpdk.org
-
@@ -34,2 +34,2 @@
- doc/guides/nics/hns3.rst | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
+ doc/guides/nics/hns3.rst | 1 -
+ 1 file changed, 1 deletion(-)
@@ -38 +38 @@
-index f1d4084bfa..3703987309 100644
+index 9a0196bbcf..4a36e3a6a5 100644
@@ -49,16 +48,0 @@
-@@ -38,6 +37,15 @@ Features of the HNS3 PMD are:
- - NUMA support
- - Generic flow API
- - IEEE1588/802.1AS timestamping
-+- Basic stats
-+- Extended stats
-+- Traffic Management API
-+- Speed capabilities
-+- Link Auto-negotiation
-+- Link flow control
-+- Dump register
-+- Dump private info from device
-+- FW version
- 
- Prerequisites
- -------------

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

* patch 'doc: update versions recommendations for i40e and ice' has been queued to stable release 20.11.10
  2023-11-23 16:17           ` patch 'net/txgbe: fix out of bound access' " luca.boccassi
  2023-11-23 16:17             ` patch 'doc: update features in hns3 guide' " luca.boccassi
@ 2023-11-23 16:17             ` luca.boccassi
  2023-11-23 16:17             ` patch 'examples/ipsec-secgw: fix partial overflow' " luca.boccassi
                               ` (5 subsequent siblings)
  7 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-23 16:17 UTC (permalink / raw)
  To: Kevin Traynor; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/25/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From 7db4cec7a85f3142c787d1c450c7e8cf0ca75624 Mon Sep 17 00:00:00 2001
From: Kevin Traynor <ktraynor@redhat.com>
Date: Fri, 10 Nov 2023 12:14:07 +0000
Subject: [PATCH] doc: update versions recommendations for i40e and ice

[ upstream commit 300d68eb1cf095199b1d2282faceffc5adf59e3d ]

Update documentation to stop recommending that
out-of-tree Linux Kernel drivers are used for
i40e and ice.

Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 doc/guides/nics/i40e.rst | 15 +++++++++------
 doc/guides/nics/ice.rst  | 11 +++++++----
 2 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/doc/guides/nics/i40e.rst b/doc/guides/nics/i40e.rst
index 53818fcf4a..4878b660c7 100644
--- a/doc/guides/nics/i40e.rst
+++ b/doc/guides/nics/i40e.rst
@@ -75,13 +75,16 @@ Prerequisites
       * In all cases Intel recommends using Intel Ethernet Optics; other modules
         may function but are not validated by Intel. Contact Intel for supported media types.
 
-Recommended Matching List
--------------------------
+Kernel driver and Firmware Matching List
+----------------------------------------
 
-It is highly recommended to upgrade the i40e kernel driver and firmware to
-avoid the compatibility issues with i40e PMD. Here is the suggested matching
-list which has been tested and verified. The detailed information can refer
-to chapter Tested Platforms/Tested NICs in release notes.
+It is highly recommended to upgrade the i40e kernel driver and firmware
+to avoid the compatibility issues with i40e PMD.
+The table below shows a summary of the DPDK versions
+with corresponding out-of-tree Linux kernel drivers and firmware.
+The full list of in-tree and out-of-tree Linux kernel drivers from kernel.org
+and Linux distributions that were tested and verified
+are listed in the Tested Platforms section of the Release Notes for each release.
 
 For X710/XL710/XXV710,
 
diff --git a/doc/guides/nics/ice.rst b/doc/guides/nics/ice.rst
index 1cbaf5a399..90fab4b835 100644
--- a/doc/guides/nics/ice.rst
+++ b/doc/guides/nics/ice.rst
@@ -26,13 +26,16 @@ Prerequisites
   Dynamic Device Personalization (DDP) Package <https://cdrdv2.intel.com/v1/dl/getContent/618651>`_.
 
 
-Recommended Matching List
--------------------------
+Kernel driver, DDP and Firmware Matching List
+---------------------------------------------
 
 It is highly recommended to upgrade the ice kernel driver, firmware and DDP package
 to avoid the compatibility issues with ice PMD.
-Here is the suggested matching list which has been tested and verified.
-The detailed information can refer to chapter Tested Platforms/Tested NICs in release notes.
+The table below shows a summary of the DPDK versions
+with corresponding out-of-tree Linux kernel drivers, DDP package and firmware.
+The full list of in-tree and out-of-tree Linux kernel drivers from kernel.org
+and Linux distributions that were tested and verified
+are listed in the Tested Platforms section of the Release Notes for each release.
 
    +-----------+---------------+-----------------+-----------+--------------+-----------+
    |    DPDK   | Kernel Driver | OS Default DDP  | COMMS DDP | Wireless DDP | Firmware  |
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-23 16:15:19.341196383 +0000
+++ 0003-doc-update-versions-recommendations-for-i40e-and-ice.patch	2023-11-23 16:15:19.211058297 +0000
@@ -1 +1 @@
-From 300d68eb1cf095199b1d2282faceffc5adf59e3d Mon Sep 17 00:00:00 2001
+From 7db4cec7a85f3142c787d1c450c7e8cf0ca75624 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 300d68eb1cf095199b1d2282faceffc5adf59e3d ]
+
@@ -10,2 +11,0 @@
-Cc: stable@dpdk.org
-
@@ -20 +20 @@
-index 791e9553bc..6cd1165521 100644
+index 53818fcf4a..4878b660c7 100644
@@ -23,3 +23,3 @@
-@@ -88,13 +88,16 @@ Windows Prerequisites
- - To load NetUIO driver, follow the steps mentioned in `dpdk-kmods repository
-   <https://git.dpdk.org/dpdk-kmods/tree/windows/netuio/README.rst>`_.
+@@ -75,13 +75,16 @@ Prerequisites
+       * In all cases Intel recommends using Intel Ethernet Optics; other modules
+         may function but are not validated by Intel. Contact Intel for supported media types.
@@ -47 +47 @@
-index 6e71aac3c2..820a385b06 100644
+index 1cbaf5a399..90fab4b835 100644
@@ -50,2 +50,2 @@
-@@ -41,13 +41,16 @@ Windows Prerequisites
- - Loading of private Dynamic Device Personalization (DDP) package is not supported on Windows.
+@@ -26,13 +26,16 @@ Prerequisites
+   Dynamic Device Personalization (DDP) Package <https://cdrdv2.intel.com/v1/dl/getContent/618651>`_.

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

* patch 'examples/ipsec-secgw: fix partial overflow' has been queued to stable release 20.11.10
  2023-11-23 16:17           ` patch 'net/txgbe: fix out of bound access' " luca.boccassi
  2023-11-23 16:17             ` patch 'doc: update features in hns3 guide' " luca.boccassi
  2023-11-23 16:17             ` patch 'doc: update versions recommendations for i40e and ice' " luca.boccassi
@ 2023-11-23 16:17             ` luca.boccassi
  2023-11-23 16:17             ` patch 'eal/windows: fix build with recent MinGW' " luca.boccassi
                               ` (4 subsequent siblings)
  7 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-23 16:17 UTC (permalink / raw)
  To: Brian Dooley; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/25/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From b7030fdd80bc8f64af4d5ec43c89f1658e1b49ce Mon Sep 17 00:00:00 2001
From: Brian Dooley <brian.dooley@intel.com>
Date: Wed, 15 Nov 2023 12:31:01 +0000
Subject: [PATCH] examples/ipsec-secgw: fix partial overflow

[ upstream commit ae9267a67e9030c1b069b0df69924aaca17683bb ]

Case of partial overflow detected with ASan.
Added extra padding to cdev_key structure.

This structure is used for the key in hash table.
Padding is added to force the struct to use 8 bytes,
to ensure memory is notread past this structs boundary
(the hash key calculation reads 8 bytes if this struct is size 5 bytes).
The padding should be zeroed.
If fields are modified in this struct, the padding must be updated to
ensure multiple of 8 bytes size overall.

Fixes: d299106e8e31 ("examples/ipsec-secgw: add IPsec sample application")

Signed-off-by: Brian Dooley <brian.dooley@intel.com>
---
 examples/ipsec-secgw/ipsec.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/examples/ipsec-secgw/ipsec.h b/examples/ipsec-secgw/ipsec.h
index 7031e28c46..19d94519b1 100644
--- a/examples/ipsec-secgw/ipsec.h
+++ b/examples/ipsec-secgw/ipsec.h
@@ -224,11 +224,18 @@ struct ipsec_ctx {
 	uint64_t ipv6_offloads;
 };
 
+/*
+ * This structure is used for the key in hash table.
+ * Padding is to force the struct to use 8 bytes,
+ * to ensure memory is not read past this structs boundary
+ * (hash key calculation reads 8 bytes if this struct is size 5 bytes).
+ */
 struct cdev_key {
 	uint16_t lcore_id;
 	uint8_t cipher_algo;
 	uint8_t auth_algo;
 	uint8_t aead_algo;
+	uint8_t padding[3]; /* padding to 8-byte size should be zeroed */
 };
 
 struct socket_ctx {
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-23 16:15:19.381887126 +0000
+++ 0004-examples-ipsec-secgw-fix-partial-overflow.patch	2023-11-23 16:15:19.215058380 +0000
@@ -1 +1 @@
-From ae9267a67e9030c1b069b0df69924aaca17683bb Mon Sep 17 00:00:00 2001
+From b7030fdd80bc8f64af4d5ec43c89f1658e1b49ce Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ae9267a67e9030c1b069b0df69924aaca17683bb ]
+
@@ -18 +19,0 @@
-Cc: stable@dpdk.org
@@ -26 +27 @@
-index 5059418456..bdcada1c40 100644
+index 7031e28c46..19d94519b1 100644
@@ -29,3 +30,3 @@
-@@ -249,11 +249,18 @@ struct offloads {
- 
- extern struct offloads tx_offloads;
+@@ -224,11 +224,18 @@ struct ipsec_ctx {
+ 	uint64_t ipv6_offloads;
+ };

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

* patch 'eal/windows: fix build with recent MinGW' has been queued to stable release 20.11.10
  2023-11-23 16:17           ` patch 'net/txgbe: fix out of bound access' " luca.boccassi
                               ` (2 preceding siblings ...)
  2023-11-23 16:17             ` patch 'examples/ipsec-secgw: fix partial overflow' " luca.boccassi
@ 2023-11-23 16:17             ` luca.boccassi
  2023-11-23 16:17             ` patch 'pdump: fix error number on IPC response' " luca.boccassi
                               ` (3 subsequent siblings)
  7 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-23 16:17 UTC (permalink / raw)
  To: Gregory Etelson
  Cc: Tyler Retzlaff, Dmitry Kozlyuk, Thomas Monjalon, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/25/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From f52040e04787ad91d64c3c09107cf9a06bb69b11 Mon Sep 17 00:00:00 2001
From: Gregory Etelson <getelson@nvidia.com>
Date: Tue, 14 Nov 2023 19:05:29 +0200
Subject: [PATCH] eal/windows: fix build with recent MinGW

[ upstream commit c6221c664e52a94baf259a29ea73645496502af1 ]

Windows compilation with cross-mingw on Fedora 39 failed
because MEM_REPLACE_PLACEHOLDER and MEM_RESERVE_PLACEHOLDER were
already defined in the compiler environment:

eal_memory.c:77: error: "MEM_REPLACE_PLACEHOLDER" redefined
/usr/x86_64-w64-mingw32/sys-root/mingw/include/winnt.h:5710: note:
this is the location of the previous definition

eal_memory.c:78: error: "MEM_RESERVE_PLACEHOLDER" redefined
/usr/x86_64-w64-mingw32/sys-root/mingw/include/winnt.h:5715: note:
this is the location of the previous definition

The patch masks MEM_REPLACE_PLACEHOLDER and MEM_RESERVE_PLACEHOLDER
macros if they were pre-defined by compiler.

The patch also masks MEM_COALESCE_PLACEHOLDERS and
MEM_PRESERVE_PLACEHOLDER to prevent similar errors.

Fixes: 2a5d547a4a9b ("eal/windows: implement basic memory management")

Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
---
 lib/librte_eal/windows/eal_memory.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/lib/librte_eal/windows/eal_memory.c b/lib/librte_eal/windows/eal_memory.c
index 2fd37d9708..643e0e7a16 100644
--- a/lib/librte_eal/windows/eal_memory.c
+++ b/lib/librte_eal/windows/eal_memory.c
@@ -72,10 +72,18 @@ static VirtualAlloc2_type VirtualAlloc2_ptr;
 
 #ifdef RTE_TOOLCHAIN_GCC
 
+#ifndef MEM_COALESCE_PLACEHOLDERS
 #define MEM_COALESCE_PLACEHOLDERS 0x00000001
+#endif
+#ifndef MEM_PRESERVE_PLACEHOLDER
 #define MEM_PRESERVE_PLACEHOLDER  0x00000002
+#endif
+#ifndef MEM_REPLACE_PLACEHOLDER
 #define MEM_REPLACE_PLACEHOLDER   0x00004000
+#endif
+#ifndef MEM_RESERVE_PLACEHOLDER
 #define MEM_RESERVE_PLACEHOLDER   0x00040000
+#endif
 
 int
 eal_mem_win32api_init(void)
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-23 16:15:19.421163912 +0000
+++ 0005-eal-windows-fix-build-with-recent-MinGW.patch	2023-11-23 16:15:19.215058380 +0000
@@ -1 +1 @@
-From c6221c664e52a94baf259a29ea73645496502af1 Mon Sep 17 00:00:00 2001
+From f52040e04787ad91d64c3c09107cf9a06bb69b11 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c6221c664e52a94baf259a29ea73645496502af1 ]
+
@@ -25 +26,0 @@
-Cc: stable@dpdk.org
@@ -32 +33 @@
- lib/eal/windows/eal_memory.c | 8 ++++++++
+ lib/librte_eal/windows/eal_memory.c | 8 ++++++++
@@ -35,4 +36,4 @@
-diff --git a/lib/eal/windows/eal_memory.c b/lib/eal/windows/eal_memory.c
-index 215d768e2c..31410a41fd 100644
---- a/lib/eal/windows/eal_memory.c
-+++ b/lib/eal/windows/eal_memory.c
+diff --git a/lib/librte_eal/windows/eal_memory.c b/lib/librte_eal/windows/eal_memory.c
+index 2fd37d9708..643e0e7a16 100644
+--- a/lib/librte_eal/windows/eal_memory.c
++++ b/lib/librte_eal/windows/eal_memory.c

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

* patch 'pdump: fix error number on IPC response' has been queued to stable release 20.11.10
  2023-11-23 16:17           ` patch 'net/txgbe: fix out of bound access' " luca.boccassi
                               ` (3 preceding siblings ...)
  2023-11-23 16:17             ` patch 'eal/windows: fix build with recent MinGW' " luca.boccassi
@ 2023-11-23 16:17             ` luca.boccassi
  2023-11-23 16:17             ` patch 'examples/ethtool: fix pause configuration' " luca.boccassi
                               ` (2 subsequent siblings)
  7 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-23 16:17 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Morten Brørup, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/25/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/00d4567c7245620b51477b2388f65c1d0daf8212

Thanks.

Luca Boccassi

---
From 00d4567c7245620b51477b2388f65c1d0daf8212 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Fri, 17 Nov 2023 08:35:55 -0800
Subject: [PATCH] pdump: fix error number on IPC response
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 5ec9575d8c0abfcefbc353d540f228d6d7036fe6 ]

The response from MP server sets err_value to negative
on error. The convention for rte_errno is to use a positive
value on error. This makes errors like duplicate registration
show up with the correct error value.

Fixes: 660098d61f57 ("pdump: use generic multi-process channel")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
---
 lib/librte_pdump/rte_pdump.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/librte_pdump/rte_pdump.c b/lib/librte_pdump/rte_pdump.c
index 29eafaa101..746005af60 100644
--- a/lib/librte_pdump/rte_pdump.c
+++ b/lib/librte_pdump/rte_pdump.c
@@ -473,9 +473,10 @@ pdump_prepare_client_request(char *device, uint16_t queue,
 	if (rte_mp_request_sync(&mp_req, &mp_reply, &ts) == 0) {
 		mp_rep = &mp_reply.msgs[0];
 		resp = (struct pdump_response *)mp_rep->param;
-		rte_errno = resp->err_value;
-		if (!resp->err_value)
+		if (resp->err_value == 0)
 			ret = 0;
+		else
+			rte_errno = -resp->err_value;
 		free(mp_reply.msgs);
 	}
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-23 16:15:19.459000728 +0000
+++ 0006-pdump-fix-error-number-on-IPC-response.patch	2023-11-23 16:15:19.215058380 +0000
@@ -1 +1 @@
-From 5ec9575d8c0abfcefbc353d540f228d6d7036fe6 Mon Sep 17 00:00:00 2001
+From 00d4567c7245620b51477b2388f65c1d0daf8212 Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 5ec9575d8c0abfcefbc353d540f228d6d7036fe6 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
- lib/pdump/rte_pdump.c | 5 +++--
+ lib/librte_pdump/rte_pdump.c | 5 +++--
@@ -23,5 +24,5 @@
-diff --git a/lib/pdump/rte_pdump.c b/lib/pdump/rte_pdump.c
-index 80b90c6f7d..e94f49e212 100644
---- a/lib/pdump/rte_pdump.c
-+++ b/lib/pdump/rte_pdump.c
-@@ -564,9 +564,10 @@ pdump_prepare_client_request(const char *device, uint16_t queue,
+diff --git a/lib/librte_pdump/rte_pdump.c b/lib/librte_pdump/rte_pdump.c
+index 29eafaa101..746005af60 100644
+--- a/lib/librte_pdump/rte_pdump.c
++++ b/lib/librte_pdump/rte_pdump.c
+@@ -473,9 +473,10 @@ pdump_prepare_client_request(char *device, uint16_t queue,

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

* patch 'examples/ethtool: fix pause configuration' has been queued to stable release 20.11.10
  2023-11-23 16:17           ` patch 'net/txgbe: fix out of bound access' " luca.boccassi
                               ` (4 preceding siblings ...)
  2023-11-23 16:17             ` patch 'pdump: fix error number on IPC response' " luca.boccassi
@ 2023-11-23 16:17             ` luca.boccassi
  2023-11-23 16:17             ` patch 'test/hash: fix creation error log' " luca.boccassi
  2023-11-23 16:17             ` patch 'app/pipeline: add sigint handler' " luca.boccassi
  7 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-23 16:17 UTC (permalink / raw)
  To: Huisong Li; +Cc: Min Hu, Stephen Hemminger, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/25/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From a6a44fddafd1ae5179f5f00f30195c2b09f063ea Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Fri, 10 Nov 2023 11:30:39 +0800
Subject: [PATCH] examples/ethtool: fix pause configuration

[ upstream commit 29cb7cf999bd5b3cb44ec6937529b2b197e7e25f ]

Currently, the pause command in ethtool to enable Rx/Tx pause has the
following problem. Namely, Assume that the device supports flow control
auto-negotiation to set pause parameters, which will the device that does
not support flow control auto-negotiation fails to run this command.

This patch supports the configuration of flow control auto-negotiation
and fixes the print format and style of the pause cmd to make it more
readable.

Fixes: bda68ab9d1e7 ("examples/ethtool: add user-space ethtool sample application")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
---
 examples/ethtool/ethtool-app/ethapp.c | 63 ++++++++++++++++-----------
 1 file changed, 38 insertions(+), 25 deletions(-)

diff --git a/examples/ethtool/ethtool-app/ethapp.c b/examples/ethtool/ethtool-app/ethapp.c
index 36a1c374f4..057fa974bf 100644
--- a/examples/ethtool/ethtool-app/ethapp.c
+++ b/examples/ethtool/ethtool-app/ethapp.c
@@ -49,6 +49,13 @@ struct pcmd_intintint_params {
 	uint16_t rx;
 };
 
+struct pcmd_pause_params {
+	cmdline_fixed_string_t cmd;
+	uint16_t port;
+	cmdline_fixed_string_t mode;
+	cmdline_fixed_string_t autoneg;
+	cmdline_fixed_string_t an_status;
+};
 
 /* Parameter-less commands */
 cmdline_parse_token_string_t pcmd_quit_token_cmd =
@@ -116,12 +123,18 @@ cmdline_parse_token_num_t pcmd_intintint_token_rx =
 
 /* Pause commands */
 cmdline_parse_token_string_t pcmd_pause_token_cmd =
-	TOKEN_STRING_INITIALIZER(struct pcmd_intstr_params, cmd, "pause");
+	TOKEN_STRING_INITIALIZER(struct pcmd_pause_params, cmd, "pause");
 cmdline_parse_token_num_t pcmd_pause_token_port =
-	TOKEN_NUM_INITIALIZER(struct pcmd_intstr_params, port, RTE_UINT16);
-cmdline_parse_token_string_t pcmd_pause_token_opt =
-	TOKEN_STRING_INITIALIZER(struct pcmd_intstr_params,
-		opt, "all#tx#rx#none");
+	TOKEN_NUM_INITIALIZER(struct pcmd_pause_params, port, RTE_UINT16);
+cmdline_parse_token_string_t pcmd_pause_token_mode =
+	TOKEN_STRING_INITIALIZER(struct pcmd_pause_params,
+		mode, "full#tx#rx#none");
+cmdline_parse_token_string_t pcmd_pause_token_autoneg =
+	TOKEN_STRING_INITIALIZER(struct pcmd_pause_params,
+		autoneg, "autoneg");
+cmdline_parse_token_string_t pcmd_pause_token_an_status =
+	TOKEN_STRING_INITIALIZER(struct pcmd_pause_params,
+		an_status, "on#off");
 
 /* VLAN commands */
 cmdline_parse_token_string_t pcmd_vlan_token_cmd =
@@ -348,13 +361,12 @@ pcmd_module_eeprom_callback(void *ptr_params,
 	fclose(fp_eeprom);
 }
 
-
 static void
 pcmd_pause_callback(void *ptr_params,
 	__rte_unused struct cmdline *ctx,
 	void *ptr_data)
 {
-	struct pcmd_intstr_params *params = ptr_params;
+	struct pcmd_pause_params *params = ptr_params;
 	struct ethtool_pauseparam info;
 	int stat;
 
@@ -366,39 +378,38 @@ pcmd_pause_callback(void *ptr_params,
 		stat = rte_ethtool_get_pauseparam(params->port, &info);
 	} else {
 		memset(&info, 0, sizeof(info));
-		if (strcasecmp("all", params->opt) == 0) {
+		if (strcasecmp("full", params->mode) == 0) {
 			info.tx_pause = 1;
 			info.rx_pause = 1;
-		} else if (strcasecmp("tx", params->opt) == 0) {
+		} else if (strcasecmp("tx", params->mode) == 0) {
 			info.tx_pause = 1;
 			info.rx_pause = 0;
-		} else if (strcasecmp("rx", params->opt) == 0) {
+		} else if (strcasecmp("rx", params->mode) == 0) {
 			info.tx_pause = 0;
 			info.rx_pause = 1;
 		} else {
 			info.tx_pause = 0;
 			info.rx_pause = 0;
 		}
-		/* Assume auto-negotiation wanted */
-		info.autoneg = 1;
-		stat = rte_ethtool_set_pauseparam(params->port, &info);
-	}
-	if (stat == 0) {
-		if (info.rx_pause && info.tx_pause)
-			printf("Port %i: Tx & Rx Paused\n", params->port);
-		else if (info.rx_pause)
-			printf("Port %i: Rx Paused\n", params->port);
-		else if (info.tx_pause)
-			printf("Port %i: Tx Paused\n", params->port);
+
+		if (strcasecmp("on", params->an_status) == 0)
+			info.autoneg = 1;
 		else
-			printf("Port %i: Tx & Rx not paused\n", params->port);
+			info.autoneg = 0;
+
+		stat = rte_ethtool_set_pauseparam(params->port, &info);
+	}
+	if (stat == 0) {
+		printf("Pause parameters for Port %i:\n", params->port);
+		printf("Rx pause: %s\n", info.rx_pause ? "on" : "off");
+		printf("Tx pause: %s\n", info.tx_pause ? "on" : "off");
+		printf("Autoneg: %s\n", info.autoneg ? "on" : "off");
 	} else if (stat == -ENOTSUP)
 		printf("Port %i: Operation not supported\n", params->port);
 	else
 		printf("Port %i: Error %i\n", params->port, stat);
 }
 
-
 static void
 pcmd_open_callback(__rte_unused void *ptr_params,
 	__rte_unused struct cmdline *ctx,
@@ -741,11 +752,13 @@ cmdline_parse_inst_t pcmd_pause = {
 	.f = pcmd_pause_callback,
 	.data = NULL,
 	.help_str =
-		"pause <port_id> <all|tx|rx|none>\n     Pause/unpause port",
+		"pause <port_id> <full|tx|rx|none> autoneg <on|off>\n     Pause/unpause port",
 	.tokens = {
 		(void *)&pcmd_pause_token_cmd,
 		(void *)&pcmd_pause_token_port,
-		(void *)&pcmd_pause_token_opt,
+		(void *)&pcmd_pause_token_mode,
+		(void *)&pcmd_pause_token_autoneg,
+		(void *)&pcmd_pause_token_an_status,
 		NULL
 	},
 };
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-23 16:15:19.498504878 +0000
+++ 0007-examples-ethtool-fix-pause-configuration.patch	2023-11-23 16:15:19.215058380 +0000
@@ -1 +1 @@
-From 29cb7cf999bd5b3cb44ec6937529b2b197e7e25f Mon Sep 17 00:00:00 2001
+From a6a44fddafd1ae5179f5f00f30195c2b09f063ea Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 29cb7cf999bd5b3cb44ec6937529b2b197e7e25f ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -26 +27 @@
-index 4ea504ed6a..489cd4f515 100644
+index 36a1c374f4..057fa974bf 100644
@@ -29 +30 @@
-@@ -51,6 +51,13 @@ struct pcmd_intintint_params {
+@@ -49,6 +49,13 @@ struct pcmd_intintint_params {
@@ -43 +44 @@
-@@ -118,12 +125,18 @@ cmdline_parse_token_num_t pcmd_intintint_token_rx =
+@@ -116,12 +123,18 @@ cmdline_parse_token_num_t pcmd_intintint_token_rx =
@@ -67 +68 @@
-@@ -350,13 +363,12 @@ pcmd_module_eeprom_callback(void *ptr_params,
+@@ -348,13 +361,12 @@ pcmd_module_eeprom_callback(void *ptr_params,
@@ -82 +83 @@
-@@ -368,39 +380,38 @@ pcmd_pause_callback(void *ptr_params,
+@@ -366,39 +378,38 @@ pcmd_pause_callback(void *ptr_params,
@@ -137 +138 @@
-@@ -737,11 +748,13 @@ cmdline_parse_inst_t pcmd_pause = {
+@@ -741,11 +752,13 @@ cmdline_parse_inst_t pcmd_pause = {

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

* patch 'test/hash: fix creation error log' has been queued to stable release 20.11.10
  2023-11-23 16:17           ` patch 'net/txgbe: fix out of bound access' " luca.boccassi
                               ` (5 preceding siblings ...)
  2023-11-23 16:17             ` patch 'examples/ethtool: fix pause configuration' " luca.boccassi
@ 2023-11-23 16:17             ` luca.boccassi
  2023-11-23 16:17             ` patch 'app/pipeline: add sigint handler' " luca.boccassi
  7 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-23 16:17 UTC (permalink / raw)
  To: Min Zhou; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/25/23. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/27219f6658c78f99d47dbf7a11ad3fc86c8ddbdb

Thanks.

Luca Boccassi

---
From 27219f6658c78f99d47dbf7a11ad3fc86c8ddbdb Mon Sep 17 00:00:00 2001
From: Min Zhou <zhoumin@loongson.cn>
Date: Tue, 12 Sep 2023 19:52:39 +0800
Subject: [PATCH] test/hash: fix creation error log

[ upstream commit 1afb336d8510cb9e28ca5cc25af3bb95698528c8 ]

Caught while running meson test:
hash creation failedTest Failed

Add missing \n.

Fixes: 0eb3726ebcf1 ("test/hash: add test for read/write concurrency")

Signed-off-by: Min Zhou <zhoumin@loongson.cn>
---
 app/test/test_hash_readwrite.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/test/test_hash_readwrite.c b/app/test/test_hash_readwrite.c
index f40fec74dd..271b2d52c0 100644
--- a/app/test/test_hash_readwrite.c
+++ b/app/test/test_hash_readwrite.c
@@ -162,7 +162,7 @@ init_params(int use_ext, int use_htm, int rw_lf, int use_jhash)
 
 	handle = rte_hash_create(&hash_params);
 	if (handle == NULL) {
-		printf("hash creation failed");
+		printf("hash creation failed\n");
 		return -1;
 	}
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-23 16:15:19.538645283 +0000
+++ 0008-test-hash-fix-creation-error-log.patch	2023-11-23 16:15:19.219058464 +0000
@@ -1 +1 @@
-From 1afb336d8510cb9e28ca5cc25af3bb95698528c8 Mon Sep 17 00:00:00 2001
+From 27219f6658c78f99d47dbf7a11ad3fc86c8ddbdb Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1afb336d8510cb9e28ca5cc25af3bb95698528c8 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 74ca13912f..4997a01249 100644
+index f40fec74dd..271b2d52c0 100644

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

* patch 'app/pipeline: add sigint handler' has been queued to stable release 20.11.10
  2023-11-23 16:17           ` patch 'net/txgbe: fix out of bound access' " luca.boccassi
                               ` (6 preceding siblings ...)
  2023-11-23 16:17             ` patch 'test/hash: fix creation error log' " luca.boccassi
@ 2023-11-23 16:17             ` luca.boccassi
  2023-11-29  2:32               ` patch 'doc: remove restriction on ixgbe vector support' " luca.boccassi
  7 siblings, 1 reply; 111+ messages in thread
From: luca.boccassi @ 2023-11-23 16:17 UTC (permalink / raw)
  To: Feifei Wang; +Cc: Ruifeng Wang, Matthew Dirba, Cristian Dumitrescu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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/25/23. 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/bluca/dpdk-stable

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

Thanks.

Luca Boccassi

---
From dfd5276c01eca734b0b0e3c8bef72f515cc700d4 Mon Sep 17 00:00:00 2001
From: Feifei Wang <feifei.wang2@arm.com>
Date: Tue, 12 Sep 2023 14:39:02 +0800
Subject: [PATCH] app/pipeline: add sigint handler

[ upstream commit f6897b23f70b84742129a215ea2be17c8843adb8 ]

For test-pipeline, if the main core receive SIGINT signal, it will kill
all the threads immediately and not wait other threads to finish their
jobs.

To fix this, add 'signal_handler' function.

Fixes: 48f31ca50cc4 ("app/pipeline: packet framework benchmark")

Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Matthew Dirba <matthew.dirba@arm.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
 app/test-pipeline/main.c              |  14 +++
 app/test-pipeline/main.h              |   2 +
 app/test-pipeline/pipeline_acl.c      |   6 +-
 app/test-pipeline/pipeline_hash.c     | 106 +++++++++++-----------
 app/test-pipeline/pipeline_lpm.c      |   6 +-
 app/test-pipeline/pipeline_lpm_ipv6.c |   6 +-
 app/test-pipeline/pipeline_stub.c     |   6 +-
 app/test-pipeline/runtime.c           | 126 ++++++++++++++------------
 8 files changed, 153 insertions(+), 119 deletions(-)

diff --git a/app/test-pipeline/main.c b/app/test-pipeline/main.c
index 72e4797ff2..f16237db3e 100644
--- a/app/test-pipeline/main.c
+++ b/app/test-pipeline/main.c
@@ -10,6 +10,7 @@
 #include <string.h>
 #include <sys/queue.h>
 #include <stdarg.h>
+#include <signal.h>
 #include <errno.h>
 #include <getopt.h>
 #include <unistd.h>
@@ -42,6 +43,15 @@
 
 #include "main.h"
 
+bool force_quit;
+
+static void
+signal_handler(int signum)
+{
+	if (signum == SIGINT || signum == SIGTERM)
+		force_quit = true;
+}
+
 int
 main(int argc, char **argv)
 {
@@ -55,6 +65,10 @@ main(int argc, char **argv)
 	argc -= ret;
 	argv += ret;
 
+	force_quit = false;
+	signal(SIGINT, signal_handler);
+	signal(SIGTERM, signal_handler);
+
 	/* Parse application arguments (after the EAL ones) */
 	ret = app_parse_args(argc, argv);
 	if (ret < 0) {
diff --git a/app/test-pipeline/main.h b/app/test-pipeline/main.h
index 59dcfddbf4..9df157de22 100644
--- a/app/test-pipeline/main.h
+++ b/app/test-pipeline/main.h
@@ -60,6 +60,8 @@ struct app_params {
 
 extern struct app_params app;
 
+extern bool force_quit;
+
 int app_parse_args(int argc, char **argv);
 void app_print_usage(void);
 void app_init(void);
diff --git a/app/test-pipeline/pipeline_acl.c b/app/test-pipeline/pipeline_acl.c
index 5857bc285f..abde4bf934 100644
--- a/app/test-pipeline/pipeline_acl.c
+++ b/app/test-pipeline/pipeline_acl.c
@@ -236,14 +236,16 @@ app_main_loop_worker_pipeline_acl(void) {
 
 	/* Run-time */
 #if APP_FLUSH == 0
-	for ( ; ; )
+	while (!force_quit)
 		rte_pipeline_run(p);
 #else
-	for (i = 0; ; i++) {
+	i = 0;
+	while (!force_quit) {
 		rte_pipeline_run(p);
 
 		if ((i & APP_FLUSH) == 0)
 			rte_pipeline_flush(p);
+		i++;
 	}
 #endif
 }
diff --git a/app/test-pipeline/pipeline_hash.c b/app/test-pipeline/pipeline_hash.c
index 2dd8928d43..cab9c20980 100644
--- a/app/test-pipeline/pipeline_hash.c
+++ b/app/test-pipeline/pipeline_hash.c
@@ -366,14 +366,16 @@ app_main_loop_worker_pipeline_hash(void) {
 
 	/* Run-time */
 #if APP_FLUSH == 0
-	for ( ; ; )
+	while (!force_quit)
 		rte_pipeline_run(p);
 #else
-	for (i = 0; ; i++) {
+	i = 0;
+	while (!force_quit) {
 		rte_pipeline_run(p);
 
 		if ((i & APP_FLUSH) == 0)
 			rte_pipeline_flush(p);
+		i++;
 	}
 #endif
 }
@@ -411,59 +413,61 @@ app_main_loop_rx_metadata(void) {
 	RTE_LOG(INFO, USER1, "Core %u is doing RX (with meta-data)\n",
 		rte_lcore_id());
 
-	for (i = 0; ; i = ((i + 1) & (app.n_ports - 1))) {
-		uint16_t n_mbufs;
+	while (!force_quit) {
+		for (i = 0; i < app.n_ports; i++) {
+			uint16_t n_mbufs;
 
-		n_mbufs = rte_eth_rx_burst(
-			app.ports[i],
-			0,
-			app.mbuf_rx.array,
-			app.burst_size_rx_read);
+			n_mbufs = rte_eth_rx_burst(
+				app.ports[i],
+				0,
+				app.mbuf_rx.array,
+				app.burst_size_rx_read);
 
-		if (n_mbufs == 0)
-			continue;
-
-		for (j = 0; j < n_mbufs; j++) {
-			struct rte_mbuf *m;
-			uint8_t *m_data, *key;
-			struct rte_ipv4_hdr *ip_hdr;
-			struct rte_ipv6_hdr *ipv6_hdr;
-			uint32_t ip_dst;
-			uint8_t *ipv6_dst;
-			uint32_t *signature, *k32;
-
-			m = app.mbuf_rx.array[j];
-			m_data = rte_pktmbuf_mtod(m, uint8_t *);
-			signature = RTE_MBUF_METADATA_UINT32_PTR(m,
-					APP_METADATA_OFFSET(0));
-			key = RTE_MBUF_METADATA_UINT8_PTR(m,
-					APP_METADATA_OFFSET(32));
-
-			if (RTE_ETH_IS_IPV4_HDR(m->packet_type)) {
-				ip_hdr = (struct rte_ipv4_hdr *)
-					&m_data[sizeof(struct rte_ether_hdr)];
-				ip_dst = ip_hdr->dst_addr;
-
-				k32 = (uint32_t *) key;
-				k32[0] = ip_dst & 0xFFFFFF00;
-			} else if (RTE_ETH_IS_IPV6_HDR(m->packet_type)) {
-				ipv6_hdr = (struct rte_ipv6_hdr *)
-					&m_data[sizeof(struct rte_ether_hdr)];
-				ipv6_dst = ipv6_hdr->dst_addr;
-
-				memcpy(key, ipv6_dst, 16);
-			} else
+			if (n_mbufs == 0)
 				continue;
 
-			*signature = test_hash(key, NULL, 0, 0);
+			for (j = 0; j < n_mbufs; j++) {
+				struct rte_mbuf *m;
+				uint8_t *m_data, *key;
+				struct rte_ipv4_hdr *ip_hdr;
+				struct rte_ipv6_hdr *ipv6_hdr;
+				uint32_t ip_dst;
+				uint8_t *ipv6_dst;
+				uint32_t *signature, *k32;
+
+				m = app.mbuf_rx.array[j];
+				m_data = rte_pktmbuf_mtod(m, uint8_t *);
+				signature = RTE_MBUF_METADATA_UINT32_PTR(m,
+						APP_METADATA_OFFSET(0));
+				key = RTE_MBUF_METADATA_UINT8_PTR(m,
+						APP_METADATA_OFFSET(32));
+
+				if (RTE_ETH_IS_IPV4_HDR(m->packet_type)) {
+					ip_hdr = (struct rte_ipv4_hdr *)
+						&m_data[sizeof(struct rte_ether_hdr)];
+					ip_dst = ip_hdr->dst_addr;
+
+					k32 = (uint32_t *) key;
+					k32[0] = ip_dst & 0xFFFFFF00;
+				} else if (RTE_ETH_IS_IPV6_HDR(m->packet_type)) {
+					ipv6_hdr = (struct rte_ipv6_hdr *)
+						&m_data[sizeof(struct rte_ether_hdr)];
+					ipv6_dst = ipv6_hdr->dst_addr;
+
+					memcpy(key, ipv6_dst, 16);
+				} else
+					continue;
+
+				*signature = test_hash(key, NULL, 0, 0);
+			}
+
+			do {
+				ret = rte_ring_sp_enqueue_bulk(
+					app.rings_rx[i],
+					(void **) app.mbuf_rx.array,
+					n_mbufs,
+					NULL);
+			} while (ret == 0 && !force_quit);
 		}
-
-		do {
-			ret = rte_ring_sp_enqueue_bulk(
-				app.rings_rx[i],
-				(void **) app.mbuf_rx.array,
-				n_mbufs,
-				NULL);
-		} while (ret == 0);
 	}
 }
diff --git a/app/test-pipeline/pipeline_lpm.c b/app/test-pipeline/pipeline_lpm.c
index 8add5e71b7..e3d4b3fdc5 100644
--- a/app/test-pipeline/pipeline_lpm.c
+++ b/app/test-pipeline/pipeline_lpm.c
@@ -160,14 +160,16 @@ app_main_loop_worker_pipeline_lpm(void) {
 
 	/* Run-time */
 #if APP_FLUSH == 0
-	for ( ; ; )
+	while (!force_quit)
 		rte_pipeline_run(p);
 #else
-	for (i = 0; ; i++) {
+	i = 0;
+	while (!force_quit) {
 		rte_pipeline_run(p);
 
 		if ((i & APP_FLUSH) == 0)
 			rte_pipeline_flush(p);
+		i++;
 	}
 #endif
 }
diff --git a/app/test-pipeline/pipeline_lpm_ipv6.c b/app/test-pipeline/pipeline_lpm_ipv6.c
index 26b325180d..f9aca74e4c 100644
--- a/app/test-pipeline/pipeline_lpm_ipv6.c
+++ b/app/test-pipeline/pipeline_lpm_ipv6.c
@@ -158,14 +158,16 @@ app_main_loop_worker_pipeline_lpm_ipv6(void) {
 
 	/* Run-time */
 #if APP_FLUSH == 0
-	for ( ; ; )
+	while (!force_quit)
 		rte_pipeline_run(p);
 #else
-	for (i = 0; ; i++) {
+	i = 0;
+	while (!force_quit) {
 		rte_pipeline_run(p);
 
 		if ((i & APP_FLUSH) == 0)
 			rte_pipeline_flush(p);
+		i++;
 	}
 #endif
 }
diff --git a/app/test-pipeline/pipeline_stub.c b/app/test-pipeline/pipeline_stub.c
index b6750d51bf..48a638aad7 100644
--- a/app/test-pipeline/pipeline_stub.c
+++ b/app/test-pipeline/pipeline_stub.c
@@ -122,14 +122,16 @@ app_main_loop_worker_pipeline_stub(void) {
 
 	/* Run-time */
 #if APP_FLUSH == 0
-	for ( ; ; )
+	while (!force_quit)
 		rte_pipeline_run(p);
 #else
-	for (i = 0; ; i++) {
+	i = 0;
+	while (!force_quit) {
 		rte_pipeline_run(p);
 
 		if ((i & APP_FLUSH) == 0)
 			rte_pipeline_flush(p);
+		i++;
 	}
 #endif
 }
diff --git a/app/test-pipeline/runtime.c b/app/test-pipeline/runtime.c
index 159192bcd8..68d2a36dd6 100644
--- a/app/test-pipeline/runtime.c
+++ b/app/test-pipeline/runtime.c
@@ -49,24 +49,26 @@ app_main_loop_rx(void) {
 
 	RTE_LOG(INFO, USER1, "Core %u is doing RX\n", rte_lcore_id());
 
-	for (i = 0; ; i = ((i + 1) & (app.n_ports - 1))) {
-		uint16_t n_mbufs;
+	while (!force_quit) {
+		for (i = 0; i < app.n_ports; i++) {
+			uint16_t n_mbufs;
 
-		n_mbufs = rte_eth_rx_burst(
-			app.ports[i],
-			0,
-			app.mbuf_rx.array,
-			app.burst_size_rx_read);
+			n_mbufs = rte_eth_rx_burst(
+				app.ports[i],
+				0,
+				app.mbuf_rx.array,
+				app.burst_size_rx_read);
 
-		if (n_mbufs == 0)
-			continue;
+			if (n_mbufs == 0)
+				continue;
 
-		do {
-			ret = rte_ring_sp_enqueue_bulk(
-				app.rings_rx[i],
-				(void **) app.mbuf_rx.array,
-				n_mbufs, NULL);
-		} while (ret == 0);
+			do {
+				ret = rte_ring_sp_enqueue_bulk(
+					app.rings_rx[i],
+					(void **) app.mbuf_rx.array,
+					n_mbufs, NULL);
+			} while (ret == 0 && !force_quit);
+		}
 	}
 }
 
@@ -83,25 +85,27 @@ app_main_loop_worker(void) {
 	if (worker_mbuf == NULL)
 		rte_panic("Worker thread: cannot allocate buffer space\n");
 
-	for (i = 0; ; i = ((i + 1) & (app.n_ports - 1))) {
-		int ret;
+	while (!force_quit) {
+		for (i = 0; i < app.n_ports; i++) {
+			int ret;
 
-		ret = rte_ring_sc_dequeue_bulk(
-			app.rings_rx[i],
-			(void **) worker_mbuf->array,
-			app.burst_size_worker_read,
-			NULL);
-
-		if (ret == 0)
-			continue;
-
-		do {
-			ret = rte_ring_sp_enqueue_bulk(
-				app.rings_tx[i ^ 1],
+			ret = rte_ring_sc_dequeue_bulk(
+				app.rings_rx[i],
 				(void **) worker_mbuf->array,
-				app.burst_size_worker_write,
+				app.burst_size_worker_read,
 				NULL);
-		} while (ret == 0);
+
+			if (ret == 0)
+				continue;
+
+			do {
+				ret = rte_ring_sp_enqueue_bulk(
+					app.rings_tx[i ^ 1],
+					(void **) worker_mbuf->array,
+					app.burst_size_worker_write,
+					NULL);
+			} while (ret == 0 && !force_quit);
+		}
 	}
 }
 
@@ -111,45 +115,47 @@ app_main_loop_tx(void) {
 
 	RTE_LOG(INFO, USER1, "Core %u is doing TX\n", rte_lcore_id());
 
-	for (i = 0; ; i = ((i + 1) & (app.n_ports - 1))) {
-		uint16_t n_mbufs, n_pkts;
-		int ret;
+	while (!force_quit) {
+		for (i = 0; i < app.n_ports; i++) {
+			uint16_t n_mbufs, n_pkts;
+			int ret;
 
-		n_mbufs = app.mbuf_tx[i].n_mbufs;
+			n_mbufs = app.mbuf_tx[i].n_mbufs;
 
-		ret = rte_ring_sc_dequeue_bulk(
-			app.rings_tx[i],
-			(void **) &app.mbuf_tx[i].array[n_mbufs],
-			app.burst_size_tx_read,
-			NULL);
+			ret = rte_ring_sc_dequeue_bulk(
+				app.rings_tx[i],
+				(void **) &app.mbuf_tx[i].array[n_mbufs],
+				app.burst_size_tx_read,
+				NULL);
 
-		if (ret == 0)
-			continue;
+			if (ret == 0)
+				continue;
 
-		n_mbufs += app.burst_size_tx_read;
+			n_mbufs += app.burst_size_tx_read;
 
-		if (n_mbufs < app.burst_size_tx_write) {
-			app.mbuf_tx[i].n_mbufs = n_mbufs;
-			continue;
-		}
+			if (n_mbufs < app.burst_size_tx_write) {
+				app.mbuf_tx[i].n_mbufs = n_mbufs;
+				continue;
+			}
 
-		n_pkts = rte_eth_tx_burst(
-			app.ports[i],
-			0,
-			app.mbuf_tx[i].array,
-			n_mbufs);
+			n_pkts = rte_eth_tx_burst(
+				app.ports[i],
+				0,
+				app.mbuf_tx[i].array,
+				n_mbufs);
 
-		if (n_pkts < n_mbufs) {
-			uint16_t k;
+			if (n_pkts < n_mbufs) {
+				uint16_t k;
 
-			for (k = n_pkts; k < n_mbufs; k++) {
-				struct rte_mbuf *pkt_to_free;
+				for (k = n_pkts; k < n_mbufs; k++) {
+					struct rte_mbuf *pkt_to_free;
 
-				pkt_to_free = app.mbuf_tx[i].array[k];
-				rte_pktmbuf_free(pkt_to_free);
+					pkt_to_free = app.mbuf_tx[i].array[k];
+					rte_pktmbuf_free(pkt_to_free);
+				}
 			}
-		}
 
-		app.mbuf_tx[i].n_mbufs = 0;
+			app.mbuf_tx[i].n_mbufs = 0;
+		}
 	}
 }
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-23 16:15:19.580815967 +0000
+++ 0009-app-pipeline-add-sigint-handler.patch	2023-11-23 16:15:19.223058548 +0000
@@ -1 +1 @@
-From f6897b23f70b84742129a215ea2be17c8843adb8 Mon Sep 17 00:00:00 2001
+From dfd5276c01eca734b0b0e3c8bef72f515cc700d4 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit f6897b23f70b84742129a215ea2be17c8843adb8 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -20 +20,0 @@
- .mailmap                              |   1 +
@@ -29 +29 @@
- 9 files changed, 154 insertions(+), 119 deletions(-)
+ 8 files changed, 153 insertions(+), 119 deletions(-)
@@ -31,12 +30,0 @@
-diff --git a/.mailmap b/.mailmap
-index 54e3bf7584..49d3616c4c 100644
---- a/.mailmap
-+++ b/.mailmap
-@@ -899,6 +899,7 @@ Mateusz Rusinski <mateusz.rusinski@intel.com>
- Matias Elo <matias.elo@nokia.com>
- Mats Liljegren <mats.liljegren@enea.com>
- Matteo Croce <mcroce@redhat.com>
-+Matthew Dirba <matthew.dirba@arm.com>
- Matthew Hall <mhall@mhcomputing.net>
- Matthew Smith <mgsmith@netgate.com>
- Matthew Vick <matthew.vick@intel.com>
@@ -44 +32 @@
-index 1e16794183..8633933fd9 100644
+index 72e4797ff2..f16237db3e 100644
@@ -55 +43 @@
-@@ -41,6 +42,15 @@
+@@ -42,6 +43,15 @@
@@ -71 +59 @@
-@@ -54,6 +64,10 @@ main(int argc, char **argv)
+@@ -55,6 +65,10 @@ main(int argc, char **argv)
@@ -96 +84 @@
-index 2f04868e3e..9eb4053e23 100644
+index 5857bc285f..abde4bf934 100644
@@ -253 +241 @@
-index 854319174b..8a59bd0042 100644
+index 8add5e71b7..e3d4b3fdc5 100644
@@ -276 +264 @@
-index 18d4f018f1..207ffbeff0 100644
+index 26b325180d..f9aca74e4c 100644
@@ -322 +310 @@
-index d939a85d7e..752f783370 100644
+index 159192bcd8..68d2a36dd6 100644
@@ -325 +313 @@
-@@ -48,24 +48,26 @@ app_main_loop_rx(void) {
+@@ -49,24 +49,26 @@ app_main_loop_rx(void) {
@@ -367 +355 @@
-@@ -82,25 +84,27 @@ app_main_loop_worker(void) {
+@@ -83,25 +85,27 @@ app_main_loop_worker(void) {
@@ -411 +399 @@
-@@ -110,45 +114,47 @@ app_main_loop_tx(void) {
+@@ -111,45 +115,47 @@ app_main_loop_tx(void) {

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

* patch 'doc: remove restriction on ixgbe vector support' has been queued to stable release 20.11.10
  2023-11-23 16:17             ` patch 'app/pipeline: add sigint handler' " luca.boccassi
@ 2023-11-29  2:32               ` luca.boccassi
  2023-11-29  2:32                 ` patch 'doc: fix some ordered lists' " luca.boccassi
                                   ` (4 more replies)
  0 siblings, 5 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-29  2:32 UTC (permalink / raw)
  To: David Marchand; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/958a936634d48f9652405fbe3a641ec24ff96080

Thanks.

Luca Boccassi

---
From 958a936634d48f9652405fbe3a641ec24ff96080 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Fri, 10 Nov 2023 11:54:46 +0100
Subject: [PATCH] doc: remove restriction on ixgbe vector support

[ upstream commit 0e26c9eb6b783aa2914c2a2b7ef0918bd82856be ]

The ixgbe driver has vector support for different architectures for a
while now.

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

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 doc/guides/nics/ixgbe.rst | 2 --
 1 file changed, 2 deletions(-)

diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index 388778a01d..c45cfc60bc 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -14,8 +14,6 @@ The wider register gives space to hold multiple packet buffers so as to save ins
 There is no change to PMD API. The RX/TX handler are the only two entries for vPMD packet I/O.
 They are transparently registered at runtime RX/TX execution if all condition checks pass.
 
-1.  To date, only an SSE version of IX GBE vPMD is available.
-
 Some constraints apply as pre-conditions for specific optimizations on bulk packet transfers.
 The following sections explain RX and TX constraints in the vPMD.
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-29 02:31:24.833494559 +0000
+++ 0001-doc-remove-restriction-on-ixgbe-vector-support.patch	2023-11-29 02:31:24.781770641 +0000
@@ -1 +1 @@
-From 0e26c9eb6b783aa2914c2a2b7ef0918bd82856be Mon Sep 17 00:00:00 2001
+From 958a936634d48f9652405fbe3a641ec24ff96080 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0e26c9eb6b783aa2914c2a2b7ef0918bd82856be ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index b1d77ab7ab..14573b542e 100644
+index 388778a01d..c45cfc60bc 100644
@@ -22 +23 @@
-@@ -47,8 +47,6 @@ The wider register gives space to hold multiple packet buffers so as to save ins
+@@ -14,8 +14,6 @@ The wider register gives space to hold multiple packet buffers so as to save ins

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

* patch 'doc: fix some ordered lists' has been queued to stable release 20.11.10
  2023-11-29  2:32               ` patch 'doc: remove restriction on ixgbe vector support' " luca.boccassi
@ 2023-11-29  2:32                 ` luca.boccassi
  2023-11-29  2:32                 ` patch 'doc: remove number of commands in vDPA guide' " luca.boccassi
                                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-29  2:32 UTC (permalink / raw)
  To: David Marchand; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/11b2f328f49fb7abc4b0e39f275d301af5fe4696

Thanks.

Luca Boccassi

---
From 11b2f328f49fb7abc4b0e39f275d301af5fe4696 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Fri, 10 Nov 2023 11:15:05 +0100
Subject: [PATCH] doc: fix some ordered lists

[ upstream commit fc7428ead4ee6e1239ccd0bd4065edd974549ad6 ]

Ordered lists must start preceded by an empty line.
Entries must be separated by an empty line (as per our coding style).
Incorrectly indented lines are seen as a separator and result in
starting a new list in the rendered doc.

Fix issues in some guides.

Fixes: 26b683b4f7d0 ("net/virtio: setup Rx queue interrupts")
Fixes: 9dcf5d15569b ("doc: clarify path selection in virtio guide")
Fixes: 68a03efeed65 ("doc: add Marvell cnxk platform guide")
Fixes: f6010c7655cc ("doc: add GSO programmer's guide")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 doc/guides/nics/virtio.rst                           | 12 ++++++++++++
 doc/guides/platform/octeontx2.rst                    |  3 +++
 .../prog_guide/generic_segmentation_offload_lib.rst  |  2 +-
 3 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/doc/guides/nics/virtio.rst b/doc/guides/nics/virtio.rst
index 30a99be534..1922e1b444 100644
--- a/doc/guides/nics/virtio.rst
+++ b/doc/guides/nics/virtio.rst
@@ -301,6 +301,7 @@ Prerequisites for Rx interrupts
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 To support Rx interrupts,
+
 #. Check if guest kernel supports VFIO-NOIOMMU:
 
     Linux started to support VFIO-NOIOMMU since 4.8.0. Make sure the guest
@@ -463,12 +464,16 @@ according to below configuration:
 
 #. Split virtqueue mergeable path: If Rx mergeable is negotiated, in-order feature is
    not negotiated, this path will be selected.
+
 #. Split virtqueue non-mergeable path: If Rx mergeable and in-order feature are not
    negotiated, also Rx offload(s) are requested, this path will be selected.
+
 #. Split virtqueue in-order mergeable path: If Rx mergeable and in-order feature are
    both negotiated, this path will be selected.
+
 #. Split virtqueue in-order non-mergeable path: If in-order feature is negotiated and
    Rx mergeable is not negotiated, this path will be selected.
+
 #. Split virtqueue vectorized Rx path: If Rx mergeable is disabled and no Rx offload
    requested, this path will be selected.
 
@@ -477,16 +482,21 @@ according to below configuration:
 
 #. Packed virtqueue mergeable path: If Rx mergeable is negotiated, in-order feature
    is not negotiated, this path will be selected.
+
 #. Packed virtqueue non-mergeable path: If Rx mergeable and in-order feature are not
    negotiated, this path will be selected.
+
 #. Packed virtqueue in-order mergeable path: If in-order and Rx mergeable feature are
    both negotiated, this path will be selected.
+
 #. Packed virtqueue in-order non-mergeable path: If in-order feature is negotiated and
    Rx mergeable is not negotiated, this path will be selected.
+
 #. Packed virtqueue vectorized Rx path: If building and running environment support
    AVX512 && in-order feature is negotiated && Rx mergeable is not negotiated &&
    TCP_LRO Rx offloading is disabled && vectorized option enabled,
    this path will be selected.
+
 #. Packed virtqueue vectorized Tx path: If building and running environment support
    AVX512 && in-order feature is negotiated && vectorized option enabled,
    this path will be selected.
@@ -564,5 +574,7 @@ or configuration, below steps can help you identify which path you selected and
 root cause faster.
 
 #. Run vhost/virtio test case;
+
 #. Run "perf top" and check virtio Rx/Tx callback names;
+
 #. Identify which virtio path is selected refer to above table.
diff --git a/doc/guides/platform/octeontx2.rst b/doc/guides/platform/octeontx2.rst
index f7b5fdf22a..9640d39b75 100644
--- a/doc/guides/platform/octeontx2.rst
+++ b/doc/guides/platform/octeontx2.rst
@@ -104,7 +104,9 @@ where even VF bound to the first domain and odd VF bound to the second domain.
 Typical application usage models are,
 
 #. Communication between the Linux kernel and DPDK application.
+
 #. Exception path to Linux kernel from DPDK application as SW ``KNI`` replacement.
+
 #. Communication between two different DPDK applications.
 
 SDP interface
@@ -123,6 +125,7 @@ can bind PF or VF to use SDP interface and it will be enumerated as ethdev ports
 The primary use case for SDP is to enable the smart NIC use case. Typical usage models are,
 
 #. Communication channel between remote host and OCTEON TX2 SoC over PCIe.
+
 #. Transfer packets received from network interface to remote host over PCIe and
    vice-versa.
 
diff --git a/doc/guides/prog_guide/generic_segmentation_offload_lib.rst b/doc/guides/prog_guide/generic_segmentation_offload_lib.rst
index ad91c6e5fc..ad2a8d04bb 100644
--- a/doc/guides/prog_guide/generic_segmentation_offload_lib.rst
+++ b/doc/guides/prog_guide/generic_segmentation_offload_lib.rst
@@ -204,7 +204,7 @@ To segment an outgoing packet, an application must:
    - a flag, that indicates whether the IPv4 headers of output segments should
      contain fixed or incremental ID values.
 
-2. Set the appropriate ol_flags in the mbuf.
+#. Set the appropriate ol_flags in the mbuf.
 
    - The GSO library use the value of an mbuf's ``ol_flags`` attribute to
      determine how a packet should be segmented. It is the application's
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-29 02:31:24.876054114 +0000
+++ 0002-doc-fix-some-ordered-lists.patch	2023-11-29 02:31:24.785770721 +0000
@@ -1 +1 @@
-From fc7428ead4ee6e1239ccd0bd4065edd974549ad6 Mon Sep 17 00:00:00 2001
+From 11b2f328f49fb7abc4b0e39f275d301af5fe4696 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit fc7428ead4ee6e1239ccd0bd4065edd974549ad6 ]
+
@@ -17 +18,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
- doc/guides/platform/cnxk.rst                         |  3 +++
+ doc/guides/platform/octeontx2.rst                    |  3 +++
@@ -28 +29 @@
-index ba6247170d..c22ce56a02 100644
+index 30a99be534..1922e1b444 100644
@@ -31 +32 @@
-@@ -217,6 +217,7 @@ Prerequisites for Rx interrupts
+@@ -301,6 +301,7 @@ Prerequisites for Rx interrupts
@@ -39 +40 @@
-@@ -379,12 +380,16 @@ according to below configuration:
+@@ -463,12 +464,16 @@ according to below configuration:
@@ -56 +57 @@
-@@ -393,16 +398,21 @@ according to below configuration:
+@@ -477,16 +482,21 @@ according to below configuration:
@@ -71,2 +72,2 @@
-    (AVX512 || NEON) && in-order feature is negotiated && Rx mergeable
-    is not negotiated && TCP_LRO Rx offloading is disabled && vectorized option enabled,
+    AVX512 && in-order feature is negotiated && Rx mergeable is not negotiated &&
+    TCP_LRO Rx offloading is disabled && vectorized option enabled,
@@ -76 +77 @@
-    (AVX512 || NEON)  && in-order feature is negotiated && vectorized option enabled,
+    AVX512 && in-order feature is negotiated && vectorized option enabled,
@@ -78 +79 @@
-@@ -480,5 +490,7 @@ or configuration, below steps can help you identify which path you selected and
+@@ -564,5 +574,7 @@ or configuration, below steps can help you identify which path you selected and
@@ -86,5 +87,5 @@
-diff --git a/doc/guides/platform/cnxk.rst b/doc/guides/platform/cnxk.rst
-index b3aa4de09d..b901062c93 100644
---- a/doc/guides/platform/cnxk.rst
-+++ b/doc/guides/platform/cnxk.rst
-@@ -113,7 +113,9 @@ where even VF bound to the first domain and odd VF bound to the second domain.
+diff --git a/doc/guides/platform/octeontx2.rst b/doc/guides/platform/octeontx2.rst
+index f7b5fdf22a..9640d39b75 100644
+--- a/doc/guides/platform/octeontx2.rst
++++ b/doc/guides/platform/octeontx2.rst
+@@ -104,7 +104,9 @@ where even VF bound to the first domain and odd VF bound to the second domain.
@@ -100 +101 @@
-@@ -132,6 +134,7 @@ can bind PF or VF to use SDP interface and it will be enumerated as ethdev ports
+@@ -123,6 +125,7 @@ can bind PF or VF to use SDP interface and it will be enumerated as ethdev ports
@@ -103 +104 @@
- #. Communication channel between remote host and cnxk SoC over PCIe.
+ #. Communication channel between remote host and OCTEON TX2 SoC over PCIe.
@@ -109 +110 @@
-index e605b86376..30d13bcc61 100644
+index ad91c6e5fc..ad2a8d04bb 100644

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

* patch 'doc: remove number of commands in vDPA guide' has been queued to stable release 20.11.10
  2023-11-29  2:32               ` patch 'doc: remove restriction on ixgbe vector support' " luca.boccassi
  2023-11-29  2:32                 ` patch 'doc: fix some ordered lists' " luca.boccassi
@ 2023-11-29  2:32                 ` luca.boccassi
  2023-11-29  2:32                 ` patch 'mempool: fix get function documentation' " luca.boccassi
                                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-29  2:32 UTC (permalink / raw)
  To: David Marchand; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From f26a6e7b6c2d2947b7a58f50b1acea9d194ad46a Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 23 Nov 2023 12:15:35 +0100
Subject: [PATCH] doc: remove number of commands in vDPA guide

[ upstream commit 7875e78b00bf1be03327d5dff1a32c0d5d430bec ]

There are now 5 supported commands.

Fixes: 6505865aa8ed ("examples/vdpa: add statistics show command")

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

diff --git a/doc/guides/sample_app_ug/vdpa.rst b/doc/guides/sample_app_ug/vdpa.rst
index cb9c4f2169..51e69fc20d 100644
--- a/doc/guides/sample_app_ug/vdpa.rst
+++ b/doc/guides/sample_app_ug/vdpa.rst
@@ -38,8 +38,7 @@ where
 * --iface specifies the path prefix of the UNIX domain socket file, e.g.
   /tmp/vhost-user-, then the socket files will be named as /tmp/vhost-user-<n>
   (n starts from 0).
-* --interactive means run the vdpa sample in interactive mode, currently 4
-  internal cmds are supported:
+* --interactive means run the vDPA sample in interactive mode:
 
   1. help: show help message
   2. list: list all available vdpa devices
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-29 02:31:24.921035625 +0000
+++ 0003-doc-remove-number-of-commands-in-vDPA-guide.patch	2023-11-29 02:31:24.785770721 +0000
@@ -1 +1 @@
-From 7875e78b00bf1be03327d5dff1a32c0d5d430bec Mon Sep 17 00:00:00 2001
+From f26a6e7b6c2d2947b7a58f50b1acea9d194ad46a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 7875e78b00bf1be03327d5dff1a32c0d5d430bec ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org

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

* patch 'mempool: fix get function documentation' has been queued to stable release 20.11.10
  2023-11-29  2:32               ` patch 'doc: remove restriction on ixgbe vector support' " luca.boccassi
  2023-11-29  2:32                 ` patch 'doc: fix some ordered lists' " luca.boccassi
  2023-11-29  2:32                 ` patch 'doc: remove number of commands in vDPA guide' " luca.boccassi
@ 2023-11-29  2:32                 ` luca.boccassi
  2023-11-29  2:32                 ` patch 'mempool: clarify enqueue/dequeue ops " luca.boccassi
  2023-11-29  2:32                 ` patch 'ethdev: fix ESP packet type description' " luca.boccassi
  4 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-29  2:32 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: Mahesh Adulla, Morten Brørup, Huisong Li, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/714ae833955ef08138ad7fba5dfd58e73b97466d

Thanks.

Luca Boccassi

---
From 714ae833955ef08138ad7fba5dfd58e73b97466d Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@amd.com>
Date: Mon, 23 Oct 2023 10:38:42 +0100
Subject: [PATCH] mempool: fix get function documentation
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 9b3233ab09ea331dcf5fb38d215d91818bef3b47 ]

static function `rte_mempool_do_generic_get()` returns zero on success,
not >=0 as its function comment documents.

Since this function called by public API, the comment causes confusion
on the public API return value.

Fixing the internal function documentation for return value.

Fixes: af75078fece3 ("first public release")

Reported-by: Mahesh Adulla <mahesh.adulla@amd.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@amd.com>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Huisong Li <lihuisong@huawei.com>
---
 lib/librte_mempool/rte_mempool.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h
index 19cfcd4db7..10c023b93f 100644
--- a/lib/librte_mempool/rte_mempool.h
+++ b/lib/librte_mempool/rte_mempool.h
@@ -1402,7 +1402,7 @@ rte_mempool_put(struct rte_mempool *mp, void *obj)
  * @param cache
  *   A pointer to a mempool cache structure. May be NULL if not needed.
  * @return
- *   - >=0: Success; number of objects supplied.
+ *   - 0: Success.
  *   - <0: Error; code of driver dequeue function.
  */
 static __rte_always_inline int
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-29 02:31:24.963853170 +0000
+++ 0004-mempool-fix-get-function-documentation.patch	2023-11-29 02:31:24.789770801 +0000
@@ -1 +1 @@
-From 9b3233ab09ea331dcf5fb38d215d91818bef3b47 Mon Sep 17 00:00:00 2001
+From 714ae833955ef08138ad7fba5dfd58e73b97466d Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 9b3233ab09ea331dcf5fb38d215d91818bef3b47 ]
+
@@ -18 +19,0 @@
-Cc: stable@dpdk.org
@@ -25,21 +26,8 @@
- .mailmap                  | 1 +
- lib/mempool/rte_mempool.h | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/.mailmap b/.mailmap
-index 49d3616c4c..3630e72f41 100644
---- a/.mailmap
-+++ b/.mailmap
-@@ -839,6 +839,7 @@ Maciej Rabeda <maciej.rabeda@intel.com>
- Maciej Szwed <maciej.szwed@intel.com>
- Madhu Chittim <madhu.chittim@intel.com>
- Madhuker Mythri <madhuker.mythri@oracle.com>
-+Mahesh Adulla <mahesh.adulla@amd.com>
- Mahipal Challa <mchalla@marvell.com>
- Mah Yock Gen <yock.gen.mah@intel.com>
- Mairtin o Loingsigh <mairtin.oloingsigh@intel.com>
-diff --git a/lib/mempool/rte_mempool.h b/lib/mempool/rte_mempool.h
-index df87cd231e..1303eef494 100644
---- a/lib/mempool/rte_mempool.h
-+++ b/lib/mempool/rte_mempool.h
-@@ -1484,7 +1484,7 @@ rte_mempool_put(struct rte_mempool *mp, void *obj)
+ lib/librte_mempool/rte_mempool.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h
+index 19cfcd4db7..10c023b93f 100644
+--- a/lib/librte_mempool/rte_mempool.h
++++ b/lib/librte_mempool/rte_mempool.h
+@@ -1402,7 +1402,7 @@ rte_mempool_put(struct rte_mempool *mp, void *obj)

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

* patch 'mempool: clarify enqueue/dequeue ops documentation' has been queued to stable release 20.11.10
  2023-11-29  2:32               ` patch 'doc: remove restriction on ixgbe vector support' " luca.boccassi
                                   ` (2 preceding siblings ...)
  2023-11-29  2:32                 ` patch 'mempool: fix get function documentation' " luca.boccassi
@ 2023-11-29  2:32                 ` luca.boccassi
  2023-11-29  2:32                 ` patch 'ethdev: fix ESP packet type description' " luca.boccassi
  4 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-29  2:32 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: Morten Brørup, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From a8853f9d34f297849fdbda5f3443844f0c6ce4ad Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@amd.com>
Date: Mon, 23 Oct 2023 10:38:43 +0100
Subject: [PATCH] mempool: clarify enqueue/dequeue ops documentation
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 37fc1db98c082d3f423c46bed7357a158abe53e9 ]

API documentations doesn't clarify expected return types for enqueue and
dequeue mempool_ops, clarifying it.

Fixes: 449c49b93a6b ("mempool: support handler operations")

Reported-by: Morten Brørup <mb@smartsharesystems.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@amd.com>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
---
 lib/librte_mempool/rte_mempool.h | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h
index 10c023b93f..0f5cd4b072 100644
--- a/lib/librte_mempool/rte_mempool.h
+++ b/lib/librte_mempool/rte_mempool.h
@@ -404,13 +404,19 @@ typedef int (*rte_mempool_alloc_t)(struct rte_mempool *mp);
 typedef void (*rte_mempool_free_t)(struct rte_mempool *mp);
 
 /**
- * Enqueue an object into the external pool.
+ * Enqueue 'n' objects into the external pool.
+ * @return
+ *   - 0: Success
+ *   - <0: Error
  */
 typedef int (*rte_mempool_enqueue_t)(struct rte_mempool *mp,
 		void * const *obj_table, unsigned int n);
 
 /**
- * Dequeue an object from the external pool.
+ * Dequeue 'n' objects from the external pool.
+ * @return
+ *   - 0: Success
+ *   - <0: Error
  */
 typedef int (*rte_mempool_dequeue_t)(struct rte_mempool *mp,
 		void **obj_table, unsigned int n);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-29 02:31:25.009384448 +0000
+++ 0005-mempool-clarify-enqueue-dequeue-ops-documentation.patch	2023-11-29 02:31:24.793770882 +0000
@@ -1 +1 @@
-From 37fc1db98c082d3f423c46bed7357a158abe53e9 Mon Sep 17 00:00:00 2001
+From a8853f9d34f297849fdbda5f3443844f0c6ce4ad Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 37fc1db98c082d3f423c46bed7357a158abe53e9 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
- lib/mempool/rte_mempool.h | 10 ++++++++--
+ lib/librte_mempool/rte_mempool.h | 10 ++++++++--
@@ -22,5 +23,5 @@
-diff --git a/lib/mempool/rte_mempool.h b/lib/mempool/rte_mempool.h
-index 1303eef494..95deade160 100644
---- a/lib/mempool/rte_mempool.h
-+++ b/lib/mempool/rte_mempool.h
-@@ -465,13 +465,19 @@ typedef int (*rte_mempool_alloc_t)(struct rte_mempool *mp);
+diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h
+index 10c023b93f..0f5cd4b072 100644
+--- a/lib/librte_mempool/rte_mempool.h
++++ b/lib/librte_mempool/rte_mempool.h
+@@ -404,13 +404,19 @@ typedef int (*rte_mempool_alloc_t)(struct rte_mempool *mp);

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

* patch 'ethdev: fix ESP packet type description' has been queued to stable release 20.11.10
  2023-11-29  2:32               ` patch 'doc: remove restriction on ixgbe vector support' " luca.boccassi
                                   ` (3 preceding siblings ...)
  2023-11-29  2:32                 ` patch 'mempool: clarify enqueue/dequeue ops " luca.boccassi
@ 2023-11-29  2:32                 ` luca.boccassi
  4 siblings, 0 replies; 111+ messages in thread
From: luca.boccassi @ 2023-11-29  2:32 UTC (permalink / raw)
  To: Alexander Kozyrev; +Cc: Morten Brørup, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.10

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

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

Thanks.

Luca Boccassi

---
From 2ffe9f3da36e4f12408b2f4f99b8b9e91d7a7bda Mon Sep 17 00:00:00 2001
From: Alexander Kozyrev <akozyrev@nvidia.com>
Date: Wed, 25 Oct 2023 23:32:15 +0300
Subject: [PATCH] ethdev: fix ESP packet type description
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit f647d53bdebc1a9273c01caad280aadc64d0487e ]

The correct protocol number for ESP (IP Encapsulating Security Payload)
packet type is 50. 51 is IPSec AH (Authentication Header).

Fixes: 1e84afd3906b ("mbuf: add security crypto flags and fields")

Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
---
 lib/librte_mbuf/rte_mbuf_ptype.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/librte_mbuf/rte_mbuf_ptype.h b/lib/librte_mbuf/rte_mbuf_ptype.h
index 17a2dd3576..f2276e2909 100644
--- a/lib/librte_mbuf/rte_mbuf_ptype.h
+++ b/lib/librte_mbuf/rte_mbuf_ptype.h
@@ -419,10 +419,10 @@ extern "C" {
  *
  * Packet format:
  * <'ether type'=0x0800
- * | 'version'=4, 'protocol'=51>
+ * | 'version'=4, 'protocol'=50>
  * or,
  * <'ether type'=0x86DD
- * | 'version'=6, 'next header'=51>
+ * | 'version'=6, 'next header'=50>
  */
 #define RTE_PTYPE_TUNNEL_ESP                0x00009000
 /**
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-29 02:31:25.053236158 +0000
+++ 0006-ethdev-fix-ESP-packet-type-description.patch	2023-11-29 02:31:24.793770882 +0000
@@ -1 +1 @@
-From f647d53bdebc1a9273c01caad280aadc64d0487e Mon Sep 17 00:00:00 2001
+From 2ffe9f3da36e4f12408b2f4f99b8b9e91d7a7bda Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit f647d53bdebc1a9273c01caad280aadc64d0487e ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
- lib/mbuf/rte_mbuf_ptype.h | 4 ++--
+ lib/librte_mbuf/rte_mbuf_ptype.h | 4 ++--
@@ -21 +22 @@
-diff --git a/lib/mbuf/rte_mbuf_ptype.h b/lib/mbuf/rte_mbuf_ptype.h
+diff --git a/lib/librte_mbuf/rte_mbuf_ptype.h b/lib/librte_mbuf/rte_mbuf_ptype.h
@@ -23,2 +24,2 @@
---- a/lib/mbuf/rte_mbuf_ptype.h
-+++ b/lib/mbuf/rte_mbuf_ptype.h
+--- a/lib/librte_mbuf/rte_mbuf_ptype.h
++++ b/lib/librte_mbuf/rte_mbuf_ptype.h

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

end of thread, other threads:[~2023-11-29  2:33 UTC | newest]

Thread overview: 111+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-18 23:58 patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 20.11.10 luca.boccassi
2023-10-18 23:58 ` patch 'rawdev: fix device class in log message' " luca.boccassi
2023-10-18 23:58 ` patch 'net/bonding: fix header for C++' " luca.boccassi
2023-10-18 23:58 ` patch 'net/hns3: fix VF default MAC modified when set failed' " luca.boccassi
2023-10-18 23:58 ` patch 'net/hns3: fix error code for multicast resource' " luca.boccassi
2023-10-18 23:58 ` patch 'net/hns3: fix flushing multicast MAC address' " luca.boccassi
2023-10-18 23:58 ` patch 'app/test: fix reference to master in bonding test' " luca.boccassi
2023-10-18 23:58 ` patch 'net/hns3: fix order in NEON Rx' " luca.boccassi
2023-10-18 23:58 ` patch 'random: initialize state for unregistered non-EAL threads' " luca.boccassi
2023-10-18 23:58 ` patch 'bus/dpaa: fix build with asserts for GCC 13' " luca.boccassi
2023-10-18 23:59 ` patch 'hash: align SSE lookup to scalar implementation' " luca.boccassi
2023-10-18 23:59 ` patch 'net/netvsc: increase VSP response timeout to 60 seconds' " luca.boccassi
2023-10-18 23:59 ` patch 'net/txgbe: add Tx queue maximum limit' " luca.boccassi
2023-10-18 23:59 ` patch 'net/txgbe: reconfigure MAC Rx when link update' " luca.boccassi
2023-10-18 23:59 ` patch 'net/txgbe: keep link down after device close' " luca.boccassi
2023-10-18 23:59 ` patch 'net/txgbe: check process type in close operation' " luca.boccassi
2023-10-18 23:59 ` patch 'net/tap: use MAC address parse API instead of local parser' " luca.boccassi
2023-10-18 23:59 ` patch 'app/testpmd: fix help string' " luca.boccassi
2023-10-18 23:59 ` patch 'cryptodev: add missing doc for security context' " luca.boccassi
2023-10-18 23:59 ` patch 'doc: replace code blocks with includes in security guide' " luca.boccassi
2023-10-18 23:59 ` patch 'test/crypto: fix IV in some vectors' " luca.boccassi
2023-10-18 23:59 ` patch 'test/crypto: skip some synchronous tests with CPU crypto' " luca.boccassi
2023-10-19 10:22   ` Power, Ciara
2023-10-19 10:28   ` Power, Ciara
2023-10-18 23:59 ` patch 'test/crypto: fix typo in asym tests' " luca.boccassi
2023-10-18 23:59 ` patch 'bus/pci: fix device ID log' " luca.boccassi
2023-10-18 23:59 ` patch 'test/event: fix crypto null device creation' " luca.boccassi
2023-10-18 23:59 ` patch 'event/sw: remove obsolete comment' " luca.boccassi
2023-10-18 23:59 ` patch 'event/sw: fix ordering corruption with op release' " luca.boccassi
2023-10-18 23:59 ` patch 'net/i40e: fix FDIR queue receives broadcast packets' " luca.boccassi
2023-10-18 23:59 ` patch 'net/iavf: fix VLAN offload strip flag' " luca.boccassi
2023-10-18 23:59 ` patch 'net/i40e: fix buffer leak on Rx reconfiguration' " luca.boccassi
2023-10-18 23:59 ` patch 'net/iavf: fix port stats clearing' " luca.boccassi
2023-10-18 23:59 ` patch 'net/ice: fix initial link status' " luca.boccassi
2023-10-18 23:59 ` patch 'net/iavf: remove log from Tx prepare function' " luca.boccassi
2023-10-18 23:59 ` patch 'net/iavf: fix TSO with big segments' " luca.boccassi
2023-10-18 23:59 ` patch 'net/ice: remove log from Tx prepare function' " luca.boccassi
2023-10-18 23:59 ` patch 'net/ice: fix TSO with big segments' " luca.boccassi
2023-10-18 23:59 ` patch 'net/mlx5: fix leak in sysfs port name translation' " luca.boccassi
2023-10-18 23:59 ` patch 'fib: fix adding default route overwriting entire table' " luca.boccassi
2023-10-18 23:59 ` patch 'fib6: fix adding default route as first route' " luca.boccassi
2023-10-18 23:59 ` patch 'net/bonding: fix link status callback stop' " luca.boccassi
2023-10-18 23:59 ` patch 'app/procinfo: remove unnecessary rte_malloc' " luca.boccassi
2023-11-08 19:24   ` patch 'malloc: remove return from void functions' " luca.boccassi
2023-11-08 19:25     ` patch 'eventdev: fix device pointer for vdev-based devices' " luca.boccassi
2023-11-08 19:25     ` patch 'eventdev: fix missing driver names in info struct' " luca.boccassi
2023-11-08 19:25     ` patch 'net/virtio: fix missing next flag in Tx packed ring' " luca.boccassi
2023-11-08 19:25     ` patch 'net/virtio: fix link state interrupt vector setting' " luca.boccassi
2023-11-08 19:25     ` patch 'vhost: fix missing vring call check on virtqueue access' " luca.boccassi
2023-11-08 19:25     ` patch 'vhost: fix missing " luca.boccassi
2023-11-08 19:25     ` patch 'ethdev: fix function name in comment' " luca.boccassi
2023-11-08 19:25     ` patch 'app/testpmd: fix early exit from signal' " luca.boccassi
2023-11-08 19:25     ` patch 'net/hns3: fix unchecked Rx free threshold' " luca.boccassi
2023-11-08 19:25     ` patch 'net/hns3: fix crash for NEON and SVE' " luca.boccassi
2023-11-08 19:25     ` patch 'net/hns3: fix double stats for IMP and global reset' " luca.boccassi
2023-11-08 19:25     ` patch 'net/hns3: remove reset log in secondary' " luca.boccassi
2023-11-08 19:25     ` patch 'test/bonding: remove unreachable statement' " luca.boccassi
2023-11-08 19:25     ` patch 'test/bonding: add missing check' " luca.boccassi
2023-11-08 19:25     ` patch 'net/bonding: fix possible overrun' " luca.boccassi
2023-11-08 19:25     ` patch 'net/txgbe: add proper memory barriers in Rx' " luca.boccassi
2023-11-08 19:25     ` patch 'ethdev: fix 32-bit build with GCC 13' " luca.boccassi
2023-11-08 19:25     ` patch 'net/enic: avoid extra unlock in MTU set' " luca.boccassi
2023-11-08 19:25     ` patch 'net/hns3: fix setting DCB capability' " luca.boccassi
2023-11-08 19:25     ` patch 'net/hns3: fix some return values' " luca.boccassi
2023-11-08 19:25     ` patch 'net/hns3: fix some error logs' " luca.boccassi
2023-11-08 19:25     ` patch 'net/hns3: keep set/get algo key functions local' " luca.boccassi
2023-11-08 19:25     ` patch 'net/hns3: fix uninitialized hash algo value' " luca.boccassi
2023-11-08 19:25     ` patch 'net/tap: fix L4 checksum offloading' " luca.boccassi
2023-11-08 19:25     ` patch 'net/tap: fix IPv4 " luca.boccassi
2023-11-08 19:25     ` patch 'app/procinfo: fix RSS info' " luca.boccassi
2023-11-08 19:25     ` patch 'app/procinfo: adjust format of " luca.boccassi
2023-11-08 19:25     ` patch 'net/nfp: fix link status interrupt' " luca.boccassi
2023-11-08 19:25     ` patch 'net/nfp: fix DMA error after abnormal exit' " luca.boccassi
2023-11-08 19:25     ` patch 'net/tap: fix RSS for fragmented packets' " luca.boccassi
2023-11-08 19:25     ` patch 'common/mlx5: fix controller index parsing' " luca.boccassi
2023-11-08 19:25     ` patch 'net/ice: fix L1 check interval' " luca.boccassi
2023-11-08 19:25     ` patch 'net/ice: fix DCF port statistics' " luca.boccassi
2023-11-08 19:25     ` patch 'crypto/nitrox: fix panic with high number of segments' " luca.boccassi
2023-11-08 19:25     ` patch 'net/iavf: fix Tx preparation' " luca.boccassi
2023-11-08 19:25     ` patch 'net/ice: " luca.boccassi
2023-11-15 11:45       ` patch 'event/dlb2: fix name check in self-test' " luca.boccassi
2023-11-15 11:45         ` patch 'test/bbdev: fix Python script subprocess' " luca.boccassi
2023-11-15 11:45         ` patch 'test/bbdev: assert failed test for queue configure' " luca.boccassi
2023-11-15 11:45         ` patch 'event/dlb2: fix missing queue ordering capability flag' " luca.boccassi
2023-11-15 11:45         ` patch 'meter: fix RFC4115 trTCM API Doxygen' " luca.boccassi
2023-11-15 11:45         ` patch 'app/testpmd: remove useless check in TSO command' " luca.boccassi
2023-11-15 11:45         ` patch 'test/bonding: fix uninitialized RSS configuration' " luca.boccassi
2023-11-15 11:45         ` patch 'net/hns3: fix mailbox sync' " luca.boccassi
2023-11-15 11:45         ` patch 'app/testpmd: fix tunnel TSO capability check' " luca.boccassi
2023-11-15 11:45         ` patch 'app/testpmd: add explicit check for tunnel TSO' " luca.boccassi
2023-11-15 11:45         ` patch 'app/testpmd: fix tunnel TSO configuration' " luca.boccassi
2023-11-15 11:45         ` patch 'net/mlx5: fix hairpin queue unbind' " luca.boccassi
2023-11-15 11:45         ` patch 'net/mlx5: fix hairpin queue states' " luca.boccassi
2023-11-15 11:45         ` patch 'net/mlx5: fix multi-segment Tx inline data length' " luca.boccassi
2023-11-15 11:45         ` patch 'net/mlx5: zero UDP checksum over IPv4 in encapsulation' " luca.boccassi
2023-11-15 11:45         ` patch 'net/mlx5: fix MPRQ stride size check' " luca.boccassi
2023-11-23 16:17           ` patch 'net/txgbe: fix out of bound access' " luca.boccassi
2023-11-23 16:17             ` patch 'doc: update features in hns3 guide' " luca.boccassi
2023-11-23 16:17             ` patch 'doc: update versions recommendations for i40e and ice' " luca.boccassi
2023-11-23 16:17             ` patch 'examples/ipsec-secgw: fix partial overflow' " luca.boccassi
2023-11-23 16:17             ` patch 'eal/windows: fix build with recent MinGW' " luca.boccassi
2023-11-23 16:17             ` patch 'pdump: fix error number on IPC response' " luca.boccassi
2023-11-23 16:17             ` patch 'examples/ethtool: fix pause configuration' " luca.boccassi
2023-11-23 16:17             ` patch 'test/hash: fix creation error log' " luca.boccassi
2023-11-23 16:17             ` patch 'app/pipeline: add sigint handler' " luca.boccassi
2023-11-29  2:32               ` patch 'doc: remove restriction on ixgbe vector support' " luca.boccassi
2023-11-29  2:32                 ` patch 'doc: fix some ordered lists' " luca.boccassi
2023-11-29  2:32                 ` patch 'doc: remove number of commands in vDPA guide' " luca.boccassi
2023-11-29  2:32                 ` patch 'mempool: fix get function documentation' " luca.boccassi
2023-11-29  2:32                 ` patch 'mempool: clarify enqueue/dequeue ops " luca.boccassi
2023-11-29  2:32                 ` patch 'ethdev: fix ESP packet type description' " luca.boccassi

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).