Public API RTE_FLOW_ACTION_TYPE_TAG and RTE_FLOW_ITEM_TYPE_TAG present data in host-endian format, as all metadata related entities. The internal mlx5 tag related action and item should use the same endianness to be conformed.
Signed-off-by: Viacheslav Ovsiienko <viachesl...@mellanox.com> Acked-by: Matan Azrad <ma...@mellanox.com> --- drivers/net/mlx5/mlx5_flow.c | 6 +++--- drivers/net/mlx5/mlx5_flow.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index b4b08f4..5408797 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -2707,7 +2707,7 @@ uint32_t mlx5_flow_adjust_priority(struct rte_eth_dev *dev, int32_t priority, actions_rx++; set_tag = (void *)actions_rx; set_tag->id = flow_get_reg_id(dev, MLX5_HAIRPIN_RX, 0, &error); - set_tag->data = rte_cpu_to_be_32(*flow_id); + set_tag->data = *flow_id; tag_action->conf = set_tag; /* Create Tx item list. */ rte_memcpy(actions_tx, actions, sizeof(struct rte_flow_action)); @@ -2715,8 +2715,8 @@ uint32_t mlx5_flow_adjust_priority(struct rte_eth_dev *dev, int32_t priority, item = pattern_tx; item->type = MLX5_RTE_FLOW_ITEM_TYPE_TAG; tag_item = (void *)addr; - tag_item->data = rte_cpu_to_be_32(*flow_id); - tag_item->id = flow_get_reg_id(dev, MLX5_HAIRPIN_TX, 0, &error); + tag_item->data = *flow_id; + tag_item->id = flow_get_reg_id(dev, MLX5_HAIRPIN_TX, 0, NULL); item->spec = tag_item; addr += sizeof(struct mlx5_rte_flow_item_tag); tag_item = (void *)addr; diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h index 7559810..8cc6c47 100644 --- a/drivers/net/mlx5/mlx5_flow.h +++ b/drivers/net/mlx5/mlx5_flow.h @@ -56,13 +56,13 @@ enum mlx5_rte_flow_action_type { /* Matches on selected register. */ struct mlx5_rte_flow_item_tag { uint16_t id; - rte_be32_t data; + uint32_t data; }; /* Modify selected register. */ struct mlx5_rte_flow_action_set_tag { uint16_t id; - rte_be32_t data; + uint32_t data; }; /* Matches on source queue. */ -- 1.8.3.1