* [PATCH 7/7] net/mlx5: fix the error in VLAN actions creation
@ 2023-06-30 6:39 Bing Zhao
2023-06-30 10:51 ` [PATCH v2] " Bing Zhao
0 siblings, 1 reply; 4+ messages in thread
From: Bing Zhao @ 2023-06-30 6:39 UTC (permalink / raw)
To: matan, viacheslavo, orika, suanmingm, rasland; +Cc: dev, getelson
When a failure occurs during the VLAN actions creating, the value
of "rte_errno" is already set by the mlx5dr_action_create*. The
value can be returned directly to reflect the actual reason.
In the meanwhile, the "rte_flow_error" structure should also be set
with explict message.
Fixes: 773ca0e91ba1 ("net/mlx5: support VLAN push/pop/modify with HWS")
Cc: getelson@nvidia.com
Signed-off-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
drivers/net/mlx5/mlx5_flow_hw.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index 20941b4fc7..36a7f0989c 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -7125,27 +7125,28 @@ flow_hw_create_vlan(struct rte_eth_dev *dev)
MLX5DR_ACTION_FLAG_HWS_FDB
};
+ /* rte_errno is set in the mlx5dr_action* functions. */
for (i = MLX5DR_TABLE_TYPE_NIC_RX; i <= MLX5DR_TABLE_TYPE_NIC_TX; i++) {
priv->hw_pop_vlan[i] =
mlx5dr_action_create_pop_vlan(priv->dr_ctx, flags[i]);
if (!priv->hw_pop_vlan[i])
- return -ENOENT;
+ return -rte_errno;
priv->hw_push_vlan[i] =
mlx5dr_action_create_push_vlan(priv->dr_ctx, flags[i]);
if (!priv->hw_pop_vlan[i])
- return -ENOENT;
+ return -rte_errno;
}
if (priv->sh->config.dv_esw_en && priv->master) {
priv->hw_pop_vlan[MLX5DR_TABLE_TYPE_FDB] =
mlx5dr_action_create_pop_vlan
(priv->dr_ctx, MLX5DR_ACTION_FLAG_HWS_FDB);
if (!priv->hw_pop_vlan[MLX5DR_TABLE_TYPE_FDB])
- return -ENOENT;
+ return -rte_errno;
priv->hw_push_vlan[MLX5DR_TABLE_TYPE_FDB] =
mlx5dr_action_create_push_vlan
(priv->dr_ctx, MLX5DR_ACTION_FLAG_HWS_FDB);
if (!priv->hw_pop_vlan[MLX5DR_TABLE_TYPE_FDB])
- return -ENOENT;
+ return -rte_errno;
}
return 0;
}
@@ -7920,8 +7921,11 @@ flow_hw_configure(struct rte_eth_dev *dev,
}
}
ret = flow_hw_create_vlan(dev);
- if (ret)
+ if (ret) {
+ rte_flow_error_set(error, -ret, RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
+ NULL, "Failed to VLAN actions.");
goto err;
+ }
if (_queue_attr)
mlx5_free(_queue_attr);
if (port_attr->flags & RTE_FLOW_PORT_FLAG_STRICT_QUEUE)
--
2.34.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2] net/mlx5: fix the error in VLAN actions creation
2023-06-30 6:39 [PATCH 7/7] net/mlx5: fix the error in VLAN actions creation Bing Zhao
@ 2023-06-30 10:51 ` Bing Zhao
2023-06-30 11:02 ` [PATCH v3] " Bing Zhao
0 siblings, 1 reply; 4+ messages in thread
From: Bing Zhao @ 2023-06-30 10:51 UTC (permalink / raw)
To: matan, viacheslavo, orika, suanmingm, rasland; +Cc: dev, getelson, stable
When a failure occurs during the VLAN actions creating, the value
of "rte_errno" is already set by the mlx5dr_action_create*. The
value can be returned directly to reflect the actual reason.
In the meanwhile, the "rte_flow_error" structure should also be set
with explict message.
Fixes: 773ca0e91ba1 ("net/mlx5: support VLAN push/pop/modify with HWS")
Cc: getelson@nvidia.com
Cc: stable@dpdk.org
Signed-off-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
v2: add CC stable
---
drivers/net/mlx5/mlx5_flow_hw.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index 20941b4fc7..36a7f0989c 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -7125,27 +7125,28 @@ flow_hw_create_vlan(struct rte_eth_dev *dev)
MLX5DR_ACTION_FLAG_HWS_FDB
};
+ /* rte_errno is set in the mlx5dr_action* functions. */
for (i = MLX5DR_TABLE_TYPE_NIC_RX; i <= MLX5DR_TABLE_TYPE_NIC_TX; i++) {
priv->hw_pop_vlan[i] =
mlx5dr_action_create_pop_vlan(priv->dr_ctx, flags[i]);
if (!priv->hw_pop_vlan[i])
- return -ENOENT;
+ return -rte_errno;
priv->hw_push_vlan[i] =
mlx5dr_action_create_push_vlan(priv->dr_ctx, flags[i]);
if (!priv->hw_pop_vlan[i])
- return -ENOENT;
+ return -rte_errno;
}
if (priv->sh->config.dv_esw_en && priv->master) {
priv->hw_pop_vlan[MLX5DR_TABLE_TYPE_FDB] =
mlx5dr_action_create_pop_vlan
(priv->dr_ctx, MLX5DR_ACTION_FLAG_HWS_FDB);
if (!priv->hw_pop_vlan[MLX5DR_TABLE_TYPE_FDB])
- return -ENOENT;
+ return -rte_errno;
priv->hw_push_vlan[MLX5DR_TABLE_TYPE_FDB] =
mlx5dr_action_create_push_vlan
(priv->dr_ctx, MLX5DR_ACTION_FLAG_HWS_FDB);
if (!priv->hw_pop_vlan[MLX5DR_TABLE_TYPE_FDB])
- return -ENOENT;
+ return -rte_errno;
}
return 0;
}
@@ -7920,8 +7921,11 @@ flow_hw_configure(struct rte_eth_dev *dev,
}
}
ret = flow_hw_create_vlan(dev);
- if (ret)
+ if (ret) {
+ rte_flow_error_set(error, -ret, RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
+ NULL, "Failed to VLAN actions.");
goto err;
+ }
if (_queue_attr)
mlx5_free(_queue_attr);
if (port_attr->flags & RTE_FLOW_PORT_FLAG_STRICT_QUEUE)
--
2.34.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v3] net/mlx5: fix the error in VLAN actions creation
2023-06-30 10:51 ` [PATCH v2] " Bing Zhao
@ 2023-06-30 11:02 ` Bing Zhao
2023-07-03 13:57 ` Raslan Darawsheh
0 siblings, 1 reply; 4+ messages in thread
From: Bing Zhao @ 2023-06-30 11:02 UTC (permalink / raw)
To: matan, viacheslavo, orika, suanmingm, rasland; +Cc: dev, getelson, stable
When a failure occurs during the VLAN actions creating, the value
of "rte_errno" is already set by the mlx5dr_action_create*. The
value can be returned directly to reflect the actual reason.
In the meanwhile, the "rte_flow_error" structure should also be set
with clear message explicitly.
Fixes: 773ca0e91ba1 ("net/mlx5: support VLAN push/pop/modify with HWS")
Cc: getelson@nvidia.com
Cc: stable@dpdk.org
Signed-off-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
v2: add CC stable
v3: fix typo
---
drivers/net/mlx5/mlx5_flow_hw.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index 20941b4fc7..36a7f0989c 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -7125,27 +7125,28 @@ flow_hw_create_vlan(struct rte_eth_dev *dev)
MLX5DR_ACTION_FLAG_HWS_FDB
};
+ /* rte_errno is set in the mlx5dr_action* functions. */
for (i = MLX5DR_TABLE_TYPE_NIC_RX; i <= MLX5DR_TABLE_TYPE_NIC_TX; i++) {
priv->hw_pop_vlan[i] =
mlx5dr_action_create_pop_vlan(priv->dr_ctx, flags[i]);
if (!priv->hw_pop_vlan[i])
- return -ENOENT;
+ return -rte_errno;
priv->hw_push_vlan[i] =
mlx5dr_action_create_push_vlan(priv->dr_ctx, flags[i]);
if (!priv->hw_pop_vlan[i])
- return -ENOENT;
+ return -rte_errno;
}
if (priv->sh->config.dv_esw_en && priv->master) {
priv->hw_pop_vlan[MLX5DR_TABLE_TYPE_FDB] =
mlx5dr_action_create_pop_vlan
(priv->dr_ctx, MLX5DR_ACTION_FLAG_HWS_FDB);
if (!priv->hw_pop_vlan[MLX5DR_TABLE_TYPE_FDB])
- return -ENOENT;
+ return -rte_errno;
priv->hw_push_vlan[MLX5DR_TABLE_TYPE_FDB] =
mlx5dr_action_create_push_vlan
(priv->dr_ctx, MLX5DR_ACTION_FLAG_HWS_FDB);
if (!priv->hw_pop_vlan[MLX5DR_TABLE_TYPE_FDB])
- return -ENOENT;
+ return -rte_errno;
}
return 0;
}
@@ -7920,8 +7921,11 @@ flow_hw_configure(struct rte_eth_dev *dev,
}
}
ret = flow_hw_create_vlan(dev);
- if (ret)
+ if (ret) {
+ rte_flow_error_set(error, -ret, RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
+ NULL, "Failed to VLAN actions.");
goto err;
+ }
if (_queue_attr)
mlx5_free(_queue_attr);
if (port_attr->flags & RTE_FLOW_PORT_FLAG_STRICT_QUEUE)
--
2.34.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [PATCH v3] net/mlx5: fix the error in VLAN actions creation
2023-06-30 11:02 ` [PATCH v3] " Bing Zhao
@ 2023-07-03 13:57 ` Raslan Darawsheh
0 siblings, 0 replies; 4+ messages in thread
From: Raslan Darawsheh @ 2023-07-03 13:57 UTC (permalink / raw)
To: Bing Zhao, Matan Azrad, Slava Ovsiienko, Ori Kam, Suanming Mou
Cc: dev, Gregory Etelson, stable
Hi,
> -----Original Message-----
> From: Bing Zhao <bingz@nvidia.com>
> Sent: Friday, June 30, 2023 2:02 PM
> To: Matan Azrad <matan@nvidia.com>; Slava Ovsiienko
> <viacheslavo@nvidia.com>; Ori Kam <orika@nvidia.com>; Suanming Mou
> <suanmingm@nvidia.com>; Raslan Darawsheh <rasland@nvidia.com>
> Cc: dev@dpdk.org; Gregory Etelson <getelson@nvidia.com>;
> stable@dpdk.org
> Subject: [PATCH v3] net/mlx5: fix the error in VLAN actions creation
>
> When a failure occurs during the VLAN actions creating, the value of
> "rte_errno" is already set by the mlx5dr_action_create*. The value can be
> returned directly to reflect the actual reason.
>
> In the meanwhile, the "rte_flow_error" structure should also be set with clear
> message explicitly.
>
> Fixes: 773ca0e91ba1 ("net/mlx5: support VLAN push/pop/modify with
> HWS")
> Cc: getelson@nvidia.com
> Cc: stable@dpdk.org
>
> Signed-off-by: Bing Zhao <bingz@nvidia.com>
> Acked-by: Ori Kam <orika@nvidia.com>
> ---
> v2: add CC stable
> v3: fix typo
Patch applied to next-net-mlx,
Kindest regards,
Raslan Darawsheh
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-07-03 13:58 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-30 6:39 [PATCH 7/7] net/mlx5: fix the error in VLAN actions creation Bing Zhao
2023-06-30 10:51 ` [PATCH v2] " Bing Zhao
2023-06-30 11:02 ` [PATCH v3] " Bing Zhao
2023-07-03 13:57 ` Raslan Darawsheh
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).