get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 77968,
    "url": "http://patches.dpdk.org/api/patches/77968/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200917053035.1889989-9-mk@semihalf.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": "<20200917053035.1889989-9-mk@semihalf.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200917053035.1889989-9-mk@semihalf.com",
    "date": "2020-09-17T05:30:23",
    "name": "[08/20] net/ena/base: add ENI stats",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "97a4e8b663021d1e0172366f31e5b47bc3bab3b7",
    "submitter": {
        "id": 786,
        "url": "http://patches.dpdk.org/api/people/786/?format=api",
        "name": "Michal Krawczyk",
        "email": "mk@semihalf.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20200917053035.1889989-9-mk@semihalf.com/mbox/",
    "series": [
        {
            "id": 12298,
            "url": "http://patches.dpdk.org/api/series/12298/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=12298",
            "date": "2020-09-17T05:30:15",
            "name": "Upgrade HAL and add ENI metrics support",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/12298/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/77968/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/77968/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 91165A04B6;\n\tThu, 17 Sep 2020 07:32:05 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 829881D562;\n\tThu, 17 Sep 2020 07:31:05 +0200 (CEST)",
            "from mail-lf1-f66.google.com (mail-lf1-f66.google.com\n [209.85.167.66]) by dpdk.org (Postfix) with ESMTP id 735501D554\n for <dev@dpdk.org>; Thu, 17 Sep 2020 07:31:00 +0200 (CEST)",
            "by mail-lf1-f66.google.com with SMTP id x69so782648lff.3\n for <dev@dpdk.org>; Wed, 16 Sep 2020 22:31:00 -0700 (PDT)",
            "from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl.\n [193.106.246.138])\n by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.30.58\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 16 Sep 2020 22:30:58 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=semihalf-com.20150623.gappssmtp.com; s=20150623;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding;\n bh=RxNWGt0esRwLrguNnMGRCh7E9ELHdYdWKRyQw7hPsQE=;\n b=JMBPirzMsYfxq11n7W1xYHnwTOyOCm25wENfcuKDltprS8+aFSpmdZhYf5lJko0RYD\n ttk6GGBU8G3dKDST4prjZx6rBdDlGWXnkzDTOKLQRiumFQ+Z2AYWD7Fv/D0Oa+1Asezr\n PFNPIdOQ8j3jo6nKzm5t/ZwvcvAaTUHiFXS4QnNbbaqFtTBIxKw1xhyLM24wgCBJ6xaI\n GJj8cBYDRpeTcES9R8XLE7WkdXEL8UoBCgBaS/3RLbhORaCTI9JBgT9xGvkQTYkID1a+\n zj4KZN+zwhVW9LCBLL/KFdKG8rvsWbqE4scSFQ27tnm2/kH9Z3YXufpaN+W2ybcchc/q\n 1vvA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:mime-version:content-transfer-encoding;\n bh=RxNWGt0esRwLrguNnMGRCh7E9ELHdYdWKRyQw7hPsQE=;\n b=iUWGlA34Txsp2GQn0zIavLeQFzC96i5/M8Kcp+WNzngx6AVzw0mQxfxuG5yHCNDmbR\n JEO8Ym5DEIVLz7ZpQcpynLxj9aQjGYX2PIP+GUerTWeY/rT0J/dX13pTKQQG7OlHpmHW\n mBFEIa55/m+MIaZQVm6DhiO532KQaJsigxQJNnI/J9hWrR02zEu8oEGmbXMqxP6T7XsL\n ZoAQC0dmMfrlFuuzm3RggT3uGo7IAaSkyy5xOMZoMc3GMa1+mPjlgm662S2eoaC0pqZE\n BmcJq4gOPftKOkXtWZz4IojgHQ/Ax2GWPfLI1ClYzeehuQ/mZE3AkYrDXqxkq87O3qTC\n qwDQ==",
        "X-Gm-Message-State": "AOAM530DswEIou6Cw6EGz2nmYaVDlixs/XqYKvrd6BZtIrRUAEvggX+k\n +4Wf4qO+vnCNTl8LxmFIYWdfMqtGcqCVXfyj",
        "X-Google-Smtp-Source": "\n ABdhPJyqVoDixwZzWLncE7O/+MKRZV9yuA/TSFGlkQhMbB9PAw1+W0RP1tBOtJ5JrbVXB32UnKEIEA==",
        "X-Received": "by 2002:a19:be45:: with SMTP id o66mr8251355lff.44.1600320659760;\n Wed, 16 Sep 2020 22:30:59 -0700 (PDT)",
        "From": "Michal Krawczyk <mk@semihalf.com>",
        "To": "dev@dpdk.org",
        "Cc": "gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk <mk@semihalf.com>,\n Marcin Wojtas <mw@semihalf.com>, Evgeny Schemeilin <evgenys@amazon.com>",
        "Date": "Thu, 17 Sep 2020 07:30:23 +0200",
        "Message-Id": "<20200917053035.1889989-9-mk@semihalf.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20200917053035.1889989-1-mk@semihalf.com>",
        "References": "<20200917053035.1889989-1-mk@semihalf.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH 08/20] net/ena/base: add ENI stats",
        "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 <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 Elastic Netfwork Interface (ENI) stats can be acquired from the HW.\n\nThey can provide advanced values which can be further used by the\napplication for better flow management.\n\nIt isn't available to the DPDK application, yet. The PMD must expose\nthem directly.\n\nSigned-off-by: Michal Krawczyk <mk@semihalf.com>\nReviewed-by: Igor Chauskin <igorch@amazon.com>\nReviewed-by: Guy Tzalik <gtzalik@amazon.com>\n---\n drivers/net/ena/base/ena_com.c                | 19 +++++++++-\n drivers/net/ena/base/ena_com.h                |  9 +++++\n .../net/ena/base/ena_defs/ena_admin_defs.h    | 37 ++++++++++++++++++-\n 3 files changed, 62 insertions(+), 3 deletions(-)",
    "diff": "diff --git a/drivers/net/ena/base/ena_com.c b/drivers/net/ena/base/ena_com.c\nindex b21c1f8d83..1463f5f1d4 100644\n--- a/drivers/net/ena/base/ena_com.c\n+++ b/drivers/net/ena/base/ena_com.c\n@@ -2206,6 +2206,21 @@ static int ena_get_dev_stats(struct ena_com_dev *ena_dev,\n \treturn ret;\n }\n \n+int ena_com_get_eni_stats(struct ena_com_dev *ena_dev,\n+\t\t\t  struct ena_admin_eni_stats *stats)\n+{\n+\tstruct ena_com_stats_ctx ctx;\n+\tint ret;\n+\n+\tmemset(&ctx, 0x0, sizeof(ctx));\n+\tret = ena_get_dev_stats(ena_dev, &ctx, ENA_ADMIN_GET_STATS_TYPE_ENI);\n+\tif (likely(ret == 0))\n+\t\tmemcpy(stats, &ctx.get_resp.u.eni_stats,\n+\t\t       sizeof(ctx.get_resp.u.eni_stats));\n+\n+\treturn ret;\n+}\n+\n int ena_com_get_dev_basic_stats(struct ena_com_dev *ena_dev,\n \t\t\t\tstruct ena_admin_basic_stats *stats)\n {\n@@ -2215,8 +2230,8 @@ int ena_com_get_dev_basic_stats(struct ena_com_dev *ena_dev,\n \tmemset(&ctx, 0x0, sizeof(ctx));\n \tret = ena_get_dev_stats(ena_dev, &ctx, ENA_ADMIN_GET_STATS_TYPE_BASIC);\n \tif (likely(ret == 0))\n-\t\tmemcpy(stats, &ctx.get_resp.basic_stats,\n-\t\t       sizeof(ctx.get_resp.basic_stats));\n+\t\tmemcpy(stats, &ctx.get_resp.u.basic_stats,\n+\t\t       sizeof(ctx.get_resp.u.basic_stats));\n \n \treturn ret;\n }\ndiff --git a/drivers/net/ena/base/ena_com.h b/drivers/net/ena/base/ena_com.h\nindex 2acf6d8ae5..751bfcdd7e 100644\n--- a/drivers/net/ena/base/ena_com.h\n+++ b/drivers/net/ena/base/ena_com.h\n@@ -600,6 +600,15 @@ int ena_com_get_dev_attr_feat(struct ena_com_dev *ena_dev,\n int ena_com_get_dev_basic_stats(struct ena_com_dev *ena_dev,\n \t\t\t\tstruct ena_admin_basic_stats *stats);\n \n+/* ena_com_get_eni_stats - Get extended network interface statistics\n+ * @ena_dev: ENA communication layer struct\n+ * @stats: stats return value\n+ *\n+ * @return: 0 on Success and negative value otherwise.\n+ */\n+int ena_com_get_eni_stats(struct ena_com_dev *ena_dev,\n+\t\t\t  struct ena_admin_eni_stats *stats);\n+\n /* ena_com_set_dev_mtu - Configure the device mtu.\n  * @ena_dev: ENA communication layer struct\n  * @mtu: mtu value\ndiff --git a/drivers/net/ena/base/ena_defs/ena_admin_defs.h b/drivers/net/ena/base/ena_defs/ena_admin_defs.h\nindex 6d266c4cf4..be1747cd9f 100644\n--- a/drivers/net/ena/base/ena_defs/ena_admin_defs.h\n+++ b/drivers/net/ena/base/ena_defs/ena_admin_defs.h\n@@ -95,6 +95,8 @@ enum ena_admin_completion_policy_type {\n enum ena_admin_get_stats_type {\n \tENA_ADMIN_GET_STATS_TYPE_BASIC              = 0,\n \tENA_ADMIN_GET_STATS_TYPE_EXTENDED           = 1,\n+\t/* extra HW stats for specific network interface */\n+\tENA_ADMIN_GET_STATS_TYPE_ENI                = 2,\n };\n \n enum ena_admin_get_stats_scope {\n@@ -388,10 +390,43 @@ struct ena_admin_basic_stats {\n \tuint32_t tx_drops_high;\n };\n \n+/* ENI Statistics Command. */\n+struct ena_admin_eni_stats {\n+\t/* The number of packets shaped due to inbound aggregate BW\n+\t * allowance being exceeded\n+\t */\n+\tuint64_t bw_in_allowance_exceeded;\n+\n+\t/* The number of packets shaped due to outbound aggregate BW\n+\t * allowance being exceeded\n+\t */\n+\tuint64_t bw_out_allowance_exceeded;\n+\n+\t/* The number of packets shaped due to PPS allowance being exceeded */\n+\tuint64_t pps_allowance_exceeded;\n+\n+\t/* The number of packets shaped due to connection tracking\n+\t * allowance being exceeded and leading to failure in establishment\n+\t * of new connections\n+\t */\n+\tuint64_t conntrack_allowance_exceeded;\n+\n+\t/* The number of packets shaped due to linklocal packet rate\n+\t * allowance being exceeded\n+\t */\n+\tuint64_t linklocal_allowance_exceeded;\n+};\n+\n struct ena_admin_acq_get_stats_resp {\n \tstruct ena_admin_acq_common_desc acq_common_desc;\n \n-\tstruct ena_admin_basic_stats basic_stats;\n+\tunion {\n+\t\tuint64_t raw[7];\n+\n+\t\tstruct ena_admin_basic_stats basic_stats;\n+\n+\t\tstruct ena_admin_eni_stats eni_stats;\n+\t} u;\n };\n \n struct ena_admin_get_set_feature_common_desc {\n",
    "prefixes": [
        "08/20"
    ]
}