[dpdk-dev] [PATCH v3 1/2] common/mlx5: add rte internal tag and avoid comparison
Ophir Munk
ophirmu at mellanox.com
Thu May 7 10:56:33 CEST 2020
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.
Fixes: 7b4f1e6bd367 ("common/mlx5: introduce common library")
Signed-off-by: Ophir Munk <ophirmu at mellanox.com>
Acked-by: Matan Azrad <matan at mellanox.com>
---
v3: add "Fixes" and "Acked-by" to commit message
devtools/libabigail.abignore | 7 +++++++
drivers/common/mlx5/mlx5_common.h | 3 +++
drivers/common/mlx5/mlx5_devx_cmds.h | 23 +++++++++++++++++++++++
drivers/common/mlx5/mlx5_nl.h | 18 +++++++++++++++++-
drivers/common/mlx5/rte_common_mlx5_version.map | 6 +++---
5 files changed, 53 insertions(+), 4 deletions(-)
diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 0326662..f22d540 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -35,3 +35,10 @@
type_kind = enum
name = rte_eth_event_type
changed_enumerators = RTE_ETH_EVENT_MAX
+
+; These functions were moved from stable to internal.
+; Avoid loading the symbols and comparing them.
+; This is a temporary exception till DPDK 20.11
+[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 c2d688a..b37b820 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_devx_cmds.h b/drivers/common/mlx5/mlx5_devx_cmds.h
index f7802e6..6dc27da 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 2c3f837..53021e1 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 564a9a7..61d1d4d 100644
--- a/drivers/common/mlx5/rte_common_mlx5_version.map
+++ b/drivers/common/mlx5/rte_common_mlx5_version.map
@@ -1,8 +1,10 @@
-DPDK_21 {
+INTERNAL {
global:
mlx5_class_get;
+ mlx5_dev_to_pci_addr;
+
mlx5_devx_cmd_create_cq;
mlx5_devx_cmd_create_qp;
mlx5_devx_cmd_create_rq;
@@ -27,8 +29,6 @@ DPDK_21 {
mlx5_devx_cmd_query_virtq;
mlx5_devx_get_out_command_status;
- mlx5_dev_to_pci_addr;
-
mlx5_nl_allmulti;
mlx5_nl_devlink_family_id_get;
mlx5_nl_driver_reload;
--
2.8.4
More information about the dev
mailing list