#include "mlx5hws_internal.h"
enum mlx5hws_matcher_rtc_type { … };
static const char * const mlx5hws_matcher_rtc_type_str[] = …;
static const char *hws_matcher_rtc_type_to_str(enum mlx5hws_matcher_rtc_type rtc_type)
{ … }
static bool hws_matcher_requires_col_tbl(u8 log_num_of_rules)
{ … }
static u8 hws_matcher_rules_to_tbl_depth(u8 log_num_of_rules)
{ … }
static void hws_matcher_destroy_end_ft(struct mlx5hws_matcher *matcher)
{ … }
static int hws_matcher_create_end_ft(struct mlx5hws_matcher *matcher)
{ … }
static int hws_matcher_connect(struct mlx5hws_matcher *matcher)
{ … }
static int hws_matcher_disconnect(struct mlx5hws_matcher *matcher)
{ … }
static void hws_matcher_set_rtc_attr_sz(struct mlx5hws_matcher *matcher,
struct mlx5hws_cmd_rtc_create_attr *rtc_attr,
enum mlx5hws_matcher_rtc_type rtc_type,
bool is_mirror)
{ … }
static int hws_matcher_create_rtc(struct mlx5hws_matcher *matcher,
enum mlx5hws_matcher_rtc_type rtc_type,
u8 action_ste_selector)
{ … }
static void hws_matcher_destroy_rtc(struct mlx5hws_matcher *matcher,
enum mlx5hws_matcher_rtc_type rtc_type,
u8 action_ste_selector)
{ … }
static int
hws_matcher_check_attr_sz(struct mlx5hws_cmd_query_caps *caps,
struct mlx5hws_matcher *matcher)
{ … }
static void hws_matcher_set_pool_attr(struct mlx5hws_pool_attr *attr,
struct mlx5hws_matcher *matcher)
{ … }
static int hws_matcher_check_and_process_at(struct mlx5hws_matcher *matcher,
struct mlx5hws_action_template *at)
{ … }
static int hws_matcher_resize_init(struct mlx5hws_matcher *src_matcher)
{ … }
static void hws_matcher_resize_uninit(struct mlx5hws_matcher *matcher)
{ … }
static int
hws_matcher_bind_at_idx(struct mlx5hws_matcher *matcher, u8 action_ste_selector)
{ … }
static void hws_matcher_unbind_at_idx(struct mlx5hws_matcher *matcher, u8 action_ste_selector)
{ … }
static int hws_matcher_bind_at(struct mlx5hws_matcher *matcher)
{ … }
static void hws_matcher_unbind_at(struct mlx5hws_matcher *matcher)
{ … }
static int hws_matcher_bind_mt(struct mlx5hws_matcher *matcher)
{ … }
static void hws_matcher_unbind_mt(struct mlx5hws_matcher *matcher)
{ … }
static int
hws_matcher_validate_insert_mode(struct mlx5hws_cmd_query_caps *caps,
struct mlx5hws_matcher *matcher)
{ … }
static int
hws_matcher_process_attr(struct mlx5hws_cmd_query_caps *caps,
struct mlx5hws_matcher *matcher)
{ … }
static int hws_matcher_create_and_connect(struct mlx5hws_matcher *matcher)
{ … }
static void hws_matcher_destroy_and_disconnect(struct mlx5hws_matcher *matcher)
{ … }
static int
hws_matcher_create_col_matcher(struct mlx5hws_matcher *matcher)
{ … }
static void
hws_matcher_destroy_col_matcher(struct mlx5hws_matcher *matcher)
{ … }
static int hws_matcher_init(struct mlx5hws_matcher *matcher)
{ … }
static int hws_matcher_uninit(struct mlx5hws_matcher *matcher)
{ … }
int mlx5hws_matcher_attach_at(struct mlx5hws_matcher *matcher,
struct mlx5hws_action_template *at)
{ … }
static int
hws_matcher_set_templates(struct mlx5hws_matcher *matcher,
struct mlx5hws_match_template *mt[],
u8 num_of_mt,
struct mlx5hws_action_template *at[],
u8 num_of_at)
{ … }
static void
hws_matcher_unset_templates(struct mlx5hws_matcher *matcher)
{ … }
struct mlx5hws_matcher *
mlx5hws_matcher_create(struct mlx5hws_table *tbl,
struct mlx5hws_match_template *mt[],
u8 num_of_mt,
struct mlx5hws_action_template *at[],
u8 num_of_at,
struct mlx5hws_matcher_attr *attr)
{ … }
int mlx5hws_matcher_destroy(struct mlx5hws_matcher *matcher)
{ … }
struct mlx5hws_match_template *
mlx5hws_match_template_create(struct mlx5hws_context *ctx,
u32 *match_param,
u32 match_param_sz,
u8 match_criteria_enable)
{ … }
int mlx5hws_match_template_destroy(struct mlx5hws_match_template *mt)
{ … }
static int hws_matcher_resize_precheck(struct mlx5hws_matcher *src_matcher,
struct mlx5hws_matcher *dst_matcher)
{ … }
int mlx5hws_matcher_resize_set_target(struct mlx5hws_matcher *src_matcher,
struct mlx5hws_matcher *dst_matcher)
{ … }
int mlx5hws_matcher_resize_rule_move(struct mlx5hws_matcher *src_matcher,
struct mlx5hws_rule *rule,
struct mlx5hws_rule_attr *attr)
{ … }