net/mlx5e: TC, Move common flow_action checks into function
Remove duplicate checks on flow_action by using common function. Signed-off-by: Roi Dayan <roid@nvidia.com> Reviewed-by: Oz Shlomo <ozsh@nvidia.com> Reviewed-by: Maor Dickman <maord@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
This commit is contained in:
parent
70a140ea6f
commit
df99047724
1 changed files with 24 additions and 20 deletions
|
|
@ -3444,6 +3444,24 @@ actions_prepare_mod_hdr_actions(struct mlx5e_priv *priv,
|
|||
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
|
||||
parse_tc_nic_actions(struct mlx5e_priv *priv,
|
||||
struct flow_action *flow_action,
|
||||
|
|
@ -3457,16 +3475,9 @@ parse_tc_nic_actions(struct mlx5e_priv *priv,
|
|||
struct mlx5_nic_flow_attr *nic_attr;
|
||||
int err, i;
|
||||
|
||||
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;
|
||||
}
|
||||
err = flow_action_supported(flow_action, extack);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
nic_attr = attr->nic_attr;
|
||||
nic_attr->flow_tag = MLX5_FS_DEFAULT_FLOW_TAG;
|
||||
|
|
@ -3883,16 +3894,9 @@ static int parse_tc_fdb_actions(struct mlx5e_priv *priv,
|
|||
bool ptype_host = false;
|
||||
bool mpls_push = false;
|
||||
|
||||
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;
|
||||
}
|
||||
err = flow_action_supported(flow_action, extack);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
esw_attr = attr->esw_attr;
|
||||
parse_attr = attr->parse_attr;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue