70 lines
2.6 KiB
Diff
70 lines
2.6 KiB
Diff
From 67fe87adf964e4b80fc63dbdebc34853c49aae5e Mon Sep 17 00:00:00 2001
|
|
From: Kamal Heib <kheib@redhat.com>
|
|
Date: Thu, 16 Apr 2026 18:03:20 -0400
|
|
Subject: [PATCH] net/mlx5: HWS, Export rule skip logic
|
|
|
|
JIRA: https://redhat.atlassian.net/browse/RHEL-169055
|
|
|
|
commit d8e7ab591b506b56dc96021674938d0c7905e656
|
|
Author: Vlad Dogaru <vdogaru@nvidia.com>
|
|
Date: Thu Jul 3 21:54:24 2025 +0300
|
|
|
|
net/mlx5: HWS, Export rule skip logic
|
|
|
|
The bwc layer will use `mlx5hws_rule_skip` to keep track of numbers of
|
|
RX and TX rules individually, so export this function for future usage.
|
|
|
|
Signed-off-by: Vlad Dogaru <vdogaru@nvidia.com>
|
|
Reviewed-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
|
|
Signed-off-by: Mark Bloch <mbloch@nvidia.com>
|
|
Reviewed-by: Simon Horman <horms@kernel.org>
|
|
Link: https://patch.msgid.link/20250703185431.445571-4-mbloch@nvidia.com
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
|
|
Signed-off-by: Kamal Heib <kheib@redhat.com>
|
|
|
|
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.c
|
|
index 5342a4cc7194..4883e4e1d251 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.c
|
|
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.c
|
|
@@ -3,10 +3,8 @@
|
|
|
|
#include "internal.h"
|
|
|
|
-static void hws_rule_skip(struct mlx5hws_matcher *matcher,
|
|
- struct mlx5hws_match_template *mt,
|
|
- u32 flow_source,
|
|
- bool *skip_rx, bool *skip_tx)
|
|
+void mlx5hws_rule_skip(struct mlx5hws_matcher *matcher, u32 flow_source,
|
|
+ bool *skip_rx, bool *skip_tx)
|
|
{
|
|
/* By default FDB rules are added to both RX and TX */
|
|
*skip_rx = false;
|
|
@@ -66,7 +64,8 @@ static void hws_rule_init_dep_wqe(struct mlx5hws_send_ring_dep_wqe *dep_wqe,
|
|
attr->rule_idx : 0;
|
|
|
|
if (tbl->type == MLX5HWS_TABLE_TYPE_FDB) {
|
|
- hws_rule_skip(matcher, mt, attr->flow_source, &skip_rx, &skip_tx);
|
|
+ mlx5hws_rule_skip(matcher, attr->flow_source,
|
|
+ &skip_rx, &skip_tx);
|
|
|
|
if (!skip_rx) {
|
|
dep_wqe->rtc_0 = matcher->match_ste.rtc_0_id;
|
|
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.h b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.h
|
|
index 1c47a9c11572..d0f082b8dbf5 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.h
|
|
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.h
|
|
@@ -69,6 +69,9 @@ struct mlx5hws_rule {
|
|
*/
|
|
};
|
|
|
|
+void mlx5hws_rule_skip(struct mlx5hws_matcher *matcher, u32 flow_source,
|
|
+ bool *skip_rx, bool *skip_tx);
|
|
+
|
|
void mlx5hws_rule_free_action_ste(struct mlx5hws_action_ste_chunk *action_ste);
|
|
|
|
int mlx5hws_rule_move_hws_remove(struct mlx5hws_rule *rule,
|
|
--
|
|
2.50.1 (Apple Git-155)
|
|
|