#include "act.h"
#include "en/tc_priv.h"
#include "fs_core.h"
static bool police_act_validate_control(enum flow_action_id act_id,
struct netlink_ext_ack *extack)
{ … }
static int police_act_validate(const struct flow_action_entry *act,
struct netlink_ext_ack *extack)
{ … }
static bool
tc_act_can_offload_police(struct mlx5e_tc_act_parse_state *parse_state,
const struct flow_action_entry *act,
int act_index,
struct mlx5_flow_attr *attr)
{ … }
static int
fill_meter_params_from_act(const struct flow_action_entry *act,
struct mlx5e_flow_meter_params *params)
{ … }
static int
tc_act_parse_police(struct mlx5e_tc_act_parse_state *parse_state,
const struct flow_action_entry *act,
struct mlx5e_priv *priv,
struct mlx5_flow_attr *attr)
{ … }
static bool
tc_act_is_multi_table_act_police(struct mlx5e_priv *priv,
const struct flow_action_entry *act,
struct mlx5_flow_attr *attr)
{ … }
static int
tc_act_police_offload(struct mlx5e_priv *priv,
struct flow_offload_action *fl_act,
struct flow_action_entry *act)
{ … }
static int
tc_act_police_destroy(struct mlx5e_priv *priv,
struct flow_offload_action *fl_act)
{ … }
static int
tc_act_police_stats(struct mlx5e_priv *priv,
struct flow_offload_action *fl_act)
{ … }
static bool
tc_act_police_get_branch_ctrl(const struct flow_action_entry *act,
struct mlx5e_tc_act_branch_ctrl *cond_true,
struct mlx5e_tc_act_branch_ctrl *cond_false)
{ … }
struct mlx5e_tc_act mlx5e_tc_act_police = …;