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 ed72246d1d83d41f8779c442c460f0512a8ef59f..588622ba38c1d9f579845ee3827ad2dc1e136320 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,