Wed, May 06, 2020 at 01:55:39PM CEST, pablo@xxxxxxxxxxxxx wrote: >This patch adds FLOW_ACTION_HW_STATS_DONT_CARE which tells the driver >that the frontend does not need counters, this hw stats type request >never fails. The FLOW_ACTION_HW_STATS_DISABLED type explicitly requests >the driver to disable the stats, however, if the driver cannot disable >counters, it bails out. > >TCA_ACT_HW_STATS_* maintains the 1:1 mapping with FLOW_ACTION_HW_STATS_* >except by disabled which is mapped to FLOW_ACTION_HW_STATS_DISABLED >(this is 0 in tc). Add tc_act_hw_stats() to perform the mapping between >TCA_ACT_HW_STATS_* and FLOW_ACTION_HW_STATS_*. > >Fixes: 319a1d19471e ("flow_offload: check for basic action hw stats type") >Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> >--- >v3: update mlxsw to handle _DONT_CARE. > > .../net/ethernet/mellanox/mlxsw/spectrum_flower.c | 2 +- > include/net/flow_offload.h | 9 ++++++++- > net/sched/cls_api.c | 14 ++++++++++++-- > 3 files changed, 21 insertions(+), 4 deletions(-) > >diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c >index 51117a5a6bbf..81d0b3481479 100644 >--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c >+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c >@@ -36,7 +36,7 @@ static int mlxsw_sp_flower_parse_actions(struct mlxsw_sp *mlxsw_sp, > err = mlxsw_sp_acl_rulei_act_count(mlxsw_sp, rulei, extack); > if (err) > return err; >- } else if (act->hw_stats != FLOW_ACTION_HW_STATS_DISABLED) { >+ } else if (act->hw_stats == FLOW_ACTION_HW_STATS_DELAYED) { I think that better is: } else if (act->hw_stats != FLOW_ACTION_HW_STATS_DISABLED && act->hw_stats != FLOW_ACTION_HW_STATS_DONT_CARE) { > NL_SET_ERR_MSG_MOD(extack, "Unsupported action HW stats type"); > return -EOPNOTSUPP; > }