patches for DPDK stable branches
 help / color / mirror / Atom feed
* patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6
@ 2023-11-16 13:22 Kevin Traynor
  2023-11-16 13:22 ` patch 'eventdev: fix missing driver names in info struct' " Kevin Traynor
                   ` (62 more replies)
  0 siblings, 63 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:22 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 48ecb471d93ff145ae36ac74f2f648203cf481c1 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/eventdev/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 ff6cc0be18..4cc89b4f82 100644
--- a/drivers/event/dpaa/dpaa_eventdev.c
+++ b/drivers/event/dpaa/dpaa_eventdev.c
@@ -993,5 +993,5 @@ 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;
@@ -1000,5 +1000,5 @@ dpaa_event_dev_create(const char *name, const char *params)
 	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);
@@ -1050,5 +1050,5 @@ 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);
 }
 
diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c
index 4d94c315d2..0a5c1c3f95 100644
--- a/drivers/event/dpaa2/dpaa2_eventdev.c
+++ b/drivers/event/dpaa2/dpaa2_eventdev.c
@@ -1084,5 +1084,5 @@ 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;
@@ -1094,5 +1094,5 @@ 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);
@@ -1188,5 +1188,5 @@ 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);
 }
 
diff --git a/drivers/event/dsw/dsw_evdev.c b/drivers/event/dsw/dsw_evdev.c
index 6c5cde2468..abe8e68525 100644
--- a/drivers/event/dsw/dsw_evdev.c
+++ b/drivers/event/dsw/dsw_evdev.c
@@ -435,5 +435,5 @@ dsw_probe(struct rte_vdev_device *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 9e14e35d10..634fa8a27f 100644
--- a/drivers/event/octeontx/ssovf_evdev.c
+++ b/drivers/event/octeontx/ssovf_evdev.c
@@ -880,5 +880,5 @@ 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);
diff --git a/drivers/event/opdl/opdl_evdev.c b/drivers/event/opdl/opdl_evdev.c
index 8b6890b220..2774a923aa 100644
--- a/drivers/event/opdl/opdl_evdev.c
+++ b/drivers/event/opdl/opdl_evdev.c
@@ -696,5 +696,5 @@ 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) {
diff --git a/drivers/event/skeleton/skeleton_eventdev.c b/drivers/event/skeleton/skeleton_eventdev.c
index bf3b01ebc8..66510cc432 100644
--- a/drivers/event/skeleton/skeleton_eventdev.c
+++ b/drivers/event/skeleton/skeleton_eventdev.c
@@ -428,10 +428,10 @@ RTE_PMD_REGISTER_PCI_TABLE(event_skeleton_pci, pci_id_skeleton_map);
 
 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);
@@ -459,5 +459,5 @@ skeleton_eventdev_probe(struct rte_vdev_device *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);
 }
 
diff --git a/drivers/event/sw/sw_evdev.c b/drivers/event/sw/sw_evdev.c
index fb2ee552aa..e43bf250d6 100644
--- a/drivers/event/sw/sw_evdev.c
+++ b/drivers/event/sw/sw_evdev.c
@@ -1078,5 +1078,5 @@ sw_probe(struct rte_vdev_device *vdev)
 
 	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");
diff --git a/lib/eventdev/eventdev_pmd_vdev.h b/lib/eventdev/eventdev_pmd_vdev.h
index 77904910a2..aa809dff4f 100644
--- a/lib/eventdev/eventdev_pmd_vdev.h
+++ b/lib/eventdev/eventdev_pmd_vdev.h
@@ -45,5 +45,5 @@ __rte_internal
 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)
 {
 
@@ -67,4 +67,5 @@ rte_event_pmd_vdev_init(const char *name, size_t dev_private_size,
 					" data");
 	}
+	eventdev->dev = &vdev->device;
 
 	return eventdev;
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:52.622356881 +0000
+++ 0001-eventdev-fix-device-pointer-for-vdev-based-devices.patch	2023-11-16 13:21:52.384946183 +0000
@@ -1 +1 @@
-From 928b5c701f254c64a7adb0051c0cfd25e8365584 Mon Sep 17 00:00:00 2001
+From 48ecb471d93ff145ae36ac74f2f648203cf481c1 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 928b5c701f254c64a7adb0051c0cfd25e8365584 ]
+
@@ -25 +26,0 @@
-Cc: stable@dpdk.org
@@ -41 +42 @@
-index f615da3813..46a9b88c73 100644
+index ff6cc0be18..4cc89b4f82 100644
@@ -44 +45 @@
-@@ -995,5 +995,5 @@ dpaa_event_check_flags(const char *params)
+@@ -993,5 +993,5 @@ dpaa_event_check_flags(const char *params)
@@ -51 +52 @@
-@@ -1002,5 +1002,5 @@ dpaa_event_dev_create(const char *name, const char *params)
+@@ -1000,5 +1000,5 @@ dpaa_event_dev_create(const char *name, const char *params)
@@ -58 +59 @@
-@@ -1052,5 +1052,5 @@ dpaa_event_dev_probe(struct rte_vdev_device *vdev)
+@@ -1050,5 +1050,5 @@ dpaa_event_dev_probe(struct rte_vdev_device *vdev)
@@ -66 +67 @@
-index ffc5550f85..dd4e64395f 100644
+index 4d94c315d2..0a5c1c3f95 100644
@@ -69 +70 @@
-@@ -1087,5 +1087,5 @@ dpaa2_eventdev_setup_dpci(struct dpaa2_dpci_dev *dpci_dev,
+@@ -1084,5 +1084,5 @@ dpaa2_eventdev_setup_dpci(struct dpaa2_dpci_dev *dpci_dev,
@@ -76 +77 @@
-@@ -1097,5 +1097,5 @@ dpaa2_eventdev_create(const char *name)
+@@ -1094,5 +1094,5 @@ dpaa2_eventdev_create(const char *name)
@@ -83 +84 @@
-@@ -1191,5 +1191,5 @@ dpaa2_eventdev_probe(struct rte_vdev_device *vdev)
+@@ -1188,5 +1188,5 @@ dpaa2_eventdev_probe(struct rte_vdev_device *vdev)
@@ -91 +92 @@
-index 785c12f61f..1209e73a9d 100644
+index 6c5cde2468..abe8e68525 100644
@@ -94 +95 @@
-@@ -436,5 +436,5 @@ dsw_probe(struct rte_vdev_device *vdev)
+@@ -435,5 +435,5 @@ dsw_probe(struct rte_vdev_device *vdev)
@@ -102 +103 @@
-index 0eb9358981..a16f24e088 100644
+index 9e14e35d10..634fa8a27f 100644
@@ -105 +106 @@
-@@ -881,5 +881,5 @@ ssovf_vdev_probe(struct rte_vdev_device *vdev)
+@@ -880,5 +880,5 @@ ssovf_vdev_probe(struct rte_vdev_device *vdev)
@@ -113 +114 @@
-index dd25749654..0cccaf7e97 100644
+index 8b6890b220..2774a923aa 100644
@@ -116 +117 @@
-@@ -698,5 +698,5 @@ opdl_probe(struct rte_vdev_device *vdev)
+@@ -696,5 +696,5 @@ opdl_probe(struct rte_vdev_device *vdev)
@@ -124 +125 @@
-index dd2dab2e27..7df032b7da 100644
+index bf3b01ebc8..66510cc432 100644
@@ -127 +128 @@
-@@ -429,10 +429,10 @@ RTE_PMD_REGISTER_PCI_TABLE(event_skeleton_pci, pci_id_skeleton_map);
+@@ -428,10 +428,10 @@ RTE_PMD_REGISTER_PCI_TABLE(event_skeleton_pci, pci_id_skeleton_map);
@@ -140 +141 @@
-@@ -460,5 +460,5 @@ skeleton_eventdev_probe(struct rte_vdev_device *vdev)
+@@ -459,5 +459,5 @@ skeleton_eventdev_probe(struct rte_vdev_device *vdev)
@@ -148 +149 @@
-index 6d1816b76d..55e7735cb0 100644
+index fb2ee552aa..e43bf250d6 100644
@@ -151 +152 @@
-@@ -1076,5 +1076,5 @@ sw_probe(struct rte_vdev_device *vdev)
+@@ -1078,5 +1078,5 @@ sw_probe(struct rte_vdev_device *vdev)
@@ -159 +160 @@
-index 5fa9d699ac..bb433ba955 100644
+index 77904910a2..aa809dff4f 100644
@@ -162 +163 @@
-@@ -46,5 +46,5 @@ __rte_internal
+@@ -45,5 +45,5 @@ __rte_internal
@@ -169 +170 @@
-@@ -68,4 +68,5 @@ rte_event_pmd_vdev_init(const char *name, size_t dev_private_size,
+@@ -67,4 +67,5 @@ rte_event_pmd_vdev_init(const char *name, size_t dev_private_size,


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

* patch 'eventdev: fix missing driver names in info struct' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
@ 2023-11-16 13:22 ` Kevin Traynor
  2023-11-16 13:22 ` patch 'net/virtio: fix missing next flag in Tx packed ring' " Kevin Traynor
                   ` (61 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:22 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From c900dccdfe6638ad0850edfdb357156df2e76219 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/eventdev/rte_eventdev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/eventdev/rte_eventdev.c b/lib/eventdev/rte_eventdev.c
index 79b9ea3a02..cb52f17b50 100644
--- a/lib/eventdev/rte_eventdev.c
+++ b/lib/eventdev/rte_eventdev.c
@@ -110,4 +110,6 @@ rte_event_dev_info_get(uint8_t dev_id, struct rte_event_dev_info *dev_info)
 
 	dev_info->dev = dev->dev;
+	if (dev->dev != NULL && dev->dev->driver != NULL)
+		dev_info->driver_name = dev->dev->driver->name;
 	return 0;
 }
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:52.646082811 +0000
+++ 0002-eventdev-fix-missing-driver-names-in-info-struct.patch	2023-11-16 13:21:52.387946191 +0000
@@ -1 +1 @@
-From cbbba8b87e03a028a2ac2f3542f1927ba4edc598 Mon Sep 17 00:00:00 2001
+From c900dccdfe6638ad0850edfdb357156df2e76219 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit cbbba8b87e03a028a2ac2f3542f1927ba4edc598 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 95373bbaad..0ca32d6721 100644
+index 79b9ea3a02..cb52f17b50 100644
@@ -25 +26 @@
-@@ -105,4 +105,6 @@ rte_event_dev_info_get(uint8_t dev_id, struct rte_event_dev_info *dev_info)
+@@ -110,4 +110,6 @@ rte_event_dev_info_get(uint8_t dev_id, struct rte_event_dev_info *dev_info)
@@ -30,2 +31,2 @@
- 
- 	rte_eventdev_trace_info_get(dev_id, dev_info, dev_info->dev);
+ 	return 0;
+ }


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

* patch 'net/virtio: fix missing next flag in Tx packed ring' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
  2023-11-16 13:22 ` patch 'eventdev: fix missing driver names in info struct' " Kevin Traynor
@ 2023-11-16 13:22 ` Kevin Traynor
  2023-11-16 13:22 ` patch 'net/virtio: fix link state interrupt vector setting' " Kevin Traynor
                   ` (60 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:22 UTC (permalink / raw)
  To: Fengjiang Liu; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 0c91efd3313447e75d1d0c9abf76a1798c8451c8 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>
---
 .mailmap                       | 1 +
 drivers/net/virtio/virtqueue.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/.mailmap b/.mailmap
index f0aac43189..1111c386e2 100644
--- a/.mailmap
+++ b/.mailmap
@@ -377,4 +377,5 @@ 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>
diff --git a/drivers/net/virtio/virtqueue.h b/drivers/net/virtio/virtqueue.h
index 99c68cf622..9a77e7d701 100644
--- a/drivers/net/virtio/virtqueue.h
+++ b/drivers/net/virtio/virtqueue.h
@@ -776,4 +776,5 @@ virtqueue_enqueue_xmit_packed(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
 			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++;
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:52.667948162 +0000
+++ 0003-net-virtio-fix-missing-next-flag-in-Tx-packed-ring.patch	2023-11-16 13:21:52.392946206 +0000
@@ -1 +1 @@
-From f923636411c557782f4718de8bee856d60afa74c Mon Sep 17 00:00:00 2001
+From 0c91efd3313447e75d1d0c9abf76a1798c8451c8 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit f923636411c557782f4718de8bee856d60afa74c ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 3f5bab26a8..5273df74cb 100644
+index f0aac43189..1111c386e2 100644
@@ -25 +26 @@
-@@ -395,4 +395,5 @@ Fei Chen <chenwei.0515@bytedance.com>
+@@ -377,4 +377,5 @@ Fei Chen <chenwei.0515@bytedance.com>
@@ -32 +33 @@
-index c1cb941c43..5d0c0399a8 100644
+index 99c68cf622..9a77e7d701 100644
@@ -35,3 +36,3 @@
-@@ -683,4 +683,5 @@ 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;
+@@ -776,4 +776,5 @@ virtqueue_enqueue_xmit_packed(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
+ 			RTE_PTR_DIFF(&txr[idx].tx_hdr, txr);
+ 		start_dp[idx].len   = vq->hw->vtnet_hdr_size;


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

* patch 'net/virtio: fix link state interrupt vector setting' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
  2023-11-16 13:22 ` patch 'eventdev: fix missing driver names in info struct' " Kevin Traynor
  2023-11-16 13:22 ` patch 'net/virtio: fix missing next flag in Tx packed ring' " Kevin Traynor
@ 2023-11-16 13:22 ` Kevin Traynor
  2023-11-16 13:22 ` patch 'vhost: fix missing vring call check on virtqueue access' " Kevin Traynor
                   ` (59 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:22 UTC (permalink / raw)
  To: Wenwu Ma; +Cc: Wei Ling, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 98857c5b76557096397f802c72690a2235005b7c 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 a23559850c..2a35024250 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -2356,4 +2356,12 @@ 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 (VIRTIO_OPS(hw)->set_config_irq(hw, 0) ==
+				VIRTIO_MSI_NO_VECTOR) {
+			PMD_DRV_LOG(ERR, "failed to set config vector");
+			return -EBUSY;
+		}
+
 	virtio_reinit_complete(hw);
 
@@ -2675,12 +2683,4 @@ virtio_dev_configure(struct rte_eth_dev *dev)
 	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 (VIRTIO_OPS(hw)->set_config_irq(hw, 0) ==
-				VIRTIO_MSI_NO_VECTOR) {
-			PMD_DRV_LOG(ERR, "failed to set config vector");
-			return -EBUSY;
-		}
-
 	if (virtio_with_packed_queue(hw)) {
 #if defined(RTE_ARCH_X86_64) && defined(CC_AVX512_SUPPORT)
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:52.690300303 +0000
+++ 0004-net-virtio-fix-link-state-interrupt-vector-setting.patch	2023-11-16 13:21:52.396946218 +0000
@@ -1 +1 @@
-From efc3f842b3dd69c4e65dbdf6cdaccde8c759b5d9 Mon Sep 17 00:00:00 2001
+From 98857c5b76557096397f802c72690a2235005b7c 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 a23559850c..2a35024250 100644
@@ -23 +24 @@
-@@ -1913,4 +1913,12 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
+@@ -2356,4 +2356,12 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
@@ -36 +37 @@
-@@ -2238,12 +2246,4 @@ virtio_dev_configure(struct rte_eth_dev *dev)
+@@ -2675,12 +2683,4 @@ virtio_dev_configure(struct rte_eth_dev *dev)


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

* patch 'vhost: fix missing vring call check on virtqueue access' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (2 preceding siblings ...)
  2023-11-16 13:22 ` patch 'net/virtio: fix link state interrupt vector setting' " Kevin Traynor
@ 2023-11-16 13:22 ` Kevin Traynor
  2023-11-16 13:22 ` patch 'vhost: fix missing " Kevin Traynor
                   ` (58 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:22 UTC (permalink / raw)
  To: Maxime Coquelin; +Cc: Li Feng, David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From e9b6f56c9c122f1d9ea5be3dbde32a1eed318c59 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/vhost/vhost.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c
index 86672fcc33..c72c9aa40e 100644
--- a/lib/vhost/vhost.c
+++ b/lib/vhost/vhost.c
@@ -1288,4 +1288,5 @@ 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);
@@ -1302,4 +1303,9 @@ 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);
@@ -1307,7 +1313,8 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
 		vhost_vring_call_split(dev, vq);
 
+out_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
-	return 0;
+	return ret;
 }
 
@@ -1317,4 +1324,5 @@ 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);
@@ -1332,4 +1340,9 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
 		return -EAGAIN;
 
+	if (unlikely(!vq->access_ok)) {
+		ret = -1;
+		goto out_unlock;
+	}
+
 	if (vq_is_packed(dev))
 		vhost_vring_call_packed(dev, vq);
@@ -1337,7 +1350,8 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
 		vhost_vring_call_split(dev, vq);
 
+out_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
-	return 0;
+	return ret;
 }
 
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:52.712011280 +0000
+++ 0005-vhost-fix-missing-vring-call-check-on-virtqueue-acce.patch	2023-11-16 13:21:52.398946223 +0000
@@ -1 +1 @@
-From af7f683615244675fc4f472a2aa42880896476ad Mon Sep 17 00:00:00 2001
+From e9b6f56c9c122f1d9ea5be3dbde32a1eed318c59 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit af7f683615244675fc4f472a2aa42880896476ad ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index bdcf85bece..b438330063 100644
+index 86672fcc33..c72c9aa40e 100644
@@ -27 +28 @@
-@@ -1333,4 +1333,5 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
+@@ -1288,4 +1288,5 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
@@ -33,2 +34,2 @@
-@@ -1347,4 +1348,9 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
- 	rte_rwlock_read_lock(&vq->access_lock);
+@@ -1302,4 +1303,9 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
+ 	rte_spinlock_lock(&vq->access_lock);
@@ -43 +44 @@
-@@ -1352,7 +1358,8 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
+@@ -1307,7 +1313,8 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
@@ -47 +48 @@
- 	rte_rwlock_read_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);
@@ -53 +54 @@
-@@ -1362,4 +1369,5 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
+@@ -1317,4 +1324,5 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
@@ -59 +60 @@
-@@ -1377,4 +1385,9 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
+@@ -1332,4 +1340,9 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
@@ -69 +70 @@
-@@ -1382,7 +1395,8 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
+@@ -1337,7 +1350,8 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
@@ -73 +74 @@
- 	rte_rwlock_read_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);


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

* patch 'vhost: fix missing check on virtqueue access' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (3 preceding siblings ...)
  2023-11-16 13:22 ` patch 'vhost: fix missing vring call check on virtqueue access' " Kevin Traynor
@ 2023-11-16 13:22 ` Kevin Traynor
  2023-11-16 13:22 ` patch 'vhost: fix check on virtqueue access in async registration' " Kevin Traynor
                   ` (57 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:22 UTC (permalink / raw)
  To: Maxime Coquelin; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 900cc61cbecf2d4e780cf6ccd36b799b4f0865e7 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/vhost/vhost.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c
index c72c9aa40e..45e34e0df1 100644
--- a/lib/vhost/vhost.c
+++ b/lib/vhost/vhost.c
@@ -1376,5 +1376,8 @@ 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;
 
@@ -1468,7 +1471,13 @@ 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);
 
@@ -1530,5 +1539,8 @@ rte_vhost_rx_queue_count(int vid, uint16_t qid)
 	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;
 
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:52.733207167 +0000
+++ 0006-vhost-fix-missing-check-on-virtqueue-access.patch	2023-11-16 13:21:52.399946226 +0000
@@ -1 +1 @@
-From 094c442cdbf1da3a19ae82ca7069fee8b3a43343 Mon Sep 17 00:00:00 2001
+From 900cc61cbecf2d4e780cf6ccd36b799b4f0865e7 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 094c442cdbf1da3a19ae82ca7069fee8b3a43343 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index b438330063..43173c9eee 100644
+index c72c9aa40e..45e34e0df1 100644
@@ -24,2 +25,2 @@
-@@ -1421,5 +1421,8 @@ rte_vhost_avail_entries(int vid, uint16_t queue_id)
- 	rte_rwlock_write_lock(&vq->access_lock);
+@@ -1376,5 +1376,8 @@ rte_vhost_avail_entries(int vid, uint16_t queue_id)
+ 	rte_spinlock_lock(&vq->access_lock);
@@ -34,2 +35,2 @@
-@@ -1513,7 +1516,13 @@ rte_vhost_enable_guest_notification(int vid, uint16_t queue_id, int enable)
- 	rte_rwlock_write_lock(&vq->access_lock);
+@@ -1468,7 +1471,13 @@ rte_vhost_enable_guest_notification(int vid, uint16_t queue_id, int enable)
+ 	rte_spinlock_lock(&vq->access_lock);
@@ -46 +47 @@
- 	rte_rwlock_write_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);
@@ -48,2 +49,2 @@
-@@ -1608,5 +1617,8 @@ rte_vhost_rx_queue_count(int vid, uint16_t qid)
- 	rte_rwlock_write_lock(&vq->access_lock);
+@@ -1530,5 +1539,8 @@ rte_vhost_rx_queue_count(int vid, uint16_t qid)
+ 	rte_spinlock_lock(&vq->access_lock);


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

* patch 'vhost: fix check on virtqueue access in async registration' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (4 preceding siblings ...)
  2023-11-16 13:22 ` patch 'vhost: fix missing " Kevin Traynor
@ 2023-11-16 13:22 ` Kevin Traynor
  2023-11-16 13:22 ` patch 'vhost: fix check on virtqueue access in in-flight getter' " Kevin Traynor
                   ` (56 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:22 UTC (permalink / raw)
  To: Maxime Coquelin; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 201e1f617be367c49d95579f803931121a123069 Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Fri, 20 Oct 2023 10:48:01 +0200
Subject: [PATCH] vhost: fix check on virtqueue access in async registration

[ upstream commit 867d31bed41c87510e860956ee6a67c047d98f87 ]

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: 78639d54563a ("vhost: introduce async enqueue registration API")

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

diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c
index 45e34e0df1..038baf53fd 100644
--- a/lib/vhost/vhost.c
+++ b/lib/vhost/vhost.c
@@ -1783,5 +1783,13 @@ rte_vhost_async_channel_register(int vid, uint16_t queue_id,
 
 	rte_spinlock_lock(&vq->access_lock);
+
+	if (unlikely(!vq->access_ok)) {
+		ret = -1;
+		goto out_unlock;
+	}
+
 	ret = async_channel_register(vid, queue_id, ops);
+
+out_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
@@ -1846,4 +1854,9 @@ rte_vhost_async_channel_unregister(int vid, uint16_t queue_id)
 	}
 
+	if (unlikely(!vq->access_ok)) {
+		ret = -1;
+		goto out_unlock;
+	}
+
 	if (!vq->async) {
 		ret = 0;
@@ -1856,4 +1869,5 @@ rte_vhost_async_channel_unregister(int vid, uint16_t queue_id)
 	}
 
+out_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:52.755227668 +0000
+++ 0007-vhost-fix-check-on-virtqueue-access-in-async-registr.patch	2023-11-16 13:21:52.401946232 +0000
@@ -1 +1 @@
-From 867d31bed41c87510e860956ee6a67c047d98f87 Mon Sep 17 00:00:00 2001
+From 201e1f617be367c49d95579f803931121a123069 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 867d31bed41c87510e860956ee6a67c047d98f87 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index f7e5602913..53318a54a3 100644
+index 45e34e0df1..038baf53fd 100644
@@ -24 +25 @@
-@@ -1860,5 +1860,13 @@ rte_vhost_async_channel_register(int vid, uint16_t queue_id)
+@@ -1783,5 +1783,13 @@ rte_vhost_async_channel_register(int vid, uint16_t queue_id,
@@ -26 +27 @@
- 	rte_rwlock_write_lock(&vq->access_lock);
+ 	rte_spinlock_lock(&vq->access_lock);
@@ -33 +34 @@
- 	ret = async_channel_register(dev, vq);
+ 	ret = async_channel_register(vid, queue_id, ops);
@@ -36 +37 @@
- 	rte_rwlock_write_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);
@@ -38 +39 @@
-@@ -1912,4 +1920,9 @@ rte_vhost_async_channel_unregister(int vid, uint16_t queue_id)
+@@ -1846,4 +1854,9 @@ rte_vhost_async_channel_unregister(int vid, uint16_t queue_id)
@@ -48 +49 @@
-@@ -1923,4 +1936,5 @@ rte_vhost_async_channel_unregister(int vid, uint16_t queue_id)
+@@ -1856,4 +1869,5 @@ rte_vhost_async_channel_unregister(int vid, uint16_t queue_id)
@@ -52 +53 @@
- 	rte_rwlock_write_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);


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

* patch 'vhost: fix check on virtqueue access in in-flight getter' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (5 preceding siblings ...)
  2023-11-16 13:22 ` patch 'vhost: fix check on virtqueue access in async registration' " Kevin Traynor
@ 2023-11-16 13:22 ` Kevin Traynor
  2023-11-16 13:22 ` patch 'common/cnxk: fix pool buffer size in opaque mode' " Kevin Traynor
                   ` (55 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:22 UTC (permalink / raw)
  To: Maxime Coquelin; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 587aea0f91f7170f6812d248915f0c60aed3057d Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Fri, 20 Oct 2023 10:48:02 +0200
Subject: [PATCH] vhost: fix check on virtqueue access in in-flight getter

[ upstream commit 288cd1f8ca3ebaf20aeed92966da9020a5793852 ]

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: 0c0935c5f794 ("vhost: allow to check in-flight packets for async vhost")

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

diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c
index 038baf53fd..8a20efa7c4 100644
--- a/lib/vhost/vhost.c
+++ b/lib/vhost/vhost.c
@@ -1930,7 +1930,13 @@ rte_vhost_async_get_inflight(int vid, uint16_t queue_id)
 	}
 
+	if (unlikely(!vq->access_ok)) {
+		ret = -1;
+		goto out_unlock;
+	}
+
 	if (vq->async)
 		ret = vq->async->pkts_inflight_n;
 
+out_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:52.776415453 +0000
+++ 0008-vhost-fix-check-on-virtqueue-access-in-in-flight-get.patch	2023-11-16 13:21:52.402946235 +0000
@@ -1 +1 @@
-From 288cd1f8ca3ebaf20aeed92966da9020a5793852 Mon Sep 17 00:00:00 2001
+From 587aea0f91f7170f6812d248915f0c60aed3057d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 288cd1f8ca3ebaf20aeed92966da9020a5793852 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 53318a54a3..f86516324b 100644
+index 038baf53fd..8a20efa7c4 100644
@@ -24 +25 @@
-@@ -2076,7 +2076,13 @@ rte_vhost_async_get_inflight(int vid, uint16_t queue_id)
+@@ -1930,7 +1930,13 @@ rte_vhost_async_get_inflight(int vid, uint16_t queue_id)
@@ -36 +37 @@
- 	rte_rwlock_write_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);


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

* patch 'common/cnxk: fix pool buffer size in opaque mode' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (6 preceding siblings ...)
  2023-11-16 13:22 ` patch 'vhost: fix check on virtqueue access in in-flight getter' " Kevin Traynor
@ 2023-11-16 13:22 ` Kevin Traynor
  2023-11-16 13:22 ` patch 'ethdev: fix function name in comment' " Kevin Traynor
                   ` (54 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:22 UTC (permalink / raw)
  To: Kommula Shiva Shankar; +Cc: Ashwin Sekhar T K, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 4adc748e0e5d6544f1207a5480d92d104cc9dec6 Mon Sep 17 00:00:00 2001
From: Kommula Shiva Shankar <kshankar@marvell.com>
Date: Fri, 13 Oct 2023 22:05:48 +0530
Subject: [PATCH] common/cnxk: fix pool buffer size in opaque mode

[ upstream commit 95377ce2106eb8a7b560c93d38fe98af44813b5b ]

Pool buffer size in opaque mode must always be set to 0.

Fixes: f765f5611240 ("common/cnxk: add NPA pool HW operations")

Signed-off-by: Kommula Shiva Shankar <kshankar@marvell.com>
Signed-off-by: Ashwin Sekhar T K <asekhar@marvell.com>
---
 drivers/common/cnxk/roc_npa.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/common/cnxk/roc_npa.c b/drivers/common/cnxk/roc_npa.c
index 86796fd7fa..ddd66c62ed 100644
--- a/drivers/common/cnxk/roc_npa.c
+++ b/drivers/common/cnxk/roc_npa.c
@@ -308,5 +308,9 @@ npa_aura_pool_pair_alloc(struct npa_lf *lf, const uint32_t block_size,
 	pool->stack_base = mz->iova;
 	pool->ena = 1;
-	pool->buf_size = block_size / ROC_ALIGN;
+	/* In opaque mode buffer size must be 0 */
+	if (!pool->nat_align)
+		pool->buf_size = 0;
+	else
+		pool->buf_size = block_size / ROC_ALIGN;
 	pool->stack_max_pages = stack_size;
 	pool->shift = plt_log2_u32(block_count);
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:52.797877549 +0000
+++ 0009-common-cnxk-fix-pool-buffer-size-in-opaque-mode.patch	2023-11-16 13:21:52.403946238 +0000
@@ -1 +1 @@
-From 95377ce2106eb8a7b560c93d38fe98af44813b5b Mon Sep 17 00:00:00 2001
+From 4adc748e0e5d6544f1207a5480d92d104cc9dec6 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 95377ce2106eb8a7b560c93d38fe98af44813b5b ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index b76b8e2342..6c14c49901 100644
+index 86796fd7fa..ddd66c62ed 100644
@@ -21 +22 @@
-@@ -518,5 +518,9 @@ npa_aura_pool_pair_alloc(struct npa_lf *lf, const uint32_t block_size,
+@@ -308,5 +308,9 @@ npa_aura_pool_pair_alloc(struct npa_lf *lf, const uint32_t block_size,


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

* patch 'ethdev: fix function name in comment' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (7 preceding siblings ...)
  2023-11-16 13:22 ` patch 'common/cnxk: fix pool buffer size in opaque mode' " Kevin Traynor
@ 2023-11-16 13:22 ` Kevin Traynor
  2023-11-16 13:22 ` patch 'net/hns3: fix typo in function name' " Kevin Traynor
                   ` (53 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:22 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Ferruh Yigit, Huisong Li, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 0aaa1f61468e7d8fe07e4b7a0463802181f8fdf6 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/ethdev/rte_ethdev.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h
index 4da4baf2a1..083f324a46 100644
--- a/lib/ethdev/rte_ethdev.h
+++ b/lib/ethdev/rte_ethdev.h
@@ -3650,5 +3650,5 @@ rte_eth_tx_buffer_init(struct rte_eth_dev_tx_buffer *buffer, uint16_t size);
  * 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.
  *
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:52.818955992 +0000
+++ 0010-ethdev-fix-function-name-in-comment.patch	2023-11-16 13:21:52.408946253 +0000
@@ -1 +1 @@
-From 4b98bef701c0bf39752031dd8943326945e2b5d1 Mon Sep 17 00:00:00 2001
+From 0aaa1f61468e7d8fe07e4b7a0463802181f8fdf6 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4b98bef701c0bf39752031dd8943326945e2b5d1 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index d1c10f2bbf..a53dd5a1ef 100644
+index 4da4baf2a1..083f324a46 100644
@@ -24 +25 @@
-@@ -3733,5 +3733,5 @@ rte_eth_tx_buffer_init(struct rte_eth_dev_tx_buffer *buffer, uint16_t size);
+@@ -3650,5 +3650,5 @@ rte_eth_tx_buffer_init(struct rte_eth_dev_tx_buffer *buffer, uint16_t size);


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

* patch 'net/hns3: fix typo in function name' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (8 preceding siblings ...)
  2023-11-16 13:22 ` patch 'ethdev: fix function name in comment' " Kevin Traynor
@ 2023-11-16 13:22 ` Kevin Traynor
  2023-11-16 13:22 ` patch 'net/hns3: fix unchecked Rx free threshold' " Kevin Traynor
                   ` (52 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Huisong Li, Chengwen Feng, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 79ee20d58949ff1a3bbcd94b347acf9bc878773d Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 27 Oct 2023 14:09:39 +0800
Subject: [PATCH] net/hns3: fix typo in function name

[ upstream commit 28ad38dd7403d64b3c0aa6dfd33e314bdce276c6 ]

This patch fixes a typo.

Fixes: c09c7847d892 ("net/hns3: support traffic management")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Huisong Li <lihuisong@huawei.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
---
 drivers/net/hns3/hns3_tm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hns3/hns3_tm.c b/drivers/net/hns3/hns3_tm.c
index e1089b6bd0..4fc00cbc07 100644
--- a/drivers/net/hns3/hns3_tm.c
+++ b/drivers/net/hns3/hns3_tm.c
@@ -740,5 +740,5 @@ hns3_tm_node_type_get(struct rte_eth_dev *dev, uint32_t node_id,
 
 static void
-hns3_tm_nonleaf_level_capsbilities_get(struct rte_eth_dev *dev,
+hns3_tm_nonleaf_level_capabilities_get(struct rte_eth_dev *dev,
 				       uint32_t level_id,
 				       struct rte_tm_level_capabilities *cap)
@@ -819,5 +819,5 @@ hns3_tm_level_capabilities_get(struct rte_eth_dev *dev,
 
 	if (level_id != HNS3_TM_NODE_LEVEL_QUEUE)
-		hns3_tm_nonleaf_level_capsbilities_get(dev, level_id, cap);
+		hns3_tm_nonleaf_level_capabilities_get(dev, level_id, cap);
 	else
 		hns3_tm_leaf_level_capabilities_get(dev, cap);
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:52.843692290 +0000
+++ 0011-net-hns3-fix-typo-in-function-name.patch	2023-11-16 13:21:52.409946256 +0000
@@ -1 +1 @@
-From 28ad38dd7403d64b3c0aa6dfd33e314bdce276c6 Mon Sep 17 00:00:00 2001
+From 79ee20d58949ff1a3bbcd94b347acf9bc878773d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 28ad38dd7403d64b3c0aa6dfd33e314bdce276c6 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 67402a700f..d969164014 100644
+index e1089b6bd0..4fc00cbc07 100644


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

* patch 'net/hns3: fix unchecked Rx free threshold' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (9 preceding siblings ...)
  2023-11-16 13:22 ` patch 'net/hns3: fix typo in function name' " Kevin Traynor
@ 2023-11-16 13:22 ` Kevin Traynor
  2023-11-16 13:22 ` patch 'net/hns3: fix double stats for IMP and global reset' " Kevin Traynor
                   ` (51 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:22 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From fc1e7c7b6e370c8accf5a6ded2560496b5e1854c 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 a758300060..5abb3556d1 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -1797,4 +1797,10 @@ hns3_rx_queue_conf_check(struct hns3_hw *hw, const struct rte_eth_rxconf *conf,
 	}
 
+	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 "
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:52.864960846 +0000
+++ 0012-net-hns3-fix-unchecked-Rx-free-threshold.patch	2023-11-16 13:21:52.413946267 +0000
@@ -1 +1 @@
-From c1f0cd3a4c834c2e550370b6d31b6bcd456a15f9 Mon Sep 17 00:00:00 2001
+From fc1e7c7b6e370c8accf5a6ded2560496b5e1854c 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 a758300060..5abb3556d1 100644
@@ -27 +28 @@
-@@ -1786,4 +1786,10 @@ hns3_rx_queue_conf_check(struct hns3_hw *hw, const struct rte_eth_rxconf *conf,
+@@ -1797,4 +1797,10 @@ hns3_rx_queue_conf_check(struct hns3_hw *hw, const struct rte_eth_rxconf *conf,


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

* patch 'net/hns3: fix double stats for IMP and global reset' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (10 preceding siblings ...)
  2023-11-16 13:22 ` patch 'net/hns3: fix unchecked Rx free threshold' " Kevin Traynor
@ 2023-11-16 13:22 ` Kevin Traynor
  2023-11-16 13:22 ` patch 'net/hns3: remove reset log in secondary' " Kevin Traynor
                   ` (50 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:22 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From efe611f1c844bff1115d00f17fb0c1f001db8d5e 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 66dc509086..67a4b9b221 100644
--- a/drivers/net/hns3/hns3_intr.c
+++ b/drivers/net/hns3/hns3_intr.c
@@ -2420,6 +2420,6 @@ hns3_schedule_reset(struct hns3_adapter *hns)
 			    SCHEDULE_DEFERRED)
 		rte_eal_alarm_cancel(hw->reset.ops->reset_service, hns);
-	else
-		__atomic_store_n(&hw->reset.schedule, SCHEDULE_REQUESTED,
+
+	__atomic_store_n(&hw->reset.schedule, SCHEDULE_REQUESTED,
 				 __ATOMIC_RELAXED);
 
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:52.888342846 +0000
+++ 0013-net-hns3-fix-double-stats-for-IMP-and-global-reset.patch	2023-11-16 13:21:52.415946273 +0000
@@ -1 +1 @@
-From c48e74370c5eafbe8db5c826a797344e4fdf8f49 Mon Sep 17 00:00:00 2001
+From efe611f1c844bff1115d00f17fb0c1f001db8d5e 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 66dc509086..67a4b9b221 100644
@@ -46 +47 @@
-@@ -2435,6 +2435,6 @@ hns3_schedule_reset(struct hns3_adapter *hns)
+@@ -2420,6 +2420,6 @@ hns3_schedule_reset(struct hns3_adapter *hns)


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

* patch 'net/hns3: remove reset log in secondary' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (11 preceding siblings ...)
  2023-11-16 13:22 ` patch 'net/hns3: fix double stats for IMP and global reset' " Kevin Traynor
@ 2023-11-16 13:22 ` Kevin Traynor
  2023-11-16 13:22 ` patch 'net/hns3: fix multiple reset detected log' " Kevin Traynor
                   ` (49 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:22 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From b28a338b6bfbbe1b80923389b21c85208e5373d3 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 ed85caa7bd..9712fbfe6f 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -5573,12 +5573,11 @@ hns3_is_reset_pending(struct hns3_adapter *hns)
 
 	/*
-	 * 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 (reset != HNS3_NONE_RESET && hw->reset.level != HNS3_NONE_RESET &&
diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index a125cfbeb9..f4a37f433b 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -1844,12 +1844,11 @@ hns3vf_is_reset_pending(struct hns3_adapter *hns)
 
 	/*
-	 * 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 && reset != HNS3_NONE_RESET &&
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:52.909948521 +0000
+++ 0014-net-hns3-remove-reset-log-in-secondary.patch	2023-11-16 13:21:52.421946291 +0000
@@ -1 +1 @@
-From 5394df455749f60614a19d791d1d73c26b74dea1 Mon Sep 17 00:00:00 2001
+From b28a338b6bfbbe1b80923389b21c85208e5373d3 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 ed85caa7bd..9712fbfe6f 100644
@@ -26 +27 @@
-@@ -5513,12 +5513,11 @@ hns3_is_reset_pending(struct hns3_adapter *hns)
+@@ -5573,12 +5573,11 @@ hns3_is_reset_pending(struct hns3_adapter *hns)
@@ -45 +46 @@
-index 007f5d619f..5f3422d14e 100644
+index a125cfbeb9..f4a37f433b 100644
@@ -48 +49 @@
-@@ -1716,12 +1716,11 @@ hns3vf_is_reset_pending(struct hns3_adapter *hns)
+@@ -1844,12 +1844,11 @@ hns3vf_is_reset_pending(struct hns3_adapter *hns)


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

* patch 'net/hns3: fix multiple reset detected log' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (12 preceding siblings ...)
  2023-11-16 13:22 ` patch 'net/hns3: remove reset log in secondary' " Kevin Traynor
@ 2023-11-16 13:22 ` Kevin Traynor
  2023-11-16 13:22 ` patch 'net/hns3: refactor interrupt state query' " Kevin Traynor
                   ` (48 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:22 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 0bc0e51d06d5d2137675c4a28a1c18e73664d79f Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Fri, 27 Oct 2023 14:09:44 +0800
Subject: [PATCH] net/hns3: fix multiple reset detected log

[ upstream commit 5be38fc6c0fc7e54d0121bab2fe93a27b8e8f7ab ]

Currently, the driver proactively checks whether interrupt exist
(by checking reset registers), related reset delay task is scheduled.

When a reset whose level is equal to or lower than the current level
is detected, there is unnecessary to add delay task and print logs.

This patch fix it.

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

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

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 9712fbfe6f..90eec4a09b 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -129,6 +129,5 @@ hns3_pf_enable_irq0(struct hns3_hw *hw)
 
 static enum hns3_evt_cause
-hns3_proc_imp_reset_event(struct hns3_adapter *hns, bool is_delay,
-			  uint32_t *vec_val)
+hns3_proc_imp_reset_event(struct hns3_adapter *hns, uint32_t *vec_val)
 {
 	struct hns3_hw *hw = &hns->hw;
@@ -137,11 +136,6 @@ hns3_proc_imp_reset_event(struct hns3_adapter *hns, bool is_delay,
 	hns3_atomic_set_bit(HNS3_IMP_RESET, &hw->reset.pending);
 	*vec_val = BIT(HNS3_VECTOR0_IMPRESET_INT_B);
-	if (!is_delay) {
-		hw->reset.stats.imp_cnt++;
-		hns3_warn(hw, "IMP reset detected, clear reset status");
-	} else {
-		hns3_schedule_delayed_reset(hns);
-		hns3_warn(hw, "IMP reset detected, don't clear reset status");
-	}
+	hw->reset.stats.imp_cnt++;
+	hns3_warn(hw, "IMP reset detected, clear reset status");
 
 	return HNS3_VECTOR0_EVENT_RST;
@@ -149,6 +143,5 @@ hns3_proc_imp_reset_event(struct hns3_adapter *hns, bool is_delay,
 
 static enum hns3_evt_cause
-hns3_proc_global_reset_event(struct hns3_adapter *hns, bool is_delay,
-			     uint32_t *vec_val)
+hns3_proc_global_reset_event(struct hns3_adapter *hns, uint32_t *vec_val)
 {
 	struct hns3_hw *hw = &hns->hw;
@@ -157,12 +150,6 @@ hns3_proc_global_reset_event(struct hns3_adapter *hns, bool is_delay,
 	hns3_atomic_set_bit(HNS3_GLOBAL_RESET, &hw->reset.pending);
 	*vec_val = BIT(HNS3_VECTOR0_GLOBALRESET_INT_B);
-	if (!is_delay) {
-		hw->reset.stats.global_cnt++;
-		hns3_warn(hw, "Global reset detected, clear reset status");
-	} else {
-		hns3_schedule_delayed_reset(hns);
-		hns3_warn(hw,
-			  "Global reset detected, don't clear reset status");
-	}
+	hw->reset.stats.global_cnt++;
+	hns3_warn(hw, "Global reset detected, clear reset status");
 
 	return HNS3_VECTOR0_EVENT_RST;
@@ -178,5 +165,4 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
 	uint32_t val;
 	enum hns3_evt_cause ret;
-	bool is_delay;
 
 	/* fetch the events from their corresponding regs */
@@ -185,5 +171,4 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
 	hw_err_src_reg = hns3_read_dev(hw, HNS3_RAS_PF_OTHER_INT_STS_REG);
 
-	is_delay = clearval == NULL ? true : false;
 	/*
 	 * Assumption: If by any chance reset and mailbox events are reported
@@ -194,5 +179,5 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
 	 */
 	if (BIT(HNS3_VECTOR0_IMPRESET_INT_B) & vector0_int_stats) { /* IMP */
-		ret = hns3_proc_imp_reset_event(hns, is_delay, &val);
+		ret = hns3_proc_imp_reset_event(hns, &val);
 		goto out;
 	}
@@ -200,5 +185,5 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
 	/* Global reset */
 	if (BIT(HNS3_VECTOR0_GLOBALRESET_INT_B) & vector0_int_stats) {
-		ret = hns3_proc_global_reset_event(hns, is_delay, &val);
+		ret = hns3_proc_global_reset_event(hns, &val);
 		goto out;
 	}
@@ -229,8 +214,7 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
 	val = vector0_int_stats;
 	ret = HNS3_VECTOR0_EVENT_OTHER;
-out:
 
-	if (clearval)
-		*clearval = val;
+out:
+	*clearval = val;
 	return ret;
 }
@@ -5566,4 +5550,30 @@ is_pf_reset_done(struct hns3_hw *hw)
 }
 
+static void
+hns3_detect_reset_event(struct hns3_hw *hw)
+{
+	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
+	enum hns3_reset_level new_req = HNS3_NONE_RESET;
+	enum hns3_reset_level last_req;
+	uint32_t vector0_intr_state;
+
+	last_req = hns3_get_reset_level(hns, &hw->reset.pending);
+	vector0_intr_state = hns3_read_dev(hw, HNS3_VECTOR0_OTHER_INT_STS_REG);
+	if (BIT(HNS3_VECTOR0_IMPRESET_INT_B) & vector0_intr_state) {
+		__atomic_store_n(&hw->reset.disable_cmd, 1, __ATOMIC_RELAXED);
+		hns3_atomic_set_bit(HNS3_IMP_RESET, &hw->reset.pending);
+		new_req = HNS3_IMP_RESET;
+	} else if (BIT(HNS3_VECTOR0_GLOBALRESET_INT_B) & vector0_intr_state) {
+		__atomic_store_n(&hw->reset.disable_cmd, 1, __ATOMIC_RELAXED);
+		hns3_atomic_set_bit(HNS3_GLOBAL_RESET, &hw->reset.pending);
+		new_req = HNS3_GLOBAL_RESET;
+	}
+
+	if (new_req != HNS3_NONE_RESET && last_req < new_req) {
+		hns3_schedule_delayed_reset(hns);
+		hns3_warn(hw, "High level reset detected, delay do reset");
+	}
+}
+
 bool
 hns3_is_reset_pending(struct hns3_adapter *hns)
@@ -5579,5 +5589,5 @@ hns3_is_reset_pending(struct hns3_adapter *hns)
 		return false;
 
-	hns3_check_event_cause(hns, NULL);
+	hns3_detect_reset_event(hw);
 	reset = hns3_get_reset_level(hns, &hw->reset.pending);
 	if (reset != HNS3_NONE_RESET && hw->reset.level != HNS3_NONE_RESET &&
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:52.935085160 +0000
+++ 0015-net-hns3-fix-multiple-reset-detected-log.patch	2023-11-16 13:21:52.426946305 +0000
@@ -1 +1 @@
-From 5be38fc6c0fc7e54d0121bab2fe93a27b8e8f7ab Mon Sep 17 00:00:00 2001
+From 0bc0e51d06d5d2137675c4a28a1c18e73664d79f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5be38fc6c0fc7e54d0121bab2fe93a27b8e8f7ab ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index 3bdce1fa4b..18afc0fa0a 100644
+index 9712fbfe6f..90eec4a09b 100644
@@ -26 +27 @@
-@@ -125,6 +125,5 @@ hns3_pf_enable_irq0(struct hns3_hw *hw)
+@@ -129,6 +129,5 @@ hns3_pf_enable_irq0(struct hns3_hw *hw)
@@ -34 +35 @@
-@@ -133,11 +132,6 @@ hns3_proc_imp_reset_event(struct hns3_adapter *hns, bool is_delay,
+@@ -137,11 +136,6 @@ hns3_proc_imp_reset_event(struct hns3_adapter *hns, bool is_delay,
@@ -48 +49 @@
-@@ -145,6 +139,5 @@ hns3_proc_imp_reset_event(struct hns3_adapter *hns, bool is_delay,
+@@ -149,6 +143,5 @@ hns3_proc_imp_reset_event(struct hns3_adapter *hns, bool is_delay,
@@ -56 +57 @@
-@@ -153,12 +146,6 @@ hns3_proc_global_reset_event(struct hns3_adapter *hns, bool is_delay,
+@@ -157,12 +150,6 @@ hns3_proc_global_reset_event(struct hns3_adapter *hns, bool is_delay,
@@ -71 +72 @@
-@@ -174,5 +161,4 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
+@@ -178,5 +165,4 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
@@ -77 +78 @@
-@@ -181,5 +167,4 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
+@@ -185,5 +171,4 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
@@ -83 +84 @@
-@@ -190,5 +175,5 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
+@@ -194,5 +179,5 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
@@ -90 +91 @@
-@@ -196,5 +181,5 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
+@@ -200,5 +185,5 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
@@ -97 +98 @@
-@@ -225,8 +210,7 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
+@@ -229,8 +214,7 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
@@ -108 +109 @@
-@@ -5506,4 +5490,30 @@ is_pf_reset_done(struct hns3_hw *hw)
+@@ -5566,4 +5550,30 @@ is_pf_reset_done(struct hns3_hw *hw)
@@ -139 +140 @@
-@@ -5519,5 +5529,5 @@ hns3_is_reset_pending(struct hns3_adapter *hns)
+@@ -5579,5 +5589,5 @@ hns3_is_reset_pending(struct hns3_adapter *hns)


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

* patch 'net/hns3: refactor interrupt state query' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (13 preceding siblings ...)
  2023-11-16 13:22 ` patch 'net/hns3: fix multiple reset detected log' " Kevin Traynor
@ 2023-11-16 13:22 ` Kevin Traynor
  2023-11-16 13:22 ` patch 'test/bonding: remove unreachable statement' " Kevin Traynor
                   ` (47 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:22 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From df93e5cc12d3c5c4196632d3e3a790796e4fec6f Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Fri, 27 Oct 2023 14:09:46 +0800
Subject: [PATCH] net/hns3: refactor interrupt state query

[ upstream commit c01ffb24a241a360361ed5c94a819824a8542f3f ]

PF driver get all interrupt states by reading three registers. This logic
code block is distributed in many places. So this patch extracts a common
function to do this to improve the maintenance.

Fixes: f53a793bb7c2 ("net/hns3: add more hardware error types")
Fixes: 3988ab0eee52 ("net/hns3: add abnormal interrupt process")

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

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 90eec4a09b..352e7f277b 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -63,4 +63,10 @@ enum hns3_evt_cause {
 };
 
+struct hns3_intr_state {
+	uint32_t vector0_state;
+	uint32_t cmdq_state;
+	uint32_t hw_err_state;
+};
+
 #define HNS3_SPEEDS_SUPP_FEC (RTE_ETH_LINK_SPEED_10G | \
 			      RTE_ETH_LINK_SPEED_25G | \
@@ -156,18 +162,21 @@ hns3_proc_global_reset_event(struct hns3_adapter *hns, uint32_t *vec_val)
 }
 
+static void
+hns3_query_intr_state(struct hns3_hw *hw, struct hns3_intr_state *state)
+{
+	state->vector0_state = hns3_read_dev(hw, HNS3_VECTOR0_OTHER_INT_STS_REG);
+	state->cmdq_state = hns3_read_dev(hw, HNS3_VECTOR0_CMDQ_SRC_REG);
+	state->hw_err_state = hns3_read_dev(hw, HNS3_RAS_PF_OTHER_INT_STS_REG);
+}
+
 static enum hns3_evt_cause
 hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
 {
 	struct hns3_hw *hw = &hns->hw;
-	uint32_t vector0_int_stats;
-	uint32_t cmdq_src_val;
-	uint32_t hw_err_src_reg;
+	struct hns3_intr_state state;
 	uint32_t val;
 	enum hns3_evt_cause ret;
 
-	/* fetch the events from their corresponding regs */
-	vector0_int_stats = hns3_read_dev(hw, HNS3_VECTOR0_OTHER_INT_STS_REG);
-	cmdq_src_val = hns3_read_dev(hw, HNS3_VECTOR0_CMDQ_SRC_REG);
-	hw_err_src_reg = hns3_read_dev(hw, HNS3_RAS_PF_OTHER_INT_STS_REG);
+	hns3_query_intr_state(hw, &state);
 
 	/*
@@ -178,5 +187,5 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
 	 * from H/W just for the mailbox.
 	 */
-	if (BIT(HNS3_VECTOR0_IMPRESET_INT_B) & vector0_int_stats) { /* IMP */
+	if (BIT(HNS3_VECTOR0_IMPRESET_INT_B) & state.vector0_state) { /* IMP */
 		ret = hns3_proc_imp_reset_event(hns, &val);
 		goto out;
@@ -184,5 +193,5 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
 
 	/* Global reset */
-	if (BIT(HNS3_VECTOR0_GLOBALRESET_INT_B) & vector0_int_stats) {
+	if (BIT(HNS3_VECTOR0_GLOBALRESET_INT_B) & state.vector0_state) {
 		ret = hns3_proc_global_reset_event(hns, &val);
 		goto out;
@@ -190,5 +199,5 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
 
 	/* Check for vector0 1588 event source */
-	if (BIT(HNS3_VECTOR0_1588_INT_B) & vector0_int_stats) {
+	if (BIT(HNS3_VECTOR0_1588_INT_B) & state.vector0_state) {
 		val = BIT(HNS3_VECTOR0_1588_INT_B);
 		ret = HNS3_VECTOR0_EVENT_PTP;
@@ -197,7 +206,7 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
 
 	/* check for vector0 msix event source */
-	if (vector0_int_stats & HNS3_VECTOR0_REG_MSIX_MASK ||
-	    hw_err_src_reg & HNS3_RAS_REG_NFE_MASK) {
-		val = vector0_int_stats | hw_err_src_reg;
+	if (state.vector0_state & HNS3_VECTOR0_REG_MSIX_MASK ||
+	    state.hw_err_state & HNS3_RAS_REG_NFE_MASK) {
+		val = state.vector0_state | state.hw_err_state;
 		ret = HNS3_VECTOR0_EVENT_ERR;
 		goto out;
@@ -205,12 +214,12 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
 
 	/* check for vector0 mailbox(=CMDQ RX) event source */
-	if (BIT(HNS3_VECTOR0_RX_CMDQ_INT_B) & cmdq_src_val) {
-		cmdq_src_val &= ~BIT(HNS3_VECTOR0_RX_CMDQ_INT_B);
-		val = cmdq_src_val;
+	if (BIT(HNS3_VECTOR0_RX_CMDQ_INT_B) & state.cmdq_state) {
+		state.cmdq_state &= ~BIT(HNS3_VECTOR0_RX_CMDQ_INT_B);
+		val = state.cmdq_state;
 		ret = HNS3_VECTOR0_EVENT_MBX;
 		goto out;
 	}
 
-	val = vector0_int_stats;
+	val = state.vector0_state;
 	ret = HNS3_VECTOR0_EVENT_OTHER;
 
@@ -299,8 +308,6 @@ hns3_interrupt_handler(void *param)
 	struct hns3_hw *hw = &hns->hw;
 	enum hns3_evt_cause event_cause;
+	struct hns3_intr_state state;
 	uint32_t clearval = 0;
-	uint32_t vector0_int;
-	uint32_t ras_int;
-	uint32_t cmdq_int;
 
 	/* Disable interrupt */
@@ -308,7 +315,5 @@ hns3_interrupt_handler(void *param)
 
 	event_cause = hns3_check_event_cause(hns, &clearval);
-	vector0_int = hns3_read_dev(hw, HNS3_VECTOR0_OTHER_INT_STS_REG);
-	ras_int = hns3_read_dev(hw, HNS3_RAS_PF_OTHER_INT_STS_REG);
-	cmdq_int = hns3_read_dev(hw, HNS3_VECTOR0_CMDQ_SRC_REG);
+	hns3_query_intr_state(hw, &state);
 	hns3_delay_before_clear_event_cause(hw, event_cause, clearval);
 	hns3_clear_event_cause(hw, event_cause, clearval);
@@ -317,5 +322,6 @@ hns3_interrupt_handler(void *param)
 		hns3_warn(hw, "received interrupt: vector0_int_stat:0x%x "
 			  "ras_int_stat:0x%x cmdq_int_stat:0x%x",
-			  vector0_int, ras_int, cmdq_int);
+			  state.vector0_state, state.hw_err_state,
+			  state.cmdq_state);
 		hns3_handle_mac_tnl(hw);
 		hns3_handle_error(hns);
@@ -328,5 +334,6 @@ hns3_interrupt_handler(void *param)
 		hns3_warn(hw, "received unknown event: vector0_int_stat:0x%x "
 			  "ras_int_stat:0x%x cmdq_int_stat:0x%x",
-			  vector0_int, ras_int, cmdq_int);
+			  state.vector0_state, state.hw_err_state,
+			  state.cmdq_state);
 	}
 
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:52.959197011 +0000
+++ 0016-net-hns3-refactor-interrupt-state-query.patch	2023-11-16 13:21:52.431946320 +0000
@@ -1 +1 @@
-From c01ffb24a241a360361ed5c94a819824a8542f3f Mon Sep 17 00:00:00 2001
+From df93e5cc12d3c5c4196632d3e3a790796e4fec6f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c01ffb24a241a360361ed5c94a819824a8542f3f ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index bb9dde9c5b..0feea52542 100644
+index 90eec4a09b..352e7f277b 100644
@@ -23 +24 @@
-@@ -58,4 +58,10 @@ enum hns3_evt_cause {
+@@ -63,4 +63,10 @@ enum hns3_evt_cause {
@@ -34 +35 @@
-@@ -152,18 +158,21 @@ hns3_proc_global_reset_event(struct hns3_adapter *hns, uint32_t *vec_val)
+@@ -156,18 +162,21 @@ hns3_proc_global_reset_event(struct hns3_adapter *hns, uint32_t *vec_val)
@@ -63 +64 @@
-@@ -174,5 +183,5 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
+@@ -178,5 +187,5 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
@@ -70 +71 @@
-@@ -180,5 +189,5 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
+@@ -184,5 +193,5 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
@@ -77 +78 @@
-@@ -186,5 +195,5 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
+@@ -190,5 +199,5 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
@@ -84 +85 @@
-@@ -193,7 +202,7 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
+@@ -197,7 +206,7 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
@@ -95 +96 @@
-@@ -201,12 +210,12 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
+@@ -205,12 +214,12 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
@@ -112 +113 @@
-@@ -347,8 +356,6 @@ hns3_interrupt_handler(void *param)
+@@ -299,8 +308,6 @@ hns3_interrupt_handler(void *param)
@@ -121,2 +122,2 @@
- 	if (!hns3_reset_event_valid(hw))
-@@ -359,7 +366,5 @@ hns3_interrupt_handler(void *param)
+ 	/* Disable interrupt */
+@@ -308,7 +315,5 @@ hns3_interrupt_handler(void *param)
@@ -131 +132 @@
-@@ -368,5 +373,6 @@ hns3_interrupt_handler(void *param)
+@@ -317,5 +322,6 @@ hns3_interrupt_handler(void *param)
@@ -139 +140 @@
-@@ -379,5 +385,6 @@ hns3_interrupt_handler(void *param)
+@@ -328,5 +334,6 @@ hns3_interrupt_handler(void *param)


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

* patch 'test/bonding: remove unreachable statement' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (14 preceding siblings ...)
  2023-11-16 13:22 ` patch 'net/hns3: refactor interrupt state query' " Kevin Traynor
@ 2023-11-16 13:22 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'test/bonding: add missing check' " Kevin Traynor
                   ` (46 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:22 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 21.11.6

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

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

Thanks.

Kevin

---
From 1c29c2395397c2d3dff851c20b6265b897a50bb2 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 351129de2f..6eb2620ffd 100644
--- a/app/test/test_link_bonding_mode4.c
+++ b/app/test/test_link_bonding_mode4.c
@@ -644,6 +644,5 @@ bond_handshake(void)
 	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;
 }
 
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:52.983395564 +0000
+++ 0017-test-bonding-remove-unreachable-statement.patch	2023-11-16 13:21:52.432946322 +0000
@@ -1 +1 @@
-From 9f4f98c9898fc6aa730ed02571790aa0b2ac4813 Mon Sep 17 00:00:00 2001
+From 1c29c2395397c2d3dff851c20b6265b897a50bb2 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 351129de2f..6eb2620ffd 100644
@@ -25,2 +26,2 @@
-@@ -642,6 +642,5 @@ bond_handshake(void)
- 	TEST_ASSERT_EQUAL(all_members_done, 1, "Bond handshake failed\n");
+@@ -644,6 +644,5 @@ bond_handshake(void)
+ 	TEST_ASSERT_EQUAL(all_slaves_done, 1, "Bond handshake failed\n");
@@ -29 +30 @@
--	return all_members_done == 1 ? TEST_SUCCESS : TEST_FAILED;
+-	return all_slaves_done == 1 ? TEST_SUCCESS : TEST_FAILED;


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

* patch 'test/bonding: add missing check' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (15 preceding siblings ...)
  2023-11-16 13:22 ` patch 'test/bonding: remove unreachable statement' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/bonding: fix possible overrun' " Kevin Traynor
                   ` (45 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 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 21.11.6

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

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

Thanks.

Kevin

---
From fe5d3a4119ce95d3ec05f91357ea10de6bf45164 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 f64f2ddb01..0d5cfd43c4 100644
--- a/app/test/test_link_bonding.c
+++ b/app/test/test_link_bonding.c
@@ -449,5 +449,6 @@ test_add_already_bonded_slave_to_bonded_device(void)
 	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 slave to bonded device");
 
 	current_slave_count = rte_eth_bond_slaves_get(test_params->bonded_port_id,
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.004812910 +0000
+++ 0018-test-bonding-add-missing-check.patch	2023-11-16 13:21:52.436946334 +0000
@@ -1 +1 @@
-From 0ecafc2e44268e4d0626dcf0c811590466291f20 Mon Sep 17 00:00:00 2001
+From fe5d3a4119ce95d3ec05f91357ea10de6bf45164 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 f64f2ddb01..0d5cfd43c4 100644
@@ -24 +25 @@
-@@ -450,5 +450,6 @@ test_add_already_bonding_member_to_bonding_device(void)
+@@ -449,5 +449,6 @@ test_add_already_bonded_slave_to_bonded_device(void)
@@ -27,3 +28,3 @@
--	test_add_member_to_bonding_device();
-+	TEST_ASSERT_SUCCESS(test_add_member_to_bonding_device(),
-+			"Failed to add member to bonding device");
+-	test_add_slave_to_bonded_device();
++	TEST_ASSERT_SUCCESS(test_add_slave_to_bonded_device(),
++			"Failed to add slave to bonded device");
@@ -31 +32 @@
- 	current_member_count = rte_eth_bond_members_get(test_params->bonding_port_id,
+ 	current_slave_count = rte_eth_bond_slaves_get(test_params->bonded_port_id,


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

* patch 'net/bonding: fix possible overrun' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (16 preceding siblings ...)
  2023-11-16 13:23 ` patch 'test/bonding: add missing check' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'ethdev: fix 32-bit build with GCC 13' " Kevin Traynor
                   ` (44 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 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 21.11.6

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

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

Thanks.

Kevin

---
From d0f7aa36adeb7b519cdcc4480a036f068f846e8b 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 b3cddd8a20..e4eb113927 100644
--- a/drivers/net/bonding/rte_eth_bond_8023ad.c
+++ b/drivers/net/bonding/rte_eth_bond_8023ad.c
@@ -653,10 +653,7 @@ 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];
 
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.027880445 +0000
+++ 0019-net-bonding-fix-possible-overrun.patch	2023-11-16 13:21:52.437946337 +0000
@@ -1 +1 @@
-From 925f8582c49c79f588cb4c96f510fb94becbb3bc Mon Sep 17 00:00:00 2001
+From d0f7aa36adeb7b519cdcc4480a036f068f846e8b 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 b3cddd8a20..e4eb113927 100644
@@ -26 +27 @@
-@@ -655,10 +655,7 @@ tx_machine(struct bond_dev_private *internals, uint16_t member_id)
+@@ -653,10 +653,7 @@ tx_machine(struct bond_dev_private *internals, uint16_t slave_id)


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

* patch 'ethdev: fix 32-bit build with GCC 13' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (17 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/bonding: fix possible overrun' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/enic: avoid extra unlock in MTU set' " Kevin Traynor
                   ` (43 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 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 21.11.6

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

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

Thanks.

Kevin

---
From 6d69e0995437cd6c02ca65c2e186d430c26a4245 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/ethdev/rte_flow.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c
index b311dd2a00..3a6b6db725 100644
--- a/lib/ethdev/rte_flow.c
+++ b/lib/ethdev/rte_flow.c
@@ -657,5 +657,5 @@ rte_flow_conv_action_conf(void *buf, const size_t size,
 			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),
@@ -666,5 +666,5 @@ rte_flow_conv_action_conf(void *buf, const size_t size,
 			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),
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.049595422 +0000
+++ 0020-ethdev-fix-32-bit-build-with-GCC-13.patch	2023-11-16 13:21:52.438946340 +0000
@@ -1 +1 @@
-From 3d67012ab70252190fcfea12c122567a4d010228 Mon Sep 17 00:00:00 2001
+From 6d69e0995437cd6c02ca65c2e186d430c26a4245 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3d67012ab70252190fcfea12c122567a4d010228 ]
+
@@ -22 +23,0 @@
-Cc: stable@dpdk.org
@@ -33 +34 @@
-index 4d6c28ee0e..20ee8430ea 100644
+index b311dd2a00..3a6b6db725 100644
@@ -36 +37 @@
-@@ -725,5 +725,5 @@ rte_flow_conv_action_conf(void *buf, const size_t size,
+@@ -657,5 +657,5 @@ rte_flow_conv_action_conf(void *buf, const size_t size,
@@ -43 +44 @@
-@@ -734,5 +734,5 @@ rte_flow_conv_action_conf(void *buf, const size_t size,
+@@ -666,5 +666,5 @@ rte_flow_conv_action_conf(void *buf, const size_t size,


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

* patch 'net/enic: avoid extra unlock in MTU set' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (18 preceding siblings ...)
  2023-11-16 13:23 ` patch 'ethdev: fix 32-bit build with GCC 13' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/hns3: fix some return values' " Kevin Traynor
                   ` (42 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Weiguo Li; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 48ce6323ad78840b36664e12c50d10e17f19c519 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>
---
 .mailmap                     | 2 +-
 drivers/net/enic/enic_main.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.mailmap b/.mailmap
index 1111c386e2..3ba8d68383 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1448,5 +1448,5 @@ 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 (Xavier) <xavier.huwei@huawei.com>
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index 97d97ea793..2ea26c0407 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -1640,5 +1640,5 @@ int enic_set_mtu(struct enic *enic, uint16_t new_mtu)
 	 */
 	if (!eth_dev->data->dev_started)
-		goto set_mtu_done;
+		return rc;
 
 	/*
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.070885029 +0000
+++ 0021-net-enic-avoid-extra-unlock-in-MTU-set.patch	2023-11-16 13:21:52.441946349 +0000
@@ -1 +1 @@
-From e90884a65bf6d8ed0e1e5618af42cf5856a422f1 Mon Sep 17 00:00:00 2001
+From 48ce6323ad78840b36664e12c50d10e17f19c519 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e90884a65bf6d8ed0e1e5618af42cf5856a422f1 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index 1e6d750979..c384d97a1a 100644
+index 1111c386e2..3ba8d68383 100644
@@ -26 +27 @@
-@@ -1503,5 +1503,5 @@ Weichun Chen <weichunx.chen@intel.com>
+@@ -1448,5 +1448,5 @@ Weichun Chen <weichunx.chen@intel.com>
@@ -32 +33 @@
- Wei Hu <weh@microsoft.com>
+ Wei Hu (Xavier) <xavier.huwei@huawei.com>
@@ -34 +35 @@
-index 19a99a82c5..a6aaa760ca 100644
+index 97d97ea793..2ea26c0407 100644


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

* patch 'net/hns3: fix some return values' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (19 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/enic: avoid extra unlock in MTU set' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/hns3: fix some error logs' " Kevin Traynor
                   ` (41 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Jie Hai; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 6b71d322adea61ff64568e97724f8f141fce9ac1 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     | 15 ++++++++++-----
 3 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index f4a37f433b..2c5f19c50e 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -2204,6 +2204,9 @@ 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;
+			}
 		}
 
diff --git a/drivers/net/hns3/hns3_fdir.c b/drivers/net/hns3/hns3_fdir.c
index 4432279e6d..a2dd25fb21 100644
--- a/drivers/net/hns3/hns3_fdir.c
+++ b/drivers/net/hns3/hns3_fdir.c
@@ -976,5 +976,5 @@ int hns3_fdir_filter_program(struct hns3_adapter *hns,
 				 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 169bad1412..79e4063b00 100644
--- a/drivers/net/hns3/hns3_stats.c
+++ b/drivers/net/hns3/hns3_stats.c
@@ -772,5 +772,5 @@ hns3_mac_stats_reset(struct hns3_hw *hw)
 }
 
-static int
+static uint16_t
 hns3_get_imissed_stats_num(struct hns3_adapter *hns)
 {
@@ -994,5 +994,5 @@ hns3_imissed_stats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats,
 	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;
@@ -1171,5 +1171,5 @@ hns3_imissed_stats_name_get(struct rte_eth_dev *dev,
 	struct hns3_adapter *hns = dev->data->dev_private;
 	uint32_t cnt = *count;
-	int imissed_stats_num;
+	uint16_t imissed_stats_num;
 	uint16_t i;
 
@@ -1540,6 +1540,11 @@ hns3_stats_init(struct hns3_hw *hw)
 	}
 
-	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.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.093361590 +0000
+++ 0022-net-hns3-fix-some-return-values.patch	2023-11-16 13:21:52.445946360 +0000
@@ -1 +1 @@
-From 08159599978f7f7eb6c4aaed7c290e33b8bc3d64 Mon Sep 17 00:00:00 2001
+From 6b71d322adea61ff64568e97724f8f141fce9ac1 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 08159599978f7f7eb6c4aaed7c290e33b8bc3d64 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 0a227e6e45..156fb905f9 100644
+index f4a37f433b..2c5f19c50e 100644
@@ -23 +24 @@
-@@ -2082,6 +2082,9 @@ hns3vf_reinit_dev(struct hns3_adapter *hns)
+@@ -2204,6 +2204,9 @@ hns3vf_reinit_dev(struct hns3_adapter *hns)
@@ -35 +36 @@
-index c80fa59e63..d100e58d10 100644
+index 4432279e6d..a2dd25fb21 100644
@@ -38 +39 @@
-@@ -979,5 +979,5 @@ int hns3_fdir_filter_program(struct hns3_adapter *hns,
+@@ -976,5 +976,5 @@ int hns3_fdir_filter_program(struct hns3_adapter *hns,
@@ -46 +47 @@
-index c2e692a2c5..9a1e8935e5 100644
+index 169bad1412..79e4063b00 100644


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

* patch 'net/hns3: fix some error logs' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (20 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/hns3: fix some return values' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/hns3: keep set/get algo key functions local' " Kevin Traynor
                   ` (40 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Jie Hai; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 5c52c7e6a40bd9c05bf3bd4637f4e72173220647 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 0360dc3862..1a156cca7e 100644
--- a/drivers/net/hns3/hns3_dcb.c
+++ b/drivers/net/hns3/hns3_dcb.c
@@ -1094,5 +1094,5 @@ 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 b0d0a849c2..74b08451e1 100644
--- a/drivers/net/hns3/hns3_flow.c
+++ b/drivers/net/hns3/hns3_flow.c
@@ -881,5 +881,5 @@ hns3_parse_sctp(const struct rte_flow_item *item, struct hns3_fdir_rule *rule,
 						  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);
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.116254516 +0000
+++ 0023-net-hns3-fix-some-error-logs.patch	2023-11-16 13:21:52.448946369 +0000
@@ -1 +1 @@
-From fdafdca875eafe36950542cbfbdb21b01b371081 Mon Sep 17 00:00:00 2001
+From 5c52c7e6a40bd9c05bf3bd4637f4e72173220647 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 0360dc3862..1a156cca7e 100644
@@ -21 +22 @@
-@@ -1083,5 +1083,5 @@ hns3_dcb_map_cfg(struct hns3_hw *hw)
+@@ -1094,5 +1094,5 @@ hns3_dcb_map_cfg(struct hns3_hw *hw)
@@ -29 +30 @@
-index a5a7e452d8..7fbe65313c 100644
+index b0d0a849c2..74b08451e1 100644
@@ -32 +33 @@
-@@ -928,5 +928,5 @@ hns3_parse_sctp(const struct rte_flow_item *item, struct hns3_fdir_rule *rule,
+@@ -881,5 +881,5 @@ hns3_parse_sctp(const struct rte_flow_item *item, struct hns3_fdir_rule *rule,


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

* patch 'net/hns3: keep set/get algo key functions local' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (21 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/hns3: fix some error logs' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/hns3: fix uninitialized hash algo value' " Kevin Traynor
                   ` (39 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Jie Hai; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 8ca67530414dd63cfd8646d7e1e2cfcd6e026a21 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 8bcc906e45..19d1ae24fd 100644
--- a/drivers/net/hns3/hns3_rss.c
+++ b/drivers/net/hns3/hns3_rss.c
@@ -284,5 +284,5 @@ static const struct {
  * Used to set algorithm and hash key of RSS.
  */
-int
+static int
 hns3_rss_set_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
 		      const uint8_t *key, uint8_t key_len)
@@ -325,5 +325,5 @@ hns3_rss_set_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
 }
 
-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 931dacb813..5c0f0b75f0 100644
--- a/drivers/net/hns3/hns3_rss.h
+++ b/drivers/net/hns3/hns3_rss.h
@@ -189,8 +189,4 @@ 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_rss_set_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
-			  const uint8_t *key, uint8_t key_len);
-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,
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.139273149 +0000
+++ 0024-net-hns3-keep-set-get-algo-key-functions-local.patch	2023-11-16 13:21:52.449946372 +0000
@@ -1 +1 @@
-From 4d996f3b2a1dcce2fff59a0a9490c04480e4c805 Mon Sep 17 00:00:00 2001
+From 8ca67530414dd63cfd8646d7e1e2cfcd6e026a21 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 8bcc906e45..19d1ae24fd 100644
@@ -39 +40 @@
-index 415430a399..9d182a8025 100644
+index 931dacb813..5c0f0b75f0 100644
@@ -42 +43 @@
-@@ -191,8 +191,4 @@ int hns3_set_rss_tuple_by_rss_hf(struct hns3_hw *hw, uint64_t rss_hf);
+@@ -189,8 +189,4 @@ int hns3_set_rss_tuple_by_rss_hf(struct hns3_hw *hw, uint64_t rss_hf);


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

* patch 'net/hns3: fix uninitialized hash algo value' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (22 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/hns3: keep set/get algo key functions local' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/tap: fix L4 checksum offloading' " Kevin Traynor
                   ` (38 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Jie Hai; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From c2404cbdfadb2bc5408dacd1450f2dbbc55180cc 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 19d1ae24fd..b587954508 100644
--- a/drivers/net/hns3/hns3_rss.c
+++ b/drivers/net/hns3/hns3_rss.c
@@ -772,5 +772,5 @@ 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;
 
@@ -994,5 +994,5 @@ 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;
 
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.160350921 +0000
+++ 0025-net-hns3-fix-uninitialized-hash-algo-value.patch	2023-11-16 13:21:52.450946375 +0000
@@ -1 +1 @@
-From 177cf5c93f9ac86d8a2b817115ef1e979023414c Mon Sep 17 00:00:00 2001
+From c2404cbdfadb2bc5408dacd1450f2dbbc55180cc 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 19d1ae24fd..b587954508 100644


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

* patch 'net/tap: fix L4 checksum offloading' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (23 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/hns3: fix uninitialized hash algo value' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/tap: fix IPv4 " Kevin Traynor
                   ` (37 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: David Marchand; +Cc: Ales Musil, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 8b094ad673b01545f34aee2b5f52da3b4cdfa801 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>
---
 .mailmap                      |  1 +
 drivers/net/tap/rte_eth_tap.c | 13 +++++++++++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/.mailmap b/.mailmap
index 3ba8d68383..4e27a991ba 100644
--- a/.mailmap
+++ b/.mailmap
@@ -39,4 +39,5 @@ 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>
diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index 470ea65f93..bcc5f42cdf 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -632,11 +632,20 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
 		      (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))) {
+			unsigned int l4_len = 0;
+
 			is_cksum = 1;
 
+			if ((mbuf->ol_flags & RTE_MBUF_F_TX_L4_MASK) ==
+					RTE_MBUF_F_TX_UDP_CKSUM)
+				l4_len = sizeof(struct rte_udp_hdr);
+			else if ((mbuf->ol_flags & RTE_MBUF_F_TX_L4_MASK) ==
+					RTE_MBUF_F_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;
@@ -648,5 +657,5 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
 					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);
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.181229936 +0000
+++ 0026-net-tap-fix-L4-checksum-offloading.patch	2023-11-16 13:21:52.453946384 +0000
@@ -1 +1 @@
-From 0bbafe48ae0a35e306b1cd91b0e7726ae4451f9a Mon Sep 17 00:00:00 2001
+From 8b094ad673b01545f34aee2b5f52da3b4cdfa801 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0bbafe48ae0a35e306b1cd91b0e7726ae4451f9a ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index c384d97a1a..c0ab6d090b 100644
+index 3ba8d68383..4e27a991ba 100644
@@ -24 +25 @@
-@@ -42,4 +42,5 @@ Aleksandr Miloshenko <a.miloshenko@f5.com>
+@@ -39,4 +39,5 @@ Aleksandr Miloshenko <a.miloshenko@f5.com>
@@ -31 +32 @@
-index b25a52655f..66335d2755 100644
+index 470ea65f93..bcc5f42cdf 100644
@@ -34 +35 @@
-@@ -646,11 +646,20 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
+@@ -632,11 +632,20 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
@@ -56 +57 @@
-@@ -662,5 +671,5 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
+@@ -648,5 +657,5 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,


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

* patch 'net/tap: fix IPv4 checksum offloading' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (24 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/tap: fix L4 checksum offloading' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'app/procinfo: fix RSS info' " Kevin Traynor
                   ` (36 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: David Marchand; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 774c444b1cc75fbcd86912ccbab273292e9b2714 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 bcc5f42cdf..29b4860656 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -546,5 +546,5 @@ tap_tx_l3_cksum(char *packet, uint64_t ol_flags, unsigned int l2_len,
 	void *l3_hdr = packet + l2_len;
 
-	if (ol_flags & (RTE_MBUF_F_TX_IP_CKSUM | RTE_MBUF_F_TX_IPV4)) {
+	if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
 		struct rte_ipv4_hdr *iph = l3_hdr;
 		uint16_t cksum;
@@ -629,5 +629,5 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
 		nb_segs = mbuf->nb_segs;
 		if (txq->csum &&
-		    ((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))) {
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.204494619 +0000
+++ 0027-net-tap-fix-IPv4-checksum-offloading.patch	2023-11-16 13:21:52.455946390 +0000
@@ -1 +1 @@
-From 3e9c82e88069b1e6e945479626b4c054edf8ba96 Mon Sep 17 00:00:00 2001
+From 774c444b1cc75fbcd86912ccbab273292e9b2714 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 bcc5f42cdf..29b4860656 100644
@@ -26 +27 @@
-@@ -560,5 +560,5 @@ tap_tx_l3_cksum(char *packet, uint64_t ol_flags, unsigned int l2_len,
+@@ -546,5 +546,5 @@ tap_tx_l3_cksum(char *packet, uint64_t ol_flags, unsigned int l2_len,
@@ -33 +34 @@
-@@ -643,5 +643,5 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
+@@ -629,5 +629,5 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,


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

* patch 'app/procinfo: fix RSS info' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (25 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/tap: fix IPv4 " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'app/procinfo: adjust format of " Kevin Traynor
                   ` (35 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 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 21.11.6

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

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

Thanks.

Kevin

---
From ff10f5d05bc2abad53a6adc6f70802e1ad34c3c4 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 f628377c19..41f983d52b 100644
--- a/app/proc-info/main.c
+++ b/app/proc-info/main.c
@@ -101,4 +101,6 @@ static uint32_t enable_dump_regs;
 static char *dump_regs_file_prefix;
 
+#define RSS_HASH_KEY_SIZE 64
+
 /**< display usage */
 static void
@@ -724,4 +726,5 @@ show_port(void)
 		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 */
@@ -867,15 +870,15 @@ show_port(void)
 		}
 
+		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);
 		}
 
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.226358994 +0000
+++ 0028-app-procinfo-fix-RSS-info.patch	2023-11-16 13:21:52.456946392 +0000
@@ -1 +1 @@
-From 33079eccf5c1a99af722fe168d8465f602bc98b2 Mon Sep 17 00:00:00 2001
+From ff10f5d05bc2abad53a6adc6f70802e1ad34c3c4 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 f628377c19..41f983d52b 100644
@@ -28,2 +29,2 @@
-@@ -152,4 +152,6 @@ static struct desc_param rx_desc_param;
- static struct desc_param tx_desc_param;
+@@ -101,4 +101,6 @@ static uint32_t enable_dump_regs;
+ static char *dump_regs_file_prefix;
@@ -33 +34 @@
- /* display usage */
+ /**< display usage */
@@ -35 +36 @@
-@@ -1012,4 +1014,5 @@ show_port(void)
+@@ -724,4 +726,5 @@ show_port(void)
@@ -41 +42 @@
-@@ -1170,15 +1173,15 @@ show_port(void)
+@@ -867,15 +870,15 @@ show_port(void)


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

* patch 'app/procinfo: adjust format of RSS info' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (26 preceding siblings ...)
  2023-11-16 13:23 ` patch 'app/procinfo: fix RSS info' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/tap: fix RSS for fragmented packets' " Kevin Traynor
                   ` (34 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 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 21.11.6

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

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

Thanks.

Kevin

---
From 4c22ff4433d9474801d7710fb8c0091208416bff 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 41f983d52b..b52c3ffbc5 100644
--- a/app/proc-info/main.c
+++ b/app/proc-info/main.c
@@ -874,10 +874,11 @@ show_port(void)
 		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.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.248278120 +0000
+++ 0029-app-procinfo-adjust-format-of-RSS-info.patch	2023-11-16 13:21:52.457946395 +0000
@@ -1 +1 @@
-From 66d4bacc39fb765051594669c33aab4f5d0f9d6c Mon Sep 17 00:00:00 2001
+From 4c22ff4433d9474801d7710fb8c0091208416bff 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 41f983d52b..b52c3ffbc5 100644
@@ -37 +38 @@
-@@ -1177,10 +1177,11 @@ show_port(void)
+@@ -874,10 +874,11 @@ show_port(void)


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

* patch 'net/tap: fix RSS for fragmented packets' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (27 preceding siblings ...)
  2023-11-16 13:23 ` patch 'app/procinfo: adjust format of " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/mlx5: fix decap action checking in sample flow' " Kevin Traynor
                   ` (33 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Madhuker Mythri; +Cc: Stephen Hemminger, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 97cf69ec61aa5e5a84acfa15e8e0a21bbc21709b 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,9 +1,9 @@
 /* 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},
@@ -24,9 +24,8 @@ static struct bpf_insn cls_q_insns[] = {
 };
 
-/* 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},
@@ -35,5 +34,5 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{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},
@@ -59,5 +58,5 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{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},
@@ -67,1616 +66,1664 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{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},
@@ -1684,11 +1731,11 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{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},
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
@@ -132,4 +132,6 @@ rss_l3_l4(struct __sk_buff *skb)
 	__u32 len;
 	__u32 queue = 0;
+	bool mf = 0;
+	__u16 frag_off = 0;
 
 	rsskey = map_lookup_elem(&map_keys, &key_idx);
@@ -156,4 +158,6 @@ rss_l3_l4(struct __sk_buff *skb)
 
 		__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 = {
@@ -166,9 +170,23 @@ rss_l3_l4(struct __sk_buff *skb)
 					*(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))
@@ -183,4 +201,7 @@ rss_l3_l4(struct __sk_buff *skb)
 		__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++)
@@ -192,8 +213,16 @@ rss_l3_l4(struct __sk_buff *skb)
 				__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);
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.270286152 +0000
+++ 0030-net-tap-fix-RSS-for-fragmented-packets.patch	2023-11-16 13:21:52.460946404 +0000
@@ -1 +1 @@
-From db6a3ddb166bb53ac7929e4b5c4cad94f6fa6871 Mon Sep 17 00:00:00 2001
+From 97cf69ec61aa5e5a84acfa15e8e0a21bbc21709b 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,75 +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
-@@ -134,4 +134,6 @@ rss_l3_l4(struct __sk_buff *skb)
- 	__u32 len;
- 	__u32 queue = 0;
-+	bool mf = 0;
-+	__u16 frag_off = 0;
- 
- 	rsskey = map_lookup_elem(&map_keys, &key_idx);
-@@ -158,4 +160,6 @@ rss_l3_l4(struct __sk_buff *skb)
- 
- 		__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 = {
-@@ -168,9 +172,23 @@ rss_l3_l4(struct __sk_buff *skb)
- 					*(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))
-@@ -185,4 +203,7 @@ rss_l3_l4(struct __sk_buff *skb)
- 		__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++)
-@@ -194,8 +215,16 @@ rss_l3_l4(struct __sk_buff *skb)
- 				__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);
@@ -3432,0 +3359,75 @@
+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
+@@ -132,4 +132,6 @@ rss_l3_l4(struct __sk_buff *skb)
+ 	__u32 len;
+ 	__u32 queue = 0;
++	bool mf = 0;
++	__u16 frag_off = 0;
+ 
+ 	rsskey = map_lookup_elem(&map_keys, &key_idx);
+@@ -156,4 +158,6 @@ rss_l3_l4(struct __sk_buff *skb)
+ 
+ 		__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 = {
+@@ -166,9 +170,23 @@ rss_l3_l4(struct __sk_buff *skb)
+ 					*(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))
+@@ -183,4 +201,7 @@ rss_l3_l4(struct __sk_buff *skb)
+ 		__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++)
+@@ -192,8 +213,16 @@ rss_l3_l4(struct __sk_buff *skb)
+ 				__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);


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

* patch 'net/mlx5: fix decap action checking in sample flow' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (28 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/tap: fix RSS for fragmented packets' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/mlx5: fix E-Switch mirror flow rule validation' " Kevin Traynor
                   ` (32 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Jiawei Wang; +Cc: Suanming Mou, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 9f2c545da64c50b2863a1edbcbb527e4f4260e4e Mon Sep 17 00:00:00 2001
From: Jiawei Wang <jiaweiw@nvidia.com>
Date: Wed, 11 Oct 2023 09:36:31 +0300
Subject: [PATCH] net/mlx5: fix decap action checking in sample flow

[ upstream commit c40023aece2ec9a7899fafecf474d7337212776e ]

This patch uses the temp variable to check the current action type,
to avoid overlap the sample action following the decap.

Fixes: 7356aec64c48 ("net/mlx5: fix mirror flow split with L3 encapsulation")

Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
Acked-by: Suanming Mou <suanmingm@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 42229ede78..5d489c7f92 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -5514,4 +5514,5 @@ flow_check_match_action(const struct rte_flow_action actions[],
 	const struct rte_flow_action_sample *sample;
 	const struct rte_flow_action_raw_decap *decap;
+	const struct rte_flow_action *action_cur = NULL;
 	int actions_n = 0;
 	uint32_t ratio = 0;
@@ -5574,10 +5575,10 @@ flow_check_match_action(const struct rte_flow_action actions[],
 		case RTE_FLOW_ACTION_TYPE_RAW_DECAP:
 			decap = actions->conf;
-			while ((++actions)->type == RTE_FLOW_ACTION_TYPE_VOID)
+			action_cur = actions;
+			while ((++action_cur)->type == RTE_FLOW_ACTION_TYPE_VOID)
 				;
-			actions_n++;
-			if (actions->type == RTE_FLOW_ACTION_TYPE_RAW_ENCAP) {
+			if (action_cur->type == RTE_FLOW_ACTION_TYPE_RAW_ENCAP) {
 				const struct rte_flow_action_raw_encap *encap =
-								actions->conf;
+								action_cur->conf;
 				if (decap->size <=
 					MLX5_ENCAPSULATION_DECISION_SIZE &&
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.297664782 +0000
+++ 0031-net-mlx5-fix-decap-action-checking-in-sample-flow.patch	2023-11-16 13:21:52.467946425 +0000
@@ -1 +1 @@
-From c40023aece2ec9a7899fafecf474d7337212776e Mon Sep 17 00:00:00 2001
+From 9f2c545da64c50b2863a1edbcbb527e4f4260e4e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c40023aece2ec9a7899fafecf474d7337212776e ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 8ad85e6027..772f6afb66 100644
+index 42229ede78..5d489c7f92 100644
@@ -22 +23 @@
-@@ -6160,4 +6160,5 @@ flow_check_match_action(const struct rte_flow_action actions[],
+@@ -5514,4 +5514,5 @@ flow_check_match_action(const struct rte_flow_action actions[],
@@ -28 +29 @@
-@@ -6220,10 +6221,10 @@ flow_check_match_action(const struct rte_flow_action actions[],
+@@ -5574,10 +5575,10 @@ flow_check_match_action(const struct rte_flow_action actions[],


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

* patch 'net/mlx5: fix E-Switch mirror flow rule validation' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (29 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/mlx5: fix decap action checking in sample flow' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'common/mlx5: fix controller index parsing' " Kevin Traynor
                   ` (31 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Jiawei Wang; +Cc: Ori Kam, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 986d9d2fbb4950db6b47042210f6dbcd0083f2db Mon Sep 17 00:00:00 2001
From: Jiawei Wang <jiaweiw@nvidia.com>
Date: Wed, 11 Oct 2023 09:43:19 +0300
Subject: [PATCH] net/mlx5: fix E-Switch mirror flow rule validation

[ upstream commit a8697f50f50f35b2078c78b2d9ea84f78a0f325e ]

The port action and jump to flow table action are not supported
in the mirror flows (RTE_FLOW_ACTION_TYPE_SAMPLE with sample ratio=1)
in E-Switch domain (transfer attribute set) without presented encap
action.

The encap action is supported for uplink port only. So, if flow with
mirroring contains  encap action application should provide encap
and uplink port actions in the mirror action list and PMD validates
this condition (to make sure we cover the hardware limitation).

This patch adds the validation for E-Switch mirror flow rule checking
and rejects as invalid.

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

Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
 doc/guides/nics/mlx5.rst        |  8 ++-
 drivers/net/mlx5/mlx5_flow_dv.c | 93 +++++++++++++++++++++++++--------
 2 files changed, 77 insertions(+), 24 deletions(-)

diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index 593a71cf9a..e2fb45b1db 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -427,6 +427,10 @@ Limitations
   - For NIC Rx flow, supports ``MARK``, ``COUNT``, ``QUEUE``, ``RSS`` in the
     sample actions list.
-  - For E-Switch mirroring flow, supports ``RAW ENCAP``, ``Port ID``,
-    ``VXLAN ENCAP``, ``NVGRE ENCAP`` in the sample actions list.
+  - For E-Switch mirroring flow, supports ``RAW_ENCAP``, ``PORT_ID``,
+    ``VXLAN_ENCAP``, ``NVGRE_ENCAP`` in the sample actions list.
+  - For E-Switch mirroring flow with sample ratio = 1, the ``ENCAP`` action
+    supports uplink port only.
+  - For E-Switch mirroring flow with sample ratio = 1, the ``PORT`` and ``JUMP`` actions
+    are not supported without presented ``ENCAP`` action in the sample actions list.
   - For ConnectX-5 trusted device, the application metadata with SET_TAG index 0
     is not supported before ``RTE_FLOW_ACTION_TYPE_SAMPLE`` action.
diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 535e0ea618..a5e1beb769 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -5554,4 +5554,5 @@ flow_dv_modify_clone_free_cb(void *tool_ctx, struct mlx5_list_entry *entry)
 static int
 flow_dv_validate_action_sample(uint64_t *action_flags,
+			       uint64_t *sub_action_flags,
 			       const struct rte_flow_action *action,
 			       struct rte_eth_dev *dev,
@@ -5562,4 +5563,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 			       const struct rte_flow_action_count **count,
 			       int *fdb_mirror,
+			       uint16_t *sample_port_id,
 			       struct rte_flow_error *error)
 {
@@ -5567,6 +5569,6 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 	struct mlx5_dev_config *dev_conf = &priv->config;
 	const struct rte_flow_action_sample *sample = action->conf;
+	const struct rte_flow_action_port_id *port = NULL;
 	const struct rte_flow_action *act;
-	uint64_t sub_action_flags = 0;
 	uint16_t queue_index = 0xFFFF;
 	int actions_n = 0;
@@ -5614,5 +5616,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 		case RTE_FLOW_ACTION_TYPE_QUEUE:
 			ret = mlx5_flow_validate_action_queue(act,
-							      sub_action_flags,
+							      *sub_action_flags,
 							      dev,
 							      attr, error);
@@ -5621,5 +5623,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 			queue_index = ((const struct rte_flow_action_queue *)
 							(act->conf))->index;
-			sub_action_flags |= MLX5_FLOW_ACTION_QUEUE;
+			*sub_action_flags |= MLX5_FLOW_ACTION_QUEUE;
 			++actions_n;
 			break;
@@ -5627,5 +5629,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 			*sample_rss = act->conf;
 			ret = mlx5_flow_validate_action_rss(act,
-							    sub_action_flags,
+							    *sub_action_flags,
 							    dev, attr,
 							    item_flags,
@@ -5643,28 +5645,28 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 			if (*sample_rss != NULL && (*sample_rss)->queue_num)
 				queue_index = (*sample_rss)->queue[0];
-			sub_action_flags |= MLX5_FLOW_ACTION_RSS;
+			*sub_action_flags |= MLX5_FLOW_ACTION_RSS;
 			++actions_n;
 			break;
 		case RTE_FLOW_ACTION_TYPE_MARK:
 			ret = flow_dv_validate_action_mark(dev, act,
-							   sub_action_flags,
+							   *sub_action_flags,
 							   attr, error);
 			if (ret < 0)
 				return ret;
 			if (dev_conf->dv_xmeta_en != MLX5_XMETA_MODE_LEGACY)
-				sub_action_flags |= MLX5_FLOW_ACTION_MARK |
+				*sub_action_flags |= MLX5_FLOW_ACTION_MARK |
 						MLX5_FLOW_ACTION_MARK_EXT;
 			else
-				sub_action_flags |= MLX5_FLOW_ACTION_MARK;
+				*sub_action_flags |= MLX5_FLOW_ACTION_MARK;
 			++actions_n;
 			break;
 		case RTE_FLOW_ACTION_TYPE_COUNT:
 			ret = flow_dv_validate_action_count
-				(dev, false, *action_flags | sub_action_flags,
+				(dev, false, *action_flags | *sub_action_flags,
 				 attr, error);
 			if (ret < 0)
 				return ret;
 			*count = act->conf;
-			sub_action_flags |= MLX5_FLOW_ACTION_COUNT;
+			*sub_action_flags |= MLX5_FLOW_ACTION_COUNT;
 			*action_flags |= MLX5_FLOW_ACTION_COUNT;
 			++actions_n;
@@ -5673,5 +5675,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 		case RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT:
 			ret = flow_dv_validate_action_port_id(dev,
-							      sub_action_flags,
+							      *sub_action_flags,
 							      act,
 							      attr,
@@ -5679,10 +5681,19 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 			if (ret)
 				return ret;
-			sub_action_flags |= MLX5_FLOW_ACTION_PORT_ID;
+			if (act->type == RTE_FLOW_ACTION_TYPE_PORT_ID) {
+				port = (const struct rte_flow_action_port_id *)
+					act->conf;
+				*sample_port_id = port->original ?
+						  dev->data->port_id : port->id;
+			} else {
+				*sample_port_id = ((const struct rte_flow_action_ethdev *)
+						  act->conf)->port_id;
+			}
+			*sub_action_flags |= MLX5_FLOW_ACTION_PORT_ID;
 			++actions_n;
 			break;
 		case RTE_FLOW_ACTION_TYPE_RAW_ENCAP:
 			ret = flow_dv_validate_action_raw_encap_decap
-				(dev, NULL, act->conf, attr, &sub_action_flags,
+				(dev, NULL, act->conf, attr, sub_action_flags,
 				 &actions_n, action, item_flags, error);
 			if (ret < 0)
@@ -5693,10 +5704,10 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 		case RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP:
 			ret = flow_dv_validate_action_l2_encap(dev,
-							       sub_action_flags,
+							       *sub_action_flags,
 							       act, attr,
 							       error);
 			if (ret < 0)
 				return ret;
-			sub_action_flags |= MLX5_FLOW_ACTION_ENCAP;
+			*sub_action_flags |= MLX5_FLOW_ACTION_ENCAP;
 			++actions_n;
 			break;
@@ -5710,5 +5721,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 	}
 	if (attr->ingress && !attr->transfer) {
-		if (!(sub_action_flags & (MLX5_FLOW_ACTION_QUEUE |
+		if (!(*sub_action_flags & (MLX5_FLOW_ACTION_QUEUE |
 					  MLX5_FLOW_ACTION_RSS)))
 			return rte_flow_error_set(error, EINVAL,
@@ -5732,15 +5743,15 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 						  "any optional action "
 						  "for sampling");
-		if (sub_action_flags & MLX5_FLOW_ACTION_QUEUE)
+		if (*sub_action_flags & MLX5_FLOW_ACTION_QUEUE)
 			return rte_flow_error_set(error, ENOTSUP,
 						  RTE_FLOW_ERROR_TYPE_ACTION,
 						  NULL,
 						  "unsupported action QUEUE");
-		if (sub_action_flags & MLX5_FLOW_ACTION_RSS)
+		if (*sub_action_flags & MLX5_FLOW_ACTION_RSS)
 			return rte_flow_error_set(error, ENOTSUP,
 						  RTE_FLOW_ERROR_TYPE_ACTION,
 						  NULL,
 						  "unsupported action QUEUE");
-		if (!(sub_action_flags & MLX5_FLOW_ACTION_PORT_ID))
+		if (!(*sub_action_flags & MLX5_FLOW_ACTION_PORT_ID))
 			return rte_flow_error_set(error, EINVAL,
 						  RTE_FLOW_ERROR_TYPE_ACTION,
@@ -5751,8 +5762,8 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 	}
 	/* Continue validation for Xcap actions.*/
-	if ((sub_action_flags & MLX5_FLOW_XCAP_ACTIONS) &&
+	if ((*sub_action_flags & MLX5_FLOW_XCAP_ACTIONS) &&
 	    (queue_index == 0xFFFF ||
 	     mlx5_rxq_get_type(dev, queue_index) != MLX5_RXQ_TYPE_HAIRPIN)) {
-		if ((sub_action_flags & MLX5_FLOW_XCAP_ACTIONS) ==
+		if ((*sub_action_flags & MLX5_FLOW_XCAP_ACTIONS) ==
 		     MLX5_FLOW_XCAP_ACTIONS)
 			return rte_flow_error_set(error, ENOTSUP,
@@ -5761,5 +5772,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 						  "combination aren't "
 						  "supported");
-		if (!attr->transfer && attr->ingress && (sub_action_flags &
+		if (!attr->transfer && attr->ingress && (*sub_action_flags &
 							MLX5_FLOW_ACTION_ENCAP))
 			return rte_flow_error_set(error, ENOTSUP,
@@ -6870,7 +6881,12 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 	const struct rte_flow_action_age *non_shared_age = NULL;
 	const struct rte_flow_action_count *count = NULL;
+	const struct rte_flow_action_port_id *port = NULL;
 	const struct mlx5_rte_flow_item_tag *mlx5_tag;
 	struct mlx5_priv *act_priv = NULL;
 	int aso_after_sample = 0;
+	struct mlx5_priv *port_priv = NULL;
+	uint64_t sub_action_flags = 0;
+	uint16_t sample_port_id = 0;
+	uint16_t port_id = 0;
 
 	if (items == NULL)
@@ -7279,4 +7295,12 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 			if (ret)
 				return ret;
+			if (type == RTE_FLOW_ACTION_TYPE_PORT_ID) {
+				port = (const struct rte_flow_action_port_id *)
+					actions->conf;
+				port_id = port->original ? dev->data->port_id : port->id;
+			} else {
+				port_id = ((const struct rte_flow_action_ethdev *)
+					actions->conf)->port_id;
+			}
 			action_flags |= MLX5_FLOW_ACTION_PORT_ID;
 			++actions_n;
@@ -7778,4 +7802,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 		case RTE_FLOW_ACTION_TYPE_SAMPLE:
 			ret = flow_dv_validate_action_sample(&action_flags,
+							     &sub_action_flags,
 							     actions, dev,
 							     attr, item_flags,
@@ -7783,4 +7808,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 							     &sample_count,
 							     &fdb_mirror,
+							     &sample_port_id,
 							     error);
 			if (ret < 0)
@@ -8087,4 +8113,27 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 						  RTE_FLOW_ERROR_TYPE_ACTION, NULL,
 						  "sample before ASO action is not supported");
+		if (sub_action_flags & MLX5_FLOW_ACTION_PORT_ID) {
+			port_priv = mlx5_port_to_eswitch_info(sample_port_id, false);
+			if (flow_source_vport_representor(priv, port_priv)) {
+				if (sub_action_flags & MLX5_FLOW_ACTION_ENCAP)
+					return rte_flow_error_set(error, ENOTSUP,
+								RTE_FLOW_ERROR_TYPE_ACTION, NULL,
+								"mirror to rep port with encap is not supported");
+			} else {
+				if ((sub_action_flags & ~MLX5_FLOW_ACTION_ENCAP) &&
+				    (action_flags & MLX5_FLOW_ACTION_JUMP))
+					return rte_flow_error_set(error, ENOTSUP,
+								RTE_FLOW_ERROR_TYPE_ACTION, NULL,
+								"mirror to wire port without encap is not supported");
+			}
+		}
+		if ((action_flags & MLX5_FLOW_ACTION_PORT_ID) &&
+		    (action_flags & MLX5_FLOW_ACTION_ENCAP)) {
+			port_priv = mlx5_port_to_eswitch_info(port_id, false);
+			if (flow_source_vport_representor(priv, port_priv))
+				return rte_flow_error_set(error, ENOTSUP,
+							RTE_FLOW_ERROR_TYPE_ACTION, NULL,
+							"mirror to rep port with encap is not supported");
+		}
 	}
 	/*
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.326145511 +0000
+++ 0032-net-mlx5-fix-E-Switch-mirror-flow-rule-validation.patch	2023-11-16 13:21:52.482946468 +0000
@@ -1 +1 @@
-From a8697f50f50f35b2078c78b2d9ea84f78a0f325e Mon Sep 17 00:00:00 2001
+From 986d9d2fbb4950db6b47042210f6dbcd0083f2db Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a8697f50f50f35b2078c78b2d9ea84f78a0f325e ]
+
@@ -20 +21,0 @@
-Cc: stable@dpdk.org
@@ -30 +31 @@
-index 5d64ad8810..4b3680ab32 100644
+index 593a71cf9a..e2fb45b1db 100644
@@ -33 +34 @@
-@@ -544,6 +544,10 @@ Limitations
+@@ -427,6 +427,10 @@ Limitations
@@ -47 +48 @@
-index bdc8d0076a..80ad7cd206 100644
+index 535e0ea618..a5e1beb769 100644
@@ -50 +51 @@
-@@ -6036,4 +6036,5 @@ flow_dv_modify_clone_free_cb(void *tool_ctx, struct mlx5_list_entry *entry)
+@@ -5554,4 +5554,5 @@ flow_dv_modify_clone_free_cb(void *tool_ctx, struct mlx5_list_entry *entry)
@@ -56 +57 @@
-@@ -6044,4 +6045,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5562,4 +5563,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -60 +60,0 @@
- 			       bool root,
@@ -62,2 +62,3 @@
-@@ -6050,6 +6052,6 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
- 	struct mlx5_sh_config *dev_conf = &priv->sh->config;
+ {
+@@ -5567,6 +5569,6 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+ 	struct mlx5_dev_config *dev_conf = &priv->config;
@@ -70 +71 @@
-@@ -6098,5 +6100,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5614,5 +5616,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -77 +78 @@
-@@ -6105,5 +6107,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5621,5 +5623,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -84 +85 @@
-@@ -6111,5 +6113,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5627,5 +5629,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -91 +92 @@
-@@ -6127,28 +6129,28 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5643,28 +5645,28 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -118 +119 @@
- 				 root, error);
+ 				 attr, error);
@@ -126 +127 @@
-@@ -6157,5 +6159,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5673,5 +5675,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -133 +134 @@
-@@ -6163,10 +6165,19 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5679,10 +5681,19 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -155 +156 @@
-@@ -6177,10 +6188,10 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5693,10 +5704,10 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -168 +169 @@
-@@ -6194,5 +6205,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5710,5 +5721,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -170 +171 @@
- 	if (attr->ingress) {
+ 	if (attr->ingress && !attr->transfer) {
@@ -175 +176 @@
-@@ -6216,15 +6227,15 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5732,15 +5743,15 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -194 +195 @@
-@@ -6235,7 +6246,7 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5751,8 +5762,8 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -199 +200,2 @@
- 	    (queue_index == 0xFFFF || !mlx5_rxq_is_hairpin(dev, queue_index))) {
+ 	    (queue_index == 0xFFFF ||
+ 	     mlx5_rxq_get_type(dev, queue_index) != MLX5_RXQ_TYPE_HAIRPIN)) {
@@ -204 +206 @@
-@@ -6244,5 +6255,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5761,5 +5772,5 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -207,2 +209,3 @@
--		if (attr->ingress && (sub_action_flags & MLX5_FLOW_ACTION_ENCAP))
-+		if (attr->ingress && (*sub_action_flags & MLX5_FLOW_ACTION_ENCAP))
+-		if (!attr->transfer && attr->ingress && (sub_action_flags &
++		if (!attr->transfer && attr->ingress && (*sub_action_flags &
+ 							MLX5_FLOW_ACTION_ENCAP))
@@ -210,2 +213 @@
- 						  RTE_FLOW_ERROR_TYPE_ACTION,
-@@ -7399,7 +7410,12 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -6870,7 +6881,12 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
@@ -224 +226 @@
-@@ -7871,4 +7887,12 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -7279,4 +7295,12 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
@@ -237 +239 @@
-@@ -8370,4 +8394,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -7778,4 +7802,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
@@ -243 +245 @@
-@@ -8375,4 +8400,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -7783,4 +7808,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
@@ -247 +248,0 @@
- 							     is_root,
@@ -249 +250,2 @@
-@@ -8687,4 +8713,27 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+ 			if (ret < 0)
+@@ -8087,4 +8113,27 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,


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

* patch 'common/mlx5: fix controller index parsing' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (30 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/mlx5: fix E-Switch mirror flow rule validation' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/ice: fix L1 check interval' " Kevin Traynor
                   ` (30 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Dariusz Sosnowski; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 981460d10107103b0fa2d6b858ecaa0ae45184fc 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 eeb583a553..9fd6c1b5f0 100644
--- a/drivers/common/mlx5/linux/mlx5_common_os.c
+++ b/drivers/common/mlx5/linux/mlx5_common_os.c
@@ -96,8 +96,9 @@ mlx5_translate_port_name(const char *port_name_in,
 	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",
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.360178683 +0000
+++ 0033-common-mlx5-fix-controller-index-parsing.patch	2023-11-16 13:21:52.483946471 +0000
@@ -1 +1 @@
-From 3cd5e500b5cb1b72ee182be4043018f22a5f8a3b Mon Sep 17 00:00:00 2001
+From 981460d10107103b0fa2d6b858ecaa0ae45184fc 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 eeb583a553..9fd6c1b5f0 100644
@@ -35 +36 @@
-@@ -97,8 +97,9 @@ mlx5_translate_port_name(const char *port_name_in,
+@@ -96,8 +96,9 @@ mlx5_translate_port_name(const char *port_name_in,


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

* patch 'net/ice: fix L1 check interval' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (31 preceding siblings ...)
  2023-11-16 13:23 ` patch 'common/mlx5: fix controller index parsing' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/iavf: fix Tx offload mask' " Kevin Traynor
                   ` (29 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Timothy Miskell; +Cc: Jonathan Tsai, Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From da268d8b4ee41218c606176f82e6d6df89dc7cd0 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>
---
 .mailmap                     | 2 ++
 drivers/net/ice/ice_ethdev.c | 4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/.mailmap b/.mailmap
index 4e27a991ba..b92a52a280 100644
--- a/.mailmap
+++ b/.mailmap
@@ -652,4 +652,5 @@ John W. Linville <linville@tuxdriver.com>
 Jonas Pfefferle <jpf@zurich.ibm.com> <pepperjo@japf.ch>
 Jonathan Erb <jonathan.erb@banduracyber.com>
+Jonathan Tsai <jonathan1.tsai@intel.com>
 Jon DeVree <nuxi@vault24.org>
 Jon Loeliger <jdl@netgate.com>
@@ -1365,4 +1366,5 @@ 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>
diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index 9768a6eb85..30be64ac40 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -3838,6 +3838,6 @@ 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;
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.381084151 +0000
+++ 0034-net-ice-fix-L1-check-interval.patch	2023-11-16 13:21:52.488946486 +0000
@@ -1 +1 @@
-From ff628a22c51f9cc5f69c715005a42456a2aec4f6 Mon Sep 17 00:00:00 2001
+From da268d8b4ee41218c606176f82e6d6df89dc7cd0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ff628a22c51f9cc5f69c715005a42456a2aec4f6 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index c0ab6d090b..d91775daf1 100644
+index 4e27a991ba..b92a52a280 100644
@@ -27 +28 @@
-@@ -677,4 +677,5 @@ John W. Linville <linville@tuxdriver.com>
+@@ -652,4 +652,5 @@ John W. Linville <linville@tuxdriver.com>
@@ -29 +30 @@
- Jonathan Erb <jonathan.erb@threatblockr.com> <jonathan.erb@banduracyber.com>
+ Jonathan Erb <jonathan.erb@banduracyber.com>
@@ -33 +34 @@
-@@ -1418,4 +1419,5 @@ Tianyu Li <tianyu.li@arm.com>
+@@ -1365,4 +1366,5 @@ Tianyu Li <tianyu.li@arm.com>
@@ -40 +41 @@
-index 305077e74e..6ef06b9926 100644
+index 9768a6eb85..30be64ac40 100644
@@ -43 +44 @@
-@@ -3993,6 +3993,6 @@ static int
+@@ -3838,6 +3838,6 @@ static int


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

* patch 'net/iavf: fix Tx offload mask' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (32 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/ice: fix L1 check interval' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/iavf: fix indent in Tx path' " Kevin Traynor
                   ` (28 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Radu Nicolau; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 820e8fc77008d2f4b422e301c60f952b96fab663 Mon Sep 17 00:00:00 2001
From: Radu Nicolau <radu.nicolau@intel.com>
Date: Tue, 24 Oct 2023 10:13:28 +0100
Subject: [PATCH] net/iavf: fix Tx offload mask

[ upstream commit 3295697286accac24e1014fa3c0320a0c597bc1e ]

IAVF_TX_OFFLOAD_MASK definition contained
RTE_ETH_TX_OFFLOAD_SECURITY instead of
RTE_MBUF_F_TX_SEC_OFFLOAD.

Fixes: 6bc987ecb860 ("net/iavf: support IPsec inline crypto")

Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_rxtx.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/iavf/iavf_rxtx.h b/drivers/net/iavf/iavf_rxtx.h
index db665a6468..c428082080 100644
--- a/drivers/net/iavf/iavf_rxtx.h
+++ b/drivers/net/iavf/iavf_rxtx.h
@@ -73,5 +73,5 @@
 		RTE_MBUF_F_TX_L4_MASK |		 \
 		RTE_MBUF_F_TX_TCP_SEG |		 \
-		RTE_ETH_TX_OFFLOAD_SECURITY)
+		RTE_MBUF_F_TX_SEC_OFFLOAD)
 
 #define IAVF_TX_OFFLOAD_NOTSUP_MASK \
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.406451001 +0000
+++ 0035-net-iavf-fix-Tx-offload-mask.patch	2023-11-16 13:21:52.489946489 +0000
@@ -1 +1 @@
-From 3295697286accac24e1014fa3c0320a0c597bc1e Mon Sep 17 00:00:00 2001
+From 820e8fc77008d2f4b422e301c60f952b96fab663 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3295697286accac24e1014fa3c0320a0c597bc1e ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index d3324e0e6e..f432f9d956 100644
+index db665a6468..c428082080 100644
@@ -23,3 +24,3 @@
-@@ -99,5 +99,5 @@
- 		RTE_MBUF_F_TX_OUTER_IP_CKSUM |  \
- 		RTE_MBUF_F_TX_OUTER_UDP_CKSUM | \
+@@ -73,5 +73,5 @@
+ 		RTE_MBUF_F_TX_L4_MASK |		 \
+ 		RTE_MBUF_F_TX_TCP_SEG |		 \


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

* patch 'net/iavf: fix indent in Tx path' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (33 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/iavf: fix Tx offload mask' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/iavf: fix Tx offload flags check' " Kevin Traynor
                   ` (27 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: David Marchand; +Cc: Radu Nicolau, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 9e228c5690e699894ac1beb447f9cfce662f6778 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 26 Oct 2023 10:06:16 +0200
Subject: [PATCH] net/iavf: fix indent in Tx path

[ upstream commit dbdbb1310ff2a39e215d28d326ba2261d174eee9 ]

Fix confusing indentations.

Fixes: 1e728b01120c ("net/iavf: rework Tx path")
Fixes: 6bc987ecb860 ("net/iavf: support IPsec inline crypto")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Radu Nicolau <radu.nicolau@intel.com>
---
 drivers/net/iavf/iavf_rxtx.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index 7374d36499..e810d27bea 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -2673,5 +2673,5 @@ iavf_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 			desc_idx = txe->next_id;
 			txe = txn;
-			}
+		}
 
 		if (nb_desc_ipsec) {
@@ -2686,5 +2686,5 @@ iavf_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 				rte_pktmbuf_free_seg(txe->mbuf);
 				txe->mbuf = NULL;
-		}
+			}
 
 			iavf_fill_ipsec_desc(ipsec_desc, ipsec_md, &ipseclen);
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.427309860 +0000
+++ 0036-net-iavf-fix-indent-in-Tx-path.patch	2023-11-16 13:21:52.491946494 +0000
@@ -1 +1 @@
-From dbdbb1310ff2a39e215d28d326ba2261d174eee9 Mon Sep 17 00:00:00 2001
+From 9e228c5690e699894ac1beb447f9cfce662f6778 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit dbdbb1310ff2a39e215d28d326ba2261d174eee9 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 72263870a4..9890a31734 100644
+index 7374d36499..e810d27bea 100644
@@ -22 +23 @@
-@@ -2899,5 +2899,5 @@ iavf_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
+@@ -2673,5 +2673,5 @@ iavf_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
@@ -29 +30 @@
-@@ -2912,5 +2912,5 @@ iavf_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
+@@ -2686,5 +2686,5 @@ iavf_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)


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

* patch 'net/iavf: fix Tx offload flags check' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (34 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/iavf: fix indent in Tx path' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/ice: fix DCF port statistics' " Kevin Traynor
                   ` (26 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Radu Nicolau; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 7fd13314d312ef2025a6b8578ea3ed12564c783d Mon Sep 17 00:00:00 2001
From: Radu Nicolau <radu.nicolau@intel.com>
Date: Wed, 25 Oct 2023 10:12:58 +0100
Subject: [PATCH] net/iavf: fix Tx offload flags check

[ upstream commit 55f6cfe9ba8cebddd786f0f6bf5b9baad97fdfad ]

Relax the check in the previous fix to allow packets
with security offload flag set.

Fixes: 3c715591ece0 ("net/iavf: fix checksum offloading")

Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 drivers/net/iavf/iavf_rxtx.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index e810d27bea..b2789c1a48 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -2441,5 +2441,6 @@ iavf_build_data_desc_cmd_offset_fields(volatile uint64_t *qw1,
 	}
 
-	if ((m->ol_flags & IAVF_TX_CKSUM_OFFLOAD_MASK) == 0)
+	if ((m->ol_flags &
+	    (IAVF_TX_CKSUM_OFFLOAD_MASK | RTE_MBUF_F_TX_SEC_OFFLOAD)) == 0)
 		goto skip_cksum;
 
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.450119886 +0000
+++ 0037-net-iavf-fix-Tx-offload-flags-check.patch	2023-11-16 13:21:52.493946500 +0000
@@ -1 +1 @@
-From 55f6cfe9ba8cebddd786f0f6bf5b9baad97fdfad Mon Sep 17 00:00:00 2001
+From 7fd13314d312ef2025a6b8578ea3ed12564c783d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 55f6cfe9ba8cebddd786f0f6bf5b9baad97fdfad ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 9890a31734..610912f635 100644
+index e810d27bea..b2789c1a48 100644
@@ -22 +23 @@
-@@ -2667,5 +2667,6 @@ iavf_build_data_desc_cmd_offset_fields(volatile uint64_t *qw1,
+@@ -2441,5 +2441,6 @@ iavf_build_data_desc_cmd_offset_fields(volatile uint64_t *qw1,


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

* patch 'net/ice: fix DCF port statistics' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (35 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/iavf: fix Tx offload flags check' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'crypto/nitrox: fix panic with high number of segments' " Kevin Traynor
                   ` (25 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Zhichao Zeng; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 987c28f02274dcdaf425e815549484b9c370dd20 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 8954dc0f8d..16321195ed 100644
--- a/drivers/net/ice/ice_dcf_ethdev.c
+++ b/drivers/net/ice/ice_dcf_ethdev.c
@@ -1140,4 +1140,6 @@ ice_dcf_dev_init(struct rte_eth_dev *eth_dev)
 	}
 
+	ice_dcf_stats_reset(eth_dev);
+
 	return 0;
 }
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.472832139 +0000
+++ 0038-net-ice-fix-DCF-port-statistics.patch	2023-11-16 13:21:52.494946503 +0000
@@ -1 +1 @@
-From 70aef239d0de6b2048aecb1220da1d78edb75168 Mon Sep 17 00:00:00 2001
+From 987c28f02274dcdaf425e815549484b9c370dd20 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 8954dc0f8d..16321195ed 100644
@@ -23 +24 @@
-@@ -1938,4 +1938,6 @@ ice_dcf_dev_init(struct rte_eth_dev *eth_dev)
+@@ -1140,4 +1140,6 @@ ice_dcf_dev_init(struct rte_eth_dev *eth_dev)
@@ -28 +28,0 @@
- 	dcf_config_promisc(adapter, false, false);
@@ -29,0 +30 @@
+ }


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

* patch 'crypto/nitrox: fix panic with high number of segments' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (36 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/ice: fix DCF port statistics' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/iavf: fix Tx preparation' " Kevin Traynor
                   ` (24 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Nagadheeraj Rottela; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From cfd4195e5c768c4d30e166f6514a737e1f62fc31 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 9edb0cc00f..d7e8ff7db4 100644
--- a/drivers/crypto/nitrox/nitrox_sym_reqmgr.c
+++ b/drivers/crypto/nitrox/nitrox_sym_reqmgr.c
@@ -11,6 +11,9 @@
 #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
@@ -304,5 +307,5 @@ create_sglist_from_mbuf(struct nitrox_sgtable *sgtbl, struct rte_mbuf *mbuf,
 	}
 
-	RTE_VERIFY(cnt <= MAX_SGBUF_CNT);
+	RTE_ASSERT(cnt <= MAX_SGBUF_CNT);
 	sgtbl->map_bufs_cnt = cnt;
 	return 0;
@@ -376,5 +379,5 @@ create_cipher_outbuf(struct nitrox_softreq *sr)
 	cnt++;
 
-	RTE_VERIFY(cnt <= MAX_SGBUF_CNT);
+	RTE_ASSERT(cnt <= MAX_SGBUF_CNT);
 	sr->out.map_bufs_cnt = cnt;
 
@@ -601,5 +604,5 @@ create_aead_outbuf(struct nitrox_softreq *sr, struct nitrox_sglist *digest)
 	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;
 
@@ -775,4 +778,12 @@ 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;
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.494171502 +0000
+++ 0039-crypto-nitrox-fix-panic-with-high-number-of-segments.patch	2023-11-16 13:21:52.495946506 +0000
@@ -1 +1 @@
-From 4a469e1216384d19a6dc3950686f479e30e319a9 Mon Sep 17 00:00:00 2001
+From cfd4195e5c768c4d30e166f6514a737e1f62fc31 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4a469e1216384d19a6dc3950686f479e30e319a9 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org


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

* patch 'net/iavf: fix Tx preparation' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (37 preceding siblings ...)
  2023-11-16 13:23 ` patch 'crypto/nitrox: fix panic with high number of segments' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/ice: " Kevin Traynor
                   ` (23 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Qi Zhang; +Cc: Qiming Yang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 93bbc6d23d9a8bea0602459a794c58a6648bfb8e 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   | 3 ++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index 2214ba9545..c7aa730a21 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -1149,4 +1149,6 @@ iavf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 		.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,
 	};
 
diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index b2789c1a48..c932b7859e 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -2805,5 +2805,6 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 			}
 		} 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;
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.515502965 +0000
+++ 0040-net-iavf-fix-Tx-preparation.patch	2023-11-16 13:21:52.499946518 +0000
@@ -1 +1 @@
-From 0f536bae86b30e82ba95c279f1d6f9095d7f5b6e Mon Sep 17 00:00:00 2001
+From 93bbc6d23d9a8bea0602459a794c58a6648bfb8e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0f536bae86b30e82ba95c279f1d6f9095d7f5b6e ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 98cc5c8ea8..0c6ab4ac5a 100644
+index 2214ba9545..c7aa730a21 100644
@@ -23 +24 @@
-@@ -1208,4 +1208,6 @@ iavf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
+@@ -1149,4 +1149,6 @@ iavf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
@@ -31 +32 @@
-index 610912f635..45f638c1d2 100644
+index b2789c1a48..c932b7859e 100644
@@ -34 +35 @@
-@@ -3657,5 +3657,6 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -2805,5 +2805,6 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,


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

* patch 'net/ice: fix Tx preparation' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (38 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/iavf: fix Tx preparation' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'config/arm: fix aarch32 build with GCC 13' " Kevin Traynor
                   ` (22 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Qi Zhang; +Cc: Qiming Yang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From f4ef2095b0fc209e6e45936245bc11ac2e110936 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 30be64ac40..5e84894e5f 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -3773,4 +3773,6 @@ ice_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 		.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,
 	};
 
diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index 9db511acdc..7578bac03e 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -3485,5 +3485,5 @@ 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)
 {
@@ -3496,7 +3496,21 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		ol_flags = m->ol_flags;
 
-		if (ol_flags & RTE_MBUF_F_TX_TCP_SEG &&
+		if (!(ol_flags & RTE_MBUF_F_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 & RTE_MBUF_F_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)) {
 			/**
diff --git a/drivers/net/ice/ice_rxtx.h b/drivers/net/ice/ice_rxtx.h
index 2f0f050b58..3815c1cec3 100644
--- a/drivers/net/ice/ice_rxtx.h
+++ b/drivers/net/ice/ice_rxtx.h
@@ -49,4 +49,6 @@ extern int ice_timestamp_dynfield_offset;
 #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);
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.539765767 +0000
+++ 0041-net-ice-fix-Tx-preparation.patch	2023-11-16 13:21:52.505946535 +0000
@@ -1 +1 @@
-From 2f13ba5333b06589ba0e0e307dadcfaa95daf3dc Mon Sep 17 00:00:00 2001
+From f4ef2095b0fc209e6e45936245bc11ac2e110936 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 30be64ac40..5e84894e5f 100644
@@ -25 +26 @@
-@@ -3919,4 +3919,6 @@ ice_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
+@@ -3773,4 +3773,6 @@ ice_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
@@ -33 +34 @@
-index ee9cb7b955..73e47ae92d 100644
+index 9db511acdc..7578bac03e 100644
@@ -36 +37 @@
-@@ -3680,5 +3680,5 @@ ice_check_empty_mbuf(struct rte_mbuf *tx_pkt)
+@@ -3485,5 +3485,5 @@ ice_check_empty_mbuf(struct rte_mbuf *tx_pkt)
@@ -43 +44 @@
-@@ -3691,7 +3691,21 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -3496,7 +3496,21 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -67 +68 @@
-index 268289716e..bd2c4abec9 100644
+index 2f0f050b58..3815c1cec3 100644
@@ -70,2 +71,2 @@
-@@ -57,4 +57,6 @@ extern int ice_timestamp_dynfield_offset;
- #define ICE_HEADER_SPLIT_ENA   BIT(0)
+@@ -49,4 +49,6 @@ extern int ice_timestamp_dynfield_offset;
+ #define ICE_RX_MAX_DATA_BUF_SIZE	(16 * 1024 - 128)


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

* patch 'config/arm: fix aarch32 build with GCC 13' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (39 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/ice: " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'build: add libarchive to optional external dependencies' " Kevin Traynor
                   ` (21 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Juraj Linkeš; +Cc: Ruifeng Wang, Paul Szczepanek, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From c268e6c466144e614bf99f563a880a78df947afa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juraj=20Linke=C5=A1?= <juraj.linkes@pantheon.tech>
Date: Wed, 25 Oct 2023 14:57:14 +0200
Subject: [PATCH] config/arm: fix aarch32 build with GCC 13
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 7bfb0d4eaf51d329464e6c041315cf2025b97784 ]

The aarch32 with gcc13 fails with:

Compiler for C supports arguments -march=armv8-a: NO

../config/arm/meson.build:714:12: ERROR: Problem encountered: No
suitable armv8 march version found.

This is because we test -march=armv8-a alone (without the -mpfu option),
which is no longer supported in gcc13 aarch32 builds.

The most recent recommendation from the compiler team is to build with
-march=armv8-a+simd -mfpu=auto, which should work for compilers old and
new. The suggestion is to first check -march=armv8-a+simd and only then
check -mfpu=auto.

To address this, add a way to force the architecture (the value of
the -march option).

Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
Acked-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com>
---
 config/arm/meson.build | 40 +++++++++++++++++++++++-----------------
 1 file changed, 23 insertions(+), 17 deletions(-)

diff --git a/config/arm/meson.build b/config/arm/meson.build
index 89a3bf4213..4131d6e227 100644
--- a/config/arm/meson.build
+++ b/config/arm/meson.build
@@ -45,5 +45,7 @@ implementer_generic = {
         'generic_aarch32': {
             'march': 'armv8-a',
-            'compiler_options': ['-mfpu=neon'],
+            'force_march': true,
+            'march_features': ['simd'],
+            'compiler_options': ['-mfpu=auto'],
             'flags': [
                 ['RTE_ARCH_ARM_NEON_MEMCPY', false],
@@ -536,19 +538,23 @@ if update_flags
     candidate_march = ''
     if part_number_config.has_key('march')
-        supported_marchs = ['armv8.6-a', 'armv8.5-a', 'armv8.4-a', 'armv8.3-a',
-                            'armv8.2-a', 'armv8.1-a', 'armv8-a']
-        check_compiler_support = false
-        foreach supported_march: supported_marchs
-            if supported_march == part_number_config['march']
-                # start checking from this version downwards
-                check_compiler_support = true
-            endif
-            if (check_compiler_support and
-                cc.has_argument('-march=' + supported_march))
-                candidate_march = supported_march
-                # highest supported march version found
-                break
-            endif
-        endforeach
+        if part_number_config.get('force_march', false)
+            candidate_march = part_number_config['march']
+        else
+            supported_marchs = ['armv8.6-a', 'armv8.5-a', 'armv8.4-a', 'armv8.3-a',
+                                'armv8.2-a', 'armv8.1-a', 'armv8-a']
+            check_compiler_support = false
+            foreach supported_march: supported_marchs
+                if supported_march == part_number_config['march']
+                    # start checking from this version downwards
+                    check_compiler_support = true
+                endif
+                if (check_compiler_support and
+                    cc.has_argument('-march=' + supported_march))
+                    candidate_march = supported_march
+                    # highest supported march version found
+                    break
+                endif
+            endforeach
+        endif
         if candidate_march == ''
             error('No suitable armv8 march version found.')
@@ -582,5 +588,5 @@ if update_flags
     if part_number_config.has_key('compiler_options')
         foreach flag: part_number_config['compiler_options']
-            if cc.has_argument(flag)
+            if cc.has_multi_arguments(machine_args + [flag])
                 machine_args += flag
             else
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.566766530 +0000
+++ 0042-config-arm-fix-aarch32-build-with-GCC-13.patch	2023-11-16 13:21:52.506946538 +0000
@@ -1 +1 @@
-From 7bfb0d4eaf51d329464e6c041315cf2025b97784 Mon Sep 17 00:00:00 2001
+From c268e6c466144e614bf99f563a880a78df947afa Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 7bfb0d4eaf51d329464e6c041315cf2025b97784 ]
+
@@ -27,2 +28,0 @@
-Cc: stable@dpdk.org
-
@@ -37 +37 @@
-index efd0bf32bc..36f21d2259 100644
+index 89a3bf4213..4131d6e227 100644
@@ -40 +40 @@
-@@ -44,5 +44,7 @@ implementer_generic = {
+@@ -45,5 +45,7 @@ implementer_generic = {
@@ -49 +49 @@
-@@ -697,19 +699,23 @@ if update_flags
+@@ -536,19 +538,23 @@ if update_flags
@@ -88 +88 @@
-@@ -743,5 +749,5 @@ if update_flags
+@@ -582,5 +588,5 @@ if update_flags


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

* patch 'build: add libarchive to optional external dependencies' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (40 preceding siblings ...)
  2023-11-16 13:23 ` patch 'config/arm: fix aarch32 build with GCC 13' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-17  9:00   ` Richardson, Bruce
  2023-11-16 13:23 ` patch 'app/dumpcap: fix mbuf pool ring type' " Kevin Traynor
                   ` (20 subsequent siblings)
  62 siblings, 1 reply; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Srikanth Yalavarthi; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From aa40722948ac2dc15f93b8598f560029c757b645 Mon Sep 17 00:00:00 2001
From: Srikanth Yalavarthi <syalavarthi@marvell.com>
Date: Sun, 5 Nov 2023 20:12:43 -0800
Subject: [PATCH] build: add libarchive to optional external dependencies

[ upstream commit 22f7184e8b5f1b546ac26dd0bde8c3c6038a7e03 ]

In order to avoid linking with Libs.private, libarchive
is not added to ext_deps during the meson setup stage.

Since libarchive is not added to ext_deps, cross-compilation
or native compilation with libarchive installed in non-standard
location fails with errors related to "cannot find -larchive"
or "archive.h: No such file or directory". In order to fix the
build failures, user is required to define the 'c_args' and
'c_link_args' with '-I<includedir>' and '-L<libdir>'.

This patch adds libarchive to ext_deps and further would not
require setting c_args and c_link_args externally.

Fixes: 40edb9c0d36b ("eal: handle compressed firmware")

Signed-off-by: Srikanth Yalavarthi <syalavarthi@marvell.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 config/meson.build  | 5 -----
 lib/eal/meson.build | 3 +++
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/config/meson.build b/config/meson.build
index a79a3ed39c..b40302da02 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -208,9 +208,4 @@ libarchive = dependency('libarchive', required: false, method: 'pkg-config')
 if libarchive.found()
     dpdk_conf.set('RTE_HAS_LIBARCHIVE', 1)
-    # Push libarchive link dependency at the project level to support
-    # statically linking dpdk apps. Details at:
-    # https://inbox.dpdk.org/dev/20210605004024.660267a1@sovereign/
-    add_project_link_arguments('-larchive', language: 'c')
-    dpdk_extra_ldflags += '-larchive'
 endif
 
diff --git a/lib/eal/meson.build b/lib/eal/meson.build
index 1722924f67..f223c6d7a5 100644
--- a/lib/eal/meson.build
+++ b/lib/eal/meson.build
@@ -23,4 +23,7 @@ if dpdk_conf.has('RTE_USE_LIBBSD')
     ext_deps += libbsd
 endif
+if dpdk_conf.has('RTE_HAS_LIBARCHIVE')
+    ext_deps += libarchive
+endif
 if cc.has_function('getentropy', prefix : '#include <unistd.h>')
     cflags += '-DRTE_LIBEAL_USE_GETENTROPY'
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.587627939 +0000
+++ 0043-build-add-libarchive-to-optional-external-dependenci.patch	2023-11-16 13:21:52.506946538 +0000
@@ -1 +1 @@
-From 22f7184e8b5f1b546ac26dd0bde8c3c6038a7e03 Mon Sep 17 00:00:00 2001
+From aa40722948ac2dc15f93b8598f560029c757b645 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 22f7184e8b5f1b546ac26dd0bde8c3c6038a7e03 ]
+
@@ -20 +21,0 @@
-Cc: stable@dpdk.org
@@ -30 +31 @@
-index 39ed4ba7d3..d732154731 100644
+index a79a3ed39c..b40302da02 100644
@@ -33 +34 @@
-@@ -252,9 +252,4 @@ libarchive = dependency('libarchive', required: false, method: 'pkg-config')
+@@ -208,9 +208,4 @@ libarchive = dependency('libarchive', required: false, method: 'pkg-config')
@@ -44 +45 @@
-index 9942104386..e1d6c4cf17 100644
+index 1722924f67..f223c6d7a5 100644
@@ -47 +48 @@
-@@ -22,4 +22,7 @@ if dpdk_conf.has('RTE_USE_LIBBSD')
+@@ -23,4 +23,7 @@ if dpdk_conf.has('RTE_USE_LIBBSD')


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

* patch 'app/dumpcap: fix mbuf pool ring type' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (41 preceding siblings ...)
  2023-11-16 13:23 ` patch 'build: add libarchive to optional external dependencies' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'event/dlb2: fix name check in self-test' " Kevin Traynor
                   ` (19 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Morten Brørup, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From ac4382d19486f974cff19f3f44d81b310307c6c6 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 8 Nov 2023 09:47:38 -0800
Subject: [PATCH] app/dumpcap: fix mbuf pool ring type
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 27a26d65f8039ec38a49932c4bb73801b4fd62b8 ]

The internal buffer pool used for copies of mbufs captured
needs to be thread safe.  If capturing on multiple interfaces
or multiple queues, the same pool will be used (consumers).
And if the capture ring gets full, the queues will need
to put back the capture buffer which leads to multiple producers.

Bugzilla ID: 1271
Fixes: cbb44143be74 ("app/dumpcap: add new packet capture application")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
---
 app/dumpcap/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/dumpcap/main.c b/app/dumpcap/main.c
index a828b7c8a4..4a76cc3d05 100644
--- a/app/dumpcap/main.c
+++ b/app/dumpcap/main.c
@@ -577,5 +577,5 @@ static struct rte_mempool *create_mempool(void)
 					    MBUF_POOL_CACHE_SIZE, 0,
 					    rte_pcapng_mbuf_size(snaplen),
-					    rte_socket_id(), "ring_mp_sc");
+					    rte_socket_id(), "ring_mp_mc");
 	if (mp == NULL)
 		rte_exit(EXIT_FAILURE,
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.608871312 +0000
+++ 0044-app-dumpcap-fix-mbuf-pool-ring-type.patch	2023-11-16 13:21:52.507946541 +0000
@@ -1 +1 @@
-From 27a26d65f8039ec38a49932c4bb73801b4fd62b8 Mon Sep 17 00:00:00 2001
+From ac4382d19486f974cff19f3f44d81b310307c6c6 Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 27a26d65f8039ec38a49932c4bb73801b4fd62b8 ]
+
@@ -17 +18,0 @@
-Cc: stable@dpdk.org
@@ -26 +27 @@
-index 64294bbfb3..4f581bd341 100644
+index a828b7c8a4..4a76cc3d05 100644
@@ -29 +30 @@
-@@ -695,5 +695,5 @@ static struct rte_mempool *create_mempool(void)
+@@ -577,5 +577,5 @@ static struct rte_mempool *create_mempool(void)
@@ -31 +32 @@
- 					    data_size,
+ 					    rte_pcapng_mbuf_size(snaplen),


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

* patch 'event/dlb2: fix name check in self-test' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (42 preceding siblings ...)
  2023-11-16 13:23 ` patch 'app/dumpcap: fix mbuf pool ring type' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'test/bbdev: fix Python script subprocess' " Kevin Traynor
                   ` (18 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Abdullah Sevincer, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From fac8f05ff8748f65773ef1bab421be25d443d21c 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
@@ -1476,5 +1476,5 @@ 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;
@@ -1490,5 +1490,5 @@ 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.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.629980838 +0000
+++ 0045-event-dlb2-fix-name-check-in-self-test.patch	2023-11-16 13:21:52.508946544 +0000
@@ -1 +1 @@
-From 3dd079fae9f0b210ed0fd9a192fb0586822ad9a5 Mon Sep 17 00:00:00 2001
+From fac8f05ff8748f65773ef1bab421be25d443d21c 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] 66+ messages in thread

* patch 'test/bbdev: fix Python script subprocess' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (43 preceding siblings ...)
  2023-11-16 13:23 ` patch 'event/dlb2: fix name check in self-test' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'test/bbdev: assert failed test for queue configure' " Kevin Traynor
                   ` (17 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Hernan Vargas; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 4eb8aa7c87d05330c86a6a550a5ba2cd15177731 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
@@ -92,20 +92,17 @@ for vector in args.test_vector:
 
         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.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.650658927 +0000
+++ 0046-test-bbdev-fix-Python-script-subprocess.patch	2023-11-16 13:21:52.508946544 +0000
@@ -1 +1 @@
-From 262c9d13f7c998fdca526b28871f37b47fbbb464 Mon Sep 17 00:00:00 2001
+From 4eb8aa7c87d05330c86a6a550a5ba2cd15177731 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] 66+ messages in thread

* patch 'test/bbdev: assert failed test for queue configure' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (44 preceding siblings ...)
  2023-11-16 13:23 ` patch 'test/bbdev: fix Python script subprocess' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/ice: fix crash on closing representor ports' " Kevin Traynor
                   ` (16 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Hernan Vargas; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 52086d73ae319c199b51297ff5ed32a251f72ab7 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
@@ -367,5 +367,6 @@ test_bbdev_configure_stop_queue(void)
 	 */
 	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);
 
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.671500466 +0000
+++ 0047-test-bbdev-assert-failed-test-for-queue-configure.patch	2023-11-16 13:21:52.509946547 +0000
@@ -1 +1 @@
-From 1ee659194126e1e4316f68f822c6066216f08798 Mon Sep 17 00:00:00 2001
+From 52086d73ae319c199b51297ff5ed32a251f72ab7 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] 66+ messages in thread

* patch 'net/ice: fix crash on closing representor ports' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (45 preceding siblings ...)
  2023-11-16 13:23 ` patch 'test/bbdev: assert failed test for queue configure' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'event/dlb2: fix missing queue ordering capability flag' " Kevin Traynor
                   ` (15 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Mingjin Ye; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From cd1428559cf407f2844c6fe9d600bf2d5d9ce2a6 Mon Sep 17 00:00:00 2001
From: Mingjin Ye <mingjinx.ye@intel.com>
Date: Wed, 8 Nov 2023 11:39:34 +0000
Subject: [PATCH] net/ice: fix crash on closing representor ports

[ upstream commit 1d704031642926688c453331b13690a4151e5276 ]

The data resource in struct rte_eth_dev is cleared and points to NULL
when the DCF port is closed.

If the DCF representor port is closed after the DCF port is closed,
a segmentation fault occurs because the representor port accesses the
data resource released by the DCF port.

This patch fixes this issue by synchronizing the state of DCF ports and
representor ports to the peer in real time when their state changes.

Fixes: c7e1a1a3bfeb ("net/ice: refactor DCF VLAN handling")

Signed-off-by: Mingjin Ye <mingjinx.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_dcf_ethdev.c         | 30 ++++++++++++++--
 drivers/net/ice/ice_dcf_ethdev.h         |  3 ++
 drivers/net/ice/ice_dcf_vf_representor.c | 46 ++++++++++++++++++++++--
 3 files changed, 73 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ice/ice_dcf_ethdev.c b/drivers/net/ice/ice_dcf_ethdev.c
index 16321195ed..d2ea5aff43 100644
--- a/drivers/net/ice/ice_dcf_ethdev.c
+++ b/drivers/net/ice/ice_dcf_ethdev.c
@@ -870,4 +870,24 @@ ice_dcf_free_repr_info(struct ice_dcf_adapter *dcf_adapter)
 }
 
+int
+ice_dcf_handle_vf_repr_close(struct ice_dcf_adapter *dcf_adapter,
+				uint16_t vf_id)
+{
+	struct ice_dcf_repr_info *vf_rep_info;
+
+	if (dcf_adapter->num_reprs >= vf_id) {
+		PMD_DRV_LOG(ERR, "Invalid VF id: %d", vf_id);
+		return -1;
+	}
+
+	if (!dcf_adapter->repr_infos)
+		return 0;
+
+	vf_rep_info = &dcf_adapter->repr_infos[vf_id];
+	vf_rep_info->vf_rep_eth_dev = NULL;
+
+	return 0;
+}
+
 static int
 ice_dcf_init_repr_info(struct ice_dcf_adapter *dcf_adapter)
@@ -893,9 +913,8 @@ ice_dcf_dev_close(struct rte_eth_dev *dev)
 		return 0;
 
+	ice_dcf_vf_repr_notify_all(adapter, false);
 	(void)ice_dcf_dev_stop(dev);
 
 	ice_free_queues(dev);
-
-	ice_dcf_free_repr_info(adapter);
 	ice_dcf_uninit_parent_adapter(dev);
 	ice_dcf_uninit_hw(dev, &adapter->real_hw);
@@ -1074,5 +1093,5 @@ ice_dcf_dev_reset(struct rte_eth_dev *dev)
 	}
 
-	ret = ice_dcf_dev_uninit(dev);
+	ret = ice_dcf_dev_close(dev);
 	if (ret)
 		return ret;
@@ -1142,4 +1161,6 @@ ice_dcf_dev_init(struct rte_eth_dev *eth_dev)
 	ice_dcf_stats_reset(eth_dev);
 
+	ice_dcf_vf_repr_notify_all(adapter, true);
+
 	return 0;
 }
@@ -1148,4 +1169,7 @@ static int
 ice_dcf_dev_uninit(struct rte_eth_dev *eth_dev)
 {
+	struct ice_dcf_adapter *adapter = eth_dev->data->dev_private;
+
+	ice_dcf_free_repr_info(adapter);
 	ice_dcf_dev_close(eth_dev);
 
diff --git a/drivers/net/ice/ice_dcf_ethdev.h b/drivers/net/ice/ice_dcf_ethdev.h
index 11a1305038..b651d31d37 100644
--- a/drivers/net/ice/ice_dcf_ethdev.h
+++ b/drivers/net/ice/ice_dcf_ethdev.h
@@ -51,4 +51,5 @@ struct ice_dcf_vf_repr {
 	uint16_t switch_domain_id;
 	uint16_t vf_id;
+	bool dcf_valid;
 
 	struct ice_dcf_vlan outer_vlan_info; /* DCF always handle outer VLAN */
@@ -65,4 +66,6 @@ int ice_dcf_vf_repr_uninit(struct rte_eth_dev *vf_rep_eth_dev);
 int ice_dcf_vf_repr_init_vlan(struct rte_eth_dev *vf_rep_eth_dev);
 void ice_dcf_vf_repr_stop_all(struct ice_dcf_adapter *dcf_adapter);
+void ice_dcf_vf_repr_notify_all(struct ice_dcf_adapter *dcf_adapter, bool valid);
+int ice_dcf_handle_vf_repr_close(struct ice_dcf_adapter *dcf_adapter, uint16_t vf_id);
 bool ice_dcf_adminq_need_retry(struct ice_adapter *ad);
 
diff --git a/drivers/net/ice/ice_dcf_vf_representor.c b/drivers/net/ice/ice_dcf_vf_representor.c
index b9fcfc80ad..af281f069a 100644
--- a/drivers/net/ice/ice_dcf_vf_representor.c
+++ b/drivers/net/ice/ice_dcf_vf_representor.c
@@ -51,7 +51,26 @@ ice_dcf_vf_repr_dev_stop(struct rte_eth_dev *dev)
 }
 
+static void
+ice_dcf_vf_repr_notify_one(struct rte_eth_dev *dev, bool valid)
+{
+	struct ice_dcf_vf_repr *repr = dev->data->dev_private;
+
+	repr->dcf_valid = valid;
+}
+
 static int
 ice_dcf_vf_repr_dev_close(struct rte_eth_dev *dev)
 {
+	struct ice_dcf_vf_repr *repr = dev->data->dev_private;
+	struct ice_dcf_adapter *dcf_adapter;
+	int err;
+
+	if (repr->dcf_valid) {
+		dcf_adapter = repr->dcf_eth_dev->data->dev_private;
+		err = ice_dcf_handle_vf_repr_close(dcf_adapter, repr->vf_id);
+		if (err)
+			PMD_DRV_LOG(ERR, "VF representor invalid");
+	}
+
 	return ice_dcf_vf_repr_uninit(dev);
 }
@@ -112,12 +131,13 @@ static __rte_always_inline struct ice_dcf_hw *
 ice_dcf_vf_repr_hw(struct ice_dcf_vf_repr *repr)
 {
-	struct ice_dcf_adapter *dcf_adapter =
-			repr->dcf_eth_dev->data->dev_private;
+	struct ice_dcf_adapter *dcf_adapter;
 
-	if (!dcf_adapter) {
+	if (!repr->dcf_valid) {
 		PMD_DRV_LOG(ERR, "DCF for VF representor has been released\n");
 		return NULL;
 	}
 
+	dcf_adapter = repr->dcf_eth_dev->data->dev_private;
+
 	return &dcf_adapter->real_hw;
 }
@@ -415,4 +435,5 @@ ice_dcf_vf_repr_init(struct rte_eth_dev *vf_rep_eth_dev, void *init_param)
 	repr->switch_domain_id = param->switch_domain_id;
 	repr->vf_id = param->vf_id;
+	repr->dcf_valid = true;
 	repr->outer_vlan_info.port_vlan_ena = false;
 	repr->outer_vlan_info.stripping_ena = false;
@@ -489,2 +510,21 @@ ice_dcf_vf_repr_stop_all(struct ice_dcf_adapter *dcf_adapter)
 	}
 }
+
+void
+ice_dcf_vf_repr_notify_all(struct ice_dcf_adapter *dcf_adapter, bool valid)
+{
+	uint16_t vf_id;
+	struct rte_eth_dev *vf_rep_eth_dev;
+
+	if (!dcf_adapter->repr_infos)
+		return;
+
+	for (vf_id = 0; vf_id < dcf_adapter->real_hw.num_vfs; vf_id++) {
+		vf_rep_eth_dev = dcf_adapter->repr_infos[vf_id].vf_rep_eth_dev;
+
+		if (!vf_rep_eth_dev)
+			continue;
+
+		ice_dcf_vf_repr_notify_one(vf_rep_eth_dev, valid);
+	}
+}
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.692615035 +0000
+++ 0048-net-ice-fix-crash-on-closing-representor-ports.patch	2023-11-16 13:21:52.510946550 +0000
@@ -1 +1 @@
-From 1d704031642926688c453331b13690a4151e5276 Mon Sep 17 00:00:00 2001
+From cd1428559cf407f2844c6fe9d600bf2d5d9ce2a6 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1d704031642926688c453331b13690a4151e5276 ]
+
@@ -17 +18,0 @@
-Cc: stable@dpdk.org
@@ -28 +29 @@
-index 29699c2c32..5d845bba31 100644
+index 16321195ed..d2ea5aff43 100644
@@ -31 +32 @@
-@@ -1619,4 +1619,24 @@ ice_dcf_free_repr_info(struct ice_dcf_adapter *dcf_adapter)
+@@ -870,4 +870,24 @@ ice_dcf_free_repr_info(struct ice_dcf_adapter *dcf_adapter)
@@ -56 +57 @@
-@@ -1642,9 +1662,8 @@ ice_dcf_dev_close(struct rte_eth_dev *dev)
+@@ -893,9 +913,8 @@ ice_dcf_dev_close(struct rte_eth_dev *dev)
@@ -67 +68 @@
-@@ -1836,5 +1855,5 @@ ice_dcf_dev_reset(struct rte_eth_dev *dev)
+@@ -1074,5 +1093,5 @@ ice_dcf_dev_reset(struct rte_eth_dev *dev)
@@ -74 +75,2 @@
-@@ -1941,4 +1960,6 @@ ice_dcf_dev_init(struct rte_eth_dev *eth_dev)
+@@ -1142,4 +1161,6 @@ ice_dcf_dev_init(struct rte_eth_dev *eth_dev)
+ 	ice_dcf_stats_reset(eth_dev);
@@ -76 +77,0 @@
- 	dcf_config_promisc(adapter, false, false);
@@ -81 +82 @@
-@@ -1947,4 +1968,7 @@ static int
+@@ -1148,4 +1169,7 @@ static int
@@ -90 +91 @@
-index 4baaec4b8b..6dcbaac5eb 100644
+index 11a1305038..b651d31d37 100644
@@ -93 +94 @@
-@@ -61,4 +61,5 @@ struct ice_dcf_vf_repr {
+@@ -51,4 +51,5 @@ struct ice_dcf_vf_repr {
@@ -99 +100 @@
-@@ -81,4 +82,6 @@ int ice_dcf_vf_repr_uninit(struct rte_eth_dev *vf_rep_eth_dev);
+@@ -65,4 +66,6 @@ int ice_dcf_vf_repr_uninit(struct rte_eth_dev *vf_rep_eth_dev);


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

* patch 'event/dlb2: fix missing queue ordering capability flag' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (46 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/ice: fix crash on closing representor ports' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'meter: fix RFC4115 trTCM API Doxygen' " Kevin Traynor
                   ` (14 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Abdullah Sevincer, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 774a4028d4b203ca8f5b6152569398f9ecc41c09 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 2e0f617b9c..f76f1c26b0 100644
--- a/drivers/event/dlb2/dlb2.c
+++ b/drivers/event/dlb2/dlb2.c
@@ -63,4 +63,5 @@ static struct rte_event_dev_info evdev_dlb2_default_info = {
 		DLB2_MAX_NUM_DIR_PORTS(DLB2_HW_V2),
 	.event_dev_cap = (RTE_EVENT_DEV_CAP_EVENT_QOS |
+			  RTE_EVENT_DEV_CAP_NONSEQ_MODE |
 			  RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED |
 			  RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES |
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.714108342 +0000
+++ 0049-event-dlb2-fix-missing-queue-ordering-capability-fla.patch	2023-11-16 13:21:52.513946559 +0000
@@ -1 +1 @@
-From a992d9bee8aff7bc12f145c58331f92ba41af8e2 Mon Sep 17 00:00:00 2001
+From 774a4028d4b203ca8f5b6152569398f9ecc41c09 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 2e0f617b9c..f76f1c26b0 100644
@@ -25 +26 @@
-@@ -73,4 +73,5 @@ static struct rte_event_dev_info evdev_dlb2_default_info = {
+@@ -63,4 +63,5 @@ static struct rte_event_dev_info evdev_dlb2_default_info = {


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

* patch 'meter: fix RFC4115 trTCM API Doxygen' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (47 preceding siblings ...)
  2023-11-16 13:23 ` patch 'event/dlb2: fix missing queue ordering capability flag' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/sfc: remove null dereference in log' " Kevin Traynor
                   ` (13 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Bruce Richardson, Cristian Dumitrescu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 616bc19c65b8024d4391bc09f8eb894961671efc 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/meter/rte_meter.h | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/lib/meter/rte_meter.h b/lib/meter/rte_meter.h
index 62c8c1ecc2..c6a25208b7 100644
--- a/lib/meter/rte_meter.h
+++ b/lib/meter/rte_meter.h
@@ -129,7 +129,4 @@ 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
  *
@@ -175,7 +172,4 @@ rte_meter_trtcm_config(struct rte_meter_trtcm *m,
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * trTCM RFC 4115 configuration per metered traffic flow
  *
@@ -278,7 +272,4 @@ rte_meter_trtcm_color_aware_check(struct rte_meter_trtcm *m,
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * trTCM RFC4115 color blind traffic metering
  *
@@ -302,7 +293,4 @@ rte_meter_trtcm_rfc4115_color_blind_check(
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * trTCM RFC4115 color aware traffic metering
  *
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.737272534 +0000
+++ 0050-meter-fix-RFC4115-trTCM-API-Doxygen.patch	2023-11-16 13:21:52.514946561 +0000
@@ -1 +1 @@
-From d053bcdafd347a6735d47b1f0139e9c268f56972 Mon Sep 17 00:00:00 2001
+From 616bc19c65b8024d4391bc09f8eb894961671efc Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d053bcdafd347a6735d47b1f0139e9c268f56972 ]
+
@@ -22 +24 @@
-index 6ba9967436..bd68cbe389 100644
+index 62c8c1ecc2..c6a25208b7 100644
@@ -25 +27 @@
-@@ -125,7 +125,4 @@ rte_meter_trtcm_profile_config(struct rte_meter_trtcm_profile *p,
+@@ -129,7 +129,4 @@ rte_meter_trtcm_profile_config(struct rte_meter_trtcm_profile *p,
@@ -33 +35 @@
-@@ -171,7 +168,4 @@ rte_meter_trtcm_config(struct rte_meter_trtcm *m,
+@@ -175,7 +172,4 @@ rte_meter_trtcm_config(struct rte_meter_trtcm *m,
@@ -41 +43 @@
-@@ -274,7 +268,4 @@ rte_meter_trtcm_color_aware_check(struct rte_meter_trtcm *m,
+@@ -278,7 +272,4 @@ rte_meter_trtcm_color_aware_check(struct rte_meter_trtcm *m,
@@ -49 +51 @@
-@@ -298,7 +289,4 @@ rte_meter_trtcm_rfc4115_color_blind_check(
+@@ -302,7 +293,4 @@ rte_meter_trtcm_rfc4115_color_blind_check(


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

* patch 'net/sfc: remove null dereference in log' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (48 preceding siblings ...)
  2023-11-16 13:23 ` patch 'meter: fix RFC4115 trTCM API Doxygen' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'app/testpmd: remove useless check in TSO command' " Kevin Traynor
                   ` (12 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Weiguo Li; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From c24098a7ad7be7d1418075b9fc712fcfe35a963d Mon Sep 17 00:00:00 2001
From: Weiguo Li <liweiguo@xencore.cn>
Date: Sat, 4 Nov 2023 15:37:15 +0800
Subject: [PATCH] net/sfc: remove null dereference in log

[ upstream commit d05ce802f39dd4a67c18f9dbe1a00901429ba191 ]

When ctx->sa is null, sfc_err(ctx->sa, ...) will trigger a null
dereference in the macro of sfc_err. Use SFC_GENERIC_LOG(ERR, ...)
to avoid that.

Fixes: 44db08d53be3 ("net/sfc: maintain controller to EFX interface mapping")

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

diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c
index 184f6e7c67..5059422ed3 100644
--- a/drivers/net/sfc/sfc_ethdev.c
+++ b/drivers/net/sfc/sfc_ethdev.c
@@ -2054,5 +2054,5 @@ sfc_process_mport_journal_cb(void *data, efx_mport_desc_t *mport,
 
 	if (ctx == NULL || ctx->sa == NULL) {
-		sfc_err(ctx->sa, "received NULL context or SFC adapter");
+		SFC_GENERIC_LOG(ERR, "received NULL context or SFC adapter");
 		return EINVAL;
 	}
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.758104530 +0000
+++ 0051-net-sfc-remove-null-dereference-in-log.patch	2023-11-16 13:21:52.516946567 +0000
@@ -1 +1 @@
-From d05ce802f39dd4a67c18f9dbe1a00901429ba191 Mon Sep 17 00:00:00 2001
+From c24098a7ad7be7d1418075b9fc712fcfe35a963d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d05ce802f39dd4a67c18f9dbe1a00901429ba191 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 1efe64a36a..6d57b2ba26 100644
+index 184f6e7c67..5059422ed3 100644
@@ -23 +24 @@
-@@ -2071,5 +2071,5 @@ sfc_process_mport_journal_cb(void *data, efx_mport_desc_t *mport,
+@@ -2054,5 +2054,5 @@ sfc_process_mport_journal_cb(void *data, efx_mport_desc_t *mport,


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

* patch 'app/testpmd: remove useless check in TSO command' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (49 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/sfc: remove null dereference in log' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'ethdev: account for smaller MTU when setting default' " Kevin Traynor
                   ` (11 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Huisong Li; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 7c56526795e26f427c0d2413838dbd2b5c8e5ccb 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 | 13 -------------
 1 file changed, 13 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 64e6f4159c..8e200c740b 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -5002,17 +5002,4 @@ cmd_tso_set_parsed(void *parsed_result,
 	}
 	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 & RTE_ETH_TX_OFFLOAD_TCP_TSO) == 0) {
-		fprintf(stderr,
-			"Warning: TSO enabled but not supported by port %d\n",
-			res->port_id);
-	}
-
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.780509659 +0000
+++ 0052-app-testpmd-remove-useless-check-in-TSO-command.patch	2023-11-16 13:21:52.527946599 +0000
@@ -1 +1 @@
-From 773397f6f4b5e325e786835343bacbc454d1e5f0 Mon Sep 17 00:00:00 2001
+From 7c56526795e26f427c0d2413838dbd2b5c8e5ccb Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 773397f6f4b5e325e786835343bacbc454d1e5f0 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 912bf3355c..1c57e07d41 100644
+index 64e6f4159c..8e200c740b 100644
@@ -25 +26 @@
-@@ -4968,17 +4968,4 @@ cmd_tso_set_parsed(void *parsed_result,
+@@ -5002,17 +5002,4 @@ cmd_tso_set_parsed(void *parsed_result,


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

* patch 'ethdev: account for smaller MTU when setting default' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (50 preceding siblings ...)
  2023-11-16 13:23 ` patch 'app/testpmd: remove useless check in TSO command' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'test/bonding: fix uninitialized RSS configuration' " Kevin Traynor
                   ` (10 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Joshua Washington
  Cc: Rushil Gupta, Andrew Rybchenko, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 4308ee164213562432477a26eddc98d03ce98dcf Mon Sep 17 00:00:00 2001
From: Joshua Washington <joshwash@google.com>
Date: Tue, 7 Nov 2023 22:05:34 -0800
Subject: [PATCH] ethdev: account for smaller MTU when setting default

[ upstream commit da266c6556d22b470679484b62e3f9db192e4032 ]

Currently, if not specified in the user configuration,
rte_eth_dev_configure() sets the MTU of the device to RTE_EHTER_MTU.

This value could potentially be larger than the MTU that the device
supports. This change updates the configured MTU to be the minimum of
the maximum supported MTU and the default DPDK MTU.

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

Signed-off-by: Joshua Washington <joshwash@google.com>
Signed-off-by: Rushil Gupta <rushilg@google.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 lib/ethdev/rte_ethdev.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c
index 081d8bb297..9a8dd94e0a 100644
--- a/lib/ethdev/rte_ethdev.c
+++ b/lib/ethdev/rte_ethdev.c
@@ -1529,5 +1529,7 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
 
 	if (dev_conf->rxmode.mtu == 0)
-		dev->data->dev_conf.rxmode.mtu = RTE_ETHER_MTU;
+		dev->data->dev_conf.rxmode.mtu =
+			(dev_info.max_mtu == 0) ? RTE_ETHER_MTU :
+			RTE_MIN(dev_info.max_mtu, RTE_ETHER_MTU);
 
 	ret = eth_dev_validate_mtu(port_id, &dev_info,
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.808754317 +0000
+++ 0053-ethdev-account-for-smaller-MTU-when-setting-default.patch	2023-11-16 13:21:52.531946611 +0000
@@ -1 +1 @@
-From da266c6556d22b470679484b62e3f9db192e4032 Mon Sep 17 00:00:00 2001
+From 4308ee164213562432477a26eddc98d03ce98dcf Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit da266c6556d22b470679484b62e3f9db192e4032 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
-index 9163ef47ea..3858983fcc 100644
+index 081d8bb297..9a8dd94e0a 100644
@@ -28 +29 @@
-@@ -1420,5 +1420,7 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
+@@ -1529,5 +1529,7 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,


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

* patch 'test/bonding: fix uninitialized RSS configuration' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (51 preceding siblings ...)
  2023-11-16 13:23 ` patch 'ethdev: account for smaller MTU when setting default' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/hns3: fix mailbox sync' " Kevin Traynor
                   ` (9 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 7e6304623213b1b523d38ab5215abb5ea38d3d7b 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 b3d71c6f3a..6eb473bb21 100644
--- a/app/test/test_link_bonding_rssconf.c
+++ b/app/test/test_link_bonding_rssconf.c
@@ -327,5 +327,5 @@ test_propagate(void)
 	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;
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.832554438 +0000
+++ 0054-test-bonding-fix-uninitialized-RSS-configuration.patch	2023-11-16 13:21:52.532946614 +0000
@@ -1 +1 @@
-From fb662d632d80fe74333e39155354814c98920ba9 Mon Sep 17 00:00:00 2001
+From 7e6304623213b1b523d38ab5215abb5ea38d3d7b 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 b3d71c6f3a..6eb473bb21 100644
@@ -25,2 +26,2 @@
-@@ -325,5 +325,5 @@ test_propagate(void)
- 	struct member_conf *port;
+@@ -327,5 +327,5 @@ test_propagate(void)
+ 	struct slave_conf *port;


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

* patch 'net/hns3: fix mailbox sync' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (52 preceding siblings ...)
  2023-11-16 13:23 ` patch 'test/bonding: fix uninitialized RSS configuration' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'app/testpmd: fix tunnel TSO capability check' " Kevin Traynor
                   ` (8 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Jie Hai, Huisong Li, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 1d9d4b5b633d2349f711750dfdf1ef65e9809db1 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 3495e2acc1..12f95ba4bc 100644
--- a/drivers/net/hns3/hns3_cmd.c
+++ b/drivers/net/hns3/hns3_cmd.c
@@ -664,7 +664,4 @@ hns3_cmd_init(struct hns3_hw *hw)
 	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);
 
diff --git a/drivers/net/hns3/hns3_mbx.c b/drivers/net/hns3/hns3_mbx.c
index 8e0a58aa02..f1743c195e 100644
--- a/drivers/net/hns3/hns3_mbx.c
+++ b/drivers/net/hns3/hns3_mbx.c
@@ -41,21 +41,4 @@ hns3_resp_to_errno(uint16_t resp_code)
 }
 
-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,
@@ -68,5 +51,4 @@ hns3_get_mbx_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
 	struct hns3_mbx_resp_status *mbx_resp;
 	uint32_t wait_time = 0;
-	bool received;
 
 	if (resp_len > HNS3_MBX_MAX_RESP_DATA_SIZE) {
@@ -94,11 +76,5 @@ hns3_get_mbx_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
 		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;
 
@@ -107,5 +83,5 @@ hns3_get_mbx_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
 	hw->mbx_resp.req_msg_data = 0;
 	if (wait_time >= mbx_time_limit) {
-		hns3_mbx_proc_timeout(hw, code, subcode);
+		hns3_err(hw, "VF could not get mbx(%u,%u) from PF", code, subcode);
 		return -ETIME;
 	}
@@ -133,5 +109,4 @@ hns3_mbx_prepare_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode)
 	 */
 	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 */
@@ -186,5 +161,4 @@ hns3_send_mbx_msg(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
 		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",
@@ -255,39 +229,8 @@ hns3_handle_asserting_reset(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;
@@ -299,10 +242,4 @@ hns3_handle_mbx_response(struct hns3_hw *hw, struct hns3_mbx_pf_to_vf_cmd *req)
 		 * 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]);
@@ -320,9 +257,17 @@ hns3_handle_mbx_response(struct hns3_hw *hw, struct hns3_mbx_pf_to_vf_cmd *req)
 	 * 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;
 }
 
diff --git a/drivers/net/hns3/hns3_mbx.h b/drivers/net/hns3/hns3_mbx.h
index 0172a2e288..1d9a788df5 100644
--- a/drivers/net/hns3/hns3_mbx.h
+++ b/drivers/net/hns3/hns3_mbx.h
@@ -90,19 +90,9 @@ enum hns3_mbx_link_fail_subcode {
 #define HNS3_MBX_DEF_TIME_LIMIT_MS	500
 
-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 */
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.853050242 +0000
+++ 0055-net-hns3-fix-mailbox-sync.patch	2023-11-16 13:21:52.533946617 +0000
@@ -1 +1 @@
-From be3590f54d0e415c23d4ed6ea55d967139c3ad10 Mon Sep 17 00:00:00 2001
+From 1d9d4b5b633d2349f711750dfdf1ef65e9809db1 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 3495e2acc1..12f95ba4bc 100644
@@ -57 +58 @@
-@@ -732,7 +732,4 @@ hns3_cmd_init(struct hns3_hw *hw)
+@@ -664,7 +664,4 @@ hns3_cmd_init(struct hns3_hw *hw)
@@ -202 +203 @@
-index c378783c6c..4a328802b9 100644
+index 0172a2e288..1d9a788df5 100644
@@ -205 +206 @@
-@@ -94,19 +94,9 @@ enum hns3_mbx_link_fail_subcode {
+@@ -90,19 +90,9 @@ enum hns3_mbx_link_fail_subcode {


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

* patch 'app/testpmd: fix tunnel TSO capability check' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (53 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/hns3: fix mailbox sync' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'app/testpmd: add explicit check for tunnel TSO' " Kevin Traynor
                   ` (7 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Huisong Li; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From d29fe61592f24e237aad5f4139b8ddd65c805d4d 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 8e200c740b..f7b4e319fb 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -5059,37 +5059,31 @@ struct cmd_tunnel_tso_set_result {
 };
 
-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 & 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);
-	return dev_info;
 }
 
@@ -5101,4 +5095,5 @@ 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))
@@ -5112,5 +5107,9 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 		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 &=
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.874947204 +0000
+++ 0056-app-testpmd-fix-tunnel-TSO-capability-check.patch	2023-11-16 13:21:52.545946652 +0000
@@ -1 +1 @@
-From 6d4def820aa7d118f1ebdebf7af8ba6299ac20ee Mon Sep 17 00:00:00 2001
+From d29fe61592f24e237aad5f4139b8ddd65c805d4d 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 8e200c740b..f7b4e319fb 100644
@@ -22 +23 @@
-@@ -5036,37 +5036,31 @@ struct cmd_tunnel_tso_set_result {
+@@ -5059,37 +5059,31 @@ struct cmd_tunnel_tso_set_result {
@@ -68 +69 @@
-@@ -5078,4 +5072,5 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+@@ -5101,4 +5095,5 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
@@ -74 +75 @@
-@@ -5089,5 +5084,9 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+@@ -5112,5 +5107,9 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,


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

* patch 'app/testpmd: add explicit check for tunnel TSO' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (54 preceding siblings ...)
  2023-11-16 13:23 ` patch 'app/testpmd: fix tunnel TSO capability check' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'app/testpmd: fix tunnel TSO configuration' " Kevin Traynor
                   ` (6 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Huisong Li; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From ac5c77407216ea99446ea7b776d665f8605921e7 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 | 55 ++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 31 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index f7b4e319fb..ac6531ba52 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -5063,26 +5063,20 @@ check_tunnel_tso_nic_support(portid_t port_id, uint64_t tx_offload_capa)
 {
 	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",
+		printf("Warning: VXLAN TUNNEL TSO not supported therefore not enabled for port %d\n",
 			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",
+		printf("Warning: GRE TUNNEL TSO not supported therefore not enabled for port %d\n",
 			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",
+		printf("Warning: IPIP TUNNEL TSO not supported therefore not enabled for port %d\n",
 			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",
+		printf("Warning: GENEVE TUNNEL TSO not supported therefore not enabled for port %d\n",
 			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",
+		printf("Warning: IP TUNNEL TSO not supported therefore not enabled for port %d\n",
 			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",
+		printf("Warning: UDP TUNNEL TSO not supported therefore not enabled for port %d\n",
 			port_id);
 }
@@ -5095,4 +5089,10 @@ 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 = 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;
 	int ret;
 
@@ -5107,28 +5107,21 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 		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 &=
-			~(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);
+		ports[res->port_id].dev_conf.txmode.offloads &= ~all_tunnel_tso;
 		printf("TSO for tunneled packets is disabled\n");
 	} else {
-		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);
+		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.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.902342041 +0000
+++ 0057-app-testpmd-add-explicit-check-for-tunnel-TSO.patch	2023-11-16 13:21:52.557946687 +0000
@@ -1 +1 @@
-From 33156a6bc61560e74a126ade38a7af9c1fa02671 Mon Sep 17 00:00:00 2001
+From ac5c77407216ea99446ea7b776d665f8605921e7 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 33156a6bc61560e74a126ade38a7af9c1fa02671 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 1fffb07db1..2e3365557a 100644
+index f7b4e319fb..ac6531ba52 100644
@@ -25 +26 @@
-@@ -5040,26 +5040,20 @@ check_tunnel_tso_nic_support(portid_t port_id, uint64_t tx_offload_capa)
+@@ -5063,26 +5063,20 @@ check_tunnel_tso_nic_support(portid_t port_id, uint64_t tx_offload_capa)
@@ -58 +59 @@
-@@ -5072,4 +5066,10 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+@@ -5095,4 +5089,10 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
@@ -69 +70 @@
-@@ -5084,28 +5084,21 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+@@ -5107,28 +5107,21 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,


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

* patch 'app/testpmd: fix tunnel TSO configuration' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (55 preceding siblings ...)
  2023-11-16 13:23 ` patch 'app/testpmd: add explicit check for tunnel TSO' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/mlx5: fix validation of sample encap flow action' " Kevin Traynor
                   ` (5 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Huisong Li; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 37d5553ccc6c561d6706c3ea76bf03275b82ba2f 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 | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index ac6531ba52..43857c8008 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -5120,10 +5120,4 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 			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:
@@ -5138,12 +5132,21 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 		 * checksum in IP header anymore.
 		 */
-
-		if (!ports[res->port_id].parse_tunnel)
+		if (!ports[res->port_id].parse_tunnel) {
 			fprintf(stderr,
-				"Warning: csum parse_tunnel must be set so that tunneled packets are recognized\n");
+				"Error: csum parse_tunnel must be set so that tunneled packets are recognized\n");
+			return;
+		}
 		if (!(ports[res->port_id].dev_conf.txmode.offloads &
-		      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");
+				"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);
 	}
 
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.929678372 +0000
+++ 0058-app-testpmd-fix-tunnel-TSO-configuration.patch	2023-11-16 13:21:52.570946725 +0000
@@ -1 +1 @@
-From e43dc93803c4623840472c6109ef05e26286ec2f Mon Sep 17 00:00:00 2001
+From 37d5553ccc6c561d6706c3ea76bf03275b82ba2f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e43dc93803c4623840472c6109ef05e26286ec2f ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 2e3365557a..a231d112b0 100644
+index ac6531ba52..43857c8008 100644
@@ -25 +26 @@
-@@ -5097,10 +5097,4 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+@@ -5120,10 +5120,4 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
@@ -36 +37 @@
-@@ -5115,12 +5109,21 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+@@ -5138,12 +5132,21 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,


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

* patch 'net/mlx5: fix validation of sample encap flow action' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (56 preceding siblings ...)
  2023-11-16 13:23 ` patch 'app/testpmd: fix tunnel TSO configuration' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/mlx5: fix use after free on Rx queue start' " Kevin Traynor
                   ` (4 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Jiawei Wang; +Cc: Matan Azrad, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 02b97af64b1b58ed1e13722367fe9b8a1595c6db Mon Sep 17 00:00:00 2001
From: Jiawei Wang <jiaweiw@nvidia.com>
Date: Tue, 7 Nov 2023 17:08:20 +0200
Subject: [PATCH] net/mlx5: fix validation of sample encap flow action

[ upstream commit a2a709f0e7b88b785acaae87dd9724821438c969 ]

The flow sample/mirror action includes sub-actions for the
duplicated packet.
In SW steering case, dv_flow_en=1, there is a FW limitation
that forces configuring also encap action when port action
for the wire port is configured in the duplicated packet's
sub-actions.

The driver did a wrong validation for the above limitation
and forced other actions instead of encap for the wire port.
Force only encap action in case of wire port.

This patch fixes the wrongly checking for the sample encap action.

Fixes: a8697f50f50f ("net/mlx5: fix E-Switch mirror flow rule validation")

Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index a5e1beb769..1b6467e1b1 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -8121,5 +8121,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 								"mirror to rep port with encap is not supported");
 			} else {
-				if ((sub_action_flags & ~MLX5_FLOW_ACTION_ENCAP) &&
+				if (!(sub_action_flags & MLX5_FLOW_ACTION_ENCAP) &&
 				    (action_flags & MLX5_FLOW_ACTION_JUMP))
 					return rte_flow_error_set(error, ENOTSUP,
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.958156732 +0000
+++ 0059-net-mlx5-fix-validation-of-sample-encap-flow-action.patch	2023-11-16 13:21:52.583946762 +0000
@@ -1 +1 @@
-From a2a709f0e7b88b785acaae87dd9724821438c969 Mon Sep 17 00:00:00 2001
+From 02b97af64b1b58ed1e13722367fe9b8a1595c6db Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a2a709f0e7b88b785acaae87dd9724821438c969 ]
+
@@ -20 +21,0 @@
-Cc: stable@dpdk.org
@@ -29 +30 @@
-index 154e509707..9753af2cb1 100644
+index a5e1beb769..1b6467e1b1 100644
@@ -32 +33 @@
-@@ -8722,5 +8722,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -8121,5 +8121,5 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,


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

* patch 'net/mlx5: fix use after free on Rx queue start' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (57 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/mlx5: fix validation of sample encap flow action' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/mlx5: fix hairpin queue states' " Kevin Traynor
                   ` (3 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Dariusz Sosnowski; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From 8ccbb4b6727fb0862446f137b10ccdd97eb66464 Mon Sep 17 00:00:00 2001
From: Dariusz Sosnowski <dsosnowski@nvidia.com>
Date: Thu, 9 Nov 2023 19:58:19 +0200
Subject: [PATCH] net/mlx5: fix use after free on Rx queue start

[ upstream commit c93943c575b495132c4b7456caecde7d268334e3 ]

If RX queue is not started yet, then a mlx5_rxq_obj struct used for
storing HW queue objects will be allocated and added to the list held
in port's private data structure.
After that allocation, Rx queue HW object configuration is done.
If that configuration failed, then mlx5_rxq_obj struct is freed, but
not removed from the list. This causes an use after free bug, during
error handling in mlx5_rxq_start(), where this deallocated struct
was accessed during list cleanup.

This patch fixes that by inserting mlx5_rxq_obj struct to the list only
after HW queue object configuration succeeded.

Fixes: 09c2555303be ("net/mlx5: support shared Rx queue")

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

diff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c
index feffcc4ce0..05143b8411 100644
--- a/drivers/net/mlx5/mlx5_trigger.c
+++ b/drivers/net/mlx5/mlx5_trigger.c
@@ -227,9 +227,7 @@ mlx5_rxq_start(struct rte_eth_dev *dev)
 			continue;
 		rxq_ctrl = rxq->ctrl;
-		if (!rxq_ctrl->started) {
+		if (!rxq_ctrl->started)
 			if (mlx5_rxq_ctrl_prepare(dev, rxq_ctrl, i) < 0)
 				goto error;
-			LIST_INSERT_HEAD(&priv->rxqsobj, rxq_ctrl->obj, next);
-		}
 		ret = priv->obj_ops.rxq_obj_new(rxq);
 		if (ret) {
@@ -238,4 +236,6 @@ mlx5_rxq_start(struct rte_eth_dev *dev)
 			goto error;
 		}
+		if (!rxq_ctrl->started)
+			LIST_INSERT_HEAD(&priv->rxqsobj, rxq_ctrl->obj, next);
 		rxq_ctrl->started = true;
 	}
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:53.990826356 +0000
+++ 0060-net-mlx5-fix-use-after-free-on-Rx-queue-start.patch	2023-11-16 13:21:52.584946765 +0000
@@ -1 +1 @@
-From c93943c575b495132c4b7456caecde7d268334e3 Mon Sep 17 00:00:00 2001
+From 8ccbb4b6727fb0862446f137b10ccdd97eb66464 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c93943c575b495132c4b7456caecde7d268334e3 ]
+
@@ -19 +20,0 @@
-Cc: stable@dpdk.org
@@ -28 +29 @@
-index d7ecb149fa..7694140537 100644
+index feffcc4ce0..05143b8411 100644


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

* patch 'net/mlx5: fix hairpin queue states' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (58 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/mlx5: fix use after free on Rx queue start' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/mlx5: fix multi-segment Tx inline data length' " Kevin Traynor
                   ` (2 subsequent siblings)
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Dariusz Sosnowski; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From d26da32a92b312d73ab738ed187f3318fb43958f 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 05143b8411..06016eb75c 100644
--- a/drivers/net/mlx5/mlx5_trigger.c
+++ b/drivers/net/mlx5/mlx5_trigger.c
@@ -346,6 +346,6 @@ mlx5_hairpin_auto_bind(struct rte_eth_dev *dev)
 		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;
@@ -600,6 +600,6 @@ mlx5_hairpin_queue_peer_bind(struct rte_eth_dev *dev, uint16_t 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;
@@ -665,5 +665,5 @@ mlx5_hairpin_queue_peer_unbind(struct rte_eth_dev *dev, uint16_t cur_queue,
 		}
 		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)
@@ -699,6 +699,6 @@ mlx5_hairpin_queue_peer_unbind(struct rte_eth_dev *dev, uint16_t 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)
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:54.012140243 +0000
+++ 0061-net-mlx5-fix-hairpin-queue-states.patch	2023-11-16 13:21:52.585946768 +0000
@@ -1 +1 @@
-From ca638c49e402c930bbe20979c7f5aa2bd6bc0a5a Mon Sep 17 00:00:00 2001
+From d26da32a92b312d73ab738ed187f3318fb43958f 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 05143b8411..06016eb75c 100644
@@ -28 +29 @@
-@@ -347,6 +347,6 @@ mlx5_hairpin_auto_bind(struct rte_eth_dev *dev)
+@@ -346,6 +346,6 @@ mlx5_hairpin_auto_bind(struct rte_eth_dev *dev)
@@ -36,2 +37,2 @@
- 		rq_attr.hairpin_peer_vhca =
-@@ -602,6 +602,6 @@ mlx5_hairpin_queue_peer_bind(struct rte_eth_dev *dev, uint16_t cur_queue,
+ 		rq_attr.hairpin_peer_vhca = priv->config.hca_attr.vhca_id;
+@@ -600,6 +600,6 @@ mlx5_hairpin_queue_peer_bind(struct rte_eth_dev *dev, uint16_t cur_queue,
@@ -46 +47 @@
-@@ -667,5 +667,5 @@ mlx5_hairpin_queue_peer_unbind(struct rte_eth_dev *dev, uint16_t cur_queue,
+@@ -665,5 +665,5 @@ mlx5_hairpin_queue_peer_unbind(struct rte_eth_dev *dev, uint16_t cur_queue,
@@ -53 +54 @@
-@@ -701,6 +701,6 @@ mlx5_hairpin_queue_peer_unbind(struct rte_eth_dev *dev, uint16_t cur_queue,
+@@ -699,6 +699,6 @@ mlx5_hairpin_queue_peer_unbind(struct rte_eth_dev *dev, uint16_t cur_queue,


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

* patch 'net/mlx5: fix multi-segment Tx inline data length' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (59 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/mlx5: fix hairpin queue states' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/mlx5: fix shared Rx queue list management' " Kevin Traynor
  2023-11-16 13:23 ` patch 'net/mlx5: zero UDP checksum over IPv4 in encapsulation' " Kevin Traynor
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Viacheslav Ovsiienko; +Cc: Suanming Mou, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From d4eebaf47c552011149a6fda7e7cf2dd7dfd4a2c 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_tx.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_tx.h b/drivers/net/mlx5/mlx5_tx.h
index 9e097944cd..e2d0d6de0b 100644
--- a/drivers/net/mlx5/mlx5_tx.h
+++ b/drivers/net/mlx5/mlx5_tx.h
@@ -1923,5 +1923,5 @@ mlx5_tx_packet_multi_inline(struct mlx5_txq_data *__rte_restrict txq,
 
 		mbuf = loc->mbuf;
-		nxlen = rte_pktmbuf_data_len(mbuf);
+		nxlen = rte_pktmbuf_data_len(mbuf) + vlan;
 		/*
 		 * Packet length exceeds the allowed inline data length,
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:54.033406962 +0000
+++ 0062-net-mlx5-fix-multi-segment-Tx-inline-data-length.patch	2023-11-16 13:21:52.588946777 +0000
@@ -1 +1 @@
-From e3c7bb56b4583ccb1304219f52639d898727e65d Mon Sep 17 00:00:00 2001
+From d4eebaf47c552011149a6fda7e7cf2dd7dfd4a2c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e3c7bb56b4583ccb1304219f52639d898727e65d ]
+
@@ -32 +33,0 @@
-Cc: stable@dpdk.org
@@ -41 +42 @@
-index 264cc192dc..e59ce37667 100644
+index 9e097944cd..e2d0d6de0b 100644
@@ -44 +45 @@
-@@ -2047,5 +2047,5 @@ mlx5_tx_packet_multi_inline(struct mlx5_txq_data *__rte_restrict txq,
+@@ -1923,5 +1923,5 @@ mlx5_tx_packet_multi_inline(struct mlx5_txq_data *__rte_restrict txq,


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

* patch 'net/mlx5: fix shared Rx queue list management' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (60 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/mlx5: fix multi-segment Tx inline data length' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  2023-11-16 13:23 ` patch 'net/mlx5: zero UDP checksum over IPv4 in encapsulation' " Kevin Traynor
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Bing Zhao; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From ac941d304e541a5a9aad6882ca3cbc3fbd4a7d95 Mon Sep 17 00:00:00 2001
From: Bing Zhao <bingz@nvidia.com>
Date: Mon, 13 Nov 2023 09:24:48 +0200
Subject: [PATCH] net/mlx5: fix shared Rx queue list management

[ upstream commit bcc220cb57d7a2c45703c7215aad2320ac0a1e51 ]

In shared Rx queue case, the shared control structure could only be
released after the last port's dereference in the group.

There is another management list that holding all of the used Rx
queues' structures for a port. If the reference count of a control
structure is changed to zero during port close, it can be removed
from the list directly without freeing the resource.

Fixes: 09c2555303be ("net/mlx5: support shared Rx queue")

Signed-off-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_rxq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
index e4d0291b9d..da1b1f8bb9 100644
--- a/drivers/net/mlx5/mlx5_rxq.c
+++ b/drivers/net/mlx5/mlx5_rxq.c
@@ -2162,4 +2162,5 @@ mlx5_rxq_release(struct rte_eth_dev *dev, uint16_t idx)
 		}
 	} else { /* Refcnt zero, closing device. */
+		LIST_REMOVE(rxq_ctrl, next);
 		LIST_REMOVE(rxq, owner_entry);
 		if (LIST_EMPTY(&rxq_ctrl->owners)) {
@@ -2169,5 +2170,4 @@ mlx5_rxq_release(struct rte_eth_dev *dev, uint16_t idx)
 			if (rxq_ctrl->rxq.shared)
 				LIST_REMOVE(rxq_ctrl, share_entry);
-			LIST_REMOVE(rxq_ctrl, next);
 			mlx5_free(rxq_ctrl);
 		}
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:54.055858055 +0000
+++ 0063-net-mlx5-fix-shared-Rx-queue-list-management.patch	2023-11-16 13:21:52.590946783 +0000
@@ -1 +1 @@
-From bcc220cb57d7a2c45703c7215aad2320ac0a1e51 Mon Sep 17 00:00:00 2001
+From ac941d304e541a5a9aad6882ca3cbc3fbd4a7d95 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit bcc220cb57d7a2c45703c7215aad2320ac0a1e51 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index 88b2dc54b3..2c51af11c7 100644
+index e4d0291b9d..da1b1f8bb9 100644
@@ -27 +28 @@
-@@ -2281,4 +2281,5 @@ mlx5_rxq_release(struct rte_eth_dev *dev, uint16_t idx)
+@@ -2162,4 +2162,5 @@ mlx5_rxq_release(struct rte_eth_dev *dev, uint16_t idx)
@@ -33 +34 @@
-@@ -2288,5 +2289,4 @@ mlx5_rxq_release(struct rte_eth_dev *dev, uint16_t idx)
+@@ -2169,5 +2170,4 @@ mlx5_rxq_release(struct rte_eth_dev *dev, uint16_t idx)


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

* patch 'net/mlx5: zero UDP checksum over IPv4 in encapsulation' has been queued to stable release 21.11.6
  2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
                   ` (61 preceding siblings ...)
  2023-11-16 13:23 ` patch 'net/mlx5: fix shared Rx queue list management' " Kevin Traynor
@ 2023-11-16 13:23 ` Kevin Traynor
  62 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-16 13:23 UTC (permalink / raw)
  To: Eli Britstein; +Cc: Suanming Mou, dpdk stable

Hi,

FYI, your patch has been queued to stable release 21.11.6

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

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

Thanks.

Kevin

---
From d4a1dc78a3bfee522eba22386c422f01d7ba4ee2 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 1b6467e1b1..0c66c76ef5 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -4254,4 +4254,5 @@ 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;
@@ -4270,10 +4271,6 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)
 	}
 
-	/* 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,
@@ -4281,11 +4278,18 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)
 	}
 
-	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;
 
-- 
2.41.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-11-16 13:21:54.078353833 +0000
+++ 0064-net-mlx5-zero-UDP-checksum-over-IPv4-in-encapsulatio.patch	2023-11-16 13:21:52.603946821 +0000
@@ -1 +1 @@
-From e407221d58ffdfd9b7c80f8e4fff99f67cdbd6e9 Mon Sep 17 00:00:00 2001
+From d4a1dc78a3bfee522eba22386c422f01d7ba4ee2 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 1b6467e1b1..0c66c76ef5 100644
@@ -25 +26 @@
-@@ -4714,4 +4714,5 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)
+@@ -4254,4 +4254,5 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)
@@ -31 +32 @@
-@@ -4730,10 +4731,6 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)
+@@ -4270,10 +4271,6 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)
@@ -43 +44 @@
-@@ -4741,11 +4738,18 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)
+@@ -4281,11 +4278,18 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)


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

* RE: patch 'build: add libarchive to optional external dependencies' has been queued to stable release 21.11.6
  2023-11-16 13:23 ` patch 'build: add libarchive to optional external dependencies' " Kevin Traynor
@ 2023-11-17  9:00   ` Richardson, Bruce
  2023-11-20 13:58     ` Kevin Traynor
  0 siblings, 1 reply; 66+ messages in thread
From: Richardson, Bruce @ 2023-11-17  9:00 UTC (permalink / raw)
  To: Kevin Traynor, Srikanth Yalavarthi; +Cc: dpdk stable

After applying this patch, the link of DPDK may fail if all dependencies of libarchive are not installed. For some reason the install of the libarchive-dev package on many distros does not install all correct dependencies and the user needs to install a few other dev packages manually. (To me, this looks like something that could do with being fixed in the packages - it's not something we can really control)

Srikanth, do you think this patch needs to be backported? If there is no compelling need, I'd maybe avoid doing so to avoid possible unexpected build issues for users.

/Bruce

> -----Original Message-----
> From: Kevin Traynor <ktraynor@redhat.com>
> Sent: Thursday, November 16, 2023 1:23 PM
> To: Srikanth Yalavarthi <syalavarthi@marvell.com>
> Cc: Richardson, Bruce <bruce.richardson@intel.com>; dpdk stable
> <stable@dpdk.org>
> Subject: patch 'build: add libarchive to optional external dependencies'
> has been queued to stable release 21.11.6
> 
> Hi,
> 
> FYI, your patch has been queued to stable release 21.11.6
> 
> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> It will be pushed if I get no objections before 11/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/kevintraynor/dpdk-stable
> 
> This queued commit can be viewed at:
> https://github.com/kevintraynor/dpdk-
> stable/commit/aa40722948ac2dc15f93b8598f560029c757b645
> 
> Thanks.
> 
> Kevin
> 
> ---
> From aa40722948ac2dc15f93b8598f560029c757b645 Mon Sep 17 00:00:00 2001
> From: Srikanth Yalavarthi <syalavarthi@marvell.com>
> Date: Sun, 5 Nov 2023 20:12:43 -0800
> Subject: [PATCH] build: add libarchive to optional external dependencies
> 
> [ upstream commit 22f7184e8b5f1b546ac26dd0bde8c3c6038a7e03 ]
> 
> In order to avoid linking with Libs.private, libarchive
> is not added to ext_deps during the meson setup stage.
> 
> Since libarchive is not added to ext_deps, cross-compilation
> or native compilation with libarchive installed in non-standard
> location fails with errors related to "cannot find -larchive"
> or "archive.h: No such file or directory". In order to fix the
> build failures, user is required to define the 'c_args' and
> 'c_link_args' with '-I<includedir>' and '-L<libdir>'.
> 
> This patch adds libarchive to ext_deps and further would not
> require setting c_args and c_link_args externally.
> 
> Fixes: 40edb9c0d36b ("eal: handle compressed firmware")
> 
> Signed-off-by: Srikanth Yalavarthi <syalavarthi@marvell.com>
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
>  config/meson.build  | 5 -----
>  lib/eal/meson.build | 3 +++
>  2 files changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/config/meson.build b/config/meson.build
> index a79a3ed39c..b40302da02 100644
> --- a/config/meson.build
> +++ b/config/meson.build
> @@ -208,9 +208,4 @@ libarchive = dependency('libarchive', required: false,
> method: 'pkg-config')
>  if libarchive.found()
>      dpdk_conf.set('RTE_HAS_LIBARCHIVE', 1)
> -    # Push libarchive link dependency at the project level to support
> -    # statically linking dpdk apps. Details at:
> -    # https://inbox.dpdk.org/dev/20210605004024.660267a1@sovereign/
> -    add_project_link_arguments('-larchive', language: 'c')
> -    dpdk_extra_ldflags += '-larchive'
>  endif
> 
> diff --git a/lib/eal/meson.build b/lib/eal/meson.build
> index 1722924f67..f223c6d7a5 100644
> --- a/lib/eal/meson.build
> +++ b/lib/eal/meson.build
> @@ -23,4 +23,7 @@ if dpdk_conf.has('RTE_USE_LIBBSD')
>      ext_deps += libbsd
>  endif
> +if dpdk_conf.has('RTE_HAS_LIBARCHIVE')
> +    ext_deps += libarchive
> +endif
>  if cc.has_function('getentropy', prefix : '#include <unistd.h>')
>      cflags += '-DRTE_LIBEAL_USE_GETENTROPY'
> --
> 2.41.0
> 
> ---
>   Diff of the applied patch vs upstream commit (please double-check if
> non-empty:
> ---
> --- -	2023-11-16 13:21:53.587627939 +0000
> +++ 0043-build-add-libarchive-to-optional-external-dependenci.patch
> 	2023-11-16 13:21:52.506946538 +0000
> @@ -1 +1 @@
> -From 22f7184e8b5f1b546ac26dd0bde8c3c6038a7e03 Mon Sep 17 00:00:00 2001
> +From aa40722948ac2dc15f93b8598f560029c757b645 Mon Sep 17 00:00:00 2001
> @@ -5,0 +6,2 @@
> +[ upstream commit 22f7184e8b5f1b546ac26dd0bde8c3c6038a7e03 ]
> +
> @@ -20 +21,0 @@
> -Cc: stable@dpdk.org
> @@ -30 +31 @@
> -index 39ed4ba7d3..d732154731 100644
> +index a79a3ed39c..b40302da02 100644
> @@ -33 +34 @@
> -@@ -252,9 +252,4 @@ libarchive = dependency('libarchive', required:
> false, method: 'pkg-config')
> +@@ -208,9 +208,4 @@ libarchive = dependency('libarchive', required:
> false, method: 'pkg-config')
> @@ -44 +45 @@
> -index 9942104386..e1d6c4cf17 100644
> +index 1722924f67..f223c6d7a5 100644
> @@ -47 +48 @@
> -@@ -22,4 +22,7 @@ if dpdk_conf.has('RTE_USE_LIBBSD')
> +@@ -23,4 +23,7 @@ if dpdk_conf.has('RTE_USE_LIBBSD')


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

* Re: patch 'build: add libarchive to optional external dependencies' has been queued to stable release 21.11.6
  2023-11-17  9:00   ` Richardson, Bruce
@ 2023-11-20 13:58     ` Kevin Traynor
  0 siblings, 0 replies; 66+ messages in thread
From: Kevin Traynor @ 2023-11-20 13:58 UTC (permalink / raw)
  To: Richardson, Bruce, Srikanth Yalavarthi
  Cc: dpdk stable, Xueming(Steven) Li, Luca Boccassi

On 17/11/2023 09:00, Richardson, Bruce wrote:
> After applying this patch, the link of DPDK may fail if all dependencies of libarchive are not installed. For some reason the install of the libarchive-dev package on many distros does not install all correct dependencies and the user needs to install a few other dev packages manually. (To me, this looks like something that could do with being fixed in the packages - it's not something we can really control)
> 
> Srikanth, do you think this patch needs to be backported? If there is no compelling need, I'd maybe avoid doing so to avoid possible unexpected build issues for users.
> 

Hi Bruce. Thanks for highlighting this.

I just hit this issue myself with 23.11-rc3 and had to install 
lz4-devel, bzip2-devel and libacl-devel to be able to link.

I don't think we should take this patch, so I'm going to drop from 21.11 
backports.

thanks,
Kevin.

> /Bruce
> 
>> -----Original Message-----
>> From: Kevin Traynor <ktraynor@redhat.com>
>> Sent: Thursday, November 16, 2023 1:23 PM
>> To: Srikanth Yalavarthi <syalavarthi@marvell.com>
>> Cc: Richardson, Bruce <bruce.richardson@intel.com>; dpdk stable
>> <stable@dpdk.org>
>> Subject: patch 'build: add libarchive to optional external dependencies'
>> has been queued to stable release 21.11.6
>>
>> Hi,
>>
>> FYI, your patch has been queued to stable release 21.11.6
>>
>> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
>> It will be pushed if I get no objections before 11/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/kevintraynor/dpdk-stable
>>
>> This queued commit can be viewed at:
>> https://github.com/kevintraynor/dpdk-
>> stable/commit/aa40722948ac2dc15f93b8598f560029c757b645
>>
>> Thanks.
>>
>> Kevin
>>
>> ---
>>  From aa40722948ac2dc15f93b8598f560029c757b645 Mon Sep 17 00:00:00 2001
>> From: Srikanth Yalavarthi <syalavarthi@marvell.com>
>> Date: Sun, 5 Nov 2023 20:12:43 -0800
>> Subject: [PATCH] build: add libarchive to optional external dependencies
>>
>> [ upstream commit 22f7184e8b5f1b546ac26dd0bde8c3c6038a7e03 ]
>>
>> In order to avoid linking with Libs.private, libarchive
>> is not added to ext_deps during the meson setup stage.
>>
>> Since libarchive is not added to ext_deps, cross-compilation
>> or native compilation with libarchive installed in non-standard
>> location fails with errors related to "cannot find -larchive"
>> or "archive.h: No such file or directory". In order to fix the
>> build failures, user is required to define the 'c_args' and
>> 'c_link_args' with '-I<includedir>' and '-L<libdir>'.
>>
>> This patch adds libarchive to ext_deps and further would not
>> require setting c_args and c_link_args externally.
>>
>> Fixes: 40edb9c0d36b ("eal: handle compressed firmware")
>>
>> Signed-off-by: Srikanth Yalavarthi <syalavarthi@marvell.com>
>> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
>> ---
>>   config/meson.build  | 5 -----
>>   lib/eal/meson.build | 3 +++
>>   2 files changed, 3 insertions(+), 5 deletions(-)
>>
>> diff --git a/config/meson.build b/config/meson.build
>> index a79a3ed39c..b40302da02 100644
>> --- a/config/meson.build
>> +++ b/config/meson.build
>> @@ -208,9 +208,4 @@ libarchive = dependency('libarchive', required: false,
>> method: 'pkg-config')
>>   if libarchive.found()
>>       dpdk_conf.set('RTE_HAS_LIBARCHIVE', 1)
>> -    # Push libarchive link dependency at the project level to support
>> -    # statically linking dpdk apps. Details at:
>> -    # https://inbox.dpdk.org/dev/20210605004024.660267a1@sovereign/
>> -    add_project_link_arguments('-larchive', language: 'c')
>> -    dpdk_extra_ldflags += '-larchive'
>>   endif
>>
>> diff --git a/lib/eal/meson.build b/lib/eal/meson.build
>> index 1722924f67..f223c6d7a5 100644
>> --- a/lib/eal/meson.build
>> +++ b/lib/eal/meson.build
>> @@ -23,4 +23,7 @@ if dpdk_conf.has('RTE_USE_LIBBSD')
>>       ext_deps += libbsd
>>   endif
>> +if dpdk_conf.has('RTE_HAS_LIBARCHIVE')
>> +    ext_deps += libarchive
>> +endif
>>   if cc.has_function('getentropy', prefix : '#include <unistd.h>')
>>       cflags += '-DRTE_LIBEAL_USE_GETENTROPY'
>> --
>> 2.41.0
>>
>> ---
>>    Diff of the applied patch vs upstream commit (please double-check if
>> non-empty:
>> ---
>> --- -	2023-11-16 13:21:53.587627939 +0000
>> +++ 0043-build-add-libarchive-to-optional-external-dependenci.patch
>> 	2023-11-16 13:21:52.506946538 +0000
>> @@ -1 +1 @@
>> -From 22f7184e8b5f1b546ac26dd0bde8c3c6038a7e03 Mon Sep 17 00:00:00 2001
>> +From aa40722948ac2dc15f93b8598f560029c757b645 Mon Sep 17 00:00:00 2001
>> @@ -5,0 +6,2 @@
>> +[ upstream commit 22f7184e8b5f1b546ac26dd0bde8c3c6038a7e03 ]
>> +
>> @@ -20 +21,0 @@
>> -Cc: stable@dpdk.org
>> @@ -30 +31 @@
>> -index 39ed4ba7d3..d732154731 100644
>> +index a79a3ed39c..b40302da02 100644
>> @@ -33 +34 @@
>> -@@ -252,9 +252,4 @@ libarchive = dependency('libarchive', required:
>> false, method: 'pkg-config')
>> +@@ -208,9 +208,4 @@ libarchive = dependency('libarchive', required:
>> false, method: 'pkg-config')
>> @@ -44 +45 @@
>> -index 9942104386..e1d6c4cf17 100644
>> +index 1722924f67..f223c6d7a5 100644
>> @@ -47 +48 @@
>> -@@ -22,4 +22,7 @@ if dpdk_conf.has('RTE_USE_LIBBSD')
>> +@@ -23,4 +23,7 @@ if dpdk_conf.has('RTE_USE_LIBBSD')
> 


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

end of thread, other threads:[~2023-11-20 13:58 UTC | newest]

Thread overview: 66+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-16 13:22 patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 21.11.6 Kevin Traynor
2023-11-16 13:22 ` patch 'eventdev: fix missing driver names in info struct' " Kevin Traynor
2023-11-16 13:22 ` patch 'net/virtio: fix missing next flag in Tx packed ring' " Kevin Traynor
2023-11-16 13:22 ` patch 'net/virtio: fix link state interrupt vector setting' " Kevin Traynor
2023-11-16 13:22 ` patch 'vhost: fix missing vring call check on virtqueue access' " Kevin Traynor
2023-11-16 13:22 ` patch 'vhost: fix missing " Kevin Traynor
2023-11-16 13:22 ` patch 'vhost: fix check on virtqueue access in async registration' " Kevin Traynor
2023-11-16 13:22 ` patch 'vhost: fix check on virtqueue access in in-flight getter' " Kevin Traynor
2023-11-16 13:22 ` patch 'common/cnxk: fix pool buffer size in opaque mode' " Kevin Traynor
2023-11-16 13:22 ` patch 'ethdev: fix function name in comment' " Kevin Traynor
2023-11-16 13:22 ` patch 'net/hns3: fix typo in function name' " Kevin Traynor
2023-11-16 13:22 ` patch 'net/hns3: fix unchecked Rx free threshold' " Kevin Traynor
2023-11-16 13:22 ` patch 'net/hns3: fix double stats for IMP and global reset' " Kevin Traynor
2023-11-16 13:22 ` patch 'net/hns3: remove reset log in secondary' " Kevin Traynor
2023-11-16 13:22 ` patch 'net/hns3: fix multiple reset detected log' " Kevin Traynor
2023-11-16 13:22 ` patch 'net/hns3: refactor interrupt state query' " Kevin Traynor
2023-11-16 13:22 ` patch 'test/bonding: remove unreachable statement' " Kevin Traynor
2023-11-16 13:23 ` patch 'test/bonding: add missing check' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/bonding: fix possible overrun' " Kevin Traynor
2023-11-16 13:23 ` patch 'ethdev: fix 32-bit build with GCC 13' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/enic: avoid extra unlock in MTU set' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/hns3: fix some return values' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/hns3: fix some error logs' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/hns3: keep set/get algo key functions local' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/hns3: fix uninitialized hash algo value' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/tap: fix L4 checksum offloading' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/tap: fix IPv4 " Kevin Traynor
2023-11-16 13:23 ` patch 'app/procinfo: fix RSS info' " Kevin Traynor
2023-11-16 13:23 ` patch 'app/procinfo: adjust format of " Kevin Traynor
2023-11-16 13:23 ` patch 'net/tap: fix RSS for fragmented packets' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/mlx5: fix decap action checking in sample flow' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/mlx5: fix E-Switch mirror flow rule validation' " Kevin Traynor
2023-11-16 13:23 ` patch 'common/mlx5: fix controller index parsing' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/ice: fix L1 check interval' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/iavf: fix Tx offload mask' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/iavf: fix indent in Tx path' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/iavf: fix Tx offload flags check' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/ice: fix DCF port statistics' " Kevin Traynor
2023-11-16 13:23 ` patch 'crypto/nitrox: fix panic with high number of segments' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/iavf: fix Tx preparation' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/ice: " Kevin Traynor
2023-11-16 13:23 ` patch 'config/arm: fix aarch32 build with GCC 13' " Kevin Traynor
2023-11-16 13:23 ` patch 'build: add libarchive to optional external dependencies' " Kevin Traynor
2023-11-17  9:00   ` Richardson, Bruce
2023-11-20 13:58     ` Kevin Traynor
2023-11-16 13:23 ` patch 'app/dumpcap: fix mbuf pool ring type' " Kevin Traynor
2023-11-16 13:23 ` patch 'event/dlb2: fix name check in self-test' " Kevin Traynor
2023-11-16 13:23 ` patch 'test/bbdev: fix Python script subprocess' " Kevin Traynor
2023-11-16 13:23 ` patch 'test/bbdev: assert failed test for queue configure' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/ice: fix crash on closing representor ports' " Kevin Traynor
2023-11-16 13:23 ` patch 'event/dlb2: fix missing queue ordering capability flag' " Kevin Traynor
2023-11-16 13:23 ` patch 'meter: fix RFC4115 trTCM API Doxygen' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/sfc: remove null dereference in log' " Kevin Traynor
2023-11-16 13:23 ` patch 'app/testpmd: remove useless check in TSO command' " Kevin Traynor
2023-11-16 13:23 ` patch 'ethdev: account for smaller MTU when setting default' " Kevin Traynor
2023-11-16 13:23 ` patch 'test/bonding: fix uninitialized RSS configuration' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/hns3: fix mailbox sync' " Kevin Traynor
2023-11-16 13:23 ` patch 'app/testpmd: fix tunnel TSO capability check' " Kevin Traynor
2023-11-16 13:23 ` patch 'app/testpmd: add explicit check for tunnel TSO' " Kevin Traynor
2023-11-16 13:23 ` patch 'app/testpmd: fix tunnel TSO configuration' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/mlx5: fix validation of sample encap flow action' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/mlx5: fix use after free on Rx queue start' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/mlx5: fix hairpin queue states' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/mlx5: fix multi-segment Tx inline data length' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/mlx5: fix shared Rx queue list management' " Kevin Traynor
2023-11-16 13:23 ` patch 'net/mlx5: zero UDP checksum over IPv4 in encapsulation' " Kevin Traynor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).