Message ID | 20201103191830.60151-7-saeedm@nvidia.com |
---|---|
State | New |
Headers | show |
Series | mlx5 fixes 2020-11-03 | expand |
On Tue, 3 Nov 2020 11:18:27 -0800 Saeed Mahameed wrote: > From: Jianbo Liu <jianbol@mellanox.com> > > Miss path handling of tc multi chain filters (i.e. filters that are > defined on chain > 0) requires the hardware to communicate to the > driver the last chain that was processed. This is possible only when > the hardware is capable of performing the combination of modify header > and forward to table actions. Currently, if the hardware is missing > this capability then the driver only offloads rules that are defined > on tc chain 0 prio 1. However, this restriction can be relaxed because > packets that miss from chain 0 are processed through all the > priorities by tc software. > > Allow the offload of all the supported priorities for chain 0 even > when the hardware is not capable to perform modify header and goto > table actions. > > Fixes: 0b3a8b6b5340 ("net/mlx5: E-Switch: Fix using fwd and modify when firmware doesn't support it") > Signed-off-by: Jianbo Liu <jianbol@mellanox.com> > Reviewed-by: Oz Shlomo <ozsh@mellanox.com> > Reviewed-by: Oz Shlomo <ozsh@nvidia.com> > Reviewed-by: Roi Dayan <roid@nvidia.com> > Signed-off-by: Saeed Mahameed <saeedm@nvidia.com> Sounds like a feature TBH.
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c index 2e2fa0440032..17d9ba4ac95f 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c @@ -1319,12 +1319,6 @@ mlx5e_tc_add_fdb_flow(struct mlx5e_priv *priv, int err = 0; int out_index; - if (!mlx5_chains_prios_supported(esw_chains(esw)) && attr->prio != 1) { - NL_SET_ERR_MSG_MOD(extack, - "E-switch priorities unsupported, upgrade FW"); - return -EOPNOTSUPP; - } - /* We check chain range only for tc flows. * For ft flows, we checked attr->chain was originally 0 and set it to * FDB_FT_CHAIN which is outside tc range. diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c index 947f346bdc2d..fa61d305990c 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c @@ -141,9 +141,6 @@ u32 mlx5_chains_get_nf_ft_chain(struct mlx5_fs_chains *chains) u32 mlx5_chains_get_prio_range(struct mlx5_fs_chains *chains) { - if (!mlx5_chains_prios_supported(chains)) - return 1; - if (mlx5_chains_ignore_flow_level_supported(chains)) return UINT_MAX;