#include "dr_types.h"
static bool dr_mask_is_smac_set(struct mlx5dr_match_spec *spec)
{ … }
static bool dr_mask_is_dmac_set(struct mlx5dr_match_spec *spec)
{ … }
static bool dr_mask_is_l3_base_set(struct mlx5dr_match_spec *spec)
{ … }
static bool dr_mask_is_tcp_udp_base_set(struct mlx5dr_match_spec *spec)
{ … }
static bool dr_mask_is_ipv4_set(struct mlx5dr_match_spec *spec)
{ … }
static bool dr_mask_is_ipv4_5_tuple_set(struct mlx5dr_match_spec *spec)
{ … }
static bool dr_mask_is_eth_l2_tnl_set(struct mlx5dr_match_misc *misc)
{ … }
static bool dr_mask_is_ttl_set(struct mlx5dr_match_spec *spec)
{ … }
static bool dr_mask_is_ipv4_ihl_set(struct mlx5dr_match_spec *spec)
{ … }
#define DR_MASK_IS_L2_DST(_spec, _misc, _inner_outer) …
#define DR_MASK_IS_ETH_L4_SET(_spec, _misc, _inner_outer) …
#define DR_MASK_IS_ETH_L4_MISC_SET(_misc3, _inner_outer) …
#define DR_MASK_IS_FIRST_MPLS_SET(_misc2, _inner_outer) …
static bool dr_mask_is_tnl_gre_set(struct mlx5dr_match_misc *misc)
{ … }
#define DR_MASK_IS_OUTER_MPLS_OVER_GRE_SET(_misc) …
#define DR_MASK_IS_OUTER_MPLS_OVER_UDP_SET(_misc) …
static bool
dr_mask_is_vxlan_gpe_set(struct mlx5dr_match_misc3 *misc3)
{ … }
static bool
dr_matcher_supp_vxlan_gpe(struct mlx5dr_cmd_caps *caps)
{ … }
static bool
dr_mask_is_tnl_vxlan_gpe(struct mlx5dr_match_param *mask,
struct mlx5dr_domain *dmn)
{ … }
static bool dr_mask_is_tnl_geneve_set(struct mlx5dr_match_misc *misc)
{ … }
static bool dr_mask_is_tnl_geneve_tlv_opt(struct mlx5dr_match_misc3 *misc3)
{ … }
static bool
dr_matcher_supp_flex_parser_ok(struct mlx5dr_cmd_caps *caps)
{ … }
static bool dr_mask_is_tnl_geneve_tlv_opt_exist_set(struct mlx5dr_match_misc *misc,
struct mlx5dr_domain *dmn)
{ … }
static bool
dr_matcher_supp_tnl_geneve(struct mlx5dr_cmd_caps *caps)
{ … }
static bool
dr_mask_is_tnl_geneve(struct mlx5dr_match_param *mask,
struct mlx5dr_domain *dmn)
{ … }
static bool dr_mask_is_tnl_gtpu_set(struct mlx5dr_match_misc3 *misc3)
{ … }
static bool dr_matcher_supp_tnl_gtpu(struct mlx5dr_cmd_caps *caps)
{ … }
static bool dr_mask_is_tnl_gtpu(struct mlx5dr_match_param *mask,
struct mlx5dr_domain *dmn)
{ … }
static int dr_matcher_supp_tnl_gtpu_dw_0(struct mlx5dr_cmd_caps *caps)
{ … }
static bool dr_mask_is_tnl_gtpu_dw_0(struct mlx5dr_match_param *mask,
struct mlx5dr_domain *dmn)
{ … }
static int dr_matcher_supp_tnl_gtpu_teid(struct mlx5dr_cmd_caps *caps)
{ … }
static bool dr_mask_is_tnl_gtpu_teid(struct mlx5dr_match_param *mask,
struct mlx5dr_domain *dmn)
{ … }
static int dr_matcher_supp_tnl_gtpu_dw_2(struct mlx5dr_cmd_caps *caps)
{ … }
static bool dr_mask_is_tnl_gtpu_dw_2(struct mlx5dr_match_param *mask,
struct mlx5dr_domain *dmn)
{ … }
static int dr_matcher_supp_tnl_gtpu_first_ext(struct mlx5dr_cmd_caps *caps)
{ … }
static bool dr_mask_is_tnl_gtpu_first_ext(struct mlx5dr_match_param *mask,
struct mlx5dr_domain *dmn)
{ … }
static bool dr_mask_is_tnl_gtpu_flex_parser_0(struct mlx5dr_match_param *mask,
struct mlx5dr_domain *dmn)
{ … }
static bool dr_mask_is_tnl_gtpu_flex_parser_1(struct mlx5dr_match_param *mask,
struct mlx5dr_domain *dmn)
{ … }
static bool dr_mask_is_tnl_gtpu_any(struct mlx5dr_match_param *mask,
struct mlx5dr_domain *dmn)
{ … }
static int dr_matcher_supp_icmp_v4(struct mlx5dr_cmd_caps *caps)
{ … }
static int dr_matcher_supp_icmp_v6(struct mlx5dr_cmd_caps *caps)
{ … }
static bool dr_mask_is_icmpv6_set(struct mlx5dr_match_misc3 *misc3)
{ … }
static bool dr_mask_is_icmp(struct mlx5dr_match_param *mask,
struct mlx5dr_domain *dmn)
{ … }
static bool dr_mask_is_wqe_metadata_set(struct mlx5dr_match_misc2 *misc2)
{ … }
static bool dr_mask_is_reg_c_0_3_set(struct mlx5dr_match_misc2 *misc2)
{ … }
static bool dr_mask_is_reg_c_4_7_set(struct mlx5dr_match_misc2 *misc2)
{ … }
static bool dr_mask_is_gvmi_or_qpn_set(struct mlx5dr_match_misc *misc)
{ … }
static bool dr_mask_is_flex_parser_id_0_3_set(u32 flex_parser_id,
u32 flex_parser_value)
{ … }
static bool dr_mask_is_flex_parser_0_3_set(struct mlx5dr_match_misc4 *misc4)
{ … }
static bool dr_mask_is_flex_parser_id_4_7_set(u32 flex_parser_id)
{ … }
static bool dr_mask_is_flex_parser_4_7_set(struct mlx5dr_match_misc4 *misc4)
{ … }
static int dr_matcher_supp_tnl_mpls_over_gre(struct mlx5dr_cmd_caps *caps)
{ … }
static bool dr_mask_is_tnl_mpls_over_gre(struct mlx5dr_match_param *mask,
struct mlx5dr_domain *dmn)
{ … }
static int dr_matcher_supp_tnl_mpls_over_udp(struct mlx5dr_cmd_caps *caps)
{ … }
static bool dr_mask_is_tnl_mpls_over_udp(struct mlx5dr_match_param *mask,
struct mlx5dr_domain *dmn)
{ … }
static bool dr_mask_is_tnl_header_0_1_set(struct mlx5dr_match_misc5 *misc5)
{ … }
int mlx5dr_matcher_select_builders(struct mlx5dr_matcher *matcher,
struct mlx5dr_matcher_rx_tx *nic_matcher,
enum mlx5dr_ipv outer_ipv,
enum mlx5dr_ipv inner_ipv)
{ … }
static int dr_matcher_set_ste_builders(struct mlx5dr_matcher *matcher,
struct mlx5dr_matcher_rx_tx *nic_matcher,
enum mlx5dr_ipv outer_ipv,
enum mlx5dr_ipv inner_ipv)
{ … }
static int dr_nic_matcher_connect(struct mlx5dr_domain *dmn,
struct mlx5dr_matcher_rx_tx *curr_nic_matcher,
struct mlx5dr_matcher_rx_tx *next_nic_matcher,
struct mlx5dr_matcher_rx_tx *prev_nic_matcher)
{ … }
int mlx5dr_matcher_add_to_tbl_nic(struct mlx5dr_domain *dmn,
struct mlx5dr_matcher_rx_tx *nic_matcher)
{ … }
static void dr_matcher_uninit_nic(struct mlx5dr_matcher_rx_tx *nic_matcher)
{ … }
static void dr_matcher_uninit_fdb(struct mlx5dr_matcher *matcher)
{ … }
static void dr_matcher_uninit(struct mlx5dr_matcher *matcher)
{ … }
static int dr_matcher_set_all_ste_builders(struct mlx5dr_matcher *matcher,
struct mlx5dr_matcher_rx_tx *nic_matcher)
{ … }
static int dr_matcher_init_nic(struct mlx5dr_matcher *matcher,
struct mlx5dr_matcher_rx_tx *nic_matcher)
{ … }
static int dr_matcher_init_fdb(struct mlx5dr_matcher *matcher)
{ … }
static int dr_matcher_copy_param(struct mlx5dr_matcher *matcher,
struct mlx5dr_match_parameters *mask)
{ … }
static int dr_matcher_init(struct mlx5dr_matcher *matcher,
struct mlx5dr_match_parameters *mask)
{ … }
static void dr_matcher_add_to_dbg_list(struct mlx5dr_matcher *matcher)
{ … }
static void dr_matcher_remove_from_dbg_list(struct mlx5dr_matcher *matcher)
{ … }
struct mlx5dr_matcher *
mlx5dr_matcher_create(struct mlx5dr_table *tbl,
u32 priority,
u8 match_criteria_enable,
struct mlx5dr_match_parameters *mask)
{ … }
static int dr_matcher_disconnect_nic(struct mlx5dr_domain *dmn,
struct mlx5dr_table_rx_tx *nic_tbl,
struct mlx5dr_matcher_rx_tx *next_nic_matcher,
struct mlx5dr_matcher_rx_tx *prev_nic_matcher)
{ … }
int mlx5dr_matcher_remove_from_tbl_nic(struct mlx5dr_domain *dmn,
struct mlx5dr_matcher_rx_tx *nic_matcher)
{ … }
int mlx5dr_matcher_destroy(struct mlx5dr_matcher *matcher)
{ … }