In cases with more than one STE we didn't update the whole tag of the match jumbo STE, Instead of 11B we kept only 8B like in regular STE. The ste_attr that keeps that indication was not updated at the last iteration. Now we indicate it is a jumbo frame before saving the tag for future deletion of it.
Fixes: 405242c52dd5 ("net/mlx5/hws: add rule object") Cc: sta...@dpdk.org Signed-off-by: Erez Shitrit <ere...@nvidia.com> Reviewed-by: Alex Vesker <va...@nvidia.com> Acked-by: Matan Azrad <ma...@nvidia.com> --- drivers/net/mlx5/hws/mlx5dr_rule.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/mlx5/hws/mlx5dr_rule.c b/drivers/net/mlx5/hws/mlx5dr_rule.c index 9d5e5b11a5..2418ca0b26 100644 --- a/drivers/net/mlx5/hws/mlx5dr_rule.c +++ b/drivers/net/mlx5/hws/mlx5dr_rule.c @@ -116,6 +116,9 @@ static void mlx5dr_rule_save_delete_info(struct mlx5dr_rule *rule, struct mlx5dr_send_ste_attr *ste_attr) { + struct mlx5dr_match_template *mt = rule->matcher->mt; + bool is_jumbo = mlx5dr_matcher_mt_is_jumbo(mt); + if (unlikely(mlx5dr_matcher_req_fw_wqe(rule->matcher))) { uint8_t *src_tag; @@ -136,7 +139,7 @@ mlx5dr_rule_save_delete_info(struct mlx5dr_rule *rule, return; } - if (ste_attr->wqe_tag_is_jumbo) + if (is_jumbo) memcpy(rule->tag.jumbo, ste_attr->wqe_data->jumbo, MLX5DR_JUMBO_TAG_SZ); else memcpy(rule->tag.match, ste_attr->wqe_data->tag, MLX5DR_MATCH_TAG_SZ); -- 2.18.2