@@ -2886,7 +2886,8 @@ static int parse_tc_nic_actions(struct mlx5e_priv *priv,
return -EOPNOTSUPP;
act = flow_action_first_entry_get(flow_action);
- if (act->hw_stats_type != FLOW_ACTION_HW_STATS_TYPE_ANY) {
+ if (act->hw_stats_type != FLOW_ACTION_HW_STATS_TYPE_ANY &&
+ act->hw_stats_type != FLOW_ACTION_HW_STATS_TYPE_DELAYED) {
NL_SET_ERR_MSG_MOD(extack, "Unsupported HW stats type");
return -EOPNOTSUPP;
}
@@ -3347,7 +3348,8 @@ static int parse_tc_fdb_actions(struct mlx5e_priv *priv,
return -EOPNOTSUPP;
act = flow_action_first_entry_get(flow_action);
- if (act->hw_stats_type != FLOW_ACTION_HW_STATS_TYPE_ANY) {
+ if (act->hw_stats_type != FLOW_ACTION_HW_STATS_TYPE_ANY &&
+ act->hw_stats_type != FLOW_ACTION_HW_STATS_TYPE_DELAYED) {
NL_SET_ERR_MSG_MOD(extack, "Unsupported HW stats type");
return -EOPNOTSUPP;
}
@@ -158,6 +158,7 @@ enum flow_action_mangle_base {
enum flow_action_hw_stats_type {
FLOW_ACTION_HW_STATS_TYPE_ANY,
FLOW_ACTION_HW_STATS_TYPE_IMMEDIATE,
+ FLOW_ACTION_HW_STATS_TYPE_DELAYED,
};
typedef void (*action_destr)(void *priv);