get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 44991,
    "url": "https://patches.dpdk.org/api/patches/44991/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1537425577-86337-1-git-send-email-yogev@cgstowernetworks.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": "<1537425577-86337-1-git-send-email-yogev@cgstowernetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1537425577-86337-1-git-send-email-yogev@cgstowernetworks.com",
    "date": "2018-09-20T06:37:05",
    "name": "vmxnet3: stats_reset implementation",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "cdefe736cddbe85393c0a8b4b0282bcfd093b839",
    "submitter": {
        "id": 1103,
        "url": "https://patches.dpdk.org/api/people/1103/?format=api",
        "name": "Yogev Chaimovich",
        "email": "yogev@cgstowernetworks.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/1537425577-86337-1-git-send-email-yogev@cgstowernetworks.com/mbox/",
    "series": [
        {
            "id": 1407,
            "url": "https://patches.dpdk.org/api/series/1407/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=1407",
            "date": "2018-09-20T06:37:05",
            "name": "vmxnet3: stats_reset implementation",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/1407/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/44991/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/44991/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id F29955B30;\n\tThu, 20 Sep 2018 08:37:07 +0200 (CEST)",
            "from EUR03-VE1-obe.outbound.protection.outlook.com\n\t(mail-eopbgr50113.outbound.protection.outlook.com [40.107.5.113])\n\tby dpdk.org (Postfix) with ESMTP id A25495F14\n\tfor <dev@dpdk.org>; Thu, 20 Sep 2018 08:37:06 +0200 (CEST)",
            "from DB6PR0902MB1829.eurprd09.prod.outlook.com (10.171.76.22) by\n\tDB6PR0902MB1941.eurprd09.prod.outlook.com (10.170.210.30) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.1143.18; Thu, 20 Sep 2018 06:37:05 +0000",
            "from DB6PR0902MB1829.eurprd09.prod.outlook.com\n\t([fe80::74ab:46d4:3504:2872]) by\n\tDB6PR0902MB1829.eurprd09.prod.outlook.com\n\t([fe80::74ab:46d4:3504:2872%6]) with mapi id 15.20.1143.014;\n\tThu, 20 Sep 2018 06:37:05 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=cgstowernetworks.onmicrosoft.com; s=selector1-cgstowernetworks-com; \n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=2h3W3k9LHKQC0ggI7Ue8EeYDqPitnukKMYcN+Cl707g=;\n\tb=jOQLF3tZCKD/XmInKpUpnF30xem/4l4DMT27l4Y50SqPTmexTpAOfVhgw9Oi1bcHbvl3pzXJEQmpH/W2m6GTcVCbM+Mfiuz8gRHAkGVrZTswOi/AWamcL4ZW3coY2B55RbyRbAiFipenG79IgLHj0oJymB4T3fwZyDSOpBTV6aY=",
        "From": "Yogev Chaimovich <yogev@cgstowernetworks.com>",
        "To": "\"dev@dpdk.org\" <dev@dpdk.org>",
        "CC": "Yogev Chaimovich <yogev@cgstowernetworks.com>",
        "Thread-Topic": "[PATCH] vmxnet3: stats_reset implementation",
        "Thread-Index": "AQHUOesWr8UftqP2Vk2BAYD1SvcV2qT0QbyAgASj1IA=",
        "Date": "Thu, 20 Sep 2018 06:37:05 +0000",
        "Message-ID": "<1537425577-86337-1-git-send-email-yogev@cgstowernetworks.com>",
        "References": "<1537170493-83190-1-git-send-email-yogev@cgstowernetworks.com>",
        "In-Reply-To": "<1537170493-83190-1-git-send-email-yogev@cgstowernetworks.com>",
        "Accept-Language": "en-US",
        "Content-Language": "en-US",
        "X-MS-Has-Attach": "",
        "X-MS-TNEF-Correlator": "",
        "x-clientproxiedby": "VI1PR04CA0092.eurprd04.prod.outlook.com\n\t(2603:10a6:803:64::27) To DB6PR0902MB1829.eurprd09.prod.outlook.com\n\t(2603:10a6:4:b1::22)",
        "authentication-results": "spf=none (sender IP is )\n\tsmtp.mailfrom=yogev@cgstowernetworks.com; ",
        "x-ms-exchange-messagesentrepresentingtype": "1",
        "x-originating-ip": "[5.144.48.231]",
        "x-ms-publictraffictype": "Email",
        "x-microsoft-exchange-diagnostics": "1; DB6PR0902MB1941;\n\t6:DPn9RRWVg2EtbUuL6st2D+C68oqhLzwk/+XgooQdMh/BIWPHpMaH0Row2iL3svwsrFlTPcLTLkljt5EjueC4ks4TEUZibY5CHrfs+3RGepWvgM0mQ1+gwjyKgM9/uJxcH+oYeZhZJn8mBmM3sfLy/dAVIMX8PUd0eAqi8YtDqHvn7yGQV4gwIrf8Tt+FwPVruf/y/iYiBWGHr5YLxrG5YISfFtcrsaR/UjMFT56RmXD1vHiOqixCHijqmIFGRlum5uMo3ceYsPso5/3d/IbYEWpo/U9thBBnq1R53vGnoktJvCApl0UtI3Jne8aejHz0ghWDVKqN66DP61fUn1NSV5bnyWqWb4t0CVuxRh2/xn50fDwe5sNNNSar73piFvEyF8heYCjK1sg0QiHA2onLLJmIdXInkLczq5CxLHFXBQWHQJgnXUd90DtbVYp9yUNOaFge+YAtbhIrive6NNDiBQ==;\n\t5:8Bi9LsN6YSKYt2yemunzF+SmYFg3AuLNnx5CQdWk4d3TROk1CnYIkUlbzjJliHIXJKZm6SddXL5Nd3cETEJpaikE9T5CFqRhym7AgtMdExR/3p71kD9a26HM8rbAcztkhYNxIbVL40cWfI2CMAtjGgpXXWF9N5W5hQ7ox/NSSzw=;\n\t7:6IWbMn3TMxoaTq3V8dqo360mNdxgXb3Ks5X5u2H3LLRR3Kp09VWd2MUeu0V7T1h83ifx+0apuuy8UjMHGuJEa1FVD6pT1O1pR9Hd93sk8Am6LY9remz+5IqlYM8Ow89/CEONvRW2mz2njhsLuah/Hex9X2Ajje8qPbjG018KDjjIirp31NZb/qtIaigiRQQPW2z5M6EGnCtk/LX4/bFOdEFkYBeRtA2tBnmP6MBRm+8D6BEv/YUtlhBUJmVu+vSe",
        "x-ms-office365-filtering-correlation-id": "2abadb97-1f36-44d2-6466-08d61ec37af6",
        "x-microsoft-antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(7021125)(8989299)(4534165)(7022125)(4603075)(4627221)(201702281549075)(8990200)(7048125)(7024125)(7027125)(7023125)(5600074)(711020)(2017052603328)(7153060)(7193020);\n\tSRVR:DB6PR0902MB1941; ",
        "x-ms-traffictypediagnostic": "DB6PR0902MB1941:",
        "x-microsoft-antispam-prvs": "<DB6PR0902MB1941520DF7AC7D06E8AF0269D6130@DB6PR0902MB1941.eurprd09.prod.outlook.com>",
        "x-exchange-antispam-report-test": "UriScan:;",
        "x-ms-exchange-senderadcheck": "1",
        "x-exchange-antispam-report-cfa-test": "BCL:0; PCL:0;\n\tRULEID:(6040522)(2401047)(5005006)(8121501046)(3231355)(944501410)(52105095)(3002001)(93006095)(93001095)(10201501046)(149027)(150027)(6041310)(2016111802025)(20161123564045)(20161123560045)(20161123562045)(20161123558120)(6043046)(201708071742011)(7699051);\n\tSRVR:DB6PR0902MB1941; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0902MB1941; ",
        "x-forefront-prvs": "0801F2E62B",
        "x-forefront-antispam-report": "SFV:NSPM;\n\tSFS:(10019020)(346002)(366004)(136003)(39830400003)(396003)(376002)(199004)(189003)(8676002)(105586002)(386003)(476003)(5660300001)(2616005)(6436002)(446003)(6486002)(11346002)(4326008)(2351001)(53936002)(2501003)(71200400001)(71190400001)(102836004)(3846002)(68736007)(107886003)(486006)(7736002)(97736004)(66066001)(6512007)(5640700003)(6916009)(2906002)(305945005)(1857600001)(26005)(6116002)(106356001)(316002)(86362001)(1730700003)(71446004)(6506007)(25786009)(508600001)(186003)(81156014)(256004)(81166006)(5250100002)(52116002)(14444005)(76176011)(36756003)(99286004)(8936002)(2900100001)(14454004);\n\tDIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0902MB1941;\n\tH:DB6PR0902MB1829.eurprd09.prod.outlook.com; FPR:; SPF:None; LANG:en; \n\tPTR:InfoNoRecords; A:1; MX:1; ",
        "received-spf": "None (protection.outlook.com: cgstowernetworks.com does not\n\tdesignate permitted sender hosts)",
        "x-microsoft-antispam-message-info": "3c6/trroaCXElCsyEvNMtToZQP2LcVaIfpoVsCywZNeAx3e54kKat+5+v5YOi3qGJxl4Ny5ZAvh966O8WRPEY0kmIOmPUoU0fiksCAtRkIH38g8MS0NE0l09Kif5Y6BDVYpNzazN4Z7k8653FjGlLJE+JCA7y8fIcKUpuC/iOkbUYCDsuM34+ly4CLN/b8jHCkRu8Kf9/B1jM3na4p547OLtS15JBa0yCpOOn/TJqHp9D4JYCp9I+JoLOx/JoglHtjcO8NWD43P9HFaVFRUHWV7vPBXrnoS7cKdtI2JUD3XAmkhXiWsaOVrd9jMHQUrvHUnI5oFsln1Ewo43UgpjcgLvI9io9idryFuwuV5/YYQ=",
        "spamdiagnosticoutput": "1:99",
        "spamdiagnosticmetadata": "NSPM",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-ID": "<17078D35D4225B4BAEA3C59FC4D88770@eurprd09.prod.outlook.com>",
        "Content-Transfer-Encoding": "base64",
        "MIME-Version": "1.0",
        "X-OriginatorOrg": "cgstowernetworks.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "2abadb97-1f36-44d2-6466-08d61ec37af6",
        "X-MS-Exchange-CrossTenant-originalarrivaltime": "20 Sep 2018 06:37:05.5865\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted",
        "X-MS-Exchange-CrossTenant-id": "fc9e9498-07e8-4b82-b4cf-365bba23cbbf",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DB6PR0902MB1941",
        "Subject": "[dpdk-dev] [PATCH] vmxnet3: stats_reset implementation",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "'stats_reset()' callback was missing because the device backend doesn’t support it.\nThis commit adds a workaround to this and implements the callback by taking a snapshot of the stats (SNAPSHOT) each time 'stats_reset()' is called.\nWhen getting stats with 'stats_get()', hw stats which always increase reduce SNAPSHOT stats. That's how we get the \"real\" stats since the last 'stats_reset()'.\n\nSigned-off-by: yogev ch <yogev@cgstowernetworks.com>\n---\n drivers/net/vmxnet3/vmxnet3_ethdev.c | 78 ++++++++++++++++++++++++++++++++++--\n drivers/net/vmxnet3/vmxnet3_ethdev.h |  3 ++\n 2 files changed, 78 insertions(+), 3 deletions(-)",
    "diff": "diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c\r\nindex 2613cd1..2348300 100644\r\n--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c\r\n+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c\r\n@@ -78,6 +78,7 @@ static int vmxnet3_dev_link_update(struct rte_eth_dev *dev,\r\n static void vmxnet3_hw_stats_save(struct vmxnet3_hw *hw);\r\n static int vmxnet3_dev_stats_get(struct rte_eth_dev *dev,\r\n \t\t\t\t  struct rte_eth_stats *stats);\r\n+static void vmxnet3_dev_stats_reset(struct rte_eth_dev *dev);\r\n static int vmxnet3_dev_xstats_get_names(struct rte_eth_dev *dev,\r\n \t\t\t\t\tstruct rte_eth_xstat_name *xstats,\r\n \t\t\t\t\tunsigned int n);\r\n@@ -120,6 +121,7 @@ static int vmxnet3_mac_addr_set(struct rte_eth_dev *dev,\r\n \t.stats_get            = vmxnet3_dev_stats_get,\r\n \t.xstats_get_names     = vmxnet3_dev_xstats_get_names,\r\n \t.xstats_get           = vmxnet3_dev_xstats_get,\r\n+\t.stats_reset          = vmxnet3_dev_stats_reset,\r\n \t.mac_addr_set         = vmxnet3_mac_addr_set,\r\n \t.dev_infos_get        = vmxnet3_dev_info_get,\r\n \t.dev_supported_ptypes_get = vmxnet3_dev_supported_ptypes_get,\r\n@@ -335,6 +337,10 @@ struct vmxnet3_xstats_name_off {\r\n \tmemset(hw->saved_tx_stats, 0, sizeof(hw->saved_tx_stats));\r\n \tmemset(hw->saved_rx_stats, 0, sizeof(hw->saved_rx_stats));\r\n \r\n+\t/* clear snapshot stats */\r\n+\tmemset(hw->snapshot_tx_stats, 0, sizeof(hw->snapshot_tx_stats));\r\n+\tmemset(hw->snapshot_rx_stats, 0, sizeof(hw->snapshot_rx_stats));\r\n+\r\n \t/* set the initial link status */\r\n \tmemset(&link, 0, sizeof(link));\r\n \tlink.link_duplex = ETH_LINK_FULL_DUPLEX;\r\n@@ -890,7 +896,49 @@ static int eth_vmxnet3_pci_remove(struct rte_pci_device *pci_dev)\r\n \tVMXNET3_UPDATE_RX_STAT(hw, q, pktsRxError, res);\r\n \tVMXNET3_UPDATE_RX_STAT(hw, q, pktsRxOutOfBuf, res);\r\n \r\n-#undef VMXNET3_UPDATE_RX_STATS\r\n+#undef VMXNET3_UPDATE_RX_STAT\r\n+}\r\n+\r\n+static void\r\n+vmxnet3_tx_stats_get(struct vmxnet3_hw *hw, unsigned int q,\r\n+\t\t\t\t\tstruct UPT1_TxStats *res)\r\n+{\r\n+\t\tvmxnet3_hw_tx_stats_get(hw, q, res);\r\n+\r\n+#define VMXNET3_REDUCE_SNAPSHOT_TX_STAT(h, i, f, r)\t\\\r\n+\t\t((r)->f -= (h)->snapshot_tx_stats[(i)].f)\r\n+\r\n+\tVMXNET3_REDUCE_SNAPSHOT_TX_STAT(hw, q, ucastPktsTxOK, res);\r\n+\tVMXNET3_REDUCE_SNAPSHOT_TX_STAT(hw, q, mcastPktsTxOK, res);\r\n+\tVMXNET3_REDUCE_SNAPSHOT_TX_STAT(hw, q, bcastPktsTxOK, res);\r\n+\tVMXNET3_REDUCE_SNAPSHOT_TX_STAT(hw, q, ucastBytesTxOK, res);\r\n+\tVMXNET3_REDUCE_SNAPSHOT_TX_STAT(hw, q, mcastBytesTxOK, res);\r\n+\tVMXNET3_REDUCE_SNAPSHOT_TX_STAT(hw, q, bcastBytesTxOK, res);\r\n+\tVMXNET3_REDUCE_SNAPSHOT_TX_STAT(hw, q, pktsTxError, res);\r\n+\tVMXNET3_REDUCE_SNAPSHOT_TX_STAT(hw, q, pktsTxDiscard, res);\r\n+\r\n+#undef VMXNET3_REDUCE_SNAPSHOT_TX_STAT\r\n+}\r\n+\r\n+static void\r\n+vmxnet3_rx_stats_get(struct vmxnet3_hw *hw, unsigned int q,\r\n+\t\t\t\t\tstruct UPT1_RxStats *res)\r\n+{\r\n+\t\tvmxnet3_hw_rx_stats_get(hw, q, res);\r\n+\r\n+#define VMXNET3_REDUCE_SNAPSHOT_RX_STAT(h, i, f, r)\t\\\r\n+\t\t((r)->f -= (h)->snapshot_rx_stats[(i)].f)\r\n+\r\n+\tVMXNET3_REDUCE_SNAPSHOT_RX_STAT(hw, q, ucastPktsRxOK, res);\r\n+\tVMXNET3_REDUCE_SNAPSHOT_RX_STAT(hw, q, mcastPktsRxOK, res);\r\n+\tVMXNET3_REDUCE_SNAPSHOT_RX_STAT(hw, q, bcastPktsRxOK, res);\r\n+\tVMXNET3_REDUCE_SNAPSHOT_RX_STAT(hw, q, ucastBytesRxOK, res);\r\n+\tVMXNET3_REDUCE_SNAPSHOT_RX_STAT(hw, q, mcastBytesRxOK, res);\r\n+\tVMXNET3_REDUCE_SNAPSHOT_RX_STAT(hw, q, bcastBytesRxOK, res);\r\n+\tVMXNET3_REDUCE_SNAPSHOT_RX_STAT(hw, q, pktsRxError, res);\r\n+\tVMXNET3_REDUCE_SNAPSHOT_RX_STAT(hw, q, pktsRxOutOfBuf, res);\r\n+\r\n+#undef VMXNET3_REDUCE_SNAPSHOT_RX_STAT\r\n }\r\n \r\n static void\r\n@@ -1005,7 +1053,7 @@ static int eth_vmxnet3_pci_remove(struct rte_pci_device *pci_dev)\r\n \r\n \tRTE_BUILD_BUG_ON(RTE_ETHDEV_QUEUE_STAT_CNTRS < VMXNET3_MAX_TX_QUEUES);\r\n \tfor (i = 0; i < hw->num_tx_queues; i++) {\r\n-\t\tvmxnet3_hw_tx_stats_get(hw, i, &txStats);\r\n+\t\tvmxnet3_tx_stats_get(hw, i, &txStats);\r\n \r\n \t\tstats->q_opackets[i] = txStats.ucastPktsTxOK +\r\n \t\t\ttxStats.mcastPktsTxOK +\r\n@@ -1022,7 +1070,7 @@ static int eth_vmxnet3_pci_remove(struct rte_pci_device *pci_dev)\r\n \r\n \tRTE_BUILD_BUG_ON(RTE_ETHDEV_QUEUE_STAT_CNTRS < VMXNET3_MAX_RX_QUEUES);\r\n \tfor (i = 0; i < hw->num_rx_queues; i++) {\r\n-\t\tvmxnet3_hw_rx_stats_get(hw, i, &rxStats);\r\n+\t\tvmxnet3_rx_stats_get(hw, i, &rxStats);\r\n \r\n \t\tstats->q_ipackets[i] = rxStats.ucastPktsRxOK +\r\n \t\t\trxStats.mcastPktsRxOK +\r\n@@ -1044,6 +1092,30 @@ static int eth_vmxnet3_pci_remove(struct rte_pci_device *pci_dev)\r\n }\r\n \r\n static void\r\n+vmxnet3_dev_stats_reset(struct rte_eth_dev *dev)\r\n+{\r\n+\tunsigned int i;\r\n+\tstruct vmxnet3_hw *hw = dev->data->dev_private;\r\n+\tstruct UPT1_TxStats txStats;\r\n+\tstruct UPT1_RxStats rxStats;\r\n+\r\n+\tVMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_CMD, VMXNET3_CMD_GET_STATS);\r\n+\r\n+\tRTE_BUILD_BUG_ON(RTE_ETHDEV_QUEUE_STAT_CNTRS < VMXNET3_MAX_TX_QUEUES);\r\n+\r\n+\tfor (i = 0; i < hw->num_tx_queues; i++) {\r\n+\t\tvmxnet3_hw_tx_stats_get(hw, i, &txStats);\r\n+\t\tmemcpy(&hw->snapshot_tx_stats[i], &txStats,\r\n+\t\t\tsizeof(hw->snapshot_tx_stats[0]));\r\n+\t}\r\n+\tfor (i = 0; i < hw->num_rx_queues; i++) {\r\n+\t\tvmxnet3_hw_rx_stats_get(hw, i, &rxStats);\r\n+\t\tmemcpy(&hw->snapshot_rx_stats[i], &rxStats,\r\n+\t\t\tsizeof(hw->snapshot_rx_stats[0]));\r\n+\t}\r\n+}\r\n+\r\n+static void\r\n vmxnet3_dev_info_get(struct rte_eth_dev *dev __rte_unused,\r\n \t\t     struct rte_eth_dev_info *dev_info)\r\n {\r\ndiff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.h b/drivers/net/vmxnet3/vmxnet3_ethdev.h\r\nindex d3f2b35..5bc3a84 100644\r\n--- a/drivers/net/vmxnet3/vmxnet3_ethdev.h\r\n+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.h\r\n@@ -98,6 +98,9 @@ struct vmxnet3_hw {\r\n #define VMXNET3_VFT_TABLE_SIZE     (VMXNET3_VFT_SIZE * sizeof(uint32_t))\r\n \tUPT1_TxStats\t      saved_tx_stats[VMXNET3_MAX_TX_QUEUES];\r\n \tUPT1_RxStats\t      saved_rx_stats[VMXNET3_MAX_RX_QUEUES];\r\n+\r\n+\tUPT1_TxStats          snapshot_tx_stats[VMXNET3_MAX_TX_QUEUES];\r\n+\tUPT1_RxStats          snapshot_rx_stats[VMXNET3_MAX_RX_QUEUES];\r\n };\r\n \r\n #define VMXNET3_REV_3\t\t2\t\t/* Vmxnet3 Rev. 3 */\r\n",
    "prefixes": []
}