1365cdf5fSErez Shitrit /* SPDX-License-Identifier: BSD-3-Clause 2365cdf5fSErez Shitrit * Copyright (c) 2022 NVIDIA Corporation & Affiliates 3365cdf5fSErez Shitrit */ 4365cdf5fSErez Shitrit 5365cdf5fSErez Shitrit #ifndef MLX5DR_CMD_H_ 6365cdf5fSErez Shitrit #define MLX5DR_CMD_H_ 7365cdf5fSErez Shitrit 8eefaf43dSShun Hao enum mlx5dr_cmd_ext_dest_flags { 9eefaf43dSShun Hao MLX5DR_CMD_EXT_DEST_REFORMAT = 1 << 0, 10eefaf43dSShun Hao MLX5DR_CMD_EXT_DEST_ESW_OWNER_VHCA_ID = 1 << 1, 11eefaf43dSShun Hao }; 12eefaf43dSShun Hao 13eefaf43dSShun Hao struct mlx5dr_cmd_set_fte_dest { 14eefaf43dSShun Hao uint8_t destination_type; 15eefaf43dSShun Hao uint32_t destination_id; 16eefaf43dSShun Hao enum mlx5dr_cmd_ext_dest_flags ext_flags; 1771ad5095SHaifei Luo struct mlx5dr_devx_obj *ext_reformat; 18eefaf43dSShun Hao uint16_t esw_owner_vhca_id; 19eefaf43dSShun Hao }; 20eefaf43dSShun Hao 21e1df1578SHamdan Igbaria struct mlx5dr_cmd_set_fte_attr { 22e1df1578SHamdan Igbaria uint32_t action_flags; 23eefaf43dSShun Hao uint8_t ignore_flow_level; 24eefaf43dSShun Hao uint8_t flow_source; 2571ad5095SHaifei Luo uint8_t extended_dest; 262b2ce5ddSHamdan Igbaria uint8_t encrypt_decrypt_type; 272b2ce5ddSHamdan Igbaria uint32_t encrypt_decrypt_obj_id; 282b2ce5ddSHamdan Igbaria uint32_t packet_reformat_id; 29eefaf43dSShun Hao uint32_t dests_num; 30eefaf43dSShun Hao struct mlx5dr_cmd_set_fte_dest *dests; 31e1df1578SHamdan Igbaria }; 32e1df1578SHamdan Igbaria 33365cdf5fSErez Shitrit struct mlx5dr_cmd_ft_create_attr { 34365cdf5fSErez Shitrit uint8_t type; 35365cdf5fSErez Shitrit uint8_t level; 36365cdf5fSErez Shitrit bool rtc_valid; 372b2ce5ddSHamdan Igbaria uint8_t reformat_en; 38365cdf5fSErez Shitrit }; 39365cdf5fSErez Shitrit 40ce946c7dSErez Shitrit #define ACCESS_KEY_LEN 32 41ce946c7dSErez Shitrit 42365cdf5fSErez Shitrit struct mlx5dr_cmd_ft_modify_attr { 43365cdf5fSErez Shitrit uint8_t type; 44365cdf5fSErez Shitrit uint32_t rtc_id_0; 45365cdf5fSErez Shitrit uint32_t rtc_id_1; 46365cdf5fSErez Shitrit uint32_t table_miss_id; 47365cdf5fSErez Shitrit uint8_t table_miss_action; 48365cdf5fSErez Shitrit uint64_t modify_fs; 49365cdf5fSErez Shitrit }; 50365cdf5fSErez Shitrit 51004edb48SHamdan Igbaria struct mlx5dr_cmd_ft_query_attr { 52004edb48SHamdan Igbaria uint8_t type; 53004edb48SHamdan Igbaria }; 54004edb48SHamdan Igbaria 55365cdf5fSErez Shitrit struct mlx5dr_cmd_fg_attr { 56365cdf5fSErez Shitrit uint32_t table_id; 57365cdf5fSErez Shitrit uint32_t table_type; 58365cdf5fSErez Shitrit }; 59365cdf5fSErez Shitrit 60365cdf5fSErez Shitrit struct mlx5dr_cmd_forward_tbl { 61365cdf5fSErez Shitrit struct mlx5dr_devx_obj *ft; 62365cdf5fSErez Shitrit struct mlx5dr_devx_obj *fg; 63365cdf5fSErez Shitrit struct mlx5dr_devx_obj *fte; 64365cdf5fSErez Shitrit uint32_t refcount; 65365cdf5fSErez Shitrit }; 66365cdf5fSErez Shitrit 67365cdf5fSErez Shitrit struct mlx5dr_cmd_rtc_create_attr { 68365cdf5fSErez Shitrit uint32_t pd; 69365cdf5fSErez Shitrit uint32_t stc_base; 70365cdf5fSErez Shitrit uint32_t ste_base; 71365cdf5fSErez Shitrit uint32_t ste_offset; 72365cdf5fSErez Shitrit uint32_t miss_ft_id; 7393ee3bd8SAlex Vesker bool fw_gen_wqe; 74365cdf5fSErez Shitrit uint8_t update_index_mode; 7507f35716SYevgeny Kliteynik uint8_t access_index_mode; 7607f35716SYevgeny Kliteynik uint8_t num_hash_definer; 77365cdf5fSErez Shitrit uint8_t log_depth; 78365cdf5fSErez Shitrit uint8_t log_size; 79365cdf5fSErez Shitrit uint8_t table_type; 8093ee3bd8SAlex Vesker uint8_t match_definer_0; 8193ee3bd8SAlex Vesker uint8_t match_definer_1; 82bbddd062SAlex Vesker uint8_t reparse_mode; 8393ee3bd8SAlex Vesker bool is_frst_jumbo; 8493ee3bd8SAlex Vesker bool is_scnd_range; 85a5230507SHamdan Igbaria bool is_compare; 86365cdf5fSErez Shitrit }; 87365cdf5fSErez Shitrit 88ed695274SYevgeny Kliteynik struct mlx5dr_cmd_alias_obj_create_attr { 89ed695274SYevgeny Kliteynik uint32_t obj_id; 90ed695274SYevgeny Kliteynik uint16_t vhca_id; 91ed695274SYevgeny Kliteynik uint16_t obj_type; 92ce946c7dSErez Shitrit uint8_t access_key[ACCESS_KEY_LEN]; 93ed695274SYevgeny Kliteynik }; 94ed695274SYevgeny Kliteynik 95365cdf5fSErez Shitrit struct mlx5dr_cmd_stc_create_attr { 96365cdf5fSErez Shitrit uint8_t log_obj_range; 97365cdf5fSErez Shitrit uint8_t table_type; 98365cdf5fSErez Shitrit }; 99365cdf5fSErez Shitrit 100365cdf5fSErez Shitrit struct mlx5dr_cmd_stc_modify_attr { 101365cdf5fSErez Shitrit uint32_t stc_offset; 102365cdf5fSErez Shitrit uint8_t action_offset; 103bbddd062SAlex Vesker uint8_t reparse_mode; 104365cdf5fSErez Shitrit enum mlx5_ifc_stc_action_type action_type; 105365cdf5fSErez Shitrit union { 106365cdf5fSErez Shitrit uint32_t id; /* TIRN, TAG, FT ID, STE ID */ 107365cdf5fSErez Shitrit struct { 108365cdf5fSErez Shitrit uint8_t decap; 109365cdf5fSErez Shitrit uint16_t start_anchor; 110365cdf5fSErez Shitrit uint16_t end_anchor; 111365cdf5fSErez Shitrit } remove_header; 112365cdf5fSErez Shitrit struct { 113365cdf5fSErez Shitrit uint32_t arg_id; 114365cdf5fSErez Shitrit uint32_t pattern_id; 115365cdf5fSErez Shitrit } modify_header; 116365cdf5fSErez Shitrit struct { 117365cdf5fSErez Shitrit __be64 data; 118365cdf5fSErez Shitrit } modify_action; 119365cdf5fSErez Shitrit struct { 120365cdf5fSErez Shitrit uint32_t arg_id; 121365cdf5fSErez Shitrit uint32_t header_size; 122365cdf5fSErez Shitrit uint8_t is_inline; 123365cdf5fSErez Shitrit uint8_t encap; 124365cdf5fSErez Shitrit uint16_t insert_anchor; 125365cdf5fSErez Shitrit uint16_t insert_offset; 126525ac5efSHamdan Igbaria uint8_t push_esp; 127365cdf5fSErez Shitrit } insert_header; 128365cdf5fSErez Shitrit struct { 129365cdf5fSErez Shitrit uint8_t aso_type; 130365cdf5fSErez Shitrit uint32_t devx_obj_id; 131365cdf5fSErez Shitrit uint8_t return_reg_id; 132365cdf5fSErez Shitrit } aso; 133365cdf5fSErez Shitrit struct { 134365cdf5fSErez Shitrit uint16_t vport_num; 135365cdf5fSErez Shitrit uint16_t esw_owner_vhca_id; 136*ac8415cfSErez Shitrit uint8_t eswitch_owner_vhca_id_valid; 137365cdf5fSErez Shitrit } vport; 138365cdf5fSErez Shitrit struct { 139365cdf5fSErez Shitrit struct mlx5dr_pool_chunk ste; 140365cdf5fSErez Shitrit struct mlx5dr_pool *ste_pool; 141365cdf5fSErez Shitrit uint32_t ste_obj_id; /* Internal */ 142365cdf5fSErez Shitrit uint32_t match_definer_id; 143365cdf5fSErez Shitrit uint8_t log_hash_size; 144365cdf5fSErez Shitrit } ste_table; 145365cdf5fSErez Shitrit struct { 146365cdf5fSErez Shitrit uint16_t start_anchor; 147365cdf5fSErez Shitrit uint16_t num_of_words; 148365cdf5fSErez Shitrit } remove_words; 149365cdf5fSErez Shitrit 150365cdf5fSErez Shitrit uint32_t dest_table_id; 151365cdf5fSErez Shitrit uint32_t dest_tir_num; 152365cdf5fSErez Shitrit }; 153365cdf5fSErez Shitrit }; 154365cdf5fSErez Shitrit 155365cdf5fSErez Shitrit struct mlx5dr_cmd_ste_create_attr { 156365cdf5fSErez Shitrit uint8_t log_obj_range; 157365cdf5fSErez Shitrit uint8_t table_type; 158365cdf5fSErez Shitrit }; 159365cdf5fSErez Shitrit 160365cdf5fSErez Shitrit struct mlx5dr_cmd_definer_create_attr { 161365cdf5fSErez Shitrit uint8_t *dw_selector; 162365cdf5fSErez Shitrit uint8_t *byte_selector; 163365cdf5fSErez Shitrit uint8_t *match_mask; 164365cdf5fSErez Shitrit }; 165365cdf5fSErez Shitrit 166365cdf5fSErez Shitrit struct mlx5dr_cmd_sq_create_attr { 167365cdf5fSErez Shitrit uint32_t cqn; 168365cdf5fSErez Shitrit uint32_t pdn; 169365cdf5fSErez Shitrit uint32_t page_id; 170365cdf5fSErez Shitrit uint32_t dbr_id; 171365cdf5fSErez Shitrit uint32_t wq_id; 172365cdf5fSErez Shitrit uint32_t log_wq_sz; 173d4444de8SViacheslav Ovsiienko uint32_t ts_format; 174365cdf5fSErez Shitrit }; 175365cdf5fSErez Shitrit 176720439d8SYevgeny Kliteynik struct mlx5dr_cmd_allow_other_vhca_access_attr { 177720439d8SYevgeny Kliteynik uint16_t obj_type; 178720439d8SYevgeny Kliteynik uint32_t obj_id; 179ce946c7dSErez Shitrit uint8_t access_key[ACCESS_KEY_LEN]; 180720439d8SYevgeny Kliteynik }; 181720439d8SYevgeny Kliteynik 18225cb2d2aSHamdan Igbaria struct mlx5dr_cmd_packet_reformat_create_attr { 18325cb2d2aSHamdan Igbaria uint8_t type; 18425cb2d2aSHamdan Igbaria size_t data_sz; 18525cb2d2aSHamdan Igbaria void *data; 18625cb2d2aSHamdan Igbaria uint8_t reformat_param_0; 18725cb2d2aSHamdan Igbaria }; 18825cb2d2aSHamdan Igbaria 189365cdf5fSErez Shitrit struct mlx5dr_cmd_query_ft_caps { 190365cdf5fSErez Shitrit uint8_t max_level; 191365cdf5fSErez Shitrit uint8_t reparse; 192b81f95caSItamar Gozlan uint8_t ignore_flow_level_rtc_valid; 193365cdf5fSErez Shitrit }; 194365cdf5fSErez Shitrit 195365cdf5fSErez Shitrit struct mlx5dr_cmd_query_vport_caps { 196365cdf5fSErez Shitrit uint16_t vport_num; 197365cdf5fSErez Shitrit uint16_t esw_owner_vhca_id; 198365cdf5fSErez Shitrit }; 199365cdf5fSErez Shitrit 20012802ab2SAlex Vesker struct mlx5dr_cmd_generate_wqe_attr { 20112802ab2SAlex Vesker uint8_t *wqe_ctrl; 20212802ab2SAlex Vesker uint8_t *gta_ctrl; 20312802ab2SAlex Vesker uint8_t *gta_data_0; 20412802ab2SAlex Vesker uint8_t *gta_data_1; 20512802ab2SAlex Vesker uint32_t pdn; 20612802ab2SAlex Vesker }; 20712802ab2SAlex Vesker 208365cdf5fSErez Shitrit struct mlx5dr_cmd_query_caps { 209365cdf5fSErez Shitrit uint32_t wire_regc_mask; 210365cdf5fSErez Shitrit uint32_t flex_protocols; 211365cdf5fSErez Shitrit uint8_t wqe_based_update; 212365cdf5fSErez Shitrit uint8_t rtc_reparse_mode; 213365cdf5fSErez Shitrit uint16_t ste_format; 214365cdf5fSErez Shitrit uint8_t rtc_index_mode; 215365cdf5fSErez Shitrit uint8_t ste_alloc_log_max; 216365cdf5fSErez Shitrit uint8_t ste_alloc_log_gran; 217365cdf5fSErez Shitrit uint8_t stc_alloc_log_max; 218365cdf5fSErez Shitrit uint8_t stc_alloc_log_gran; 219365cdf5fSErez Shitrit uint8_t rtc_log_depth_max; 220365cdf5fSErez Shitrit uint8_t format_select_gtpu_dw_0; 221365cdf5fSErez Shitrit uint8_t format_select_gtpu_dw_1; 2227f5e6de5SItamar Gozlan uint8_t flow_table_hash_type; 223365cdf5fSErez Shitrit uint8_t format_select_gtpu_dw_2; 224365cdf5fSErez Shitrit uint8_t format_select_gtpu_ext_dw_0; 22551f68dbaSYevgeny Kliteynik uint8_t access_index_mode; 2267f5e6de5SItamar Gozlan uint32_t linear_match_definer; 227365cdf5fSErez Shitrit bool full_dw_jumbo_support; 22851f68dbaSYevgeny Kliteynik bool rtc_hash_split_table; 22951f68dbaSYevgeny Kliteynik bool rtc_linear_lookup_table; 23067acee3aSAlex Vesker uint32_t supp_type_gen_wqe; 23167acee3aSAlex Vesker uint8_t rtc_max_hash_def_gen_wqe; 23267acee3aSAlex Vesker uint16_t supp_ste_format_gen_wqe; 233365cdf5fSErez Shitrit struct mlx5dr_cmd_query_ft_caps nic_ft; 234365cdf5fSErez Shitrit struct mlx5dr_cmd_query_ft_caps fdb_ft; 235365cdf5fSErez Shitrit bool eswitch_manager; 236eefaf43dSShun Hao uint8_t merged_eswitch; 237365cdf5fSErez Shitrit uint32_t eswitch_manager_vport_number; 238365cdf5fSErez Shitrit uint8_t log_header_modify_argument_granularity; 239365cdf5fSErez Shitrit uint8_t log_header_modify_argument_max_alloc; 240d4444de8SViacheslav Ovsiienko uint8_t sq_ts_format; 2411f8fc88dSAlex Vesker uint8_t fdb_tir_stc; 242365cdf5fSErez Shitrit uint64_t definer_format_sup; 243365cdf5fSErez Shitrit uint32_t trivial_match_definer; 2447ab100f6SErez Shitrit uint32_t vhca_id; 245b2300900SYevgeny Kliteynik bool cross_vhca_resources; 246ce946c7dSErez Shitrit uint32_t shared_vhca_id; 247365cdf5fSErez Shitrit char fw_ver[64]; 24881cf20a2SHamdan Igbaria bool ipsec_offload; 2492acdf09bSHamdan Igbaria uint8_t encap_entropy_hash_type; 2502acdf09bSHamdan Igbaria bool roce; 2512acdf09bSHamdan Igbaria uint16_t roce_max_src_udp_port; 2522acdf09bSHamdan Igbaria uint16_t roce_min_src_udp_port; 253365cdf5fSErez Shitrit }; 254365cdf5fSErez Shitrit 255365cdf5fSErez Shitrit int mlx5dr_cmd_destroy_obj(struct mlx5dr_devx_obj *devx_obj); 256365cdf5fSErez Shitrit 257365cdf5fSErez Shitrit struct mlx5dr_devx_obj * 258365cdf5fSErez Shitrit mlx5dr_cmd_flow_table_create(struct ibv_context *ctx, 259365cdf5fSErez Shitrit struct mlx5dr_cmd_ft_create_attr *ft_attr); 260365cdf5fSErez Shitrit 261365cdf5fSErez Shitrit int 262365cdf5fSErez Shitrit mlx5dr_cmd_flow_table_modify(struct mlx5dr_devx_obj *devx_obj, 263365cdf5fSErez Shitrit struct mlx5dr_cmd_ft_modify_attr *ft_attr); 264365cdf5fSErez Shitrit 265004edb48SHamdan Igbaria int 266004edb48SHamdan Igbaria mlx5dr_cmd_flow_table_query(struct mlx5dr_devx_obj *devx_obj, 267004edb48SHamdan Igbaria struct mlx5dr_cmd_ft_query_attr *ft_attr, 268004edb48SHamdan Igbaria uint64_t *icm_addr_0, uint64_t *icm_addr_1); 269004edb48SHamdan Igbaria 270365cdf5fSErez Shitrit struct mlx5dr_devx_obj * 271365cdf5fSErez Shitrit mlx5dr_cmd_rtc_create(struct ibv_context *ctx, 272365cdf5fSErez Shitrit struct mlx5dr_cmd_rtc_create_attr *rtc_attr); 273365cdf5fSErez Shitrit 274365cdf5fSErez Shitrit struct mlx5dr_devx_obj * 275365cdf5fSErez Shitrit mlx5dr_cmd_stc_create(struct ibv_context *ctx, 276365cdf5fSErez Shitrit struct mlx5dr_cmd_stc_create_attr *stc_attr); 277365cdf5fSErez Shitrit 278365cdf5fSErez Shitrit int 279365cdf5fSErez Shitrit mlx5dr_cmd_stc_modify(struct mlx5dr_devx_obj *devx_obj, 280365cdf5fSErez Shitrit struct mlx5dr_cmd_stc_modify_attr *stc_attr); 281365cdf5fSErez Shitrit 28212802ab2SAlex Vesker int 28312802ab2SAlex Vesker mlx5dr_cmd_generate_wqe(struct ibv_context *ctx, 28412802ab2SAlex Vesker struct mlx5dr_cmd_generate_wqe_attr *attr, 28512802ab2SAlex Vesker struct mlx5_cqe64 *ret_cqe); 28612802ab2SAlex Vesker 287365cdf5fSErez Shitrit struct mlx5dr_devx_obj * 288365cdf5fSErez Shitrit mlx5dr_cmd_ste_create(struct ibv_context *ctx, 289365cdf5fSErez Shitrit struct mlx5dr_cmd_ste_create_attr *ste_attr); 290365cdf5fSErez Shitrit 291365cdf5fSErez Shitrit struct mlx5dr_devx_obj * 292365cdf5fSErez Shitrit mlx5dr_cmd_definer_create(struct ibv_context *ctx, 293365cdf5fSErez Shitrit struct mlx5dr_cmd_definer_create_attr *def_attr); 294365cdf5fSErez Shitrit 295365cdf5fSErez Shitrit struct mlx5dr_devx_obj * 296365cdf5fSErez Shitrit mlx5dr_cmd_sq_create(struct ibv_context *ctx, 297365cdf5fSErez Shitrit struct mlx5dr_cmd_sq_create_attr *attr); 298365cdf5fSErez Shitrit 299365cdf5fSErez Shitrit struct mlx5dr_devx_obj * 300365cdf5fSErez Shitrit mlx5dr_cmd_arg_create(struct ibv_context *ctx, 301365cdf5fSErez Shitrit uint16_t log_obj_range, 302365cdf5fSErez Shitrit uint32_t pd); 303365cdf5fSErez Shitrit 304365cdf5fSErez Shitrit struct mlx5dr_devx_obj * 305365cdf5fSErez Shitrit mlx5dr_cmd_header_modify_pattern_create(struct ibv_context *ctx, 306365cdf5fSErez Shitrit uint32_t pattern_length, 307365cdf5fSErez Shitrit uint8_t *actions); 308365cdf5fSErez Shitrit 309ed695274SYevgeny Kliteynik struct mlx5dr_devx_obj * 310e1df1578SHamdan Igbaria mlx5dr_cmd_set_fte(struct ibv_context *ctx, 311e1df1578SHamdan Igbaria uint32_t table_type, 312e1df1578SHamdan Igbaria uint32_t table_id, 313e1df1578SHamdan Igbaria uint32_t group_id, 314e1df1578SHamdan Igbaria struct mlx5dr_cmd_set_fte_attr *fte_attr); 315e1df1578SHamdan Igbaria 316e1df1578SHamdan Igbaria struct mlx5dr_cmd_forward_tbl * 317e1df1578SHamdan Igbaria mlx5dr_cmd_forward_tbl_create(struct ibv_context *ctx, 318e1df1578SHamdan Igbaria struct mlx5dr_cmd_ft_create_attr *ft_attr, 319e1df1578SHamdan Igbaria struct mlx5dr_cmd_set_fte_attr *fte_attr); 320e1df1578SHamdan Igbaria 321e1df1578SHamdan Igbaria void mlx5dr_cmd_forward_tbl_destroy(struct mlx5dr_cmd_forward_tbl *tbl); 322e1df1578SHamdan Igbaria 323e1df1578SHamdan Igbaria struct mlx5dr_devx_obj * 32425cb2d2aSHamdan Igbaria mlx5dr_cmd_packet_reformat_create(struct ibv_context *ctx, 32525cb2d2aSHamdan Igbaria struct mlx5dr_cmd_packet_reformat_create_attr *attr); 32625cb2d2aSHamdan Igbaria 32725cb2d2aSHamdan Igbaria struct mlx5dr_devx_obj * 3282b2ce5ddSHamdan Igbaria mlx5dr_cmd_set_fte(struct ibv_context *ctx, 3292b2ce5ddSHamdan Igbaria uint32_t table_type, 3302b2ce5ddSHamdan Igbaria uint32_t table_id, 3312b2ce5ddSHamdan Igbaria uint32_t group_id, 3322b2ce5ddSHamdan Igbaria struct mlx5dr_cmd_set_fte_attr *fte_attr); 3332b2ce5ddSHamdan Igbaria 3342b2ce5ddSHamdan Igbaria struct mlx5dr_cmd_forward_tbl * 3352b2ce5ddSHamdan Igbaria mlx5dr_cmd_forward_tbl_create(struct ibv_context *ctx, 3362b2ce5ddSHamdan Igbaria struct mlx5dr_cmd_ft_create_attr *ft_attr, 3372b2ce5ddSHamdan Igbaria struct mlx5dr_cmd_set_fte_attr *fte_attr); 3382b2ce5ddSHamdan Igbaria 3392b2ce5ddSHamdan Igbaria void mlx5dr_cmd_forward_tbl_destroy(struct mlx5dr_cmd_forward_tbl *tbl); 3402b2ce5ddSHamdan Igbaria 3412b2ce5ddSHamdan Igbaria struct mlx5dr_devx_obj * 342ed695274SYevgeny Kliteynik mlx5dr_cmd_alias_obj_create(struct ibv_context *ctx, 343ed695274SYevgeny Kliteynik struct mlx5dr_cmd_alias_obj_create_attr *alias_attr); 344ed695274SYevgeny Kliteynik 345365cdf5fSErez Shitrit int mlx5dr_cmd_sq_modify_rdy(struct mlx5dr_devx_obj *devx_obj); 346365cdf5fSErez Shitrit 347365cdf5fSErez Shitrit int mlx5dr_cmd_query_ib_port(struct ibv_context *ctx, 348365cdf5fSErez Shitrit struct mlx5dr_cmd_query_vport_caps *vport_caps, 349365cdf5fSErez Shitrit uint32_t port_num); 350365cdf5fSErez Shitrit int mlx5dr_cmd_query_caps(struct ibv_context *ctx, 351365cdf5fSErez Shitrit struct mlx5dr_cmd_query_caps *caps); 352365cdf5fSErez Shitrit 353365cdf5fSErez Shitrit void mlx5dr_cmd_set_attr_connect_miss_tbl(struct mlx5dr_context *ctx, 354365cdf5fSErez Shitrit uint32_t fw_ft_type, 355365cdf5fSErez Shitrit enum mlx5dr_table_type type, 356365cdf5fSErez Shitrit struct mlx5dr_cmd_ft_modify_attr *ft_attr); 357720439d8SYevgeny Kliteynik 358720439d8SYevgeny Kliteynik int mlx5dr_cmd_allow_other_vhca_access(struct ibv_context *ctx, 359720439d8SYevgeny Kliteynik struct mlx5dr_cmd_allow_other_vhca_access_attr *attr); 360365cdf5fSErez Shitrit #endif /* MLX5DR_CMD_H_ */ 361