From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 511FDA00C5; Thu, 7 May 2020 09:37:31 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 073A01DA7D; Thu, 7 May 2020 09:37:21 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80075.outbound.protection.outlook.com [40.107.8.75]) by dpdk.org (Postfix) with ESMTP id A6B6F1DA60 for ; Thu, 7 May 2020 09:37:18 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=N/lm9+ANwWTvF8qpKknySq2y1ftBKzZHDmxJVkzUSvC/KrqbE3MG5Q5hRLeWj0EWLqC+quUW4ZApg2LgtPbG1EYnylin/mlnVu+J4KjcDmRYkq/WEBRKGcwtJMowGay7xZsWWMWWlDxKe9gxh/F5uK4cE7W+X3XXu7XIf333B9VS8n5o+CRCqy8pBI+KuG5AV7dTTzpwz8hIRSDFkm38fLRGqwtjA4iy/7SQBLQIn1HuSuvtcecUpHnBZ2l4G4JfUfISJyCFLiYgv69ukxXu1B0OSnvTBeMytTgn0BTK6wUM5mAC8yxpvj+Jx6E4p/BgoqfsLBR3S21MK9W4r320LA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lrwyBWH4iuEN80OsFumoIZt3HMq/MXTAICwkxDY2zNg=; b=iKWyZHk1+4rysY/0n8wMGm6KuUJyjwlUBiNN8Md+1wN1R/hyPrux/oW4hTD+c4w49hMfOUuwh/IZv92ImLxp4BDZaAE6mciy8h0QMMo3cIRtHQxEmTNGM9bY0tnCEhcDMQZ7qpFcxqLxPnpp7yxTiwFlSiEC6B5YGR8Lx9fOdJj9zvnyl3nZqZh2g1Wscv1aQAIRQVjAqYIeAepNhUwtdBbzR2t6esZLr22zt2VivmlUdWrTutIsMPF6xW+j55BNQZY69RMgdT6IvTWIcyJrjWJcMPXsOEeFVk0Nb1KfFfMFFQy1VOcezfED6d0KlX6bWLRDGeo4QhtS0AiSkTiS4A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lrwyBWH4iuEN80OsFumoIZt3HMq/MXTAICwkxDY2zNg=; b=gCYewwdCO2WV67eFsaRmo842Ob7FHqi45SIzEX2stmIuvyYbczSUAdkOZR0zMPvgweL3OMrkbfbuJ4ou3+HjoPIuFkGfyYNPx8XYZD9KGFfrdMWPczpjC4qv6USrn+yGz5XWwUZIkR7rnzIppwahCrdIt+h/wUZfLAkKeDIbics= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB4209.eurprd05.prod.outlook.com (2603:10a6:208:61::22) by AM0PR05MB4433.eurprd05.prod.outlook.com (2603:10a6:208:62::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2958.29; Thu, 7 May 2020 07:37:17 +0000 Received: from AM0PR05MB4209.eurprd05.prod.outlook.com ([fe80::1068:89a9:41d3:b14a]) by AM0PR05MB4209.eurprd05.prod.outlook.com ([fe80::1068:89a9:41d3:b14a%3]) with mapi id 15.20.2958.034; Thu, 7 May 2020 07:37:17 +0000 From: Ophir Munk To: dev@dpdk.org, David Marchand Cc: Ray Kinsella , Matan Azrad , Raslan Darawsheh , Thomas Monjalon , Ophir Munk Date: Thu, 7 May 2020 07:37:01 +0000 Message-Id: <20200507073702.4047-2-ophirmu@mellanox.com> X-Mailer: git-send-email 2.8.4 In-Reply-To: <20200507073702.4047-1-ophirmu@mellanox.com> References: <20200505112057.20901-1-ophirmu@mellanox.com> <20200507073702.4047-1-ophirmu@mellanox.com> Content-Type: text/plain X-ClientProxiedBy: PR0P264CA0153.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:1b::21) To AM0PR05MB4209.eurprd05.prod.outlook.com (2603:10a6:208:61::22) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from mellanox.com (37.142.13.130) by PR0P264CA0153.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:1b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.26 via Frontend Transport; Thu, 7 May 2020 07:37:15 +0000 X-Mailer: git-send-email 2.8.4 X-Originating-IP: [37.142.13.130] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 8702c273-4ecf-4c56-bd9d-08d7f2597777 X-MS-TrafficTypeDiagnostic: AM0PR05MB4433:|AM0PR05MB4433: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtFwd X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:619; X-Forefront-PRVS: 03965EFC76 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NdUcTyHKkmid5Y29iaPlj1bJdmRXnUY2tm+RUKAE9Tonlf5ApfzUokO2WsBOlRHNt9XjAAWysMe6V8ZCf36huPqQSYual/uBof4EztFA0bYxu26QHHXLl8ZTEFvlxC60qOxDyUkH/bf5COVsfd0b0oL7RxmfQRK1P1anL+VFCKmIzxZQJGQogn9SgNgakQE1trtx2P8UbdwucgUYZDi2kHYVQiNw1K3k4y43MZnGi6DpelsZ05mGKUSMFETalf81VMUfjMl1JSwdselGq4oz4/P/QnZCshxTOqYRluFj9r2cLnJjnebqFDVU8z5mTk/8fwo/eT/0ceW3uJkBv9iAznp64gG32DrGS51pUh4/oJ8oxRtUSZCZYHUF+X2mGzHN6YhatfbXYr8fZikC1WF2PG+LsWgW55vw3Jyu5J2TioOBux4BjT/E0AVSDiC1fxW85CSvO7kW99vdZiKgLLgeEeZL0lsD+i52IU6DLEqY+o31U5hOwrSXDfN+GrnuOF+vRPj11PUv8a0GsSJUzy6drw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR05MB4209.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(136003)(346002)(366004)(396003)(376002)(39860400002)(33430700001)(2906002)(5660300002)(478600001)(55016002)(36756003)(8676002)(52116002)(7696005)(26005)(8936002)(86362001)(16526019)(186003)(33440700001)(6916009)(8886007)(2616005)(956004)(54906003)(4326008)(107886003)(1076003)(316002)(83320400001)(66476007)(6666004)(66946007)(83300400001)(66556008)(83280400001)(83310400001)(83290400001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: whiyElmBX+UBi0gy4sJoM0omvden89EwJkYJ0IINrHq4C8JGrOQpwFaWME/q2TvKi+3dmuNa6azRQ0EgiJL9uPPVhTDAiyE1wZ/Snpe+p6PQq4t3pBfL5L9ScjEhZ6vdlo+frfFjlp9ylkIGXqlVIaGuzmXJUSRN+YXPZzBn1AUh7WAks1O5WhQpXM7FFSzPPrSnQBuAxJKJsIa3dPH6SpojD1aqpDtFd3cvDckZUpiFnf73ceF2Kw7CYWmDlsEOoAqpGeqO8Gw2l0Z2BSXGQf0hnCjjjbb4uYDqY7HVXQ84wExzbvJfjNxsjH206NC7kMMJA05AIsdI8brRkGG+3/QwwMXKEFqCnqQFZ4p+94ZKVqa35UnV0r+pyNBTkIvLU/DHcvYpOMZ0RbDeSukyIAx3GLbXpwewuKYa1zFBhiDfHIZoTHUlRwOCh+nk+hRi7BAZxdHRHK7Dw43YqLXQ9kzCIGYbpPnLv3hft4qdF/Pxb9cMlRO5SeLQ1RUhlqYyCv1QlaVK8uTe8xw/PMceBCPy8eVbkl1b0Px7ueNMml1mkN4ROP+ok6QehVwCDKZW4jxNdz/f8E/EmxXM9rvgv3q85kQIKaKeslCBHgqosyfzmcChogp8//csugQO3Y+7hgWOocuQxI+9qvTokxAWG5zIanHKKbi/Z1A0CKLIVHdDpE10jRNU/ABA/kjMKAJSkjtXuS+3RztOElfmVIToENYoVUncQaM5n1AUFk5/TnZQOS+QF/1pOyCEPhFsC5jIJJNitMb//QQbPsDxJSrHHOUbXC/vMdUrLaGXhU8FFZc= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8702c273-4ecf-4c56-bd9d-08d7f2597777 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2020 07:37:16.9050 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ZHLwdS9aMoMvqPAD83/NkCjKP4xTws0hTOVPNQJFxGTdlE1WSVt/n4Oza2Y5XcW/vtJs7pz234C5tS4HjXiqLQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR05MB4433 Subject: [dpdk-dev] [PATCH v2 1/2] common/mlx5: add rte internal tag and avoid comparison X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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. Signed-off-by: Ophir Munk --- 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