#include "mlx5hws_internal.h"
static void hws_rule_skip(struct mlx5hws_matcher *matcher,
struct mlx5hws_match_template *mt,
u32 flow_source,
bool *skip_rx, bool *skip_tx)
{ … }
static void
hws_rule_update_copy_tag(struct mlx5hws_rule *rule,
struct mlx5hws_wqe_gta_data_seg_ste *wqe_data,
bool is_jumbo)
{ … }
static void hws_rule_init_dep_wqe(struct mlx5hws_send_ring_dep_wqe *dep_wqe,
struct mlx5hws_rule *rule,
struct mlx5hws_match_template *mt,
struct mlx5hws_rule_attr *attr)
{ … }
static void hws_rule_move_get_rtc(struct mlx5hws_rule *rule,
struct mlx5hws_send_ste_attr *ste_attr)
{ … }
static void hws_rule_gen_comp(struct mlx5hws_send_engine *queue,
struct mlx5hws_rule *rule,
bool err,
void *user_data,
enum mlx5hws_rule_status rule_status_on_succ)
{ … }
static void
hws_rule_save_resize_info(struct mlx5hws_rule *rule,
struct mlx5hws_send_ste_attr *ste_attr,
bool is_update)
{ … }
void mlx5hws_rule_clear_resize_info(struct mlx5hws_rule *rule)
{ … }
static void
hws_rule_save_delete_info(struct mlx5hws_rule *rule,
struct mlx5hws_send_ste_attr *ste_attr)
{ … }
static void
hws_rule_clear_delete_info(struct mlx5hws_rule *rule)
{ … }
static void
hws_rule_load_delete_info(struct mlx5hws_rule *rule,
struct mlx5hws_send_ste_attr *ste_attr)
{ … }
static int hws_rule_alloc_action_ste_idx(struct mlx5hws_rule *rule,
u8 action_ste_selector)
{ … }
static void hws_rule_free_action_ste_idx(struct mlx5hws_rule *rule,
u8 action_ste_selector)
{ … }
static int hws_rule_alloc_action_ste(struct mlx5hws_rule *rule,
struct mlx5hws_rule_attr *attr)
{ … }
void mlx5hws_rule_free_action_ste(struct mlx5hws_rule *rule)
{ … }
static void hws_rule_create_init(struct mlx5hws_rule *rule,
struct mlx5hws_send_ste_attr *ste_attr,
struct mlx5hws_actions_apply_data *apply,
bool is_update)
{ … }
static void hws_rule_move_init(struct mlx5hws_rule *rule,
struct mlx5hws_rule_attr *attr)
{ … }
bool mlx5hws_rule_move_in_progress(struct mlx5hws_rule *rule)
{ … }
static int hws_rule_create_hws(struct mlx5hws_rule *rule,
struct mlx5hws_rule_attr *attr,
u8 mt_idx,
u32 *match_param,
u8 at_idx,
struct mlx5hws_rule_action rule_actions[])
{ … }
static void hws_rule_destroy_failed_hws(struct mlx5hws_rule *rule,
struct mlx5hws_rule_attr *attr)
{ … }
static int hws_rule_destroy_hws(struct mlx5hws_rule *rule,
struct mlx5hws_rule_attr *attr)
{ … }
static int hws_rule_enqueue_precheck(struct mlx5hws_rule *rule,
struct mlx5hws_rule_attr *attr)
{ … }
static int hws_rule_enqueue_precheck_move(struct mlx5hws_rule *rule,
struct mlx5hws_rule_attr *attr)
{ … }
static int hws_rule_enqueue_precheck_create(struct mlx5hws_rule *rule,
struct mlx5hws_rule_attr *attr)
{ … }
static int hws_rule_enqueue_precheck_update(struct mlx5hws_rule *rule,
struct mlx5hws_rule_attr *attr)
{ … }
int mlx5hws_rule_move_hws_remove(struct mlx5hws_rule *rule,
void *queue_ptr,
void *user_data)
{ … }
int mlx5hws_rule_move_hws_add(struct mlx5hws_rule *rule,
struct mlx5hws_rule_attr *attr)
{ … }
int mlx5hws_rule_create(struct mlx5hws_matcher *matcher,
u8 mt_idx,
u32 *match_param,
u8 at_idx,
struct mlx5hws_rule_action rule_actions[],
struct mlx5hws_rule_attr *attr,
struct mlx5hws_rule *rule_handle)
{ … }
int mlx5hws_rule_destroy(struct mlx5hws_rule *rule,
struct mlx5hws_rule_attr *attr)
{ … }
int mlx5hws_rule_action_update(struct mlx5hws_rule *rule,
u8 at_idx,
struct mlx5hws_rule_action rule_actions[],
struct mlx5hws_rule_attr *attr)
{ … }