From: Ophir Munk Date: Thu, 7 May 2020 11:31:12 +0000 (+0000) Subject: common/mlx5: mark internal symbols X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=64c563f8b1aa59d12b83884d815e1f8486099bde;p=dpdk.git common/mlx5: mark internal symbols Move mlx5 symbols in the map file to the INTERNAL section and add __internal tags to their definitions. Those symbols were exported in 20.02 and now (20.05) they are removed. Avoid ABI comparison issues between 20.05/20.08 and 20.02 by adding the suppress_file directive to libabigail.abignore file. This directive will prevent loading mlx5 common symbols and no comparison will be performed. In addition move symbols from the EXPERIMENTAL section to the INTERNAL section. Fixes: 7b4f1e6bd367 ("common/mlx5: introduce common library") Signed-off-by: Ophir Munk Acked-by: Matan Azrad --- diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore index e2ca73db2d..a365acd56d 100644 --- a/devtools/libabigail.abignore +++ b/devtools/libabigail.abignore @@ -49,8 +49,14 @@ [suppress_variable] name = rte_crypto_aead_algorithm_strings +;;;;;;;;;;;;;;;;;;;;;; +; Temporary exceptions for new __rte_internal marking till DPDK 20.11 +;;;;;;;;;;;;;;;;;;;;;; ; Ignore moving OCTEONTX2 stable functions to INTERNAL tag [suppress_file] file_name_regexp = ^librte_common_octeontx2\. [suppress_file] file_name_regexp = ^librte_mempool_octeontx2\. +; Ignore moving mlx5 stable functions to INTERNAL +[suppress_file] + file_name_regexp = ^librte_common_mlx5\. diff --git a/drivers/common/mlx5/mlx5_common.h b/drivers/common/mlx5/mlx5_common.h index c2d688a9b3..b37b82096b 100644 --- a/drivers/common/mlx5/mlx5_common.h +++ b/drivers/common/mlx5/mlx5_common.h @@ -196,6 +196,7 @@ check_cqe(volatile struct mlx5_cqe *cqe, const uint16_t cqes_n, return MLX5_CQE_STATUS_SW_OWN; } +__rte_internal int mlx5_dev_to_pci_addr(const char *dev_path, struct rte_pci_addr *pci_addr); #define MLX5_CLASS_ARG_NAME "class" @@ -206,7 +207,9 @@ enum mlx5_class { MLX5_CLASS_INVALID, }; +__rte_internal enum mlx5_class mlx5_class_get(struct rte_devargs *devargs); +__rte_internal void mlx5_translate_port_name(const char *port_name_in, struct mlx5_switch_info *port_info_out); diff --git a/drivers/common/mlx5/mlx5_common_mp.h b/drivers/common/mlx5/mlx5_common_mp.h index 7aab77acb2..05466fdc90 100644 --- a/drivers/common/mlx5/mlx5_common_mp.h +++ b/drivers/common/mlx5/mlx5_common_mp.h @@ -79,20 +79,20 @@ mp_init_msg(struct mlx5_mp_id *mp_id, struct rte_mp_msg *msg, param->port_id = mp_id->port_id; } -__rte_experimental +__rte_internal int mlx5_mp_init_primary(const char *name, const rte_mp_t primary_action); -__rte_experimental +__rte_internal void mlx5_mp_uninit_primary(const char *name); -__rte_experimental +__rte_internal int mlx5_mp_init_secondary(const char *name, const rte_mp_t secondary_action); -__rte_experimental +__rte_internal void mlx5_mp_uninit_secondary(const char *name); -__rte_experimental +__rte_internal int mlx5_mp_req_mr_create(struct mlx5_mp_id *mp_id, uintptr_t addr); -__rte_experimental +__rte_internal int mlx5_mp_req_queue_state_modify(struct mlx5_mp_id *mp_id, struct mlx5_mp_arg_queue_state_modify *sm); -__rte_experimental +__rte_internal int mlx5_mp_req_verbs_cmd_fd(struct mlx5_mp_id *mp_id); #endif /* RTE_PMD_MLX5_COMMON_MP_H_ */ diff --git a/drivers/common/mlx5/mlx5_common_mr.h b/drivers/common/mlx5/mlx5_common_mr.h index e805f96375..4ea47cd920 100644 --- a/drivers/common/mlx5/mlx5_common_mr.h +++ b/drivers/common/mlx5/mlx5_common_mr.h @@ -115,42 +115,42 @@ mlx5_mr_lookup_lkey(struct mr_cache_entry *lkp_tbl, uint16_t *cached_idx, return UINT32_MAX; } -__rte_experimental +__rte_internal int mlx5_mr_btree_init(struct mlx5_mr_btree *bt, int n, int socket); -__rte_experimental +__rte_internal void mlx5_mr_btree_free(struct mlx5_mr_btree *bt); -__rte_experimental +__rte_internal void mlx5_mr_btree_dump(struct mlx5_mr_btree *bt __rte_unused); -__rte_experimental +__rte_internal uint32_t mlx5_mr_addr2mr_bh(struct ibv_pd *pd, struct mlx5_mp_id *mp_id, struct mlx5_mr_share_cache *share_cache, struct mlx5_mr_ctrl *mr_ctrl, uintptr_t addr, unsigned int mr_ext_memseg_en); -__rte_experimental +__rte_internal void mlx5_mr_release_cache(struct mlx5_mr_share_cache *mr_cache); -__rte_experimental +__rte_internal void mlx5_mr_dump_cache(struct mlx5_mr_share_cache *share_cache __rte_unused); -__rte_experimental +__rte_internal void mlx5_mr_rebuild_cache(struct mlx5_mr_share_cache *share_cache); -__rte_experimental +__rte_internal void mlx5_mr_flush_local_cache(struct mlx5_mr_ctrl *mr_ctrl); -__rte_experimental +__rte_internal int mlx5_mr_insert_cache(struct mlx5_mr_share_cache *share_cache, struct mlx5_mr *mr); -__rte_experimental +__rte_internal uint32_t mlx5_mr_lookup_cache(struct mlx5_mr_share_cache *share_cache, struct mr_cache_entry *entry, uintptr_t addr); -__rte_experimental +__rte_internal struct mlx5_mr * mlx5_mr_lookup_list(struct mlx5_mr_share_cache *share_cache, struct mr_cache_entry *entry, uintptr_t addr); -__rte_experimental +__rte_internal struct mlx5_mr * mlx5_create_mr_ext(struct ibv_pd *pd, uintptr_t addr, size_t len, int socket_id); -__rte_experimental +__rte_internal uint32_t mlx5_mr_create_primary(struct ibv_pd *pd, struct mlx5_mr_share_cache *share_cache, diff --git a/drivers/common/mlx5/mlx5_devx_cmds.h b/drivers/common/mlx5/mlx5_devx_cmds.h index f7802e6a60..6dc27da0fe 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.h +++ b/drivers/common/mlx5/mlx5_devx_cmds.h @@ -300,52 +300,75 @@ struct mlx5_devx_qp_attr { /* mlx5_devx_cmds.c */ +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_flow_counter_alloc(struct ibv_context *ctx, uint32_t bulk_sz); +__rte_internal int mlx5_devx_cmd_destroy(struct mlx5_devx_obj *obj); +__rte_internal int mlx5_devx_cmd_flow_counter_query(struct mlx5_devx_obj *dcs, int clear, uint32_t n_counters, uint64_t *pkts, uint64_t *bytes, uint32_t mkey, void *addr, struct mlx5dv_devx_cmd_comp *cmd_comp, uint64_t async_id); +__rte_internal int mlx5_devx_cmd_query_hca_attr(struct ibv_context *ctx, struct mlx5_hca_attr *attr); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_mkey_create(struct ibv_context *ctx, struct mlx5_devx_mkey_attr *attr); +__rte_internal int mlx5_devx_get_out_command_status(void *out); +__rte_internal int mlx5_devx_cmd_qp_query_tis_td(struct ibv_qp *qp, uint32_t tis_num, uint32_t *tis_td); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_rq(struct ibv_context *ctx, struct mlx5_devx_create_rq_attr *rq_attr, int socket); +__rte_internal int mlx5_devx_cmd_modify_rq(struct mlx5_devx_obj *rq, struct mlx5_devx_modify_rq_attr *rq_attr); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_tir(struct ibv_context *ctx, struct mlx5_devx_tir_attr *tir_attr); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_rqt(struct ibv_context *ctx, struct mlx5_devx_rqt_attr *rqt_attr); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_sq(struct ibv_context *ctx, struct mlx5_devx_create_sq_attr *sq_attr); +__rte_internal int mlx5_devx_cmd_modify_sq(struct mlx5_devx_obj *sq, struct mlx5_devx_modify_sq_attr *sq_attr); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_tis(struct ibv_context *ctx, struct mlx5_devx_tis_attr *tis_attr); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_td(struct ibv_context *ctx); +__rte_internal int mlx5_devx_cmd_flow_dump(void *fdb_domain, void *rx_domain, void *tx_domain, FILE *file); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_cq(struct ibv_context *ctx, struct mlx5_devx_cq_attr *attr); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_virtq(struct ibv_context *ctx, struct mlx5_devx_virtq_attr *attr); +__rte_internal int mlx5_devx_cmd_modify_virtq(struct mlx5_devx_obj *virtq_obj, struct mlx5_devx_virtq_attr *attr); +__rte_internal int mlx5_devx_cmd_query_virtq(struct mlx5_devx_obj *virtq_obj, struct mlx5_devx_virtq_attr *attr); +__rte_internal struct mlx5_devx_obj *mlx5_devx_cmd_create_qp(struct ibv_context *ctx, struct mlx5_devx_qp_attr *attr); +__rte_internal int mlx5_devx_cmd_modify_qp_state(struct mlx5_devx_obj *qp, uint32_t qp_st_mod_op, uint32_t remote_qp_id); +__rte_internal int mlx5_devx_cmd_modify_rqt(struct mlx5_devx_obj *rqt, struct mlx5_devx_rqt_attr *rqt_attr); diff --git a/drivers/common/mlx5/mlx5_nl.h b/drivers/common/mlx5/mlx5_nl.h index 2c3f837bb2..53021e1a71 100644 --- a/drivers/common/mlx5/mlx5_nl.h +++ b/drivers/common/mlx5/mlx5_nl.h @@ -28,35 +28,51 @@ struct mlx5_nl_vlan_vmwa_context { struct mlx5_nl_vlan_dev vlan_dev[4096]; }; - +__rte_internal int mlx5_nl_init(int protocol); +__rte_internal int mlx5_nl_mac_addr_add(int nlsk_fd, unsigned int iface_idx, uint64_t *mac_own, struct rte_ether_addr *mac, uint32_t index); +__rte_internal int mlx5_nl_mac_addr_remove(int nlsk_fd, unsigned int iface_idx, uint64_t *mac_own, struct rte_ether_addr *mac, uint32_t index); +__rte_internal void mlx5_nl_mac_addr_sync(int nlsk_fd, unsigned int iface_idx, struct rte_ether_addr *mac_addrs, int n); +__rte_internal void mlx5_nl_mac_addr_flush(int nlsk_fd, unsigned int iface_idx, struct rte_ether_addr *mac_addrs, int n, uint64_t *mac_own); +__rte_internal int mlx5_nl_promisc(int nlsk_fd, unsigned int iface_idx, int enable); +__rte_internal int mlx5_nl_allmulti(int nlsk_fd, unsigned int iface_idx, int enable); +__rte_internal unsigned int mlx5_nl_portnum(int nl, const char *name); +__rte_internal unsigned int mlx5_nl_ifindex(int nl, const char *name, uint32_t pindex); +__rte_internal int mlx5_nl_vf_mac_addr_modify(int nlsk_fd, unsigned int iface_idx, struct rte_ether_addr *mac, int vf_index); +__rte_internal int mlx5_nl_switch_info(int nl, unsigned int ifindex, struct mlx5_switch_info *info); +__rte_internal void mlx5_nl_vlan_vmwa_delete(struct mlx5_nl_vlan_vmwa_context *vmwa, uint32_t ifindex); +__rte_internal uint32_t mlx5_nl_vlan_vmwa_create(struct mlx5_nl_vlan_vmwa_context *vmwa, uint32_t ifindex, uint16_t tag); +__rte_internal int mlx5_nl_devlink_family_id_get(int nlsk_fd); +__rte_internal int mlx5_nl_enable_roce_get(int nlsk_fd, int family_id, const char *pci_addr, int *enable); +__rte_internal int mlx5_nl_driver_reload(int nlsk_fd, int family_id, const char *pci_addr); +__rte_internal int mlx5_nl_enable_roce_set(int nlsk_fd, int family_id, const char *pci_addr, int enable); diff --git a/drivers/common/mlx5/rte_common_mlx5_version.map b/drivers/common/mlx5/rte_common_mlx5_version.map index 564a9a7fb3..350e77140c 100644 --- a/drivers/common/mlx5/rte_common_mlx5_version.map +++ b/drivers/common/mlx5/rte_common_mlx5_version.map @@ -1,8 +1,12 @@ -DPDK_21 { +INTERNAL { global: mlx5_class_get; + mlx5_create_mr_ext; + + mlx5_dev_to_pci_addr; + mlx5_devx_cmd_create_cq; mlx5_devx_cmd_create_qp; mlx5_devx_cmd_create_rq; @@ -27,7 +31,26 @@ DPDK_21 { mlx5_devx_cmd_query_virtq; mlx5_devx_get_out_command_status; - mlx5_dev_to_pci_addr; + mlx5_mp_init_primary; + mlx5_mp_uninit_primary; + mlx5_mp_init_secondary; + mlx5_mp_uninit_secondary; + mlx5_mp_req_mr_create; + mlx5_mp_req_queue_state_modify; + mlx5_mp_req_verbs_cmd_fd; + + mlx5_mr_btree_init; + mlx5_mr_btree_free; + mlx5_mr_btree_dump; + mlx5_mr_addr2mr_bh; + mlx5_mr_release_cache; + mlx5_mr_dump_cache; + mlx5_mr_rebuild_cache; + mlx5_mr_insert_cache; + mlx5_mr_lookup_cache; + mlx5_mr_lookup_list; + mlx5_mr_create_primary; + mlx5_mr_flush_local_cache; mlx5_nl_allmulti; mlx5_nl_devlink_family_id_get; @@ -48,31 +71,5 @@ DPDK_21 { mlx5_nl_vlan_vmwa_delete; mlx5_translate_port_name; - }; -EXPERIMENTAL { - global: - - mlx5_mp_init_primary; - mlx5_mp_uninit_primary; - mlx5_mp_init_secondary; - mlx5_mp_uninit_secondary; - mlx5_mp_req_mr_create; - mlx5_mp_req_queue_state_modify; - mlx5_mp_req_verbs_cmd_fd; - - mlx5_mr_btree_init; - mlx5_mr_btree_free; - mlx5_mr_btree_dump; - mlx5_mr_addr2mr_bh; - mlx5_mr_release_cache; - mlx5_mr_dump_cache; - mlx5_mr_rebuild_cache; - mlx5_mr_insert_cache; - mlx5_mr_lookup_cache; - mlx5_mr_lookup_list; - mlx5_create_mr_ext; - mlx5_mr_create_primary; - mlx5_mr_flush_local_cache; -};