get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 103878,
    "url": "https://patches.dpdk.org/api/patches/103878/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20211105153039.186885-3-bingz@nvidia.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<20211105153039.186885-3-bingz@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20211105153039.186885-3-bingz@nvidia.com",
    "date": "2021-11-05T15:30:39",
    "name": "[v7,2/2] net/mlx5: check delay drop settings in kernel driver",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "8e7f337d078b481e403a9f7a85443bd98792851f",
    "submitter": {
        "id": 1976,
        "url": "https://patches.dpdk.org/api/people/1976/?format=api",
        "name": "Bing Zhao",
        "email": "bingz@nvidia.com"
    },
    "delegate": {
        "id": 319,
        "url": "https://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20211105153039.186885-3-bingz@nvidia.com/mbox/",
    "series": [
        {
            "id": 20347,
            "url": "https://patches.dpdk.org/api/series/20347/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=20347",
            "date": "2021-11-05T15:30:37",
            "name": "Add delay drop support for Rx queue",
            "version": 7,
            "mbox": "https://patches.dpdk.org/series/20347/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/103878/comments/",
    "check": "warning",
    "checks": "https://patches.dpdk.org/api/patches/103878/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 37B0AA0C55;\n\tFri,  5 Nov 2021 16:31:21 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 95A48426D9;\n\tFri,  5 Nov 2021 16:31:07 +0100 (CET)",
            "from NAM12-BN8-obe.outbound.protection.outlook.com\n (mail-bn8nam12on2086.outbound.protection.outlook.com [40.107.237.86])\n by mails.dpdk.org (Postfix) with ESMTP id D69D7426D8\n for <dev@dpdk.org>; Fri,  5 Nov 2021 16:31:05 +0100 (CET)",
            "from BN9PR03CA0052.namprd03.prod.outlook.com (2603:10b6:408:fb::27)\n by MWHPR12MB1502.namprd12.prod.outlook.com (2603:10b6:301:10::20)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10; Fri, 5 Nov\n 2021 15:31:02 +0000",
            "from BN8NAM11FT046.eop-nam11.prod.protection.outlook.com\n (2603:10b6:408:fb:cafe::54) by BN9PR03CA0052.outlook.office365.com\n (2603:10b6:408:fb::27) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend\n Transport; Fri, 5 Nov 2021 15:31:02 +0000",
            "from mail.nvidia.com (216.228.112.34) by\n BN8NAM11FT046.mail.protection.outlook.com (10.13.177.127) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id\n 15.20.4669.10 via Frontend Transport; Fri, 5 Nov 2021 15:31:01 +0000",
            "from nvidia.com (172.20.187.5) by HQMAIL107.nvidia.com\n (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Fri, 5 Nov\n 2021 15:30:59 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=AY9ik3zrR5lDTmM4hxVaCjFNVyJhYANOdXxV370UnYwlZgGgIyKL6xhj/Zgpk+xAAd2Ptp6PhDbNH5by4X/el8LOketdTEJpmN2T8wW8aWxuWZv3GOhjCFPjVrya/rFN+++FFfiO69naScJlsW8/Ia3gZjCFggsdHxffwn4SGLdNZzWMEvs6Ray+JIHHrawCxWWmExkGhlon8tPkS1aGvaa2fSvIrCtyWVxDJgKpX6F6a3ZJF/xmTIgTOkbORpbSsNbr+m86AxnG/m/DvodnQHP175WjkjxmJgXAHdj6MvQIV1uk2DdnnPYFe4XWZ3hpqU+U2KGiZfy/XWlvnrMabw==",
        "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=wzzxuwMVQt0QtCPJKYYEIC2pEoI1BSqt81qpCWQ5Wp8=;\n b=II6RdQS5ElM3V1suHtcqm/r2m8zHoXj30zPPPMNtcXqaNSKNxB+vJ5ax5WYXE66tSBSRsubY7KmhLSxSUAW4fWKmxFs8eotAHYrGC42aBuyLQ8v2InFm9mdHRIwjdz7IN2Fw6H101D+fi4jQ4wzkm7WWhP5n+Ytdjs5fs4uoyeDU+QzgJ+XNDxVsZn7Mcac1HzWPg7137DhqkjZO93EXBDVKDAj2msNa40XhbiKqwVyoJzNBkbhHx3t82u6muwkAwP5EavaqMs8U0FTIrHteONLUqwM6VqIWpxNplgouuGZE6gf58KIq/a2OKyC2Kw4d/OOl/AMWSxcmB4HogJ/sIw==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.112.34) smtp.rcpttodomain=monjalon.net smtp.mailfrom=nvidia.com;\n dmarc=pass (p=quarantine sp=quarantine pct=100) action=none\n header.from=nvidia.com; dkim=none (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=wzzxuwMVQt0QtCPJKYYEIC2pEoI1BSqt81qpCWQ5Wp8=;\n b=tLU5u4fX//l7CEkOzulHvzUknhPU99ijPGEjokYS+ADG/42qdbTueY5XmLwOoT1C0tGF2XNL+oEYsGD2bnhSoH8oJ756s95JecZpTuHzBU0o8ik3iUV0F81wmWvTTVQMJkSyRjclDyEIOvv/LRFVdO8qsiWIAKDvfkwRKt4JLZ9BseuzNey3Xh15qXmL4AjExNi9mBBJhBfdHOv13xgFzZ9J2ophGGI9QMWZ5Kp8vE+bScdHG79iXqm+BuvFcVmcDU3vl4RQqXDS6kX+iT/sL+vMjkr8SyTWIu0nII8eOkKhCkJvXqfshZG92+qwRTsMuOdcD0NI/vZxfBFkJMRO7A==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 216.228.112.34)\n smtp.mailfrom=nvidia.com; monjalon.net; dkim=none (message not signed)\n header.d=none;monjalon.net; dmarc=pass action=none header.from=nvidia.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of nvidia.com designates\n 216.228.112.34 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.112.34; helo=mail.nvidia.com;",
        "From": "Bing Zhao <bingz@nvidia.com>",
        "To": "<viacheslavo@nvidia.com>, <matan@nvidia.com>",
        "CC": "<dev@dpdk.org>, <rasland@nvidia.com>, <thomas@monjalon.net>,\n <orika@nvidia.com>",
        "Date": "Fri, 5 Nov 2021 17:30:39 +0200",
        "Message-ID": "<20211105153039.186885-3-bingz@nvidia.com>",
        "X-Mailer": "git-send-email 2.27.0",
        "In-Reply-To": "<20211105153039.186885-1-bingz@nvidia.com>",
        "References": "<20211104112644.17278-1-bingz@nvidia.com>\n <20211105153039.186885-1-bingz@nvidia.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[172.20.187.5]",
        "X-ClientProxiedBy": "HQMAIL107.nvidia.com (172.20.187.13) To\n HQMAIL107.nvidia.com (172.20.187.13)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "812844ed-a81f-45a5-601b-08d9a0714645",
        "X-MS-TrafficTypeDiagnostic": "MWHPR12MB1502:",
        "X-LD-Processed": "43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr",
        "X-Microsoft-Antispam-PRVS": "\n <MWHPR12MB150273539DA60CD5478D88EFD08E9@MWHPR12MB1502.namprd12.prod.outlook.com>",
        "X-MS-Oob-TLC-OOBClassifiers": "OLM:7691;",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n ow7Q75xXQt3Gf+w1hmHt385pP+arvz5QQAjoB65vZAi6Mm9DNu0zZm1KR9R+KSYSGeuxwIDkphuoptwHPi0qN8Uwr25qF1YumOHMKhnylmd4UtxBF2HOef7LLtZinERY28sC0ggQuOgofG2D47J2fmRbyNryk9mWR7w8TLCd2rzThZwDZK8EaYBRqf27FAManhN2JrhhPNWvkiyOmF7NEukcIH8aSDRB5a6rww0hfxN3XS9wRY6eCONQH3ijDzsrwpCpMjrqz+Fj6Km9VwVGSU/yyz/5qK5j6XAA7cd7/r0v32K3DGUIfAF08+laIoUe8oLx0aO3NFaNzqo2xRX9AvN/66oWH1OuEbKfREW1qHp2oa+dmwkcBIl7kAlbqPYRZQqw77lRUn4FKkcnB+EuidLfF4hyYIR36Am3K92zFM6HIsaDkOqxusYLxYGgblTNzjFj3c25uMlpwFaoquMQooDnPJOudLfklps6PfnB1qfoC+l25XK/AUSBG2xUkyaKj6enAk7p21GhoMCx8HJwVY/QSmLrQa++6/3yT2Umn+rOf1kfw+OMjxhnJsIwH/7NNZ4yZTUPNKdJeKoQVI4ljcmAwiSFybsHlOjXd0LkYipqoZ+j+W1H+A01bMYKruTBiXFbZADOuW7AmhkbF3dekGVAIwLmeegNzTyZ20QuU8bo9GceZH9aNDsRNmsDEokEMCoreHAmRxZh0VfcdxHYTg==",
        "X-Forefront-Antispam-Report": "CIP:216.228.112.34; CTRY:US; LANG:en; SCL:1;\n SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid03.nvidia.com; CAT:NONE;\n SFS:(4636009)(46966006)(36840700001)(82310400003)(107886003)(8936002)(16526019)(186003)(336012)(6286002)(4326008)(1076003)(316002)(86362001)(83380400001)(47076005)(508600001)(6666004)(7696005)(36756003)(26005)(36860700001)(7636003)(6636002)(55016002)(356005)(110136005)(2616005)(8676002)(2906002)(70206006)(70586007)(5660300002)(54906003)(426003);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "05 Nov 2021 15:31:01.8737 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 812844ed-a81f-45a5-601b-08d9a0714645",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.34];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n BN8NAM11FT046.eop-nam11.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "MWHPR12MB1502",
        "Subject": "[dpdk-dev] [PATCH v7 2/2] net/mlx5: check delay drop settings in\n kernel driver",
        "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",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "The delay drop is the common feature managed on per device basis\nand the kernel driver is responsible one for the initialization and\nrearming.\n\nBy default, the timeout value is set to activate the delay drop when\nthe driver is loaded.\n\nA private flag \"dropless_rq\" is used to control the rearming. Only\nwhen it is on, the rearming will be handled once received a timeout\nevent. Or else, the delay drop will be deactivated after the first\ntimeout occurs and all the Rx queues won't have this feature.\n\nThe PMD is trying to query this flag and warn the application when\nsome queues are created with delay drop but the flag is off.\n\nSigned-off-by: Bing Zhao <bingz@nvidia.com>\nAcked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>\n---\n doc/guides/nics/mlx5.rst                  |  16 ++++\n drivers/net/mlx5/linux/mlx5_ethdev_os.c   | 111 ++++++++++++++++++++++\n drivers/net/mlx5/mlx5.h                   |   1 +\n drivers/net/mlx5/mlx5_trigger.c           |  18 ++++\n drivers/net/mlx5/windows/mlx5_ethdev_os.c |  17 ++++\n 5 files changed, 163 insertions(+)",
    "diff": "diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst\nindex 0ecd4f8738..82dda457c0 100644\n--- a/doc/guides/nics/mlx5.rst\n+++ b/doc/guides/nics/mlx5.rst\n@@ -619,6 +619,22 @@ Driver options\n   The packets being received will not be dropped immediately when the WQEs are\n   exhausted in a Rx queue with delay drop enabled.\n \n+  A timeout value is set in the driver to control the waiting time before\n+  dropping a packet. Once the timer is expired, the delay drop will be\n+  deactivated for all the Rx queues with this feature enable. To re-activeate\n+  it, a rearming is needed and it is part of the kernel driver starting from\n+  OFED 5.5.\n+\n+  To enable / disable the delay drop rearming, the private flag ``dropless_rq``\n+  can be set and queried via ethtool:\n+\n+  - ethtool --set-priv-flags <netdev> dropless_rq on (/ off)\n+  - ethtool --show-priv-flags <netdev>\n+\n+  The configuration flag is global per PF and can only be set on the PF, once\n+  it is on, all the VFs', SFs' and representors' Rx queues will share the timer\n+  and rearming.\n+\n - ``mprq_en`` parameter [int]\n \n   A nonzero value enables configuring Multi-Packet Rx queues. Rx queue is\ndiff --git a/drivers/net/mlx5/linux/mlx5_ethdev_os.c b/drivers/net/mlx5/linux/mlx5_ethdev_os.c\nindex 9d0e491d0c..c19825ee52 100644\n--- a/drivers/net/mlx5/linux/mlx5_ethdev_os.c\n+++ b/drivers/net/mlx5/linux/mlx5_ethdev_os.c\n@@ -1630,3 +1630,114 @@ mlx5_get_mac(struct rte_eth_dev *dev, uint8_t (*mac)[RTE_ETHER_ADDR_LEN])\n \tmemcpy(mac, request.ifr_hwaddr.sa_data, RTE_ETHER_ADDR_LEN);\n \treturn 0;\n }\n+\n+/*\n+ * Query dropless_rq private flag value provided by ETHTOOL.\n+ *\n+ * @param dev\n+ *   Pointer to Ethernet device.\n+ *\n+ * @return\n+ *   - 0 on success, flag is not set.\n+ *   - 1 on success, flag is set.\n+ *   - negative errno value otherwise and rte_errno is set.\n+ */\n+int mlx5_get_flag_dropless_rq(struct rte_eth_dev *dev)\n+{\n+\tstruct {\n+\t\tstruct ethtool_sset_info hdr;\n+\t\tuint32_t buf[1];\n+\t} sset_info;\n+\tstruct ethtool_drvinfo drvinfo;\n+\tstruct ifreq ifr;\n+\tstruct ethtool_gstrings *strings = NULL;\n+\tstruct ethtool_value flags;\n+\tconst int32_t flag_len = sizeof(flags.data) * CHAR_BIT;\n+\tint32_t str_sz;\n+\tint32_t len;\n+\tint32_t i;\n+\tint ret;\n+\n+\tsset_info.hdr.cmd = ETHTOOL_GSSET_INFO;\n+\tsset_info.hdr.reserved = 0;\n+\tsset_info.hdr.sset_mask = 1ULL << ETH_SS_PRIV_FLAGS;\n+\tifr.ifr_data = (caddr_t)&sset_info;\n+\tret = mlx5_ifreq(dev, SIOCETHTOOL, &ifr);\n+\tif (!ret) {\n+\t\tconst uint32_t *sset_lengths = sset_info.hdr.data;\n+\n+\t\tlen = sset_info.hdr.sset_mask ? sset_lengths[0] : 0;\n+\t} else if (ret == -EOPNOTSUPP) {\n+\t\tdrvinfo.cmd = ETHTOOL_GDRVINFO;\n+\t\tifr.ifr_data = (caddr_t)&drvinfo;\n+\t\tret = mlx5_ifreq(dev, SIOCETHTOOL, &ifr);\n+\t\tif (ret) {\n+\t\t\tDRV_LOG(WARNING, \"port %u cannot get the driver info\",\n+\t\t\t\tdev->data->port_id);\n+\t\t\tgoto exit;\n+\t\t}\n+\t\tlen = *(uint32_t *)((char *)&drvinfo +\n+\t\t\toffsetof(struct ethtool_drvinfo, n_priv_flags));\n+\t} else {\n+\t\tDRV_LOG(WARNING, \"port %u cannot get the sset info\",\n+\t\t\tdev->data->port_id);\n+\t\tgoto exit;\n+\t}\n+\tif (!len) {\n+\t\tDRV_LOG(WARNING, \"port %u does not have private flag\",\n+\t\t\tdev->data->port_id);\n+\t\trte_errno = EOPNOTSUPP;\n+\t\tret = -rte_errno;\n+\t\tgoto exit;\n+\t} else if (len > flag_len) {\n+\t\tDRV_LOG(WARNING, \"port %u maximal private flags number is %d\",\n+\t\t\tdev->data->port_id, flag_len);\n+\t\tlen = flag_len;\n+\t}\n+\tstr_sz = ETH_GSTRING_LEN * len;\n+\tstrings = (struct ethtool_gstrings *)\n+\t\t  mlx5_malloc(0, str_sz + sizeof(struct ethtool_gstrings), 0,\n+\t\t\t      SOCKET_ID_ANY);\n+\tif (!strings) {\n+\t\tDRV_LOG(WARNING, \"port %u unable to allocate memory for\"\n+\t\t\t\" private flags\", dev->data->port_id);\n+\t\trte_errno = ENOMEM;\n+\t\tret = -rte_errno;\n+\t\tgoto exit;\n+\t}\n+\tstrings->cmd = ETHTOOL_GSTRINGS;\n+\tstrings->string_set = ETH_SS_PRIV_FLAGS;\n+\tstrings->len = len;\n+\tifr.ifr_data = (caddr_t)strings;\n+\tret = mlx5_ifreq(dev, SIOCETHTOOL, &ifr);\n+\tif (ret) {\n+\t\tDRV_LOG(WARNING, \"port %u unable to get private flags strings\",\n+\t\t\tdev->data->port_id);\n+\t\tgoto exit;\n+\t}\n+\tfor (i = 0; i < len; i++) {\n+\t\tstrings->data[(i + 1) * ETH_GSTRING_LEN - 1] = 0;\n+\t\tif (!strcmp((const char *)strings->data + i * ETH_GSTRING_LEN,\n+\t\t\t     \"dropless_rq\"))\n+\t\t\tbreak;\n+\t}\n+\tif (i == len) {\n+\t\tDRV_LOG(WARNING, \"port %u does not support dropless_rq\",\n+\t\t\tdev->data->port_id);\n+\t\trte_errno = EOPNOTSUPP;\n+\t\tret = -rte_errno;\n+\t\tgoto exit;\n+\t}\n+\tflags.cmd = ETHTOOL_GPFLAGS;\n+\tifr.ifr_data = (caddr_t)&flags;\n+\tret = mlx5_ifreq(dev, SIOCETHTOOL, &ifr);\n+\tif (ret) {\n+\t\tDRV_LOG(WARNING, \"port %u unable to get private flags status\",\n+\t\t\tdev->data->port_id);\n+\t\tgoto exit;\n+\t}\n+\tret = !!(flags.data & (1U << i));\n+exit:\n+\tmlx5_free(strings);\n+\treturn ret;\n+}\ndiff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h\nindex b2022f3300..9307a4f95b 100644\n--- a/drivers/net/mlx5/mlx5.h\n+++ b/drivers/net/mlx5/mlx5.h\n@@ -1602,6 +1602,7 @@ int mlx5_os_read_dev_stat(struct mlx5_priv *priv,\n int mlx5_os_read_dev_counters(struct rte_eth_dev *dev, uint64_t *stats);\n int mlx5_os_get_stats_n(struct rte_eth_dev *dev);\n void mlx5_os_stats_init(struct rte_eth_dev *dev);\n+int mlx5_get_flag_dropless_rq(struct rte_eth_dev *dev);\n \n /* mlx5_mac.c */\n \ndiff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c\nindex a3e62e9533..0ecc530043 100644\n--- a/drivers/net/mlx5/mlx5_trigger.c\n+++ b/drivers/net/mlx5/mlx5_trigger.c\n@@ -1129,6 +1129,24 @@ mlx5_dev_start(struct rte_eth_dev *dev)\n \t\t\tdev->data->port_id, strerror(rte_errno));\n \t\tgoto error;\n \t}\n+\tif (priv->config.std_delay_drop || priv->config.hp_delay_drop) {\n+\t\tif (!priv->config.vf && !priv->config.sf &&\n+\t\t    !priv->representor) {\n+\t\t\tret = mlx5_get_flag_dropless_rq(dev);\n+\t\t\tif (ret < 0)\n+\t\t\t\tDRV_LOG(WARNING,\n+\t\t\t\t\t\"port %u cannot query dropless flag\",\n+\t\t\t\t\tdev->data->port_id);\n+\t\t\telse if (!ret)\n+\t\t\t\tDRV_LOG(WARNING,\n+\t\t\t\t\t\"port %u dropless_rq OFF, no rearming\",\n+\t\t\t\t\tdev->data->port_id);\n+\t\t} else {\n+\t\t\tDRV_LOG(DEBUG,\n+\t\t\t\t\"port %u doesn't support dropless_rq flag\",\n+\t\t\t\tdev->data->port_id);\n+\t\t}\n+\t}\n \tret = mlx5_rxq_start(dev);\n \tif (ret) {\n \t\tDRV_LOG(ERR, \"port %u Rx queue allocation failed: %s\",\ndiff --git a/drivers/net/mlx5/windows/mlx5_ethdev_os.c b/drivers/net/mlx5/windows/mlx5_ethdev_os.c\nindex fddc7a6b12..359f73df7c 100644\n--- a/drivers/net/mlx5/windows/mlx5_ethdev_os.c\n+++ b/drivers/net/mlx5/windows/mlx5_ethdev_os.c\n@@ -389,3 +389,20 @@ mlx5_is_removed(struct rte_eth_dev *dev)\n \t\treturn 1;\n \treturn 0;\n }\n+\n+/*\n+ * Query dropless_rq private flag value provided by ETHTOOL.\n+ *\n+ * @param dev\n+ *   Pointer to Ethernet device.\n+ *\n+ * @return\n+ *   - 0 on success, flag is not set.\n+ *   - 1 on success, flag is set.\n+ *   - negative errno value otherwise and rte_errno is set.\n+ */\n+int mlx5_get_flag_dropless_rq(struct rte_eth_dev *dev)\n+{\n+\tRTE_SET_USED(dev);\n+\treturn -ENOTSUP;\n+}\n",
    "prefixes": [
        "v7",
        "2/2"
    ]
}