* [PATCH] net/mlx5: support HW flag action
@ 2024-05-28 9:43 Shun Hao
2024-06-03 11:59 ` Raslan Darawsheh
0 siblings, 1 reply; 3+ messages in thread
From: Shun Hao @ 2024-05-28 9:43 UTC (permalink / raw)
To: viacheslavo, matan, orika, Dariusz Sosnowski, Suanming Mou; +Cc: dev, rasland
The HW flag action is supported by adding the tag to packet, with the
default tag value.
Signed-off-by: Shun Hao <shunh@nvidia.com>
Acked-by: Suanming Mou <suanmingm@nvidia.com>
---
drivers/net/mlx5/mlx5_flow_hw.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index 68c5a36bbb..9274a18ae0 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -2292,6 +2292,15 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
}
acts->rule_acts[dr_pos].action = priv->hw_def_miss;
break;
+ case RTE_FLOW_ACTION_TYPE_FLAG:
+ acts->mark = true;
+ acts->rule_acts[dr_pos].tag.value =
+ mlx5_flow_mark_set(MLX5_FLOW_MARK_DEFAULT);
+ acts->rule_acts[dr_pos].action =
+ priv->hw_tag[!!attr->group];
+ __atomic_add_fetch(&priv->hws_mark_refcnt, 1, __ATOMIC_RELAXED);
+ flow_hw_rxq_flag_set(dev, true);
+ break;
case RTE_FLOW_ACTION_TYPE_MARK:
acts->mark = true;
if (masks->conf &&
@@ -6415,6 +6424,10 @@ mlx5_flow_hw_actions_validate(struct rte_eth_dev *dev,
if (ret < 0)
return ret;
break;
+ case RTE_FLOW_ACTION_TYPE_FLAG:
+ /* TODO: Validation logic */
+ action_flags |= MLX5_FLOW_ACTION_FLAG;
+ break;
case RTE_FLOW_ACTION_TYPE_MARK:
/* TODO: Validation logic */
action_flags |= MLX5_FLOW_ACTION_MARK;
@@ -6606,6 +6619,7 @@ flow_hw_actions_validate(struct rte_eth_dev *dev,
static enum mlx5dr_action_type mlx5_hw_dr_action_types[] = {
[RTE_FLOW_ACTION_TYPE_MARK] = MLX5DR_ACTION_TYP_TAG,
+ [RTE_FLOW_ACTION_TYPE_FLAG] = MLX5DR_ACTION_TYP_TAG,
[RTE_FLOW_ACTION_TYPE_DROP] = MLX5DR_ACTION_TYP_DROP,
[RTE_FLOW_ACTION_TYPE_JUMP] = MLX5DR_ACTION_TYP_TBL,
[RTE_FLOW_ACTION_TYPE_QUEUE] = MLX5DR_ACTION_TYP_TIR,
--
2.20.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] net/mlx5: support HW flag action
2024-05-28 9:43 [PATCH] net/mlx5: support HW flag action Shun Hao
@ 2024-06-03 11:59 ` Raslan Darawsheh
0 siblings, 0 replies; 3+ messages in thread
From: Raslan Darawsheh @ 2024-06-03 11:59 UTC (permalink / raw)
To: Shun Hao, Slava Ovsiienko, Matan Azrad, Ori Kam,
Dariusz Sosnowski, Suanming Mou
Cc: dev
Hi,
From: Shun Hao <shunh@nvidia.com>
Sent: Tuesday, May 28, 2024 12:43 PM
To: Slava Ovsiienko; Matan Azrad; Ori Kam; Dariusz Sosnowski; Suanming Mou
Cc: dev@dpdk.org; Raslan Darawsheh
Subject: [PATCH] net/mlx5: support HW flag action
The HW flag action is supported by adding the tag to packet, with the
default tag value.
Signed-off-by: Shun Hao <shunh@nvidia.com>
Acked-by: Suanming Mou <suanmingm@nvidia.com>
---
Patch applied to next-net-mlx,
Kindest regards
Raslan Darawsheh
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH] net/mlx5: support HW flag action
@ 2024-05-28 9:50 Shun Hao
0 siblings, 0 replies; 3+ messages in thread
From: Shun Hao @ 2024-05-28 9:50 UTC (permalink / raw)
To: viacheslavo, matan, orika, Dariusz Sosnowski, Suanming Mou; +Cc: dev, rasland
The HW flag action is supported by adding the tag to packet, with the
default tag value.
Signed-off-by: Shun Hao <shunh@nvidia.com>
Acked-by: Suanming Mou <suanmingm@nvidia.com>
---
drivers/net/mlx5/mlx5_flow_hw.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index 68c5a36bbb..fa10a591b3 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -2292,6 +2292,16 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
}
acts->rule_acts[dr_pos].action = priv->hw_def_miss;
break;
+ case RTE_FLOW_ACTION_TYPE_FLAG:
+ acts->mark = true;
+ acts->rule_acts[dr_pos].tag.value =
+ mlx5_flow_mark_set(MLX5_FLOW_MARK_DEFAULT);
+ acts->rule_acts[dr_pos].action =
+ priv->hw_tag[!!attr->group];
+ rte_atomic_fetch_add_explicit(&priv->hws_mark_refcnt, 1,
+ rte_memory_order_relaxed);
+ flow_hw_rxq_flag_set(dev, true);
+ break;
case RTE_FLOW_ACTION_TYPE_MARK:
acts->mark = true;
if (masks->conf &&
@@ -6415,6 +6425,10 @@ mlx5_flow_hw_actions_validate(struct rte_eth_dev *dev,
if (ret < 0)
return ret;
break;
+ case RTE_FLOW_ACTION_TYPE_FLAG:
+ /* TODO: Validation logic */
+ action_flags |= MLX5_FLOW_ACTION_FLAG;
+ break;
case RTE_FLOW_ACTION_TYPE_MARK:
/* TODO: Validation logic */
action_flags |= MLX5_FLOW_ACTION_MARK;
@@ -6606,6 +6620,7 @@ flow_hw_actions_validate(struct rte_eth_dev *dev,
static enum mlx5dr_action_type mlx5_hw_dr_action_types[] = {
[RTE_FLOW_ACTION_TYPE_MARK] = MLX5DR_ACTION_TYP_TAG,
+ [RTE_FLOW_ACTION_TYPE_FLAG] = MLX5DR_ACTION_TYP_TAG,
[RTE_FLOW_ACTION_TYPE_DROP] = MLX5DR_ACTION_TYP_DROP,
[RTE_FLOW_ACTION_TYPE_JUMP] = MLX5DR_ACTION_TYP_TBL,
[RTE_FLOW_ACTION_TYPE_QUEUE] = MLX5DR_ACTION_TYP_TIR,
--
2.20.0
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-06-03 11:59 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-28 9:43 [PATCH] net/mlx5: support HW flag action Shun Hao
2024-06-03 11:59 ` Raslan Darawsheh
2024-05-28 9:50 Shun Hao
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).