get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 103789,
    "url": "http://patches.dpdk.org/api/patches/103789/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20211104215846.58672-5-ajit.khaparde@broadcom.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": "<20211104215846.58672-5-ajit.khaparde@broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20211104215846.58672-5-ajit.khaparde@broadcom.com",
    "date": "2021-11-04T21:58:28",
    "name": "[v5,04/22] net/bnxt: add clear on read support",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "3421c2b18d48008b09b66ca349fe67c956a7775e",
    "submitter": {
        "id": 501,
        "url": "http://patches.dpdk.org/api/people/501/?format=api",
        "name": "Ajit Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "delegate": {
        "id": 1766,
        "url": "http://patches.dpdk.org/api/users/1766/?format=api",
        "username": "ajitkhaparde",
        "first_name": "Ajit",
        "last_name": "Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20211104215846.58672-5-ajit.khaparde@broadcom.com/mbox/",
    "series": [
        {
            "id": 20322,
            "url": "http://patches.dpdk.org/api/series/20322/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=20322",
            "date": "2021-11-04T21:58:24",
            "name": "fixes and enhancements to Truflow",
            "version": 5,
            "mbox": "http://patches.dpdk.org/series/20322/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/103789/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/103789/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 C289AA0C5E;\n\tThu,  4 Nov 2021 22:59:16 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 31FC24279B;\n\tThu,  4 Nov 2021 22:59:02 +0100 (CET)",
            "from mail-pf1-f175.google.com (mail-pf1-f175.google.com\n [209.85.210.175])\n by mails.dpdk.org (Postfix) with ESMTP id 86F5842757\n for <dev@dpdk.org>; Thu,  4 Nov 2021 22:58:58 +0100 (CET)",
            "by mail-pf1-f175.google.com with SMTP id y20so7139505pfi.4\n for <dev@dpdk.org>; Thu, 04 Nov 2021 14:58:58 -0700 (PDT)",
            "from C02GC2QQMD6T.wifi.broadcom.net ([192.19.223.252])\n by smtp.gmail.com with ESMTPSA id pg5sm8532242pjb.26.2021.11.04.14.58.56\n (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);\n Thu, 04 Nov 2021 14:58:56 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com;\n s=google;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version; bh=KXrzehf50yNODF9vQ9egt33+prLBsTXzIJQCsKHkHMY=;\n b=N1N/IJDE2bgdihm3sRQxai5+ftT4UnfsjciqNkOKw4J2GM8dsLyhhAgWs2zFVZ7JaY\n PTTRV0UV1TndCxLVM6n8ip101XE3vKvvrUV6u9juovkNAxWqvWZiiEeMRmptDeXyUSzY\n YYc5YuZRK+txZKLiuj4thtEUkqnpZA3EPGaQo=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20210112;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:mime-version;\n bh=KXrzehf50yNODF9vQ9egt33+prLBsTXzIJQCsKHkHMY=;\n b=g800Qm/qNmi5LcRNU7Dt8jH4qu2ZucnHWSNnvK1lLmogWlM3Pach05Z4Foo2Sq2CO9\n vbRsIxZHvepbHb1jPaVJNAdHOE3kcqHHcZzxaY55Ab1jgFnLFPYVEPPPo5lO49pjPzii\n iJNerpdi8hQ616gIy6/BAECV12APtiGdIOhTIFCuAR78eaeJaw3RjiEXLzLYiWjsjPjF\n LBhxRzlSQBTCLq4dZGbbNS7aEbUDKesMYB5Kg34C1zlls05h2vD6cMfiBm+QkFsyN8oF\n plfeFhZjWMAD+Py1/dw3t6A8qySerrmck9YCNtHKcehPp+EXXepwMNeIB1MMuiYueI1j\n TmOA==",
        "X-Gm-Message-State": "AOAM532F3lf8Tc2aBhebgvEZ5LtGXrhgKycF+8LUnhK2n42fhu46FFM5\n NOa6pZ/4f8fcyOsaISMx5ranu1LGejmY+vdeN2Wg18ZGXLUUopzidbeyFotSKamDcAT1WneAmVe\n y/2QTgg8uFpX+iNqRe6kFRvkxfluUw6JGOPHWUlkYSNEOUDkU8VBOQeXnIaLrg90=",
        "X-Google-Smtp-Source": "\n ABdhPJzS3meARFLBm+5TZhsOS5D4amk3tkC+5cTepIH07fSKxPW7CyFIPfJypz2O97Q5MwUZfO72uw==",
        "X-Received": "by 2002:a63:8f4a:: with SMTP id\n r10mr40378447pgn.337.1636063137520;\n Thu, 04 Nov 2021 14:58:57 -0700 (PDT)",
        "From": "Ajit Khaparde <ajit.khaparde@broadcom.com>",
        "To": "dev@dpdk.org",
        "Cc": "Farah Smith <farah.smith@broadcom.com>,\n Kishore Padmanabha <kishore.padmanabha@broadcom.com>,\n Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>,\n Randy Schacher <stuart.schacher@broadcom.com>,\n Shahaji Bhosle <sbhosle@broadcom.com>",
        "Date": "Thu,  4 Nov 2021 14:58:28 -0700",
        "Message-Id": "<20211104215846.58672-5-ajit.khaparde@broadcom.com>",
        "X-Mailer": "git-send-email 2.30.1 (Apple Git-130)",
        "In-Reply-To": "<20211104215846.58672-1-ajit.khaparde@broadcom.com>",
        "References": "<20211103005251.25524-1-ajit.khaparde@broadcom.com>\n <20211104215846.58672-1-ajit.khaparde@broadcom.com>",
        "MIME-Version": "1.0",
        "Content-Type": "multipart/signed; protocol=\"application/pkcs7-signature\";\n micalg=sha-256; boundary=\"0000000000002a145005cffda257\"",
        "X-Content-Filtered-By": "Mailman/MimeDel 2.1.29",
        "Subject": "[dpdk-dev] [PATCH v5 04/22] net/bnxt: add clear on read support",
        "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": "From: Farah Smith <farah.smith@broadcom.com>\n\nAdd clear on read stats support for Thor. Currently, the\nflow stats are not cleared after they are read from the FW.\nThis patch adds support for clear on read. Since clear on\nread support is added for flow stats in Thor, the flow\naccumulation is enabled on Thor as well.\n\nSigned-off-by: Farah Smith <farah.smith@broadcom.com>\nSigned-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>\nSigned-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>\nReviewed-by: Randy Schacher <stuart.schacher@broadcom.com>\nReviewed-by: Shahaji Bhosle <sbhosle@broadcom.com>\nReviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>\n---\n drivers/net/bnxt/tf_core/tf_msg.c      | 24 ++++++++++++++++++++----\n drivers/net/bnxt/tf_core/tf_msg.h      |  6 ++++--\n drivers/net/bnxt/tf_core/tf_tbl.c      |  6 ++++--\n drivers/net/bnxt/tf_core/tf_tbl_sram.c | 13 +++++++++++--\n drivers/net/bnxt/tf_ulp/bnxt_ulp.c     |  3 ++-\n 5 files changed, 41 insertions(+), 11 deletions(-)",
    "diff": "diff --git a/drivers/net/bnxt/tf_core/tf_msg.c b/drivers/net/bnxt/tf_core/tf_msg.c\nindex 0fbb2fe837..ea6e2af7ce 100644\n--- a/drivers/net/bnxt/tf_core/tf_msg.c\n+++ b/drivers/net/bnxt/tf_core/tf_msg.c\n@@ -1851,7 +1851,8 @@ tf_msg_get_tbl_entry(struct tf *tfp,\n \t\t     uint16_t hcapi_type,\n \t\t     uint16_t size,\n \t\t     uint8_t *data,\n-\t\t     uint32_t index)\n+\t\t     uint32_t index,\n+\t\t     bool clear_on_read)\n {\n \tint rc;\n \tstruct hwrm_tf_tbl_type_get_input req = { 0 };\n@@ -1860,6 +1861,7 @@ tf_msg_get_tbl_entry(struct tf *tfp,\n \tuint8_t fw_session_id;\n \tstruct tf_dev_info *dev;\n \tstruct tf_session *tfs;\n+\tuint32_t flags = 0;\n \n \t/* Retrieve the session information */\n \trc = tf_session_get_session_internal(tfp, &tfs);\n@@ -1889,10 +1891,16 @@ tf_msg_get_tbl_entry(struct tf *tfp,\n \t\t\t    strerror(-rc));\n \t\treturn rc;\n \t}\n+\tflags = (dir == TF_DIR_TX ?\n+\t\t HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_TX :\n+\t\t HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_RX);\n+\n+\tif (clear_on_read)\n+\t\tflags |= HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_CLEAR_ON_READ;\n \n \t/* Populate the request */\n \treq.fw_session_id = tfp_cpu_to_le_32(fw_session_id);\n-\treq.flags = tfp_cpu_to_le_16(dir);\n+\treq.flags = tfp_cpu_to_le_16(flags);\n \treq.type = tfp_cpu_to_le_32(hcapi_type);\n \treq.index = tfp_cpu_to_le_32(index);\n \n@@ -2105,7 +2113,8 @@ tf_msg_bulk_get_tbl_entry(struct tf *tfp,\n \t\t\t  uint32_t starting_idx,\n \t\t\t  uint16_t num_entries,\n \t\t\t  uint16_t entry_sz_in_bytes,\n-\t\t\t  uint64_t physical_mem_addr)\n+\t\t\t  uint64_t physical_mem_addr,\n+\t\t\t  bool clear_on_read)\n {\n \tint rc;\n \tstruct tfp_send_msg_parms parms = { 0 };\n@@ -2115,6 +2124,7 @@ tf_msg_bulk_get_tbl_entry(struct tf *tfp,\n \tuint8_t fw_session_id;\n \tstruct tf_dev_info *dev;\n \tstruct tf_session *tfs;\n+\tuint32_t flags = 0;\n \n \t/* Retrieve the session information */\n \trc = tf_session_get_session(tfp, &tfs);\n@@ -2144,10 +2154,16 @@ tf_msg_bulk_get_tbl_entry(struct tf *tfp,\n \t\t\t    strerror(-rc));\n \t\treturn rc;\n \t}\n+\tflags = (dir == TF_DIR_TX ?\n+\t\t HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_TX :\n+\t\t HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_RX);\n+\n+\tif (clear_on_read)\n+\t\tflags |= HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_CLEAR_ON_READ;\n \n \t/* Populate the request */\n \treq.fw_session_id = tfp_cpu_to_le_32(fw_session_id);\n-\treq.flags = tfp_cpu_to_le_16(dir);\n+\treq.flags = tfp_cpu_to_le_16(flags);\n \treq.type = tfp_cpu_to_le_32(hcapi_type);\n \treq.start_index = tfp_cpu_to_le_32(starting_idx);\n \treq.num_entries = tfp_cpu_to_le_32(num_entries);\ndiff --git a/drivers/net/bnxt/tf_core/tf_msg.h b/drivers/net/bnxt/tf_core/tf_msg.h\nindex b26b15bfa3..718bc2f3b2 100644\n--- a/drivers/net/bnxt/tf_core/tf_msg.h\n+++ b/drivers/net/bnxt/tf_core/tf_msg.h\n@@ -652,7 +652,8 @@ int tf_msg_get_tbl_entry(struct tf *tfp,\n \t\t\t uint16_t hcapi_type,\n \t\t\t uint16_t size,\n \t\t\t uint8_t *data,\n-\t\t\t uint32_t index);\n+\t\t\t uint32_t index,\n+\t\t\t bool clear_on_read);\n \n /* HWRM Tunneled messages */\n \n@@ -704,7 +705,8 @@ int tf_msg_bulk_get_tbl_entry(struct tf *tfp,\n \t\t\t      uint32_t starting_idx,\n \t\t\t      uint16_t num_entries,\n \t\t\t      uint16_t entry_sz_in_bytes,\n-\t\t\t      uint64_t physical_mem_addr);\n+\t\t\t      uint64_t physical_mem_addr,\n+\t\t\t      bool clear_on_read);\n \n /**\n  * Sends Set message of a IF Table Type element to the firmware.\ndiff --git a/drivers/net/bnxt/tf_core/tf_tbl.c b/drivers/net/bnxt/tf_core/tf_tbl.c\nindex 0a8720e7b6..12eca36491 100644\n--- a/drivers/net/bnxt/tf_core/tf_tbl.c\n+++ b/drivers/net/bnxt/tf_core/tf_tbl.c\n@@ -441,7 +441,8 @@ tf_tbl_get(struct tf *tfp,\n \t\t\t\t  hcapi_type,\n \t\t\t\t  parms->data_sz_in_bytes,\n \t\t\t\t  parms->data,\n-\t\t\t\t  parms->idx);\n+\t\t\t\t  parms->idx,\n+\t\t\t\t  false);\n \tif (rc) {\n \t\tTFP_DRV_LOG(ERR,\n \t\t\t    \"%s, Get failed, type:%s, rc:%s\\n\",\n@@ -526,7 +527,8 @@ tf_tbl_bulk_get(struct tf *tfp,\n \t\t\t\t       parms->starting_idx,\n \t\t\t\t       parms->num_entries,\n \t\t\t\t       parms->entry_sz_in_bytes,\n-\t\t\t\t       parms->physical_mem_addr);\n+\t\t\t\t       parms->physical_mem_addr,\n+\t\t\t\t       false);\n \tif (rc) {\n \t\tTFP_DRV_LOG(ERR,\n \t\t\t    \"%s, Bulk get failed, type:%s, rc:%s\\n\",\ndiff --git a/drivers/net/bnxt/tf_core/tf_tbl_sram.c b/drivers/net/bnxt/tf_core/tf_tbl_sram.c\nindex 636811bc2d..567f912dfa 100644\n--- a/drivers/net/bnxt/tf_core/tf_tbl_sram.c\n+++ b/drivers/net/bnxt/tf_core/tf_tbl_sram.c\n@@ -539,6 +539,7 @@ tf_tbl_sram_get(struct tf *tfp,\n \tstruct tf_tbl_sram_get_info_parms iparms = { 0 };\n \tstruct tf_sram_mgr_is_allocated_parms aparms = { 0 };\n \tvoid *sram_handle = NULL;\n+\tbool clear_on_read = false;\n \n \tTF_CHECK_PARMS3(tfp, parms, parms->data);\n \n@@ -608,6 +609,8 @@ tf_tbl_sram_get(struct tf *tfp,\n \t\t\t    strerror(-rc));\n \t\treturn rc;\n \t}\n+\tif (parms->type == TF_TBL_TYPE_ACT_STATS_64)\n+\t\tclear_on_read = true;\n \n \t/* Get the entry */\n \trc = tf_msg_get_tbl_entry(tfp,\n@@ -615,7 +618,8 @@ tf_tbl_sram_get(struct tf *tfp,\n \t\t\t\t  hcapi_type,\n \t\t\t\t  parms->data_sz_in_bytes,\n \t\t\t\t  parms->data,\n-\t\t\t\t  parms->idx);\n+\t\t\t\t  parms->idx,\n+\t\t\t\t  clear_on_read);\n \tif (rc) {\n \t\tTFP_DRV_LOG(ERR,\n \t\t\t    \"%s, Get failed, type:%s, rc:%s\\n\",\n@@ -643,6 +647,7 @@ tf_tbl_sram_bulk_get(struct tf *tfp,\n \tstruct tf_sram_mgr_is_allocated_parms aparms = { 0 };\n \tbool allocated = false;\n \tvoid *sram_handle = NULL;\n+\tbool clear_on_read = false;\n \n \tTF_CHECK_PARMS2(tfp, parms);\n \n@@ -728,6 +733,9 @@ tf_tbl_sram_bulk_get(struct tf *tfp,\n \t\treturn rc;\n \t}\n \n+\tif (parms->type == TF_TBL_TYPE_ACT_STATS_64)\n+\t\tclear_on_read = true;\n+\n \t/* Get the entries */\n \trc = tf_msg_bulk_get_tbl_entry(tfp,\n \t\t\t\t       parms->dir,\n@@ -735,7 +743,8 @@ tf_tbl_sram_bulk_get(struct tf *tfp,\n \t\t\t\t       parms->starting_idx,\n \t\t\t\t       parms->num_entries,\n \t\t\t\t       parms->entry_sz_in_bytes,\n-\t\t\t\t       parms->physical_mem_addr);\n+\t\t\t\t       parms->physical_mem_addr,\n+\t\t\t\t       clear_on_read);\n \tif (rc) {\n \t\tTFP_DRV_LOG(ERR,\n \t\t\t    \"%s, Bulk get failed, type:%s, rc:%s\\n\",\ndiff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c\nindex dbc8a3c5bb..f1763e2519 100644\n--- a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c\n+++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c\n@@ -1483,7 +1483,8 @@ bnxt_ulp_port_init(struct bnxt *bp)\n \t\tgoto jump_to_error;\n \t}\n \n-\tif (devid != BNXT_ULP_DEVICE_ID_THOR && BNXT_ACCUM_STATS_EN(bp))\n+\t/* set the accumulation of the stats */\n+\tif (BNXT_ACCUM_STATS_EN(bp))\n \t\tbp->ulp_ctx->cfg_data->accum_stats = true;\n \n \tBNXT_TF_DBG(DEBUG, \"BNXT Port:%d ULP port init, accum_stats:%d\\n\",\n",
    "prefixes": [
        "v5",
        "04/22"
    ]
}