Update the flow verbs error message to "item type X not supported",
when it is not supported,
instead of a generic error message "item not supported".
Signed-off-by: Li Zhang <l...@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_verbs.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow_verbs.c 
b/drivers/net/mlx5/mlx5_flow_verbs.c
index 62c18b834f..0e0042f17b 100644
--- a/drivers/net/mlx5/mlx5_flow_verbs.c
+++ b/drivers/net/mlx5/mlx5_flow_verbs.c
@@ -1258,6 +1258,7 @@ flow_verbs_validate(struct rte_eth_dev *dev,
        uint64_t last_item = 0;
        uint8_t next_protocol = 0xff;
        uint16_t ether_type = 0;
+       char errstr[32];
 
        if (items == NULL)
                return -1;
@@ -1408,9 +1409,11 @@ flow_verbs_validate(struct rte_eth_dev *dev,
                        last_item = MLX5_FLOW_LAYER_MPLS;
                        break;
                default:
+                       snprintf(errstr, sizeof(errstr), "item type %d not 
supported",
+                                items->type);
                        return rte_flow_error_set(error, ENOTSUP,
                                                  RTE_FLOW_ERROR_TYPE_ITEM,
-                                                 NULL, "item not supported");
+                                                 NULL, errstr);
                }
                item_flags |= last_item;
        }
@@ -1704,6 +1707,7 @@ flow_verbs_translate(struct rte_eth_dev *dev,
        struct mlx5_flow_rss_desc *rss_desc = &((struct mlx5_flow_rss_desc *)
                                              priv->rss_desc)
                                              [!!priv->flow_nested_idx];
+       char errstr[32];
 
        if (priority == MLX5_FLOW_PRIO_RSVD)
                priority = priv->config.flow_prio - 1;
@@ -1849,10 +1853,11 @@ flow_verbs_translate(struct rte_eth_dev *dev,
                        item_flags |= MLX5_FLOW_LAYER_MPLS;
                        break;
                default:
+                       snprintf(errstr, sizeof(errstr), "item type %d not 
supported",
+                                items->type);
                        return rte_flow_error_set(error, ENOTSUP,
                                                  RTE_FLOW_ERROR_TYPE_ITEM,
-                                                 NULL,
-                                                 "item not supported");
+                                                 NULL, errstr);
                }
        }
        dev_flow->handle->layers = item_flags;
-- 
2.21.0

Reply via email to