get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/108186/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 108186,
    "url": "http://patches.dpdk.org/api/patches/108186/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20220223164333.3834590-2-dkozlyuk@nvidia.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20220223164333.3834590-2-dkozlyuk@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220223164333.3834590-2-dkozlyuk@nvidia.com",
    "date": "2022-02-23T16:43:31",
    "name": "[1/3] common/mlx5: add Netlink event helpers",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "c9413f1e913579322bb2a2d29865840b5915d833",
    "submitter": {
        "id": 2248,
        "url": "http://patches.dpdk.org/api/people/2248/?format=api",
        "name": "Dmitry Kozlyuk",
        "email": "dkozlyuk@nvidia.com"
    },
    "delegate": {
        "id": 3268,
        "url": "http://patches.dpdk.org/api/users/3268/?format=api",
        "username": "rasland",
        "first_name": "Raslan",
        "last_name": "Darawsheh",
        "email": "rasland@nvidia.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20220223164333.3834590-2-dkozlyuk@nvidia.com/mbox/",
    "series": [
        {
            "id": 21833,
            "url": "http://patches.dpdk.org/api/series/21833/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=21833",
            "date": "2022-02-23T16:43:30",
            "name": "net/mlx5: fix link state detection",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/21833/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/108186/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/108186/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id DF6B3A00C3;\n\tWed, 23 Feb 2022 17:43:51 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id E50A3411AE;\n\tWed, 23 Feb 2022 17:43:45 +0100 (CET)",
            "from NAM12-MW2-obe.outbound.protection.outlook.com\n (mail-mw2nam12on2040.outbound.protection.outlook.com [40.107.244.40])\n by mails.dpdk.org (Postfix) with ESMTP id D020741145;\n Wed, 23 Feb 2022 17:43:43 +0100 (CET)",
            "from MW4PR03CA0169.namprd03.prod.outlook.com (2603:10b6:303:8d::24)\n by MWHPR1201MB2476.namprd12.prod.outlook.com (2603:10b6:300:de::23)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.16; Wed, 23 Feb\n 2022 16:43:41 +0000",
            "from CO1NAM11FT055.eop-nam11.prod.protection.outlook.com\n (2603:10b6:303:8d:cafe::b3) by MW4PR03CA0169.outlook.office365.com\n (2603:10b6:303:8d::24) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.23 via Frontend\n Transport; Wed, 23 Feb 2022 16:43:41 +0000",
            "from mail.nvidia.com (12.22.5.234) by\n CO1NAM11FT055.mail.protection.outlook.com (10.13.175.129) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id\n 15.20.5017.22 via Frontend Transport; Wed, 23 Feb 2022 16:43:41 +0000",
            "from rnnvmail205.nvidia.com (10.129.68.10) by DRHQMAIL101.nvidia.com\n (10.27.9.10) with Microsoft SMTP Server (TLS) id 15.0.1497.18;\n Wed, 23 Feb 2022 16:43:40 +0000",
            "from rnnvmail203.nvidia.com (10.129.68.9) by rnnvmail205.nvidia.com\n (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.9; Wed, 23 Feb 2022\n 08:43:38 -0800",
            "from nvidia.com (10.127.8.11) by mail.nvidia.com (10.129.68.9) with\n Microsoft SMTP Server id 15.2.986.9 via Frontend Transport;\n Wed, 23 Feb 2022 08:43:37 -0800"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=nX51ZlXhifqoBln4wSbad/Ca/F+i++tQnaC0qfqf08v19JRJcQDHnfTog6pUGCT/U6cS00PbUFMccPF9VR6YCb7Bd2q3haHlIMWWvKXROukd22xJxZ5Lf1BnmhgihSqbhJ+MQlJ5RgxhFFYbO/STvYnrKuin2KkP6R0rlbIgdIw9xI0UU0cg/zlHpe6EBOhEbFRKGXuzLKoLxwQLD2DJSwEoSwNxi35Ptj35SJPgiSGxNuWrl/0swb0DT8PNc5nR8atOOkC/QyRW/plV24Ph++/ZFonC71NZlf4Iy9uK8RmRcXp0BIMLzI9qqen3xm9CZYbUYSC1rv9qqA32K6K6wg==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=TcHi5I83kVIBOFivhvcswbgcSNkbpV2Bqv1b3lkWLZA=;\n b=FtdWjY8Fmbv4veFhrKttzWqh2xugs9XT3XeWYs1UQZmDu9+/BIafj9oeCWYEoBhRMKSCMe2IKrxr9X836GE8FM6egr3vGk0yOGfwyBh/sPH9C1jnAgwidgfQYPDj2VrwmlXJrVtpmupc5Ta9QjSzd9Q5uLNP9i0DFWizhlGbeoMPGAQ9g44NvNpeW7+uCJjPWHIfhpfiGZDwC+1ieKTwvcn4Pb9OSM81VYIV82bskqoawjU1dubg4nFVIYiE/yfwrqugaWJT1CBn2TIveEZPo3vKIup5kxrCdknbmDPKLnl7Cfwx6i8wq+v3iyTHchMvekXS/2b9pcj2DHAMpA4fag==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 12.22.5.234) smtp.rcpttodomain=ashroe.eu smtp.mailfrom=nvidia.com; dmarc=pass\n (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none\n (message not signed); arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=TcHi5I83kVIBOFivhvcswbgcSNkbpV2Bqv1b3lkWLZA=;\n b=KR5Dx2pQXISiMQLW7C07os4azePck13aNo19x3PNGuO/dFheDHqqXUW73SaVf49HSr2Tmo/BQf2uCtkS9thQO31Rci+/HMfylyKHVRyQ8eIiRzWU4wiT1yS2gwPL2FY73OwcfLc2wnPw7sUtqlIhTay4f4yLQSkH8RbaV9RZ9hSZRBu/2ELAo7xgMSrgVSLG1zu22IFTyIGp+DntKvBZ6cAp5ZyVeGUCuYJp/ST3xrgfz1ZD7TYJ7LLa7y37Ujk7i5xdz2y2jL0sBeG3km6/+aATCdwY9+WCJ5/ba21QFA7MTe9PDCWQU2/7hpbfj3TSgWY49GlXXd3IqdLOiauIaQ==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 12.22.5.234)\n smtp.mailfrom=nvidia.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of nvidia.com designates\n 12.22.5.234 as permitted sender) receiver=protection.outlook.com;\n client-ip=12.22.5.234; helo=mail.nvidia.com;",
        "From": "Dmitry Kozlyuk <dkozlyuk@nvidia.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<stable@dpdk.org>, Viacheslav Ovsiienko <viacheslavo@nvidia.com>, \"Matan\n Azrad\" <matan@nvidia.com>, Ray Kinsella <mdr@ashroe.eu>",
        "Subject": "[PATCH 1/3] common/mlx5: add Netlink event helpers",
        "Date": "Wed, 23 Feb 2022 18:43:31 +0200",
        "Message-ID": "<20220223164333.3834590-2-dkozlyuk@nvidia.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20220223164333.3834590-1-dkozlyuk@nvidia.com>",
        "References": "<20220223164333.3834590-1-dkozlyuk@nvidia.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "62969588-6275-41c3-48b2-08d9f6eba5fd",
        "X-MS-TrafficTypeDiagnostic": "MWHPR1201MB2476:EE_",
        "X-Microsoft-Antispam-PRVS": "\n <MWHPR1201MB2476C2EA78831F75169F7516B93C9@MWHPR1201MB2476.namprd12.prod.outlook.com>",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n nWoP2jVheeg/ILuilNL0e4fOPwcW+RRKTkTAtaBkw4E4DAb5LL6r0c7D6eofqdlguclkJ7rjPPs1e0edgzW7P2X2MwacO6meY+16e08kN/Y4IoIKZJeQOjeGFS8epeoPOHFHdyJr8SqIIeymT+PKQNonPOjPTUy2yelzb+HT0Co/cPtRAhKXIn47j6g6mhivmPacti6Re+jZIef548Q23ahALMFjwU4d+DvYRyZesRDoMAR5hL7LYxnWYEpT5XVeU8deM6mPBQN4SAtVMNvgIlnnJK45X++wmwkCuyrwnNB7LCSvvv49yu3M141JRgWm7DKL9gBLQzi8nekLmf+uLzGorGWvAh+W0hT9FvP0323BClpLTXNr3sFszEVJwYbKehkVKCNgRlhtPX41MhKrhiTKYzkQCmUrqALbM1W0szdYknKhvuk7Mx3dBk6piL8WuFHyP9hFJtzsiIMBP/l9mBaathoEFqJKhytLokhSmDfJW2OZAQsHFYwMmaf9DYvw+f+/SrTeMKvHrtQmpskvoEarXJnsq3sMGBDSbIdcpHJBYqY49zJPvb4rEhPuKkNG4J6rgaw/Y+2jNhlExTey7mf1VJ47YOQ6xKmdZBlFLGVNfFcuFnUucg7IkgWiLkt1QZPGxVnTxrSBIwYpn3+0XABRrWd8WkW8gUqbsAz73t7LUhUQ9lV9n2WqPnxp7RUR9ZhTSbrMi1V3DxbrRcZRuPkN3ITBzkeaulsBEXGpLaQ9K57bsPoEl/7JfSyfS9xt",
        "X-Forefront-Antispam-Report": "CIP:12.22.5.234; CTRY:US; LANG:en; SCL:1; SRV:;\n IPV:CAL; SFV:NSPM; H:mail.nvidia.com; PTR:InfoNoRecords; CAT:NONE;\n SFS:(13230001)(4636009)(40470700004)(36840700001)(46966006)(36860700001)(426003)(6286002)(1076003)(336012)(6916009)(316002)(2616005)(55016003)(86362001)(36756003)(54906003)(5660300002)(40460700003)(83380400001)(26005)(186003)(47076005)(82310400004)(8936002)(2906002)(8676002)(6666004)(81166007)(70206006)(508600001)(4326008)(70586007)(356005)(7696005)(36900700001)(309714004);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "23 Feb 2022 16:43:41.1129 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 62969588-6275-41c3-48b2-08d9f6eba5fd",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[12.22.5.234];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n CO1NAM11FT055.eop-nam11.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "MWHPR1201MB2476",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "Introduce mlx5_nl_read_events() to read Netlink events\n(technically, messages) from a socket that was configured\nto listen for them via a new mlx5_nl_init() parameter.\nAdd mlx5_nl_parse_link_status_update() helper\nto extract information from link-related events.\nThis patch is a shared base for later fixes.\n\nCc: stable@dpdk.org\n\nSigned-off-by: Dmitry Kozlyuk <dkozlyuk@nvidia.com>\nReviewed-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>\n---\n drivers/common/mlx5/linux/mlx5_common_os.c |   2 +-\n drivers/common/mlx5/linux/mlx5_nl.c        | 102 ++++++++++++++++++++-\n drivers/common/mlx5/linux/mlx5_nl.h        |   8 +-\n drivers/common/mlx5/version.map            |   2 +\n drivers/net/mlx5/linux/mlx5_os.c           |   8 +-\n drivers/net/mlx5/linux/mlx5_vlan_os.c      |   2 +-\n 6 files changed, 116 insertions(+), 8 deletions(-)",
    "diff": "diff --git a/drivers/common/mlx5/linux/mlx5_common_os.c b/drivers/common/mlx5/linux/mlx5_common_os.c\nindex 0d3e24e04e..25e09bb55b 100644\n--- a/drivers/common/mlx5/linux/mlx5_common_os.c\n+++ b/drivers/common/mlx5/linux/mlx5_common_os.c\n@@ -487,7 +487,7 @@ mlx5_os_get_ibv_device(const struct rte_pci_addr *addr)\n static int\n mlx5_nl_roce_disable(const char *addr)\n {\n-\tint nlsk_fd = mlx5_nl_init(NETLINK_GENERIC);\n+\tint nlsk_fd = mlx5_nl_init(NETLINK_GENERIC, 0);\n \tint devlink_id;\n \tint enable;\n \tint ret;\ndiff --git a/drivers/common/mlx5/linux/mlx5_nl.c b/drivers/common/mlx5/linux/mlx5_nl.c\nindex fd4c2d2625..5d04857b38 100644\n--- a/drivers/common/mlx5/linux/mlx5_nl.c\n+++ b/drivers/common/mlx5/linux/mlx5_nl.c\n@@ -185,19 +185,22 @@ uint32_t atomic_sn;\n  *\n  * @param protocol\n  *   Netlink protocol (e.g. NETLINK_ROUTE, NETLINK_RDMA).\n+ * @param groups\n+ *   Groups to listen (e.g. RTMGRP_LINK), can be 0.\n  *\n  * @return\n  *   A file descriptor on success, a negative errno value otherwise and\n  *   rte_errno is set.\n  */\n int\n-mlx5_nl_init(int protocol)\n+mlx5_nl_init(int protocol, int groups)\n {\n \tint fd;\n \tint buf_size;\n \tsocklen_t opt_size;\n \tstruct sockaddr_nl local = {\n \t\t.nl_family = AF_NETLINK,\n+\t\t.nl_groups = groups,\n \t};\n \tint ret;\n \n@@ -1862,3 +1865,100 @@ mlx5_nl_enable_roce_set(int nlsk_fd, int family_id, const char *pci_addr,\n \t/* Now, need to reload the driver. */\n \treturn mlx5_nl_driver_reload(nlsk_fd, family_id, pci_addr);\n }\n+\n+/**\n+ * Try to parse a Netlink message as a link status update.\n+ *\n+ * @param hdr\n+ *  Netlink message header.\n+ * @param[out] ifindex\n+ *  Index of the updated interface.\n+ *\n+ * @return\n+ *  0 on success, negative on failure.\n+ */\n+int\n+mlx5_nl_parse_link_status_update(struct nlmsghdr *hdr, uint32_t *ifindex)\n+{\n+\tstruct ifinfomsg *info;\n+\n+\tswitch (hdr->nlmsg_type) {\n+\tcase RTM_NEWLINK:\n+\tcase RTM_DELLINK:\n+\tcase RTM_GETLINK:\n+\tcase RTM_SETLINK:\n+\t\tinfo = NLMSG_DATA(hdr);\n+\t\t*ifindex = info->ifi_index;\n+\t\treturn 0;\n+\t}\n+\treturn -1;\n+}\n+\n+/**\n+ * Read pending events from a Netlink socket.\n+ *\n+ * @param nlsk_fd\n+ *  Netlink socket.\n+ * @param cb\n+ *  Callback invoked for each of the events.\n+ * @param cb_arg\n+ *  User data for the callback.\n+ *\n+ * @return\n+ *  0 on success, including the case when there are no events.\n+ *  Negative on failure and rte_errno is set.\n+ */\n+int\n+mlx5_nl_read_events(int nlsk_fd, mlx5_nl_event_cb *cb, void *cb_arg)\n+{\n+\tchar buf[8192];\n+\tstruct sockaddr_nl addr;\n+\tstruct iovec iov = {\n+\t\t.iov_base = buf,\n+\t\t.iov_len = sizeof(buf),\n+\t};\n+\tstruct msghdr msg = {\n+\t\t.msg_name = &addr,\n+\t\t.msg_namelen = sizeof(addr),\n+\t\t.msg_iov = &iov,\n+\t\t.msg_iovlen = 1,\n+\t};\n+\tstruct nlmsghdr *hdr;\n+\tssize_t size;\n+\n+\twhile (1) {\n+\t\tsize = recvmsg(nlsk_fd, &msg, MSG_DONTWAIT);\n+\t\tif (size < 0) {\n+\t\t\tif (errno == EAGAIN)\n+\t\t\t\treturn 0;\n+\t\t\tif (errno == EINTR)\n+\t\t\t\tcontinue;\n+\t\t\tDRV_LOG(DEBUG, \"Failed to receive netlink message: %s\",\n+\t\t\t\tstrerror(errno));\n+\t\t\trte_errno = errno;\n+\t\t\treturn -rte_errno;\n+\t\t}\n+\t\thdr = (struct nlmsghdr *)buf;\n+\t\twhile (size >= (ssize_t)sizeof(*hdr)) {\n+\t\t\tssize_t msg_len = hdr->nlmsg_len;\n+\t\t\tssize_t data_len = msg_len - sizeof(*hdr);\n+\t\t\tssize_t aligned_len;\n+\n+\t\t\tif (data_len < 0) {\n+\t\t\t\tDRV_LOG(DEBUG, \"Netlink message too short\");\n+\t\t\t\trte_errno = EINVAL;\n+\t\t\t\treturn -rte_errno;\n+\t\t\t}\n+\t\t\taligned_len = NLMSG_ALIGN(msg_len);\n+\t\t\tif (aligned_len > size) {\n+\t\t\t\tDRV_LOG(DEBUG, \"Netlink message too long\");\n+\t\t\t\trte_errno = EINVAL;\n+\t\t\t\treturn -rte_errno;\n+\t\t\t}\n+\t\t\tcb(hdr, cb_arg);\n+\t\t\thdr = RTE_PTR_ADD(hdr, aligned_len);\n+\t\t\tsize -= aligned_len;\n+\t\t}\n+\t}\n+\treturn 0;\n+}\ndiff --git a/drivers/common/mlx5/linux/mlx5_nl.h b/drivers/common/mlx5/linux/mlx5_nl.h\nindex 2063c0deeb..0b7552338a 100644\n--- a/drivers/common/mlx5/linux/mlx5_nl.h\n+++ b/drivers/common/mlx5/linux/mlx5_nl.h\n@@ -11,6 +11,7 @@\n \n #include \"mlx5_common.h\"\n \n+typedef void (mlx5_nl_event_cb)(struct nlmsghdr *hdr, void *user_data);\n \n /* VLAN netdev for VLAN workaround. */\n struct mlx5_nl_vlan_dev {\n@@ -30,7 +31,7 @@ struct mlx5_nl_vlan_vmwa_context {\n };\n \n __rte_internal\n-int mlx5_nl_init(int protocol);\n+int mlx5_nl_init(int protocol, int groups);\n __rte_internal\n int mlx5_nl_mac_addr_add(int nlsk_fd, unsigned int iface_idx, uint64_t *mac_own,\n \t\t\t struct rte_ether_addr *mac, uint32_t index);\n@@ -75,4 +76,9 @@ int mlx5_nl_enable_roce_get(int nlsk_fd, int family_id, const char *pci_addr,\n int mlx5_nl_enable_roce_set(int nlsk_fd, int family_id, const char *pci_addr,\n \t\t\t    int enable);\n \n+__rte_internal\n+int mlx5_nl_read_events(int nlsk_fd, mlx5_nl_event_cb *cb, void *cb_arg);\n+__rte_internal\n+int mlx5_nl_parse_link_status_update(struct nlmsghdr *hdr, uint32_t *ifindex);\n+\n #endif /* RTE_PMD_MLX5_NL_H_ */\ndiff --git a/drivers/common/mlx5/version.map b/drivers/common/mlx5/version.map\nindex 462b7cea5e..d9b7ccacde 100644\n--- a/drivers/common/mlx5/version.map\n+++ b/drivers/common/mlx5/version.map\n@@ -123,9 +123,11 @@ INTERNAL {\n \tmlx5_nl_mac_addr_flush; # WINDOWS_NO_EXPORT\n \tmlx5_nl_mac_addr_remove; # WINDOWS_NO_EXPORT\n \tmlx5_nl_mac_addr_sync; # WINDOWS_NO_EXPORT\n+\tmlx5_nl_parse_link_status_update; # WINDOWS_NO_EXPORT\n \tmlx5_nl_port_state; # WINDOWS_NO_EXPORT\n \tmlx5_nl_portnum; # WINDOWS_NO_EXPORT\n \tmlx5_nl_promisc; # WINDOWS_NO_EXPORT\n+\tmlx5_nl_read_events; # WINDOWS_NO_EXPORT\n \tmlx5_nl_switch_info; # WINDOWS_NO_EXPORT\n \tmlx5_nl_vf_mac_addr_modify; # WINDOWS_NO_EXPORT\n \tmlx5_nl_vlan_vmwa_create; # WINDOWS_NO_EXPORT\ndiff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c\nindex bbe05bb837..602473e8f7 100644\n--- a/drivers/net/mlx5/linux/mlx5_os.c\n+++ b/drivers/net/mlx5/linux/mlx5_os.c\n@@ -1086,7 +1086,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,\n \t\t\" old OFED/rdma-core version or firmware configuration\");\n #endif\n \tconfig->mpls_en = mpls_en;\n-\tnl_rdma = mlx5_nl_init(NETLINK_RDMA);\n+\tnl_rdma = mlx5_nl_init(NETLINK_RDMA, 0);\n \t/* Check port status. */\n \tif (spawn->phys_port <= UINT8_MAX) {\n \t\t/* Legacy Verbs api only support u8 port number. */\n@@ -1133,7 +1133,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,\n \tpriv->mtu = RTE_ETHER_MTU;\n \t/* Some internal functions rely on Netlink sockets, open them now. */\n \tpriv->nl_socket_rdma = nl_rdma;\n-\tpriv->nl_socket_route =\tmlx5_nl_init(NETLINK_ROUTE);\n+\tpriv->nl_socket_route =\tmlx5_nl_init(NETLINK_ROUTE, 0);\n \tpriv->representor = !!switch_info->representor;\n \tpriv->master = !!switch_info->master;\n \tpriv->domain_id = RTE_ETH_DEV_SWITCH_DOMAIN_ID_INVALID;\n@@ -2130,8 +2130,8 @@ mlx5_os_pci_probe_pf(struct mlx5_common_device *cdev,\n \t * matching ones, gathering into the list.\n \t */\n \tstruct ibv_device *ibv_match[ret + 1];\n-\tint nl_route = mlx5_nl_init(NETLINK_ROUTE);\n-\tint nl_rdma = mlx5_nl_init(NETLINK_RDMA);\n+\tint nl_route = mlx5_nl_init(NETLINK_ROUTE, 0);\n+\tint nl_rdma = mlx5_nl_init(NETLINK_RDMA, 0);\n \tunsigned int i;\n \n \twhile (ret-- > 0) {\ndiff --git a/drivers/net/mlx5/linux/mlx5_vlan_os.c b/drivers/net/mlx5/linux/mlx5_vlan_os.c\nindex 005904bdfe..7ee2460a23 100644\n--- a/drivers/net/mlx5/linux/mlx5_vlan_os.c\n+++ b/drivers/net/mlx5/linux/mlx5_vlan_os.c\n@@ -136,7 +136,7 @@ mlx5_vlan_vmwa_init(struct rte_eth_dev *dev, uint32_t ifindex)\n \t\treturn NULL;\n \t}\n \trte_spinlock_init(&vmwa->sl);\n-\tvmwa->nl_socket = mlx5_nl_init(NETLINK_ROUTE);\n+\tvmwa->nl_socket = mlx5_nl_init(NETLINK_ROUTE, 0);\n \tif (vmwa->nl_socket < 0) {\n \t\tDRV_LOG(WARNING,\n \t\t\t\"Can not create Netlink socket\"\n",
    "prefixes": [
        "1/3"
    ]
}