net/mlx5: increase max pattern templates

Message ID 20240701102642.84841-1-getelson@nvidia.com (mailing list archive)
State Accepted, archived
Delegated to: Raslan Darawsheh
Headers
Series net/mlx5: increase max pattern templates |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/github-robot: build success github build: passed
ci/intel-Functional success Functional PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-marvell-Functional success Functional Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-unit-amd64-testing success Testing PASS
ci/iol-unit-arm64-testing success Testing PASS
ci/iol-compile-amd64-testing success Testing PASS
ci/iol-compile-arm64-testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-sample-apps-testing success Testing PASS

Commit Message

Gregory Etelson July 1, 2024, 10:26 a.m. UTC
From: Ori Kam <orika@nvidia.com>

Until now the number of pattern templates that was
supported per table was limited to 2.
This was the result of the limitation that the table
could only support 1 matcher.
which meant that we could only support merge of
Ipv4 + TCP and IPv4 + UDP.

With the added ability to use extended hash it is now
possible to use more than 2 pattern templates in a
single table.

Extended match works by creating the hash of the rule
based on the intersection of all pattern templates.
As a result this is good for tables with small number
of rules or that the intersection is very large. for
example ACL table.

Using this feature is not recommended to for use
in tables with large number of rules or with small
intersection. Using this feature on such cases may
result in PPS degradation and rule insertion failures.

This patch increase the max number to 32.

Signed-off-by: Ori Kam <orika@nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Raslan Darawsheh July 2, 2024, 9:25 a.m. UTC | #1
Hi,

From: Gregory Etelson <getelson@nvidia.com>
Sent: Monday, July 1, 2024 1:26 PM
To: dev@dpdk.org
Cc: Gregory Etelson; Maayan Kashani; Raslan Darawsheh; Ori Kam; Dariusz Sosnowski; Slava Ovsiienko; Suanming Mou; Matan Azrad
Subject: [PATCH] net/mlx5: increase max pattern templates

From: Ori Kam <orika@nvidia.com>

Until now the number of pattern templates that was
supported per table was limited to 2.
This was the result of the limitation that the table
could only support 1 matcher.
which meant that we could only support merge of
Ipv4 + TCP and IPv4 + UDP.

With the added ability to use extended hash it is now
possible to use more than 2 pattern templates in a
single table.

Extended match works by creating the hash of the rule
based on the intersection of all pattern templates.
As a result this is good for tables with small number
of rules or that the intersection is very large. for
example ACL table.

Using this feature is not recommended to for use
in tables with large number of rules or with small
intersection. Using this feature on such cases may
result in PPS degradation and rule insertion failures.

This patch increase the max number to 32.

Signed-off-by: Ori Kam <orika@nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>


Patch applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh
  

Patch

diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h
index 92e2ecedb3..8cef0bf61b 100644
--- a/drivers/net/mlx5/mlx5_flow.h
+++ b/drivers/net/mlx5/mlx5_flow.h
@@ -1634,7 +1634,7 @@  struct mlx5_flow_group {
 };
 
 
-#define MLX5_HW_TBL_MAX_ITEM_TEMPLATE 2
+#define MLX5_HW_TBL_MAX_ITEM_TEMPLATE 32
 #define MLX5_HW_TBL_MAX_ACTION_TEMPLATE 32
 
 #define MLX5_MULTIPATTERN_ENCAP_NUM 5