mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-13 22:14:20 +08:00
net/mlx5e: Fix adding encap rules to slow path
On some devices the ignore flow level cap is not supported and we
shouldn't use it. Setting the dest ft with mlx5_chains_get_tc_end_ft()
already gives the correct end ft if ignore flow level cap is supported
or not.
Fixes: 39ac237ce0
("net/mlx5: E-Switch, Refactor chains and priorities")
Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Paul Blakey <paulb@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
This commit is contained in:
parent
afe93f71b5
commit
2a2c84facd
@ -219,7 +219,8 @@ esw_setup_slow_path_dest(struct mlx5_flow_destination *dest,
|
||||
struct mlx5_fs_chains *chains,
|
||||
int i)
|
||||
{
|
||||
flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL;
|
||||
if (mlx5_chains_ignore_flow_level_supported(chains))
|
||||
flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL;
|
||||
dest[i].type = MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE;
|
||||
dest[i].ft = mlx5_chains_get_tc_end_ft(chains);
|
||||
}
|
||||
|
@ -107,7 +107,7 @@ bool mlx5_chains_prios_supported(struct mlx5_fs_chains *chains)
|
||||
return chains->flags & MLX5_CHAINS_AND_PRIOS_SUPPORTED;
|
||||
}
|
||||
|
||||
static bool mlx5_chains_ignore_flow_level_supported(struct mlx5_fs_chains *chains)
|
||||
bool mlx5_chains_ignore_flow_level_supported(struct mlx5_fs_chains *chains)
|
||||
{
|
||||
return chains->flags & MLX5_CHAINS_IGNORE_FLOW_LEVEL_SUPPORTED;
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ struct mlx5_chains_attr {
|
||||
|
||||
bool
|
||||
mlx5_chains_prios_supported(struct mlx5_fs_chains *chains);
|
||||
bool mlx5_chains_ignore_flow_level_supported(struct mlx5_fs_chains *chains);
|
||||
bool
|
||||
mlx5_chains_backwards_supported(struct mlx5_fs_chains *chains);
|
||||
u32
|
||||
@ -70,6 +71,10 @@ mlx5_chains_set_end_ft(struct mlx5_fs_chains *chains,
|
||||
|
||||
#else /* CONFIG_MLX5_CLS_ACT */
|
||||
|
||||
static inline bool
|
||||
mlx5_chains_ignore_flow_level_supported(struct mlx5_fs_chains *chains)
|
||||
{ return false; }
|
||||
|
||||
static inline struct mlx5_flow_table *
|
||||
mlx5_chains_get_table(struct mlx5_fs_chains *chains, u32 chain, u32 prio,
|
||||
u32 level) { return ERR_PTR(-EOPNOTSUPP); }
|
||||
|
Loading…
Reference in New Issue
Block a user