/kernel/linux/linux-6.6/drivers/net/ethernet/mellanox/mlx5/core/steering/ |
H A D | dr_domain.c | 8 #define DR_DOMAIN_SW_STEERING_SUPPORTED(dmn, dmn_type) \ 9 ((dmn)->info.caps.dmn_type##_sw_owner || \ 10 ((dmn)->info.caps.dmn_type##_sw_owner_v2 && \ 11 (dmn)->info.caps.sw_format_ver <= MLX5_STEERING_FORMAT_CONNECTX_7)) 13 bool mlx5dr_domain_is_support_ptrn_arg(struct mlx5dr_domain *dmn) in mlx5dr_domain_is_support_ptrn_arg() argument 15 return dmn->info.caps.sw_format_ver >= MLX5_STEERING_FORMAT_CONNECTX_6DX && in mlx5dr_domain_is_support_ptrn_arg() 16 dmn->info.caps.support_modify_argument; in mlx5dr_domain_is_support_ptrn_arg() 19 static int dr_domain_init_modify_header_resources(struct mlx5dr_domain *dmn) in dr_domain_init_modify_header_resources() argument 21 if (!mlx5dr_domain_is_support_ptrn_arg(dmn)) in dr_domain_init_modify_header_resources() 24 dmn in dr_domain_init_modify_header_resources() 44 dr_domain_destroy_modify_header_resources(struct mlx5dr_domain *dmn) dr_domain_destroy_modify_header_resources() argument 53 dr_domain_init_csum_recalc_fts(struct mlx5dr_domain *dmn) dr_domain_init_csum_recalc_fts() argument 61 dr_domain_uninit_csum_recalc_fts(struct mlx5dr_domain *dmn) dr_domain_uninit_csum_recalc_fts() argument 74 mlx5dr_domain_get_recalc_cs_ft_addr(struct mlx5dr_domain *dmn, u16 vport_num, u64 *rx_icm_addr) mlx5dr_domain_get_recalc_cs_ft_addr() argument 99 dr_domain_init_mem_resources(struct mlx5dr_domain *dmn) dr_domain_init_mem_resources() argument 154 dr_domain_uninit_mem_resources(struct mlx5dr_domain *dmn) dr_domain_uninit_mem_resources() argument 163 dr_domain_init_resources(struct mlx5dr_domain *dmn) dr_domain_init_resources() argument 218 dr_domain_uninit_resources(struct mlx5dr_domain *dmn) dr_domain_uninit_resources() argument 227 dr_domain_fill_uplink_caps(struct mlx5dr_domain *dmn, struct mlx5dr_cmd_vport_cap *uplink_vport) dr_domain_fill_uplink_caps() argument 239 dr_domain_query_vport(struct mlx5dr_domain *dmn, u16 vport_number, bool other_vport, struct mlx5dr_cmd_vport_cap *vport_caps) dr_domain_query_vport() argument 267 dr_domain_query_esw_mgr(struct mlx5dr_domain *dmn) dr_domain_query_esw_mgr() argument 273 dr_domain_query_uplink(struct mlx5dr_domain *dmn) dr_domain_query_uplink() argument 279 dr_domain_add_vport_cap(struct mlx5dr_domain *dmn, u16 vport) dr_domain_add_vport_cap() argument 306 dr_domain_is_esw_mgr_vport(struct mlx5dr_domain *dmn, u16 vport) dr_domain_is_esw_mgr_vport() argument 315 mlx5dr_domain_get_vport_cap(struct mlx5dr_domain *dmn, u16 vport) mlx5dr_domain_get_vport_cap() argument 339 dr_domain_clear_vports(struct mlx5dr_domain *dmn) dr_domain_clear_vports() argument 350 dr_domain_query_fdb_caps(struct mlx5_core_dev *mdev, struct mlx5dr_domain *dmn) dr_domain_query_fdb_caps() argument 389 dr_domain_caps_init(struct mlx5_core_dev *mdev, struct mlx5dr_domain *dmn) dr_domain_caps_init() argument 453 dr_domain_caps_uninit(struct mlx5dr_domain *dmn) dr_domain_caps_uninit() argument 462 struct mlx5dr_domain *dmn; mlx5dr_domain_create() local 520 mlx5dr_domain_sync(struct mlx5dr_domain *dmn, u32 flags) mlx5dr_domain_sync() argument 541 mlx5dr_domain_destroy(struct mlx5dr_domain *dmn) mlx5dr_domain_destroy() argument 560 mlx5dr_domain_set_peer(struct mlx5dr_domain *dmn, struct mlx5dr_domain *peer_dmn, u16 peer_vhca_id) mlx5dr_domain_set_peer() argument [all...] |
H A D | dr_fw.c | 8 mlx5dr_fw_create_recalc_cs_ft(struct mlx5dr_domain *dmn, u16 vport_num) in mlx5dr_fw_create_recalc_cs_ft() argument 21 ft_attr.level = dmn->info.caps.max_ft_level - 1; in mlx5dr_fw_create_recalc_cs_ft() 24 ret = mlx5dr_cmd_create_flow_table(dmn->mdev, in mlx5dr_fw_create_recalc_cs_ft() 29 mlx5dr_err(dmn, "Failed creating TTL W/A FW flow table %d\n", ret); in mlx5dr_fw_create_recalc_cs_ft() 33 ret = mlx5dr_cmd_create_empty_flow_group(dmn->mdev, in mlx5dr_fw_create_recalc_cs_ft() 37 mlx5dr_err(dmn, "Failed creating TTL W/A FW flow group %d\n", ret); in mlx5dr_fw_create_recalc_cs_ft() 46 ret = mlx5dr_cmd_alloc_modify_header(dmn->mdev, MLX5_FLOW_TABLE_TYPE_FDB, 1, in mlx5dr_fw_create_recalc_cs_ft() 50 mlx5dr_err(dmn, "Failed modify header TTL %d\n", ret); in mlx5dr_fw_create_recalc_cs_ft() 54 ret = mlx5dr_cmd_set_fte_modify_and_vport(dmn->mdev, in mlx5dr_fw_create_recalc_cs_ft() 59 mlx5dr_err(dmn, "Faile in mlx5dr_fw_create_recalc_cs_ft() 83 mlx5dr_fw_destroy_recalc_cs_ft(struct mlx5dr_domain *dmn, struct mlx5dr_fw_recalc_cs_ft *recalc_cs_ft) mlx5dr_fw_destroy_recalc_cs_ft() argument 101 mlx5dr_fw_create_md_tbl(struct mlx5dr_domain *dmn, struct mlx5dr_cmd_flow_destination_hw_info *dest, int num_dest, bool reformat_req, u32 *tbl_id, u32 *group_id, bool ignore_flow_level, u32 flow_source) mlx5dr_fw_create_md_tbl() argument 162 mlx5dr_fw_destroy_md_tbl(struct mlx5dr_domain *dmn, u32 tbl_id, u32 group_id) mlx5dr_fw_destroy_md_tbl() argument [all...] |
H A D | dr_action.c | 531 static void dr_actions_apply(struct mlx5dr_domain *dmn, in dr_actions_apply() argument 538 struct mlx5dr_ste_ctx *ste_ctx = dmn->ste_ctx; in dr_actions_apply() 542 mlx5dr_ste_set_actions_rx(ste_ctx, dmn, action_type_set, in dr_actions_apply() 545 mlx5dr_ste_set_actions_tx(ste_ctx, dmn, action_type_set, in dr_actions_apply() 586 static int dr_action_handle_cs_recalc(struct mlx5dr_domain *dmn, in dr_action_handle_cs_recalc() argument 601 mlx5dr_dbg(dmn, in dr_action_handle_cs_recalc() 611 ret = mlx5dr_domain_get_recalc_cs_ft_addr(dest_action->vport->dmn, in dr_action_handle_cs_recalc() 615 mlx5dr_err(dmn, "Failed to get FW cs recalc flow table\n"); in dr_action_handle_cs_recalc() 627 static void dr_action_modify_ttl_adjust(struct mlx5dr_domain *dmn, in dr_action_modify_ttl_adjust() argument 635 if (mlx5dr_ste_supp_ttl_cs_recalc(&dmn in dr_action_modify_ttl_adjust() 658 dr_action_print_sequence(struct mlx5dr_domain *dmn, struct mlx5dr_action *actions[], int last_idx) dr_action_print_sequence() argument 676 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_action_get_dest_fw_tbl_addr() local 705 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_action_get_dest_sw_tbl_addr() local 758 struct mlx5dr_domain *dmn = matcher->tbl->dmn; mlx5dr_actions_build_ste_arr() local 1012 mlx5dr_action_create_dest_table_num(struct mlx5dr_domain *dmn, u32 table_num) mlx5dr_action_create_dest_table_num() argument 1075 struct mlx5dr_domain *dmn = action->range->dmn; dr_action_create_range_definer() local 1101 mlx5dr_action_create_dest_match_range(struct mlx5dr_domain *dmn, u32 field, struct mlx5_flow_table *hit_ft, struct mlx5_flow_table *miss_ft, u32 min, u32 max) mlx5dr_action_create_dest_match_range() argument 1167 mlx5dr_action_create_mult_dest_tbl(struct mlx5dr_domain *dmn, struct mlx5dr_action_dest *dests, u32 num_of_dests, bool ignore_flow_level, u32 flow_source) mlx5dr_action_create_mult_dest_tbl() argument 1273 mlx5dr_action_create_dest_flow_fw_table(struct mlx5dr_domain *dmn, struct mlx5_flow_table *ft) mlx5dr_action_create_dest_flow_fw_table() argument 1320 mlx5dr_action_create_flow_sampler(struct mlx5dr_domain *dmn, u32 sampler_id) mlx5dr_action_create_flow_sampler() argument 1345 dr_action_verify_reformat_params(enum mlx5dr_action_type reformat_type, struct mlx5dr_domain *dmn, u8 reformat_param_0, u8 reformat_param_1, size_t data_sz, void *data) dr_action_verify_reformat_params() argument 1396 dr_action_create_reformat_action(struct mlx5dr_domain *dmn, u8 reformat_param_0, u8 reformat_param_1, size_t data_sz, void *data, struct mlx5dr_action *action) dr_action_create_reformat_action() argument 1494 mlx5dr_action_create_push_vlan(struct mlx5dr_domain *dmn, __be32 vlan_hdr) mlx5dr_action_create_push_vlan() argument 1515 mlx5dr_action_create_packet_reformat(struct mlx5dr_domain *dmn, enum mlx5dr_action_reformat_type reformat_type, u8 reformat_param_0, u8 reformat_param_1, size_t data_sz, void *data) mlx5dr_action_create_packet_reformat() argument 1568 dr_action_modify_sw_to_hw_add(struct mlx5dr_domain *dmn, __be64 *sw_action, __be64 *hw_action, const struct mlx5dr_ste_action_modify_field **ret_hw_info) dr_action_modify_sw_to_hw_add() argument 1604 dr_action_modify_sw_to_hw_set(struct mlx5dr_domain *dmn, __be64 *sw_action, __be64 *hw_action, const struct mlx5dr_ste_action_modify_field **ret_hw_info) dr_action_modify_sw_to_hw_set() argument 1650 dr_action_modify_sw_to_hw_copy(struct mlx5dr_domain *dmn, __be64 *sw_action, __be64 *hw_action, const struct mlx5dr_ste_action_modify_field **ret_dst_hw_info, const struct mlx5dr_ste_action_modify_field **ret_src_hw_info) dr_action_modify_sw_to_hw_copy() argument 1705 dr_action_modify_sw_to_hw(struct mlx5dr_domain *dmn, __be64 *sw_action, __be64 *hw_action, const struct mlx5dr_ste_action_modify_field **ret_dst_hw_info, const struct mlx5dr_ste_action_modify_field **ret_src_hw_info) dr_action_modify_sw_to_hw() argument 1753 struct mlx5dr_domain *dmn = action->rewrite->dmn; dr_action_modify_check_set_field_limitation() local 1784 struct mlx5dr_domain *dmn = action->rewrite->dmn; dr_action_modify_check_add_field_limitation() local 1802 struct mlx5dr_domain *dmn = action->rewrite->dmn; dr_action_modify_check_copy_field_limitation() local 1839 struct mlx5dr_domain *dmn = action->rewrite->dmn; dr_action_modify_check_field_limitation() local 1888 struct mlx5dr_domain *dmn = action->rewrite->dmn; dr_actions_convert_modify_header() local 1980 dr_action_create_modify_action(struct mlx5dr_domain *dmn, size_t actions_sz, __be64 actions[], struct mlx5dr_action *action) dr_action_create_modify_action() argument 2037 mlx5dr_action_create_modify_header(struct mlx5dr_domain *dmn, u32 flags, size_t actions_sz, __be64 actions[]) mlx5dr_action_create_modify_header() argument 2077 mlx5dr_action_create_dest_vport(struct mlx5dr_domain *dmn, u16 vport, u8 vhca_id_valid, u16 vhca_id) mlx5dr_action_create_dest_vport() argument 2118 mlx5dr_action_create_aso(struct mlx5dr_domain *dmn, u32 obj_id, u8 dest_reg_id, u8 aso_type, u8 init_color, u8 meter_id) mlx5dr_action_create_aso() argument [all...] |
H A D | dr_table.c | 6 static int dr_table_set_miss_action_nic(struct mlx5dr_domain *dmn, in dr_table_set_miss_action_nic() argument 38 ret = mlx5dr_ste_htbl_init_and_postsend(dmn, nic_tbl->nic_dmn, in dr_table_set_miss_action_nic() 41 mlx5dr_dbg(dmn, "Failed to set NIC RX/TX miss action, ret %d\n", ret); in dr_table_set_miss_action_nic() 54 mlx5dr_domain_lock(tbl->dmn); in mlx5dr_table_set_miss_action() 56 if (tbl->dmn->type == MLX5DR_DOMAIN_TYPE_NIC_RX || in mlx5dr_table_set_miss_action() 57 tbl->dmn->type == MLX5DR_DOMAIN_TYPE_FDB) { in mlx5dr_table_set_miss_action() 58 ret = dr_table_set_miss_action_nic(tbl->dmn, &tbl->rx, action); in mlx5dr_table_set_miss_action() 63 if (tbl->dmn->type == MLX5DR_DOMAIN_TYPE_NIC_TX || in mlx5dr_table_set_miss_action() 64 tbl->dmn->type == MLX5DR_DOMAIN_TYPE_FDB) { in mlx5dr_table_set_miss_action() 65 ret = dr_table_set_miss_action_nic(tbl->dmn, in mlx5dr_table_set_miss_action() 120 dr_table_init_nic(struct mlx5dr_domain *dmn, struct mlx5dr_table_rx_tx *nic_tbl) dr_table_init_nic() argument 250 mlx5dr_table_create(struct mlx5dr_domain *dmn, u32 level, u32 flags, u16 uid) mlx5dr_table_create() argument [all...] |
H A D | dr_matcher.c | 117 struct mlx5dr_domain *dmn) in dr_mask_is_tnl_vxlan_gpe() 120 dr_matcher_supp_vxlan_gpe(&dmn->info.caps); in dr_mask_is_tnl_vxlan_gpe() 143 struct mlx5dr_domain *dmn) in dr_mask_is_tnl_geneve_tlv_opt_exist_set() 145 return dr_matcher_supp_flex_parser_ok(&dmn->info.caps) && in dr_mask_is_tnl_geneve_tlv_opt_exist_set() 158 struct mlx5dr_domain *dmn) in dr_mask_is_tnl_geneve() 161 dr_matcher_supp_tnl_geneve(&dmn->info.caps); in dr_mask_is_tnl_geneve() 175 struct mlx5dr_domain *dmn) in dr_mask_is_tnl_gtpu() 178 dr_matcher_supp_tnl_gtpu(&dmn->info.caps); in dr_mask_is_tnl_gtpu() 187 struct mlx5dr_domain *dmn) in dr_mask_is_tnl_gtpu_dw_0() 190 dr_matcher_supp_tnl_gtpu_dw_0(&dmn in dr_mask_is_tnl_gtpu_dw_0() 116 dr_mask_is_tnl_vxlan_gpe(struct mlx5dr_match_param *mask, struct mlx5dr_domain *dmn) dr_mask_is_tnl_vxlan_gpe() argument 142 dr_mask_is_tnl_geneve_tlv_opt_exist_set(struct mlx5dr_match_misc *misc, struct mlx5dr_domain *dmn) dr_mask_is_tnl_geneve_tlv_opt_exist_set() argument 157 dr_mask_is_tnl_geneve(struct mlx5dr_match_param *mask, struct mlx5dr_domain *dmn) dr_mask_is_tnl_geneve() argument 174 dr_mask_is_tnl_gtpu(struct mlx5dr_match_param *mask, struct mlx5dr_domain *dmn) dr_mask_is_tnl_gtpu() argument 186 dr_mask_is_tnl_gtpu_dw_0(struct mlx5dr_match_param *mask, struct mlx5dr_domain *dmn) dr_mask_is_tnl_gtpu_dw_0() argument 198 dr_mask_is_tnl_gtpu_teid(struct mlx5dr_match_param *mask, struct mlx5dr_domain *dmn) dr_mask_is_tnl_gtpu_teid() argument 210 dr_mask_is_tnl_gtpu_dw_2(struct mlx5dr_match_param *mask, struct mlx5dr_domain *dmn) dr_mask_is_tnl_gtpu_dw_2() argument 222 dr_mask_is_tnl_gtpu_first_ext(struct mlx5dr_match_param *mask, struct mlx5dr_domain *dmn) dr_mask_is_tnl_gtpu_first_ext() argument 229 dr_mask_is_tnl_gtpu_flex_parser_0(struct mlx5dr_match_param *mask, struct mlx5dr_domain *dmn) dr_mask_is_tnl_gtpu_flex_parser_0() argument 244 dr_mask_is_tnl_gtpu_flex_parser_1(struct mlx5dr_match_param *mask, struct mlx5dr_domain *dmn) dr_mask_is_tnl_gtpu_flex_parser_1() argument 259 dr_mask_is_tnl_gtpu_any(struct mlx5dr_match_param *mask, struct mlx5dr_domain *dmn) dr_mask_is_tnl_gtpu_any() argument 285 dr_mask_is_icmp(struct mlx5dr_match_param *mask, struct mlx5dr_domain *dmn) dr_mask_is_icmp() argument 359 dr_mask_is_tnl_mpls_over_gre(struct mlx5dr_match_param *mask, struct mlx5dr_domain *dmn) dr_mask_is_tnl_mpls_over_gre() argument 371 dr_mask_is_tnl_mpls_over_udp(struct mlx5dr_match_param *mask, struct mlx5dr_domain *dmn) dr_mask_is_tnl_mpls_over_udp() argument 408 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_matcher_set_ste_builders() local 681 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) dr_nic_matcher_connect() argument 742 mlx5dr_matcher_add_to_tbl_nic(struct mlx5dr_domain *dmn, struct mlx5dr_matcher_rx_tx *nic_matcher) mlx5dr_matcher_add_to_tbl_nic() argument 802 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_matcher_uninit() local 823 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_matcher_set_all_ste_builders() local 841 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_matcher_init_nic() local 900 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_matcher_copy_param() local 945 struct mlx5dr_domain *dmn = tbl->dmn; dr_matcher_init() local 1030 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) dr_matcher_disconnect_nic() argument 1060 mlx5dr_matcher_remove_from_tbl_nic(struct mlx5dr_domain *dmn, struct mlx5dr_matcher_rx_tx *nic_matcher) mlx5dr_matcher_remove_from_tbl_nic() argument [all...] |
H A D | dr_definer.c | 40 dr_definer_find_obj(struct mlx5dr_domain *dmn, u16 format_id, in dr_definer_find_obj() argument 46 xa_for_each(&dmn->definers_xa, id, definer_obj) { in dr_definer_find_obj() 57 dr_definer_create_obj(struct mlx5dr_domain *dmn, u16 format_id, in dr_definer_create_obj() argument 67 ret = mlx5dr_cmd_create_definer(dmn->mdev, in dr_definer_create_obj() 80 mlx5dr_err(dmn, "Unsupported definer ID (%d)\n", definer_obj->id); in dr_definer_create_obj() 91 ret = xa_insert(&dmn->definers_xa, definer_obj->id, definer_obj, GFP_KERNEL); in dr_definer_create_obj() 93 mlx5dr_dbg(dmn, "Couldn't insert new definer into xarray (%d)\n", ret); in dr_definer_create_obj() 100 mlx5dr_cmd_destroy_definer(dmn->mdev, definer_obj->id); in dr_definer_create_obj() 107 static void dr_definer_destroy_obj(struct mlx5dr_domain *dmn, in dr_definer_destroy_obj() argument 110 mlx5dr_cmd_destroy_definer(dmn in dr_definer_destroy_obj() 115 mlx5dr_definer_get(struct mlx5dr_domain *dmn, u16 format_id, u8 *dw_selectors, u8 *byte_selectors, u8 *match_mask, u32 *definer_id) mlx5dr_definer_get() argument 139 mlx5dr_definer_put(struct mlx5dr_domain *dmn, u32 definer_id) mlx5dr_definer_put() argument [all...] |
H A D | dr_rule.c | 14 static int dr_rule_append_to_miss_list(struct mlx5dr_domain *dmn, in dr_rule_append_to_miss_list() argument 20 struct mlx5dr_ste_ctx *ste_ctx = dmn->ste_ctx; in dr_rule_append_to_miss_list() 28 ste_info_last = mlx5dr_send_info_alloc(dmn, nic_type); in dr_rule_append_to_miss_list() 47 struct mlx5dr_ste_ctx *ste_ctx = matcher->tbl->dmn->ste_ctx; in dr_rule_set_last_ste_miss_addr() 62 struct mlx5dr_domain *dmn = matcher->tbl->dmn; in dr_rule_create_collision_htbl() local 67 new_htbl = mlx5dr_ste_htbl_alloc(dmn->ste_icm_pool, in dr_rule_create_collision_htbl() 72 mlx5dr_dbg(dmn, "Failed allocating collision table\n"); in dr_rule_create_collision_htbl() 94 mlx5dr_dbg(matcher->tbl->dmn, "Failed creating collision entry\n"); in dr_rule_create_collision_entry() 107 mlx5dr_dbg(matcher->tbl->dmn, "Faile in dr_rule_create_collision_entry() 119 dr_rule_handle_one_ste_in_update_list(struct mlx5dr_ste_send_info *ste_info, struct mlx5dr_domain *dmn) dr_rule_handle_one_ste_in_update_list() argument 146 dr_rule_send_update_list(struct list_head *send_ste_list, struct mlx5dr_domain *dmn, bool is_reverse) dr_rule_send_update_list() argument 198 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_rule_rehash_handle_collision() local 255 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_rule_rehash_copy_ste() local 403 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_rule_rehash_htbl() local 521 struct mlx5dr_domain *dmn = rule->matcher->tbl->dmn; dr_rule_rehash() local 542 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_rule_handle_collision() local 687 dr_rule_need_enlarge_hash(struct mlx5dr_ste_htbl *htbl, struct mlx5dr_domain *dmn, struct mlx5dr_domain_rx_tx *nic_dmn) dr_rule_need_enlarge_hash() argument 722 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_rule_handle_action_stes() local 788 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_rule_handle_empty_entry() local 841 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_rule_handle_ste_branch() local 1053 struct mlx5dr_domain *dmn = rule->matcher->tbl->dmn; dr_rule_destroy_rule() local 1122 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_rule_create_rule_nic() local 1293 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_rule_create_rule() local [all...] |
H A D | dr_arg.c | 21 struct mlx5dr_domain *dmn; member 27 struct mlx5dr_domain *dmn; member 43 pool->dmn->info.caps.log_header_modify_argument_granularity; in dr_arg_pool_alloc_objs() 46 max_t(u32, pool->dmn->info.caps.log_header_modify_argument_granularity, in dr_arg_pool_alloc_objs() 49 min_t(u32, pool->dmn->info.caps.log_header_modify_argument_max_alloc, in dr_arg_pool_alloc_objs() 53 mlx5dr_err(pool->dmn, "Required chunk size (%d) is not supported\n", in dr_arg_pool_alloc_objs() 60 ret = mlx5dr_cmd_create_modify_header_arg(pool->dmn->mdev, in dr_arg_pool_alloc_objs() 62 pool->dmn->pdn, in dr_arg_pool_alloc_objs() 65 mlx5dr_err(pool->dmn, "failed allocating object with range: %d:\n", in dr_arg_pool_alloc_objs() 89 mlx5dr_cmd_destroy_modify_header_arg(pool->dmn in dr_arg_pool_alloc_objs() 130 dr_arg_pool_create(struct mlx5dr_domain *dmn, enum dr_arg_chunk_size chunk_size) dr_arg_pool_create() argument 230 mlx5dr_arg_mgr_create(struct mlx5dr_domain *dmn) mlx5dr_arg_mgr_create() argument [all...] |
H A D | dr_dbg.c | 59 mutex_lock(&tbl->dmn->dump_info.dbg_mutex); in mlx5dr_dbg_tbl_add() 60 list_add_tail(&tbl->dbg_node, &tbl->dmn->dbg_tbl_list); in mlx5dr_dbg_tbl_add() 61 mutex_unlock(&tbl->dmn->dump_info.dbg_mutex); in mlx5dr_dbg_tbl_add() 66 mutex_lock(&tbl->dmn->dump_info.dbg_mutex); in mlx5dr_dbg_tbl_del() 68 mutex_unlock(&tbl->dmn->dump_info.dbg_mutex); in mlx5dr_dbg_tbl_del() 73 struct mlx5dr_domain *dmn = rule->matcher->tbl->dmn; in mlx5dr_dbg_rule_add() local 75 mutex_lock(&dmn->dump_info.dbg_mutex); in mlx5dr_dbg_rule_add() 77 mutex_unlock(&dmn->dump_info.dbg_mutex); in mlx5dr_dbg_rule_add() 82 struct mlx5dr_domain *dmn in mlx5dr_dbg_rule_del() local 631 dr_dump_domain(struct seq_file *file, struct mlx5dr_domain *dmn) dr_dump_domain() argument 662 dr_dump_domain_all(struct seq_file *file, struct mlx5dr_domain *dmn) dr_dump_domain_all() argument 692 mlx5dr_dbg_init_dump(struct mlx5dr_domain *dmn) mlx5dr_dbg_init_dump() argument 716 mlx5dr_dbg_uninit_dump(struct mlx5dr_domain *dmn) mlx5dr_dbg_uninit_dump() argument [all...] |
H A D | dr_send.c | 106 void mlx5dr_send_info_pool_destroy(struct mlx5dr_domain *dmn) in mlx5dr_send_info_pool_destroy() argument 108 dr_send_info_pool_destroy(dmn->send_info_pool_tx); in mlx5dr_send_info_pool_destroy() 109 dr_send_info_pool_destroy(dmn->send_info_pool_rx); in mlx5dr_send_info_pool_destroy() 132 int mlx5dr_send_info_pool_create(struct mlx5dr_domain *dmn) in mlx5dr_send_info_pool_create() argument 134 dmn->send_info_pool_rx = dr_send_info_pool_create(); in mlx5dr_send_info_pool_create() 135 if (!dmn->send_info_pool_rx) in mlx5dr_send_info_pool_create() 138 dmn->send_info_pool_tx = dr_send_info_pool_create(); in mlx5dr_send_info_pool_create() 139 if (!dmn->send_info_pool_tx) { in mlx5dr_send_info_pool_create() 140 dr_send_info_pool_destroy(dmn->send_info_pool_rx); in mlx5dr_send_info_pool_create() 148 *mlx5dr_send_info_alloc(struct mlx5dr_domain *dmn, in mlx5dr_send_info_alloc() argument 537 dr_handle_pending_wc(struct mlx5dr_domain *dmn, struct mlx5dr_send_ring *send_ring) dr_handle_pending_wc() argument 578 dr_fill_write_icm_segs(struct mlx5dr_domain *dmn, struct mlx5dr_send_ring *send_ring, struct postsend_info *send_info) dr_fill_write_icm_segs() argument 616 dr_fill_data_segs(struct mlx5dr_domain *dmn, struct mlx5dr_send_ring *send_ring, struct postsend_info *send_info) dr_fill_data_segs() argument 626 dr_postsend_icm_data(struct mlx5dr_domain *dmn, struct postsend_info *send_info) dr_postsend_icm_data() argument 654 dr_get_tbl_copy_details(struct mlx5dr_domain *dmn, struct mlx5dr_ste_htbl *htbl, u8 **data, u32 *byte_size, int *iterations, int *num_stes) dr_get_tbl_copy_details() argument 696 mlx5dr_send_postsend_ste(struct mlx5dr_domain *dmn, struct mlx5dr_ste *ste, u8 *data, u16 size, u16 offset) mlx5dr_send_postsend_ste() argument 712 mlx5dr_send_postsend_htbl(struct mlx5dr_domain *dmn, struct mlx5dr_ste_htbl *htbl, u8 *formatted_ste, u8 *mask) mlx5dr_send_postsend_htbl() argument 780 mlx5dr_send_postsend_formatted_htbl(struct mlx5dr_domain *dmn, struct mlx5dr_ste_htbl *htbl, u8 *ste_init_data, bool update_hw_ste) mlx5dr_send_postsend_formatted_htbl() argument 836 mlx5dr_send_postsend_action(struct mlx5dr_domain *dmn, struct mlx5dr_action *action) mlx5dr_send_postsend_action() argument 852 mlx5dr_send_postsend_pattern(struct mlx5dr_domain *dmn, struct mlx5dr_icm_chunk *chunk, u16 num_of_actions, u8 *data) mlx5dr_send_postsend_pattern() argument 872 mlx5dr_send_postsend_args(struct mlx5dr_domain *dmn, u64 arg_id, u16 num_of_actions, u8 *actions_data) mlx5dr_send_postsend_args() argument 994 dr_prepare_qp_to_rts(struct mlx5dr_domain *dmn) dr_prepare_qp_to_rts() argument 1220 mlx5dr_send_ring_alloc(struct mlx5dr_domain *dmn) mlx5dr_send_ring_alloc() argument 1325 mlx5dr_send_ring_free(struct mlx5dr_domain *dmn, struct mlx5dr_send_ring *send_ring) mlx5dr_send_ring_free() argument 1337 mlx5dr_send_ring_force_drain(struct mlx5dr_domain *dmn) mlx5dr_send_ring_force_drain() argument [all...] |
H A D | dr_icm_pool.c | 20 struct mlx5dr_domain *dmn; member 48 struct mlx5dr_domain *dmn; member 113 struct mlx5_core_dev *mdev = pool->dmn->mdev; in dr_icm_pool_mr_create() 123 icm_mr->dmn = pool->dmn; in dr_icm_pool_mr_create() 153 mlx5dr_err(pool->dmn, "Failed to allocate SW ICM memory, err (%d)\n", err); in dr_icm_pool_mr_create() 158 err = dr_icm_create_dm_mkey(mdev, pool->dmn->pdn, in dr_icm_pool_mr_create() 164 mlx5dr_err(pool->dmn, "Failed to create SW ICM MKEY, err (%d)\n", err); in dr_icm_pool_mr_create() 171 mlx5dr_err(pool->dmn, "Failed to get Aligned ICM mem (asked: %zu)\n", in dr_icm_pool_mr_create() 190 struct mlx5_core_dev *mdev = icm_mr->dmn in dr_icm_pool_mr_destroy() 505 mlx5dr_icm_pool_create(struct mlx5dr_domain *dmn, enum mlx5dr_icm_type icm_type) mlx5dr_icm_pool_create() argument [all...] |
H A D | dr_types.h | 26 #define mlx5dr_err(dmn, arg...) mlx5_core_err((dmn)->mdev, ##arg) 27 #define mlx5dr_info(dmn, arg...) mlx5_core_info((dmn)->mdev, ##arg) 28 #define mlx5dr_dbg(dmn, arg...) mlx5_core_dbg((dmn)->mdev, ##arg) 218 struct mlx5dr_domain *dmn; member 308 struct mlx5dr_domain *dmn, 314 struct mlx5dr_domain *dmn, 383 int mlx5dr_ste_build_pre_check(struct mlx5dr_domain *dmn, 971 struct mlx5dr_domain *dmn; global() member 1037 struct mlx5dr_domain *dmn; global() member 1051 struct mlx5dr_domain *dmn; global() member 1059 struct mlx5dr_domain *dmn; global() member 1070 struct mlx5dr_domain *dmn; global() member 1083 struct mlx5dr_domain *dmn; global() member 1097 struct mlx5dr_domain *dmn; global() member 1115 struct mlx5dr_domain *dmn; global() member 1200 mlx5dr_domain_lock(struct mlx5dr_domain *dmn) mlx5dr_domain_lock() argument 1206 mlx5dr_domain_unlock(struct mlx5dr_domain *dmn) mlx5dr_domain_unlock() argument [all...] |
H A D | mlx5dr.h | 50 void mlx5dr_domain_set_peer(struct mlx5dr_domain *dmn, 86 mlx5dr_action_create_dest_table_num(struct mlx5dr_domain *dmn, u32 table_num); 101 mlx5dr_action_create_mult_dest_tbl(struct mlx5dr_domain *dmn, 112 mlx5dr_action_create_flow_sampler(struct mlx5dr_domain *dmn, u32 sampler_id); 118 mlx5dr_action_create_packet_reformat(struct mlx5dr_domain *dmn, 137 mlx5dr_action_create_aso(struct mlx5dr_domain *dmn, 145 mlx5dr_action_create_dest_match_range(struct mlx5dr_domain *dmn, 156 int mlx5dr_definer_get(struct mlx5dr_domain *dmn, u16 format_id, 159 void mlx5dr_definer_put(struct mlx5dr_domain *dmn, u32 definer_id);
|
H A D | dr_ptrn.c | 16 struct mlx5dr_domain *dmn; member 94 mgr->dmn->info.caps.hdr_modify_pattern_icm_addr) / in dr_ptrn_alloc_pattern() 165 if (mlx5dr_send_postsend_pattern(mgr->dmn, pattern->chunk, in mlx5dr_ptrn_cache_get_pattern() 197 struct mlx5dr_ptrn_mgr *mlx5dr_ptrn_mgr_create(struct mlx5dr_domain *dmn) in mlx5dr_ptrn_mgr_create() argument 201 if (!mlx5dr_domain_is_support_ptrn_arg(dmn)) in mlx5dr_ptrn_mgr_create() 208 mgr->dmn = dmn; in mlx5dr_ptrn_mgr_create() 209 mgr->ptrn_icm_pool = mlx5dr_icm_pool_create(dmn, DR_ICM_TYPE_MODIFY_HDR_PTRN); in mlx5dr_ptrn_mgr_create() 211 mlx5dr_err(dmn, "Couldn't get modify-header-pattern memory\n"); in mlx5dr_ptrn_mgr_create()
|
H A D | dr_ste.c | 313 struct mlx5dr_domain *dmn = matcher->tbl->dmn; in mlx5dr_ste_free() local 314 struct mlx5dr_ste_ctx *ste_ctx = dmn->ste_ctx; in mlx5dr_ste_free() 365 mlx5dr_send_postsend_ste(dmn, cur_ste_info->ste, in mlx5dr_ste_free() 427 int mlx5dr_ste_htbl_init_and_postsend(struct mlx5dr_domain *dmn, in mlx5dr_ste_htbl_init_and_postsend() argument 435 mlx5dr_ste_set_formatted_ste(dmn->ste_ctx, in mlx5dr_ste_htbl_init_and_postsend() 436 dmn->info.caps.gvmi, in mlx5dr_ste_htbl_init_and_postsend() 442 return mlx5dr_send_postsend_formatted_htbl(dmn, htbl, formatted_ste, update_hw_ste); in mlx5dr_ste_htbl_init_and_postsend() 452 struct mlx5dr_domain *dmn = matcher->tbl->dmn; in mlx5dr_ste_create_next_htbl() local 551 mlx5dr_ste_set_actions_tx(struct mlx5dr_ste_ctx *ste_ctx, struct mlx5dr_domain *dmn, u8 *action_type_set, u8 *hw_ste_arr, struct mlx5dr_ste_actions_attr *attr, u32 *added_stes) mlx5dr_ste_set_actions_tx() argument 562 mlx5dr_ste_set_actions_rx(struct mlx5dr_ste_ctx *ste_ctx, struct mlx5dr_domain *dmn, u8 *action_type_set, u8 *hw_ste_arr, struct mlx5dr_ste_actions_attr *attr, u32 *added_stes) mlx5dr_ste_set_actions_rx() argument 640 struct mlx5dr_domain *dmn = action->rewrite->dmn; dr_ste_alloc_modify_hdr_chunk() local 676 struct mlx5dr_domain *dmn = action->rewrite->dmn; mlx5dr_ste_alloc_modify_hdr() local 686 struct mlx5dr_domain *dmn = action->rewrite->dmn; mlx5dr_ste_free_modify_hdr() local 694 dr_ste_build_pre_check_spec(struct mlx5dr_domain *dmn, struct mlx5dr_match_spec *spec) dr_ste_build_pre_check_spec() argument 713 mlx5dr_ste_build_pre_check(struct mlx5dr_domain *dmn, u8 match_criteria, struct mlx5dr_match_param *mask, struct mlx5dr_match_param *value) mlx5dr_ste_build_pre_check() argument 753 struct mlx5dr_domain *dmn = matcher->tbl->dmn; mlx5dr_ste_build_ste_arr() local 1408 mlx5dr_ste_build_src_gvmi_qpn(struct mlx5dr_ste_ctx *ste_ctx, struct mlx5dr_ste_build *sb, struct mlx5dr_match_param *mask, struct mlx5dr_domain *dmn, bool inner, bool rx) mlx5dr_ste_build_src_gvmi_qpn() argument [all...] |
/kernel/linux/linux-5.10/drivers/net/ethernet/mellanox/mlx5/core/steering/ |
H A D | dr_domain.c | 8 #define DR_DOMAIN_SW_STEERING_SUPPORTED(dmn, dmn_type) \ 9 ((dmn)->info.caps.dmn_type##_sw_owner || \ 10 ((dmn)->info.caps.dmn_type##_sw_owner_v2 && \ 11 (dmn)->info.caps.sw_format_ver <= MLX5_STEERING_FORMAT_CONNECTX_6DX)) 13 static int dr_domain_init_cache(struct mlx5dr_domain *dmn) in dr_domain_init_cache() argument 18 dmn->cache.recalc_cs_ft = kcalloc(dmn->info.caps.num_vports, in dr_domain_init_cache() 19 sizeof(dmn->cache.recalc_cs_ft[0]), in dr_domain_init_cache() 21 if (!dmn->cache.recalc_cs_ft) in dr_domain_init_cache() 27 static void dr_domain_uninit_cache(struct mlx5dr_domain *dmn) in dr_domain_uninit_cache() argument 41 mlx5dr_domain_cache_get_recalc_cs_ft_addr(struct mlx5dr_domain *dmn, u32 vport_num, u64 *rx_icm_addr) mlx5dr_domain_cache_get_recalc_cs_ft_addr() argument 62 dr_domain_init_resources(struct mlx5dr_domain *dmn) dr_domain_init_resources() argument 113 dr_domain_uninit_resources(struct mlx5dr_domain *dmn) dr_domain_uninit_resources() argument 122 dr_domain_query_vport(struct mlx5dr_domain *dmn, bool other_vport, u16 vport_number) dr_domain_query_vport() argument 152 dr_domain_query_vports(struct mlx5dr_domain *dmn) dr_domain_query_vports() argument 177 dr_domain_query_fdb_caps(struct mlx5_core_dev *mdev, struct mlx5dr_domain *dmn) dr_domain_query_fdb_caps() argument 216 dr_domain_caps_init(struct mlx5_core_dev *mdev, struct mlx5dr_domain *dmn) dr_domain_caps_init() argument 286 dr_domain_caps_uninit(struct mlx5dr_domain *dmn) dr_domain_caps_uninit() argument 294 struct mlx5dr_domain *dmn; mlx5dr_domain_create() local 351 mlx5dr_domain_sync(struct mlx5dr_domain *dmn, u32 flags) mlx5dr_domain_sync() argument 372 mlx5dr_domain_destroy(struct mlx5dr_domain *dmn) mlx5dr_domain_destroy() argument 388 mlx5dr_domain_set_peer(struct mlx5dr_domain *dmn, struct mlx5dr_domain *peer_dmn) mlx5dr_domain_set_peer() argument [all...] |
H A D | dr_fw.c | 8 mlx5dr_fw_create_recalc_cs_ft(struct mlx5dr_domain *dmn, u32 vport_num) in mlx5dr_fw_create_recalc_cs_ft() argument 21 ft_attr.level = dmn->info.caps.max_ft_level - 1; in mlx5dr_fw_create_recalc_cs_ft() 24 ret = mlx5dr_cmd_create_flow_table(dmn->mdev, in mlx5dr_fw_create_recalc_cs_ft() 29 mlx5dr_err(dmn, "Failed creating TTL W/A FW flow table %d\n", ret); in mlx5dr_fw_create_recalc_cs_ft() 33 ret = mlx5dr_cmd_create_empty_flow_group(dmn->mdev, in mlx5dr_fw_create_recalc_cs_ft() 37 mlx5dr_err(dmn, "Failed creating TTL W/A FW flow group %d\n", ret); in mlx5dr_fw_create_recalc_cs_ft() 46 ret = mlx5dr_cmd_alloc_modify_header(dmn->mdev, MLX5_FLOW_TABLE_TYPE_FDB, 1, in mlx5dr_fw_create_recalc_cs_ft() 50 mlx5dr_err(dmn, "Failed modify header TTL %d\n", ret); in mlx5dr_fw_create_recalc_cs_ft() 54 ret = mlx5dr_cmd_set_fte_modify_and_vport(dmn->mdev, in mlx5dr_fw_create_recalc_cs_ft() 59 mlx5dr_err(dmn, "Faile in mlx5dr_fw_create_recalc_cs_ft() 83 mlx5dr_fw_destroy_recalc_cs_ft(struct mlx5dr_domain *dmn, struct mlx5dr_fw_recalc_cs_ft *recalc_cs_ft) mlx5dr_fw_destroy_recalc_cs_ft() argument 101 mlx5dr_fw_create_md_tbl(struct mlx5dr_domain *dmn, struct mlx5dr_cmd_flow_destination_hw_info *dest, int num_dest, bool reformat_req, u32 *tbl_id, u32 *group_id) mlx5dr_fw_create_md_tbl() argument 158 mlx5dr_fw_destroy_md_tbl(struct mlx5dr_domain *dmn, u32 tbl_id, u32 group_id) mlx5dr_fw_destroy_md_tbl() argument [all...] |
H A D | dr_table.c | 17 mlx5dr_domain_lock(tbl->dmn); in mlx5dr_table_set_miss_action() 24 if (tbl->dmn->type == MLX5DR_DOMAIN_TYPE_NIC_RX || in mlx5dr_table_set_miss_action() 25 tbl->dmn->type == MLX5DR_DOMAIN_TYPE_FDB) { in mlx5dr_table_set_miss_action() 38 ret = mlx5dr_ste_htbl_init_and_postsend(tbl->dmn, in mlx5dr_table_set_miss_action() 43 mlx5dr_dbg(tbl->dmn, "Failed to set RX miss action, ret %d\n", ret); in mlx5dr_table_set_miss_action() 48 if (tbl->dmn->type == MLX5DR_DOMAIN_TYPE_NIC_TX || in mlx5dr_table_set_miss_action() 49 tbl->dmn->type == MLX5DR_DOMAIN_TYPE_FDB) { in mlx5dr_table_set_miss_action() 62 ret = mlx5dr_ste_htbl_init_and_postsend(tbl->dmn, in mlx5dr_table_set_miss_action() 66 mlx5dr_dbg(tbl->dmn, "Failed to set TX miss action, ret %d\n", ret); in mlx5dr_table_set_miss_action() 84 mlx5dr_domain_unlock(tbl->dmn); in mlx5dr_table_set_miss_action() 121 dr_table_init_nic(struct mlx5dr_domain *dmn, struct mlx5dr_table_rx_tx *nic_tbl) dr_table_init_nic() argument 248 mlx5dr_table_create(struct mlx5dr_domain *dmn, u32 level, u32 flags) mlx5dr_table_create() argument [all...] |
H A D | dr_action.c | 407 static void dr_actions_apply_tx(struct mlx5dr_domain *dmn, in dr_actions_apply_tx() argument 464 if (MLX5_CAP_GEN(dmn->mdev, prio_tag_required)) in dr_actions_apply_tx() 536 static void dr_actions_apply(struct mlx5dr_domain *dmn, in dr_actions_apply() argument 548 dr_actions_apply_tx(dmn, action_type_set, last_ste, attr, &added_stes); in dr_actions_apply() 592 static int dr_action_handle_cs_recalc(struct mlx5dr_domain *dmn, in dr_action_handle_cs_recalc() argument 607 mlx5dr_dbg(dmn, in dr_action_handle_cs_recalc() 617 ret = mlx5dr_domain_cache_get_recalc_cs_ft_addr(dest_action->vport.dmn, in dr_action_handle_cs_recalc() 621 mlx5dr_err(dmn, "Failed to get FW cs recalc flow table\n"); in dr_action_handle_cs_recalc() 644 struct mlx5dr_domain *dmn = matcher->tbl->dmn; in mlx5dr_actions_build_ste_arr() local 827 dr_actions_l2_rewrite(struct mlx5dr_domain *dmn, struct mlx5dr_action *action, void *data, size_t data_sz) dr_actions_l2_rewrite() argument 968 mlx5dr_action_create_dest_table_num(struct mlx5dr_domain *dmn, u32 table_num) mlx5dr_action_create_dest_table_num() argument 1006 mlx5dr_action_create_mult_dest_tbl(struct mlx5dr_domain *dmn, struct mlx5dr_action_dest *dests, u32 num_of_dests) mlx5dr_action_create_mult_dest_tbl() argument 1104 mlx5dr_action_create_dest_flow_fw_table(struct mlx5dr_domain *dmn, struct mlx5_flow_table *ft) mlx5dr_action_create_dest_flow_fw_table() argument 1151 dr_action_verify_reformat_params(enum mlx5dr_action_type reformat_type, struct mlx5dr_domain *dmn, size_t data_sz, void *data) dr_action_verify_reformat_params() argument 1188 dr_action_create_reformat_action(struct mlx5dr_domain *dmn, size_t data_sz, void *data, struct mlx5dr_action *action) dr_action_create_reformat_action() argument 1252 mlx5dr_action_create_push_vlan(struct mlx5dr_domain *dmn, __be32 vlan_hdr) mlx5dr_action_create_push_vlan() argument 1273 mlx5dr_action_create_packet_reformat(struct mlx5dr_domain *dmn, enum mlx5dr_action_reformat_type reformat_type, size_t data_sz, void *data) mlx5dr_action_create_packet_reformat() argument 1338 dr_action_modify_sw_to_hw_add(struct mlx5dr_domain *dmn, __be64 *sw_action, __be64 *hw_action, const struct dr_action_modify_field_conv **ret_hw_info) dr_action_modify_sw_to_hw_add() argument 1382 dr_action_modify_sw_to_hw_set(struct mlx5dr_domain *dmn, __be64 *sw_action, __be64 *hw_action, const struct dr_action_modify_field_conv **ret_hw_info) dr_action_modify_sw_to_hw_set() argument 1435 dr_action_modify_sw_to_hw_copy(struct mlx5dr_domain *dmn, __be64 *sw_action, __be64 *hw_action, const struct dr_action_modify_field_conv **ret_dst_hw_info, const struct dr_action_modify_field_conv **ret_src_hw_info) dr_action_modify_sw_to_hw_copy() argument 1500 dr_action_modify_sw_to_hw(struct mlx5dr_domain *dmn, __be64 *sw_action, __be64 *hw_action, const struct dr_action_modify_field_conv **ret_dst_hw_info, const struct dr_action_modify_field_conv **ret_src_hw_info) dr_action_modify_sw_to_hw() argument 1548 struct mlx5dr_domain *dmn = action->rewrite.dmn; dr_action_modify_check_set_field_limitation() local 1579 struct mlx5dr_domain *dmn = action->rewrite.dmn; dr_action_modify_check_add_field_limitation() local 1597 struct mlx5dr_domain *dmn = action->rewrite.dmn; dr_action_modify_check_copy_field_limitation() local 1634 struct mlx5dr_domain *dmn = action->rewrite.dmn; dr_action_modify_check_field_limitation() local 1686 struct mlx5dr_domain *dmn = action->rewrite.dmn; dr_actions_convert_modify_header() local 1760 dr_action_create_modify_action(struct mlx5dr_domain *dmn, size_t actions_sz, __be64 actions[], struct mlx5dr_action *action) dr_action_create_modify_action() argument 1824 mlx5dr_action_create_modify_header(struct mlx5dr_domain *dmn, u32 flags, size_t actions_sz, __be64 actions[]) mlx5dr_action_create_modify_header() argument 1864 mlx5dr_action_create_dest_vport(struct mlx5dr_domain *dmn, u32 vport, u8 vhca_id_valid, u16 vhca_id) mlx5dr_action_create_dest_vport() argument [all...] |
H A D | dr_send.c | 308 static int dr_handle_pending_wc(struct mlx5dr_domain *dmn, in dr_handle_pending_wc() argument 319 dmn->send_ring->signal_th * TH_NUMS_TO_DRAIN) in dr_handle_pending_wc() 353 static int dr_postsend_icm_data(struct mlx5dr_domain *dmn, in dr_postsend_icm_data() argument 356 struct mlx5dr_send_ring *send_ring = dmn->send_ring; in dr_postsend_icm_data() 362 ret = dr_handle_pending_wc(dmn, send_ring); in dr_postsend_icm_data() 366 if (send_info->write.length > dmn->info.max_inline_size) { in dr_postsend_icm_data() 368 (dmn->send_ring->signal_th - 1)) * in dr_postsend_icm_data() 387 static int dr_get_tbl_copy_details(struct mlx5dr_domain *dmn, in dr_get_tbl_copy_details() argument 396 if (htbl->chunk->byte_size > dmn->send_ring->max_post_send_size) { in dr_get_tbl_copy_details() 398 dmn in dr_get_tbl_copy_details() 429 mlx5dr_send_postsend_ste(struct mlx5dr_domain *dmn, struct mlx5dr_ste *ste, u8 *data, u16 size, u16 offset) mlx5dr_send_postsend_ste() argument 443 mlx5dr_send_postsend_htbl(struct mlx5dr_domain *dmn, struct mlx5dr_ste_htbl *htbl, u8 *formatted_ste, u8 *mask) mlx5dr_send_postsend_htbl() argument 504 mlx5dr_send_postsend_formatted_htbl(struct mlx5dr_domain *dmn, struct mlx5dr_ste_htbl *htbl, u8 *ste_init_data, bool update_hw_ste) mlx5dr_send_postsend_formatted_htbl() argument 557 mlx5dr_send_postsend_action(struct mlx5dr_domain *dmn, struct mlx5dr_action *action) mlx5dr_send_postsend_action() argument 650 dr_prepare_qp_to_rts(struct mlx5dr_domain *dmn) dr_prepare_qp_to_rts() argument 867 mlx5dr_send_ring_alloc(struct mlx5dr_domain *dmn) mlx5dr_send_ring_alloc() argument 958 mlx5dr_send_ring_free(struct mlx5dr_domain *dmn, struct mlx5dr_send_ring *send_ring) mlx5dr_send_ring_free() argument 969 mlx5dr_send_ring_force_drain(struct mlx5dr_domain *dmn) mlx5dr_send_ring_force_drain() argument [all...] |
H A D | dr_matcher.c | 122 struct mlx5dr_domain *dmn) in dr_mask_is_flex_parser_tnl_vxlan_gpe_set() 125 dr_matcher_supp_flex_parser_vxlan_gpe(&dmn->info.caps); in dr_mask_is_flex_parser_tnl_vxlan_gpe_set() 145 struct mlx5dr_domain *dmn) in dr_mask_is_flex_parser_tnl_geneve_set() 148 dr_matcher_supp_flex_parser_geneve(&dmn->info.caps); in dr_mask_is_flex_parser_tnl_geneve_set() 190 mlx5dr_dbg(matcher->tbl->dmn, in mlx5dr_matcher_select_builders() 204 struct mlx5dr_domain *dmn = matcher->tbl->dmn; in dr_matcher_set_ste_builders() local 230 ret = mlx5dr_ste_build_pre_check(dmn, matcher->match_criteria, in dr_matcher_set_ste_builders() 252 (dmn->type == MLX5DR_DOMAIN_TYPE_FDB || in dr_matcher_set_ste_builders() 253 dmn in dr_matcher_set_ste_builders() 121 dr_mask_is_flex_parser_tnl_vxlan_gpe_set(struct mlx5dr_match_param *mask, struct mlx5dr_domain *dmn) dr_mask_is_flex_parser_tnl_vxlan_gpe_set() argument 144 dr_mask_is_flex_parser_tnl_geneve_set(struct mlx5dr_match_param *mask, struct mlx5dr_domain *dmn) dr_mask_is_flex_parser_tnl_geneve_set() argument 401 dr_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) dr_matcher_connect() argument 464 struct mlx5dr_domain *dmn = tbl->dmn; dr_matcher_add_to_tbl() local 528 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_matcher_uninit() local 549 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_matcher_set_all_ste_builders() local 567 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_matcher_init_nic() local 624 struct mlx5dr_domain *dmn = tbl->dmn; dr_matcher_init() local 708 dr_matcher_disconnect(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) dr_matcher_disconnect() argument 742 struct mlx5dr_domain *dmn = tbl->dmn; dr_matcher_remove_from_tbl() local [all...] |
H A D | dr_rule.c | 44 struct mlx5dr_domain *dmn = matcher->tbl->dmn; in dr_rule_create_collision_htbl() local 49 new_htbl = mlx5dr_ste_htbl_alloc(dmn->ste_icm_pool, in dr_rule_create_collision_htbl() 54 mlx5dr_dbg(dmn, "Failed allocating collision table\n"); in dr_rule_create_collision_htbl() 76 mlx5dr_dbg(matcher->tbl->dmn, "Failed creating collision entry\n"); in dr_rule_create_collision_entry() 88 mlx5dr_dbg(matcher->tbl->dmn, "Failed allocating table\n"); in dr_rule_create_collision_entry() 101 struct mlx5dr_domain *dmn) in dr_rule_handle_one_ste_in_update_list() 106 ret = mlx5dr_send_postsend_ste(dmn, ste_info->ste, ste_info->data, in dr_rule_handle_one_ste_in_update_list() 121 struct mlx5dr_domain *dmn, in dr_rule_send_update_list() 131 dmn); in dr_rule_send_update_list() 100 dr_rule_handle_one_ste_in_update_list(struct mlx5dr_ste_send_info *ste_info, struct mlx5dr_domain *dmn) dr_rule_handle_one_ste_in_update_list() argument 120 dr_rule_send_update_list(struct list_head *send_ste_list, struct mlx5dr_domain *dmn, bool is_reverse) dr_rule_send_update_list() argument 364 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_rule_rehash_htbl() local 478 struct mlx5dr_domain *dmn = rule->matcher->tbl->dmn; dr_rule_rehash() local 609 dr_rule_need_enlarge_hash(struct mlx5dr_ste_htbl *htbl, struct mlx5dr_domain *dmn, struct mlx5dr_domain_rx_tx *nic_dmn) dr_rule_need_enlarge_hash() argument 776 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_rule_handle_ste_branch() local 956 struct mlx5dr_domain *dmn = rule->matcher->tbl->dmn; dr_rule_destroy_rule() local 1022 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_rule_create_rule_nic() local 1177 struct mlx5dr_domain *dmn = matcher->tbl->dmn; dr_rule_create_rule() local [all...] |
H A D | dr_types.h | 21 #define mlx5dr_err(dmn, arg...) mlx5_core_err((dmn)->mdev, ##arg) 22 #define mlx5dr_info(dmn, arg...) mlx5_core_info((dmn)->mdev, ##arg) 23 #define mlx5dr_dbg(dmn, arg...) mlx5_core_dbg((dmn)->mdev, ##arg) 190 struct mlx5dr_domain *dmn; member 283 int mlx5dr_ste_build_pre_check(struct mlx5dr_domain *dmn, 351 struct mlx5dr_domain *dmn, 686 struct mlx5dr_domain *dmn; member 736 struct mlx5dr_domain *dmn; global() member 747 struct mlx5dr_domain *dmn; global() member 756 struct mlx5dr_domain *dmn; global() member 772 struct mlx5dr_domain *dmn; global() member 836 mlx5dr_domain_lock(struct mlx5dr_domain *dmn) mlx5dr_domain_lock() argument 842 mlx5dr_domain_unlock(struct mlx5dr_domain *dmn) mlx5dr_domain_unlock() argument [all...] |
H A D | dr_icm_pool.c | 50 struct mlx5dr_domain *dmn; member 100 struct mlx5_core_dev *mdev = pool->dmn->mdev; in dr_icm_pool_mr_create() 130 mlx5dr_err(pool->dmn, "Failed to allocate SW ICM memory, err (%d)\n", err); in dr_icm_pool_mr_create() 135 err = dr_icm_create_dm_mkey(mdev, pool->dmn->pdn, in dr_icm_pool_mr_create() 141 mlx5dr_err(pool->dmn, "Failed to create SW ICM MKEY, err (%d)\n", err); in dr_icm_pool_mr_create() 148 mlx5dr_err(pool->dmn, "Failed to get Aligned ICM mem (asked: %zu)\n", in dr_icm_pool_mr_create() 169 struct mlx5_core_dev *mdev = icm_mr->pool->dmn->mdev; in dr_icm_pool_mr_destroy() 465 err = mlx5dr_cmd_sync_steering(pool->dmn->mdev); in mlx5dr_icm_alloc_chunk() 468 mlx5dr_err(pool->dmn, "Sync_steering failed\n"); in mlx5dr_icm_alloc_chunk() 513 struct mlx5dr_icm_pool *mlx5dr_icm_pool_create(struct mlx5dr_domain *dmn, in mlx5dr_icm_pool_create() argument [all...] |
H A D | mlx5dr.h | 48 void mlx5dr_domain_set_peer(struct mlx5dr_domain *dmn, 79 mlx5dr_action_create_dest_table_num(struct mlx5dr_domain *dmn, u32 table_num); 94 mlx5dr_action_create_mult_dest_tbl(struct mlx5dr_domain *dmn, 106 mlx5dr_action_create_packet_reformat(struct mlx5dr_domain *dmn,
|