net/mlx5: Bridge, provide flow source hints
authorVlad Buslov <vladbu@nvidia.com>
Tue, 12 Oct 2021 11:49:15 +0000 (14:49 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Sat, 16 Oct 2021 00:37:44 +0000 (17:37 -0700)
Currently, SMFS mode doesn't support rx-loopback flows which causes bridge
egress rules to be rejected because without hint rules for both rx and tx
destinations are created by default. Provide explicit flow source hints for
compatibility with SMFS.

Signed-off-by: Vlad Buslov <vladbu@nvidia.com>
Reviewed-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.c

index ed72246..588622b 100644 (file)
@@ -677,6 +677,10 @@ mlx5_esw_bridge_egress_flow_create(u16 vport_num, u16 esw_owner_vhca_id, const u
        if (!rule_spec)
                return ERR_PTR(-ENOMEM);
 
+       if (MLX5_CAP_ESW_FLOWTABLE(bridge->br_offloads->esw->dev, flow_source) &&
+           vport_num == MLX5_VPORT_UPLINK)
+               rule_spec->flow_context.flow_source =
+                       MLX5_FLOW_CONTEXT_FLOW_SOURCE_LOCAL_VPORT;
        rule_spec->match_criteria_enable = MLX5_MATCH_OUTER_HEADERS;
 
        dmac_v = MLX5_ADDR_OF(fte_match_param, rule_spec->match_value,