| # SPDX-License-Identifier: (GPL-2.0 OR Linux-OpenIB) |
| # Copyright (c) 2019 Mellanox Technologies, Inc. All rights reserved. See COPYING file |
| |
| include 'mlx5dv_enums.pxd' |
| |
| from libc.stdint cimport uint8_t, uint16_t, uint32_t, uint64_t, uintptr_t |
| from posix.types cimport off_t |
| from libcpp cimport bool |
| cimport libc.stdio as s |
| |
| cimport pyverbs.libibverbs as v |
| |
| |
| cdef extern from 'infiniband/mlx5dv.h': |
| |
| cdef struct mlx5dv_context_attr: |
| unsigned int flags |
| unsigned long comp_mask |
| |
| cdef struct mlx5dv_cqe_comp_caps: |
| unsigned int max_num |
| unsigned int supported_format |
| |
| cdef struct mlx5dv_sw_parsing_caps: |
| unsigned int sw_parsing_offloads |
| unsigned int supported_qpts |
| |
| cdef struct mlx5dv_striding_rq_caps: |
| unsigned int min_single_stride_log_num_of_bytes |
| unsigned int max_single_stride_log_num_of_bytes |
| unsigned int min_single_wqe_log_num_of_strides |
| unsigned int max_single_wqe_log_num_of_strides |
| unsigned int supported_qpts |
| |
| cdef struct mlx5dv_dci_streams_caps: |
| uint8_t max_log_num_concurent |
| uint8_t max_log_num_errored |
| |
| cdef struct mlx5dv_crypto_caps: |
| uint16_t failed_selftests |
| uint8_t crypto_engines |
| uint8_t wrapped_import_method |
| uint8_t log_max_num_deks |
| uint32_t flags |
| |
| cdef struct mlx5dv_context: |
| unsigned char version |
| unsigned long flags |
| unsigned long comp_mask |
| mlx5dv_cqe_comp_caps cqe_comp_caps |
| mlx5dv_sw_parsing_caps sw_parsing_caps |
| mlx5dv_striding_rq_caps striding_rq_caps |
| mlx5dv_dci_streams_caps dci_streams_caps |
| unsigned int tunnel_offloads_caps |
| unsigned int max_dynamic_bfregs |
| unsigned long max_clock_info_update_nsec |
| unsigned int flow_action_flags |
| unsigned int dc_odp_caps |
| uint8_t num_lag_ports |
| mlx5dv_crypto_caps crypto_caps |
| size_t max_wr_memcpy_length |
| uint64_t max_dc_rd_atom |
| uint64_t max_dc_init_rd_atom |
| |
| |
| cdef struct mlx5dv_dci_streams: |
| uint8_t log_num_concurent |
| uint8_t log_num_errored |
| |
| cdef struct mlx5dv_dc_init_attr: |
| mlx5dv_dc_type dc_type |
| unsigned long dct_access_key |
| mlx5dv_dci_streams dci_streams |
| |
| cdef struct mlx5dv_qp_init_attr: |
| unsigned long comp_mask |
| unsigned int create_flags |
| mlx5dv_dc_init_attr dc_init_attr |
| unsigned long send_ops_flags |
| |
| cdef struct mlx5dv_cq_init_attr: |
| unsigned long comp_mask |
| unsigned char cqe_comp_res_format |
| unsigned int flags |
| unsigned short cqe_size |
| |
| cdef struct mlx5dv_var: |
| uint32_t page_id |
| uint32_t length |
| long mmap_off |
| uint64_t comp_mask |
| |
| cdef struct mlx5dv_pp: |
| uint16_t index |
| |
| cdef struct mlx5dv_devx_uar: |
| void *reg_addr; |
| void *base_addr; |
| uint32_t page_id; |
| long mmap_off; |
| uint64_t comp_mask; |
| |
| cdef struct mlx5dv_qp_ex: |
| uint64_t comp_mask |
| |
| cdef struct mlx5dv_sched_node |
| |
| cdef struct mlx5dv_sched_leaf |
| |
| cdef struct mlx5dv_sched_attr: |
| mlx5dv_sched_node *parent; |
| uint32_t flags; |
| uint32_t bw_share; |
| uint32_t max_avg_bw; |
| uint64_t comp_mask; |
| |
| cdef struct mlx5dv_reg: |
| uint32_t value; |
| uint32_t mask; |
| |
| cdef struct mlx5dv_port: |
| uint64_t flags |
| uint16_t vport |
| uint16_t vport_vhca_id |
| uint16_t esw_owner_vhca_id |
| uint64_t vport_steering_icm_rx |
| uint64_t vport_steering_icm_tx |
| mlx5dv_reg reg_c0 |
| |
| cdef struct mlx5dv_flow_match_parameters: |
| size_t match_sz; |
| uint64_t *match_buf; |
| |
| cdef struct mlx5dv_flow_matcher_attr: |
| v.ibv_flow_attr_type type; |
| uint32_t flags; |
| uint16_t priority; |
| uint8_t match_criteria_enable; |
| mlx5dv_flow_match_parameters *match_mask; |
| uint64_t comp_mask; |
| mlx5_ib_uapi_flow_table_type ft_type; |
| |
| cdef struct mlx5dv_flow_matcher |
| |
| cdef struct mlx5dv_devx_obj |
| |
| cdef struct mlx5dv_flow_action_attr: |
| mlx5dv_flow_action_type type |
| v.ibv_qp *qp |
| v.ibv_flow_action *action |
| unsigned int tag_value |
| mlx5dv_devx_obj *obj |
| |
| cdef struct mlx5dv_dr_domain |
| |
| cdef struct mlx5dv_dr_table |
| |
| cdef struct mlx5dv_dr_matcher |
| |
| cdef struct mlx5dv_dr_matcher_layout: |
| uint32_t flags |
| uint32_t log_num_of_rules_hint |
| |
| cdef struct mlx5dv_dr_action |
| |
| cdef struct mlx5dv_dr_rule |
| |
| cdef struct mlx5dv_dr_action_dest_reformat: |
| mlx5dv_dr_action *reformat |
| mlx5dv_dr_action *dest |
| |
| cdef struct mlx5dv_dr_action_dest_attr: |
| mlx5dv_dr_action_dest_type type |
| mlx5dv_dr_action *dest |
| mlx5dv_dr_action_dest_reformat *dest_reformat |
| |
| cdef struct mlx5dv_dr_flow_sampler_attr: |
| uint32_t sample_ratio |
| mlx5dv_dr_table *default_next_table |
| uint32_t num_sample_actions |
| mlx5dv_dr_action **sample_actions |
| uint64_t action |
| |
| cdef struct mlx5dv_clock_info: |
| pass |
| |
| cdef struct mlx5dv_mkey_init_attr: |
| v.ibv_pd *pd |
| uint32_t create_flags |
| uint16_t max_entries |
| |
| cdef struct mlx5dv_mkey: |
| uint32_t lkey |
| uint32_t rkey |
| |
| cdef struct mlx5dv_mr_interleaved: |
| uint64_t addr |
| uint32_t bytes_count |
| uint32_t bytes_skip |
| uint32_t lkey |
| |
| cdef struct mlx5dv_mkey_conf_attr: |
| uint32_t conf_flags |
| uint64_t comp_mask |
| |
| cdef struct mlx5dv_sig_crc: |
| mlx5dv_sig_crc_type type |
| uint64_t seed |
| |
| cdef struct mlx5dv_sig_t10dif: |
| mlx5dv_sig_t10dif_bg_type bg_type |
| uint16_t bg |
| uint16_t app_tag |
| uint32_t ref_tag |
| uint16_t flags |
| |
| cdef union sig: |
| mlx5dv_sig_t10dif *dif |
| mlx5dv_sig_crc *crc |
| |
| cdef struct mlx5dv_sig_block_domain: |
| mlx5dv_sig_type sig_type |
| sig sig |
| mlx5dv_block_size block_size |
| uint64_t comp_mask |
| |
| cdef struct mlx5dv_sig_block_attr: |
| mlx5dv_sig_block_domain *mem |
| mlx5dv_sig_block_domain *wire |
| uint32_t flags |
| uint8_t check_mask |
| uint8_t copy_mask |
| uint64_t comp_mask |
| |
| cdef struct mlx5dv_sig_err: |
| uint64_t actual_value |
| uint64_t expected_value |
| uint64_t offset |
| |
| cdef union err: |
| mlx5dv_sig_err sig |
| |
| cdef struct mlx5dv_mkey_err: |
| mlx5dv_mkey_err_type err_type |
| err err |
| |
| cdef struct mlx5_wqe_data_seg: |
| uint32_t byte_count |
| uint32_t lkey |
| uint64_t addr |
| |
| cdef struct mlx5_wqe_ctrl_seg: |
| uint32_t opmod_idx_opcode |
| uint32_t qpn_ds |
| uint8_t signature |
| uint8_t fm_ce_se |
| uint32_t imm |
| |
| cdef struct mlx5dv_devx_umem: |
| uint32_t umem_id; |
| |
| cdef struct mlx5dv_devx_umem_in: |
| void *addr |
| size_t size |
| uint32_t access |
| uint64_t pgsz_bitmap |
| uint64_t comp_mask |
| int dmabuf_fd |
| |
| cdef struct mlx5dv_vfio_context_attr: |
| const char *pci_name |
| uint32_t flags |
| uint64_t comp_mask |
| |
| cdef struct mlx5dv_devx_msi_vector: |
| int vector |
| int fd |
| |
| cdef struct mlx5dv_devx_eq: |
| void *vaddr |
| |
| cdef struct mlx5dv_pd: |
| uint32_t pdn |
| uint64_t comp_mask |
| |
| cdef struct mlx5dv_cq: |
| void *buf |
| uint32_t *dbrec |
| uint32_t cqe_cnt |
| uint32_t cqe_size |
| void *cq_uar |
| uint32_t cqn |
| uint64_t comp_mask |
| |
| cdef struct mlx5dv_qp: |
| uint64_t comp_mask |
| off_t uar_mmap_offset |
| uint32_t tirn |
| uint32_t tisn |
| uint32_t rqn |
| uint32_t sqn |
| |
| cdef struct mlx5dv_srq: |
| uint32_t stride |
| uint32_t head |
| uint32_t tail |
| uint64_t comp_mask |
| uint32_t srqn |
| |
| cdef struct pd: |
| v.ibv_pd *in_ "in" |
| mlx5dv_pd *out |
| |
| cdef struct cq: |
| v.ibv_cq *in_ "in" |
| mlx5dv_cq *out |
| |
| cdef struct qp: |
| v.ibv_qp *in_ "in" |
| mlx5dv_qp *out |
| |
| cdef struct srq: |
| v.ibv_srq *in_ "in" |
| mlx5dv_srq *out |
| |
| cdef struct mlx5dv_obj: |
| pd pd |
| cq cq |
| qp qp |
| srq srq |
| |
| cdef struct mlx5_cqe64: |
| uint16_t wqe_id |
| uint32_t imm_inval_pkey |
| uint32_t byte_cnt |
| uint64_t timestamp |
| uint16_t wqe_counter |
| uint8_t signature |
| uint8_t op_own |
| |
| |
| void mlx5dv_set_ctrl_seg(mlx5_wqe_ctrl_seg *seg, uint16_t pi, uint8_t opcode, |
| uint8_t opmod, uint32_t qp_num, uint8_t fm_ce_se, |
| uint8_t ds, uint8_t signature, uint32_t imm) |
| void mlx5dv_set_data_seg(mlx5_wqe_data_seg *seg, uint32_t length, |
| uint32_t lkey, uintptr_t address) |
| uint8_t mlx5dv_get_cqe_owner(mlx5_cqe64 *cqe) |
| void mlx5dv_set_cqe_owner(mlx5_cqe64 *cqe, uint8_t val) |
| uint8_t mlx5dv_get_cqe_se(mlx5_cqe64 *cqe) |
| uint8_t mlx5dv_get_cqe_format(mlx5_cqe64 *cqe) |
| uint8_t mlx5dv_get_cqe_opcode(mlx5_cqe64 *cqe) |
| |
| cdef struct mlx5dv_dek: |
| pass |
| |
| cdef struct mlx5dv_crypto_login_obj: |
| pass |
| |
| cdef struct mlx5dv_crypto_login_attr: |
| uint32_t credential_id |
| uint32_t import_kek_id |
| char *credential |
| uint64_t comp_mask |
| |
| cdef struct mlx5dv_crypto_login_attr_ex: |
| uint32_t credential_id |
| uint32_t import_kek_id |
| const void *credential |
| size_t credential_len |
| uint64_t comp_mask |
| |
| cdef struct mlx5dv_crypto_login_query_attr: |
| mlx5dv_crypto_login_state state |
| uint64_t comp_mask |
| |
| cdef struct mlx5dv_crypto_attr: |
| mlx5dv_crypto_standard crypto_standard |
| bool encrypt_on_tx |
| mlx5dv_signature_crypto_order signature_crypto_order |
| mlx5dv_block_size data_unit_size |
| char *initial_tweak |
| mlx5dv_dek *dek |
| char *keytag |
| uint64_t comp_mask |
| |
| cdef struct mlx5dv_dek_init_attr: |
| mlx5dv_crypto_key_size key_size |
| bool has_keytag |
| mlx5dv_crypto_key_purpose key_purpose |
| v.ibv_pd *pd |
| char *opaque |
| char *key |
| uint64_t comp_mask |
| mlx5dv_crypto_login_obj *crypto_login |
| |
| cdef struct mlx5dv_dek_attr: |
| mlx5dv_dek_state state |
| char *opaque |
| uint64_t comp_mask |
| |
| bool mlx5dv_is_supported(v.ibv_device *device) |
| v.ibv_context* mlx5dv_open_device(v.ibv_device *device, |
| mlx5dv_context_attr *attr) |
| int mlx5dv_query_device(v.ibv_context *ctx, mlx5dv_context *attrs_out) |
| |
| v.ibv_qp *mlx5dv_create_qp(v.ibv_context *context, |
| v.ibv_qp_init_attr_ex *qp_attr, |
| mlx5dv_qp_init_attr *mlx5_qp_attr) |
| int mlx5dv_query_qp_lag_port(v.ibv_qp *qp, uint8_t *port_num, |
| uint8_t *active_port_num) |
| int mlx5dv_modify_qp_lag_port(v.ibv_qp *qp, uint8_t port_num) |
| int mlx5dv_modify_qp_udp_sport(v.ibv_qp *qp, uint16_t udp_sport) |
| int mlx5dv_dci_stream_id_reset(v.ibv_qp *qp, uint16_t stream_id) |
| v.ibv_cq_ex *mlx5dv_create_cq(v.ibv_context *context, |
| v.ibv_cq_init_attr_ex *cq_attr, |
| mlx5dv_cq_init_attr *mlx5_cq_attr) |
| void mlx5dv_wr_raw_wqe(mlx5dv_qp_ex *mqp_ex, const void *wqe) |
| mlx5dv_var *mlx5dv_alloc_var(v.ibv_context *context, uint32_t flags) |
| void mlx5dv_free_var(mlx5dv_var *dv_var) |
| mlx5dv_pp *mlx5dv_pp_alloc(v.ibv_context *context, size_t pp_context_sz, |
| const void *pp_context, uint32_t flags) |
| void mlx5dv_pp_free(mlx5dv_pp *pp) |
| void mlx5dv_wr_set_dc_addr(mlx5dv_qp_ex *mqp, v.ibv_ah *ah, |
| uint32_t remote_dctn, uint64_t remote_dc_key) |
| void mlx5dv_wr_set_dc_addr_stream(mlx5dv_qp_ex *mqp, v.ibv_ah *ah, |
| uint32_t remote_dctn, uint64_t remote_dc_key, |
| uint16_t stream_id) |
| void mlx5dv_wr_mr_interleaved(mlx5dv_qp_ex *mqp, mlx5dv_mkey *mkey, |
| uint32_t access_flags, uint32_t repeat_count, |
| uint16_t num_interleaved, mlx5dv_mr_interleaved *data) |
| void mlx5dv_wr_mr_list(mlx5dv_qp_ex *mqp, mlx5dv_mkey *mkey, |
| uint32_t access_flags, uint16_t num_sge, v.ibv_sge *sge) |
| void mlx5dv_wr_memcpy(mlx5dv_qp_ex *mqp, uint32_t dest_lkey, uint64_t dest_addr, |
| uint32_t src_lkey, uint64_t src_addr, uint64_t length) |
| mlx5dv_mkey *mlx5dv_create_mkey(mlx5dv_mkey_init_attr *mkey_init_attr) |
| int mlx5dv_destroy_mkey(mlx5dv_mkey *mkey) |
| mlx5dv_qp_ex *mlx5dv_qp_ex_from_ibv_qp_ex(v.ibv_qp_ex *qp_ex) |
| mlx5dv_sched_node *mlx5dv_sched_node_create(v.ibv_context *context, |
| mlx5dv_sched_attr *sched_attr) |
| mlx5dv_sched_leaf *mlx5dv_sched_leaf_create(v.ibv_context *context, |
| mlx5dv_sched_attr *sched_attr) |
| int mlx5dv_sched_node_modify(mlx5dv_sched_node *node, |
| mlx5dv_sched_attr *sched_attr) |
| int mlx5dv_sched_leaf_modify(mlx5dv_sched_leaf *leaf, |
| mlx5dv_sched_attr *sched_attr) |
| int mlx5dv_sched_node_destroy(mlx5dv_sched_node *node) |
| int mlx5dv_sched_leaf_destroy(mlx5dv_sched_leaf *leaf) |
| int mlx5dv_modify_qp_sched_elem(v.ibv_qp *qp, mlx5dv_sched_leaf *requestor, |
| mlx5dv_sched_leaf *responder) |
| int mlx5dv_reserved_qpn_alloc(v.ibv_context *context, uint32_t *qpn) |
| int mlx5dv_reserved_qpn_dealloc(v.ibv_context *context, uint32_t qpn) |
| void *mlx5dv_dm_map_op_addr(v.ibv_dm *dm, uint8_t op) |
| int mlx5dv_query_port(v.ibv_context *context, uint32_t port_num, mlx5dv_port *port) |
| mlx5dv_flow_matcher *mlx5dv_create_flow_matcher(v.ibv_context *context, |
| mlx5dv_flow_matcher_attr *matcher_attr) |
| int mlx5dv_destroy_flow_matcher(mlx5dv_flow_matcher *matcher) |
| v.ibv_flow *mlx5dv_create_flow(mlx5dv_flow_matcher *matcher, |
| mlx5dv_flow_match_parameters *match_value, |
| size_t num_actions, |
| mlx5dv_flow_action_attr actions_attr[]) |
| v.ibv_flow_action *mlx5dv_create_flow_action_packet_reformat(v.ibv_context *context, |
| size_t data_sz, |
| void *data, |
| unsigned char reformat_type, |
| unsigned char ft_type) |
| |
| # Direct rules verbs |
| mlx5dv_dr_domain *mlx5dv_dr_domain_create(v.ibv_context *ctx, mlx5dv_dr_domain_type type) |
| int mlx5dv_dr_domain_sync(mlx5dv_dr_domain *domain, uint32_t flags) |
| int mlx5dv_dump_dr_domain(s.FILE *fout, mlx5dv_dr_domain *domain) |
| int mlx5dv_dr_domain_destroy(mlx5dv_dr_domain *dmn) |
| mlx5dv_dr_table *mlx5dv_dr_table_create(mlx5dv_dr_domain *dmn, uint32_t level) |
| int mlx5dv_dr_table_destroy(mlx5dv_dr_table *tbl) |
| mlx5dv_dr_matcher *mlx5dv_dr_matcher_create(mlx5dv_dr_table *table, |
| uint16_t priority, |
| uint8_t match_criteria_enable, |
| mlx5dv_flow_match_parameters *mask) |
| int mlx5dv_dr_matcher_set_layout(mlx5dv_dr_matcher *matcher, mlx5dv_dr_matcher_layout *layout) |
| int mlx5dv_dr_matcher_destroy(mlx5dv_dr_matcher *matcher) |
| mlx5dv_dr_action *mlx5dv_dr_action_create_dest_ibv_qp(v.ibv_qp *ibqp) |
| mlx5dv_dr_action *mlx5dv_dr_action_create_tag(uint32_t tag_value) |
| mlx5dv_dr_action *mlx5dv_dr_action_create_dest_table(mlx5dv_dr_table *tbl) |
| mlx5dv_dr_action *mlx5dv_dr_action_create_pop_vlan() |
| mlx5dv_dr_action *mlx5dv_dr_action_create_push_vlan(mlx5dv_dr_domain *dmn, |
| uint32_t vlan_hdr) |
| mlx5dv_dr_action *mlx5dv_dr_action_create_dest_array( |
| mlx5dv_dr_domain *domain, size_t num_dest, |
| mlx5dv_dr_action_dest_attr *dests[]) |
| int mlx5dv_dr_action_destroy(mlx5dv_dr_action *action) |
| mlx5dv_dr_rule *mlx5dv_dr_rule_create(mlx5dv_dr_matcher *matcher, |
| mlx5dv_flow_match_parameters *value, |
| size_t num_actions, |
| mlx5dv_dr_action *actions[]) |
| mlx5dv_dr_action *mlx5dv_dr_action_create_modify_header(mlx5dv_dr_domain *dmn, uint32_t flags, |
| size_t actions_sz, uint64_t actions[]) |
| mlx5dv_dr_action *mlx5dv_dr_action_create_flow_counter(mlx5dv_devx_obj *devx_obj, |
| uint32_t offset) |
| mlx5dv_dr_action *mlx5dv_dr_action_create_drop() |
| mlx5dv_dr_action *mlx5dv_dr_action_create_default_miss() |
| mlx5dv_dr_action *mlx5dv_dr_action_create_dest_vport(mlx5dv_dr_domain *dmn, |
| uint32_t vport) |
| mlx5dv_dr_action *mlx5dv_dr_action_create_dest_ib_port(mlx5dv_dr_domain *dmn, |
| uint32_t ib_port) |
| mlx5dv_dr_action *mlx5dv_dr_action_create_packet_reformat(mlx5dv_dr_domain *domain, |
| uint32_t flags, |
| unsigned char reformat_type, |
| size_t data_sz, void *data) |
| int mlx5dv_dr_rule_destroy(mlx5dv_dr_rule *rule) |
| void mlx5dv_dr_domain_allow_duplicate_rules(mlx5dv_dr_domain *dmn, bool allow) |
| |
| uint64_t mlx5dv_ts_to_ns(mlx5dv_clock_info *clock_info, |
| uint64_t device_timestamp) |
| int mlx5dv_get_clock_info(v.ibv_context *ctx_in, mlx5dv_clock_info *clock_info) |
| int mlx5dv_map_ah_to_qp(v.ibv_ah *ah, uint32_t qp_num) |
| v.ibv_device **mlx5dv_get_vfio_device_list(mlx5dv_vfio_context_attr *attr) |
| int mlx5dv_vfio_get_events_fd(v.ibv_context *ibctx) |
| int mlx5dv_vfio_process_events(v.ibv_context *context) |
| mlx5dv_dr_action *mlx5dv_dr_action_create_dest_devx_tir(mlx5dv_devx_obj *devx_obj) |
| mlx5dv_dr_action *mlx5dv_dr_action_create_flow_sampler(mlx5dv_dr_flow_sampler_attr *attr) |
| |
| # DevX APIs |
| mlx5dv_devx_uar *mlx5dv_devx_alloc_uar(v.ibv_context *context, uint32_t flags) |
| void mlx5dv_devx_free_uar(mlx5dv_devx_uar *devx_uar) |
| int mlx5dv_devx_general_cmd(v.ibv_context *context, const void *in_, |
| size_t inlen, void *out, size_t outlen) |
| mlx5dv_devx_umem *mlx5dv_devx_umem_reg(v.ibv_context *ctx, void *addr, |
| size_t size, unsigned long access) |
| mlx5dv_devx_umem *mlx5dv_devx_umem_reg_ex(v.ibv_context *ctx, |
| mlx5dv_devx_umem_in *umem_in) |
| int mlx5dv_devx_umem_dereg(mlx5dv_devx_umem *umem) |
| int mlx5dv_devx_query_eqn(v.ibv_context *context, uint32_t vector, uint32_t *eqn) |
| mlx5dv_devx_obj *mlx5dv_devx_obj_create(v.ibv_context *context, const void *_in, |
| size_t inlen, void *out, size_t outlen) |
| int mlx5dv_devx_obj_query(mlx5dv_devx_obj *obj, const void *in_, |
| size_t inlen, void *out, size_t outlen) |
| int mlx5dv_devx_obj_modify(mlx5dv_devx_obj *obj, const void *in_, |
| size_t inlen, void *out, size_t outlen) |
| int mlx5dv_devx_obj_destroy(mlx5dv_devx_obj *obj) |
| int mlx5dv_init_obj(mlx5dv_obj *obj, uint64_t obj_type) |
| mlx5dv_devx_msi_vector *mlx5dv_devx_alloc_msi_vector(v.ibv_context *ibctx) |
| int mlx5dv_devx_free_msi_vector(mlx5dv_devx_msi_vector *msi) |
| mlx5dv_devx_eq *mlx5dv_devx_create_eq(v.ibv_context *context, const void *_in, |
| size_t inlen, void *out, size_t outlen) |
| int mlx5dv_devx_destroy_eq(mlx5dv_devx_eq *eq) |
| |
| # Mkey setters |
| void mlx5dv_wr_mkey_configure(mlx5dv_qp_ex *mqp, mlx5dv_mkey *mkey, |
| int num_setters, mlx5dv_mkey_conf_attr *attr) |
| void mlx5dv_wr_set_mkey_access_flags(mlx5dv_qp_ex *mqp, uint32_t access_flags) |
| void mlx5dv_wr_set_mkey_layout_list(mlx5dv_qp_ex *mqp, uint16_t num_sges, v.ibv_sge *sge) |
| void mlx5dv_wr_set_mkey_layout_interleaved(mlx5dv_qp_ex *mqp, uint32_t repeat_count, |
| uint16_t num_interleaved, |
| mlx5dv_mr_interleaved *data) |
| void mlx5dv_wr_set_mkey_sig_block(mlx5dv_qp_ex *mqp, mlx5dv_sig_block_attr *attr) |
| int mlx5dv_mkey_check(mlx5dv_mkey *mkey, mlx5dv_mkey_err *err_info) |
| int mlx5dv_qp_cancel_posted_send_wrs(mlx5dv_qp_ex *mqp, uint64_t wr_id) |
| void mlx5dv_wr_set_mkey_crypto(mlx5dv_qp_ex *mqp, mlx5dv_crypto_attr *attr) |
| |
| # Crypto APIs |
| int mlx5dv_crypto_login(v.ibv_context *context, mlx5dv_crypto_login_attr *login_attr) |
| int mlx5dv_crypto_login_query_state(v.ibv_context *context, mlx5dv_crypto_login_state *state) |
| int mlx5dv_crypto_logout(v.ibv_context *context) |
| mlx5dv_dek *mlx5dv_dek_create(v.ibv_context *context, mlx5dv_dek_init_attr *init_attr) |
| int mlx5dv_dek_query(mlx5dv_dek *dek, mlx5dv_dek_attr *attr) |
| int mlx5dv_dek_destroy(mlx5dv_dek *dek) |
| mlx5dv_crypto_login_obj *mlx5dv_crypto_login_create(v.ibv_context *context, |
| mlx5dv_crypto_login_attr_ex *login_attr) |
| int mlx5dv_crypto_login_query(mlx5dv_crypto_login_obj *crypto_login, |
| mlx5dv_crypto_login_query_attr *query_attr) |
| int mlx5dv_crypto_login_destroy(mlx5dv_crypto_login_obj *crypto_login) |