Driver gets the hint value from rte_table_attr for async flow. Parse the value and pass the supported value to hardware accordingly.
Signed-off-by: Rongwei Liu <rongw...@nvidia.com> Acked-by: Ori Kam <or...@nvidia.com> --- drivers/net/mlx5/mlx5_flow_hw.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c index b67b33bc22..06d6909974 100644 --- a/drivers/net/mlx5/mlx5_flow_hw.c +++ b/drivers/net/mlx5/mlx5_flow_hw.c @@ -3102,6 +3102,15 @@ flow_hw_table_create(struct rte_eth_dev *dev, matcher_attr.optimize_using_rule_idx = true; matcher_attr.mode = MLX5DR_MATCHER_RESOURCE_MODE_RULE; matcher_attr.rule.num_log = rte_log2_u32(nb_flows); + /* Parse hints information. */ + if (attr->specialize) { + if (attr->specialize == RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_WIRE_ORIG) + matcher_attr.optimize_flow_src = MLX5DR_MATCHER_FLOW_SRC_WIRE; + else if (attr->specialize == RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_VPORT_ORIG) + matcher_attr.optimize_flow_src = MLX5DR_MATCHER_FLOW_SRC_VPORT; + else + DRV_LOG(INFO, "Unsupported hint value %x", attr->specialize); + } /* Build the item template. */ for (i = 0; i < nb_item_templates; i++) { uint32_t ret; -- 2.27.0