Commit df990477 authored by Roi Dayan's avatar Roi Dayan Committed by Saeed Mahameed

net/mlx5e: TC, Move common flow_action checks into function

Remove duplicate checks on flow_action by using common function.
Signed-off-by: default avatarRoi Dayan <roid@nvidia.com>
Reviewed-by: default avatarOz Shlomo <ozsh@nvidia.com>
Reviewed-by: default avatarMaor Dickman <maord@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
parent 70a140ea
...@@ -3444,6 +3444,24 @@ actions_prepare_mod_hdr_actions(struct mlx5e_priv *priv, ...@@ -3444,6 +3444,24 @@ actions_prepare_mod_hdr_actions(struct mlx5e_priv *priv,
return 0; return 0;
} }
static int
flow_action_supported(struct flow_action *flow_action,
struct netlink_ext_ack *extack)
{
if (!flow_action_has_entries(flow_action)) {
NL_SET_ERR_MSG_MOD(extack, "Flow action doesn't have any entries");
return -EINVAL;
}
if (!flow_action_hw_stats_check(flow_action, extack,
FLOW_ACTION_HW_STATS_DELAYED_BIT)) {
NL_SET_ERR_MSG_MOD(extack, "Flow action HW stats type is not supported");
return -EOPNOTSUPP;
}
return 0;
}
static int static int
parse_tc_nic_actions(struct mlx5e_priv *priv, parse_tc_nic_actions(struct mlx5e_priv *priv,
struct flow_action *flow_action, struct flow_action *flow_action,
...@@ -3457,16 +3475,9 @@ parse_tc_nic_actions(struct mlx5e_priv *priv, ...@@ -3457,16 +3475,9 @@ parse_tc_nic_actions(struct mlx5e_priv *priv,
struct mlx5_nic_flow_attr *nic_attr; struct mlx5_nic_flow_attr *nic_attr;
int err, i; int err, i;
if (!flow_action_has_entries(flow_action)) { err = flow_action_supported(flow_action, extack);
NL_SET_ERR_MSG_MOD(extack, "Flow action doesn't have any entries"); if (err)
return -EINVAL; return err;
}
if (!flow_action_hw_stats_check(flow_action, extack,
FLOW_ACTION_HW_STATS_DELAYED_BIT)) {
NL_SET_ERR_MSG_MOD(extack, "Flow action HW stats type is not supported");
return -EOPNOTSUPP;
}
nic_attr = attr->nic_attr; nic_attr = attr->nic_attr;
nic_attr->flow_tag = MLX5_FS_DEFAULT_FLOW_TAG; nic_attr->flow_tag = MLX5_FS_DEFAULT_FLOW_TAG;
...@@ -3883,16 +3894,9 @@ static int parse_tc_fdb_actions(struct mlx5e_priv *priv, ...@@ -3883,16 +3894,9 @@ static int parse_tc_fdb_actions(struct mlx5e_priv *priv,
bool ptype_host = false; bool ptype_host = false;
bool mpls_push = false; bool mpls_push = false;
if (!flow_action_has_entries(flow_action)) { err = flow_action_supported(flow_action, extack);
NL_SET_ERR_MSG_MOD(extack, "Flow action doesn't have any entries"); if (err)
return -EINVAL; return err;
}
if (!flow_action_hw_stats_check(flow_action, extack,
FLOW_ACTION_HW_STATS_DELAYED_BIT)) {
NL_SET_ERR_MSG_MOD(extack, "Flow action HW stats type is not supported");
return -EOPNOTSUPP;
}
esw_attr = attr->esw_attr; esw_attr = attr->esw_attr;
parse_attr = attr->parse_attr; parse_attr = attr->parse_attr;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment