get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 94121,
    "url": "https://patches.dpdk.org/api/patches/94121/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20210613000652.28191-27-ajit.khaparde@broadcom.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": "<20210613000652.28191-27-ajit.khaparde@broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210613000652.28191-27-ajit.khaparde@broadcom.com",
    "date": "2021-06-13T00:06:20",
    "name": "[v2,26/58] net/bnxt: check FW capability to support TRUFLOW",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "dc320f3957b2276ae7925aed42cd5fc26c02f492",
    "submitter": {
        "id": 501,
        "url": "https://patches.dpdk.org/api/people/501/?format=api",
        "name": "Ajit Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "delegate": {
        "id": 1766,
        "url": "https://patches.dpdk.org/api/users/1766/?format=api",
        "username": "ajitkhaparde",
        "first_name": "Ajit",
        "last_name": "Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20210613000652.28191-27-ajit.khaparde@broadcom.com/mbox/",
    "series": [
        {
            "id": 17305,
            "url": "https://patches.dpdk.org/api/series/17305/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=17305",
            "date": "2021-06-13T00:05:54",
            "name": "enhancements to host based flow table management",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/17305/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/94121/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/94121/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 9B726A0C41;\n\tSun, 13 Jun 2021 02:11:01 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 197F7411D9;\n\tSun, 13 Jun 2021 02:07:39 +0200 (CEST)",
            "from mail-pf1-f173.google.com (mail-pf1-f173.google.com\n [209.85.210.173])\n by mails.dpdk.org (Postfix) with ESMTP id 9CED641148\n for <dev@dpdk.org>; Sun, 13 Jun 2021 02:07:34 +0200 (CEST)",
            "by mail-pf1-f173.google.com with SMTP id x16so3412856pfa.13\n for <dev@dpdk.org>; Sat, 12 Jun 2021 17:07:34 -0700 (PDT)",
            "from localhost.localdomain ([192.19.223.252])\n by smtp.gmail.com with ESMTPSA id gg22sm12774609pjb.17.2021.06.12.17.07.32\n (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);\n Sat, 12 Jun 2021 17:07:32 -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=W4bMoDff7w0yXV4ZM9ZB6ajREKKjc+oc0GWfvka24U0=;\n b=adEgMB1klHKT/T6za1Mlj5LhtGB2EMHo28YQtaiPa1rqpPME5nCVTvcT1g+uTUmLc2\n fj/o8e0zUtV4oyi6ooJsV6r7tbCINb9fWPO2GvidfOmkF3IO1mCsAgkaYVrC5kOVJJFx\n XJXYnltetu0mR8F+Epz/cu13PYc3bZTfQMRf4=",
        "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;\n bh=W4bMoDff7w0yXV4ZM9ZB6ajREKKjc+oc0GWfvka24U0=;\n b=Eb4GwxQXL+oiYahXJ3R65MSTKi7cuoHl5MECdOWyAEFi1BJGdIuomJr9ZM4xeJDozp\n Fu6SuIYaGFWL79EMbTYDy8MDC8xJrwslcbCp+VpIRV03nWonRZmSw35AZTg0r59pX8LU\n yskfplK5bHhHzU2Wz+/jSoZGORxwWkQJndgq7J8K5Qh1XZLxfeoRi5qPRCpchhjZa1+4\n 9ODXlUIey3k82iOxl6EqKoIugvZMAPU1HFOb15JRajlZybR0emwVGmC+bSlgtktOrA80\n zKPBanKb43OhwlegyAQR0eB4ep0P0tG5FnItK+1Q/FbTf87VGjAE2DjlJFkSw6g0Texw\n nvzg==",
        "X-Gm-Message-State": "AOAM532RX/54Okt9cLMknLUS+1G/GAmIKMJP5BTwdx2h0zDjmW6VuLFL\n 5huaOboMB6W1LuAXcO++wYovFPaiTz3dueUNMP/A13E3RO6cJuU63SlgVLu74qaAmI3ksd738Mc\n iWhHHhkGJ5OMUD3ZsaKBYTmE3DZ9PL7ccUdLg7gVInssJ0lyHavCzv1MnRyOOD/E=",
        "X-Google-Smtp-Source": "\n ABdhPJy5yE0LdBQrhg8kr0Ar1RLBRajkyyiKp2ecnL+PTZ/mjB5KNZbE5nkTHw3Mmt5s2qlbnhDqWQ==",
        "X-Received": "by 2002:a65:6209:: with SMTP id d9mr10694760pgv.39.1623542853196;\n Sat, 12 Jun 2021 17:07:33 -0700 (PDT)",
        "From": "Ajit Khaparde <ajit.khaparde@broadcom.com>",
        "To": "dev@dpdk.org",
        "Cc": "Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>,\n Kalesh AP <kalesh-anakkur.purayil@broadcom.com>,\n Somnath Kotur <somnath.kotur@broadcom.com>",
        "Date": "Sat, 12 Jun 2021 17:06:20 -0700",
        "Message-Id": "<20210613000652.28191-27-ajit.khaparde@broadcom.com>",
        "X-Mailer": "git-send-email 2.21.1 (Apple Git-122.3)",
        "In-Reply-To": "<20210613000652.28191-1-ajit.khaparde@broadcom.com>",
        "References": "<20210530085929.29695-1-venkatkumar.duvvuru@broadcom.com>\n <20210613000652.28191-1-ajit.khaparde@broadcom.com>",
        "MIME-Version": "1.0",
        "Content-Type": "multipart/signed; protocol=\"application/pkcs7-signature\";\n micalg=sha-256; boundary=\"00000000000013761305c49a87be\"",
        "X-Content-Filtered-By": "Mailman/MimeDel 2.1.29",
        "Subject": "[dpdk-dev] [PATCH v2 26/58] net/bnxt: check FW capability to\n support TRUFLOW",
        "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: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>\n\nCurrently, a devarg (host-based-truflow) is passed while launching\nthe app to enable TRUFLOW feature. However, this mechanism adds\nan extra step in enabling TRUFLOW. This doesn't give a seamless\nexperience when flow offloads has to work with FW that doesn't/does\nsupport TRUFLOW feature. Also, it's likely that customers may not\nwant to use devarg to enable flow offloads.\n\nThis patch fixes it by checking for TRUFLOW feature support in\ndevice's capabilities and configurations field of the hwrm_ver_get.\n\nSigned-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>\nReviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>\nReviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>\n---\n doc/guides/nics/bnxt.rst       |  3 +-\n drivers/net/bnxt/bnxt.h        | 10 +++---\n drivers/net/bnxt/bnxt_ethdev.c | 56 ----------------------------------\n drivers/net/bnxt/bnxt_hwrm.c   |  7 ++++-\n 4 files changed, 12 insertions(+), 64 deletions(-)",
    "diff": "diff --git a/doc/guides/nics/bnxt.rst b/doc/guides/nics/bnxt.rst\nindex feb0c6a765..e75f4fa9e3 100644\n--- a/doc/guides/nics/bnxt.rst\n+++ b/doc/guides/nics/bnxt.rst\n@@ -658,8 +658,7 @@ which currently supports basic packet classification in the receive path.\n The feature uses a newly implemented control-plane firmware interface which\n optimizes flow insertions and deletions.\n \n-This is a tech preview feature, and is disabled by default. It can be enabled\n-using bnxt devargs. For ex: \"-a 0000:0d:00.0,host-based-truflow=1”.\n+This is a tech preview feature.\n \n This feature is currently supported on Whitney+ and Stingray devices.\n \ndiff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h\nindex e93a7eb933..532755467f 100644\n--- a/drivers/net/bnxt/bnxt.h\n+++ b/drivers/net/bnxt/bnxt.h\n@@ -688,10 +688,9 @@ struct bnxt {\n #define BNXT_FLAG_RX_VECTOR_PKT_MODE\t\tBIT(24)\n #define BNXT_FLAG_FLOW_XSTATS_EN\t\tBIT(25)\n #define BNXT_FLAG_DFLT_MAC_SET\t\t\tBIT(26)\n-#define BNXT_FLAG_TRUFLOW_EN\t\t\tBIT(27)\n-#define BNXT_FLAG_GFID_ENABLE\t\t\tBIT(28)\n-#define BNXT_FLAG_RFS_NEEDS_VNIC\t\tBIT(29)\n-#define BNXT_FLAG_FLOW_CFA_RFS_RING_TBL_IDX_V2\tBIT(30)\n+#define BNXT_FLAG_GFID_ENABLE\t\t\tBIT(27)\n+#define BNXT_FLAG_RFS_NEEDS_VNIC\t\tBIT(28)\n+#define BNXT_FLAG_FLOW_CFA_RFS_RING_TBL_IDX_V2\tBIT(29)\n #define BNXT_RFS_NEEDS_VNIC(bp)\t((bp)->flags & BNXT_FLAG_RFS_NEEDS_VNIC)\n #define BNXT_PF(bp)\t\t(!((bp)->flags & BNXT_FLAG_VF))\n #define BNXT_VF(bp)\t\t((bp)->flags & BNXT_FLAG_VF)\n@@ -707,7 +706,6 @@ struct bnxt {\n #define BNXT_HAS_RING_GRPS(bp)\t(!BNXT_CHIP_P5(bp))\n #define BNXT_FLOW_XSTATS_EN(bp)\t((bp)->flags & BNXT_FLAG_FLOW_XSTATS_EN)\n #define BNXT_HAS_DFLT_MAC_SET(bp)      ((bp)->flags & BNXT_FLAG_DFLT_MAC_SET)\n-#define BNXT_TRUFLOW_EN(bp)\t((bp)->flags & BNXT_FLAG_TRUFLOW_EN)\n #define BNXT_GFID_ENABLED(bp)\t((bp)->flags & BNXT_FLAG_GFID_ENABLE)\n \n \tuint32_t\t\t\tflags2;\n@@ -729,6 +727,8 @@ struct bnxt {\n #define BNXT_FW_CAP_ADV_FLOW_MGMT\tBIT(5)\n #define BNXT_FW_CAP_ADV_FLOW_COUNTERS\tBIT(6)\n #define BNXT_FW_CAP_LINK_ADMIN\t\tBIT(7)\n+#define BNXT_FW_CAP_TRUFLOW_EN\t\tBIT(8)\n+#define BNXT_TRUFLOW_EN(bp)\t((bp)->fw_cap & BNXT_FW_CAP_TRUFLOW_EN)\n \n \tpthread_mutex_t         flow_lock;\n \ndiff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c\nindex c9536f7926..b77f12bbb4 100644\n--- a/drivers/net/bnxt/bnxt_ethdev.c\n+++ b/drivers/net/bnxt/bnxt_ethdev.c\n@@ -87,7 +87,6 @@ static const struct rte_pci_id bnxt_pci_id_map[] = {\n \t{ .vendor_id = 0, /* sentinel */ },\n };\n \n-#define BNXT_DEVARG_TRUFLOW\t\"host-based-truflow\"\n #define BNXT_DEVARG_FLOW_XSTAT\t\"flow-xstat\"\n #define BNXT_DEVARG_MAX_NUM_KFLOWS  \"max-num-kflows\"\n #define BNXT_DEVARG_REPRESENTOR\t\"representor\"\n@@ -100,7 +99,6 @@ static const struct rte_pci_id bnxt_pci_id_map[] = {\n \n static const char *const bnxt_dev_args[] = {\n \tBNXT_DEVARG_REPRESENTOR,\n-\tBNXT_DEVARG_TRUFLOW,\n \tBNXT_DEVARG_FLOW_XSTAT,\n \tBNXT_DEVARG_MAX_NUM_KFLOWS,\n \tBNXT_DEVARG_REP_BASED_PF,\n@@ -112,12 +110,6 @@ static const char *const bnxt_dev_args[] = {\n \tNULL\n };\n \n-/*\n- * truflow == false to disable the feature\n- * truflow == true to enable the feature\n- */\n-#define\tBNXT_DEVARG_TRUFLOW_INVALID(truflow)\t((truflow) > 1)\n-\n /*\n  * flow_xstat == false to disable the feature\n  * flow_xstat == true to enable the feature\n@@ -5261,45 +5253,6 @@ static int bnxt_init_resources(struct bnxt *bp, bool reconfig_dev)\n \treturn 0;\n }\n \n-static int\n-bnxt_parse_devarg_truflow(__rte_unused const char *key,\n-\t\t\t  const char *value, void *opaque_arg)\n-{\n-\tstruct bnxt *bp = opaque_arg;\n-\tunsigned long truflow;\n-\tchar *end = NULL;\n-\n-\tif (!value || !opaque_arg) {\n-\t\tPMD_DRV_LOG(ERR,\n-\t\t\t    \"Invalid parameter passed to truflow devargs.\\n\");\n-\t\treturn -EINVAL;\n-\t}\n-\n-\ttruflow = strtoul(value, &end, 10);\n-\tif (end == NULL || *end != '\\0' ||\n-\t    (truflow == ULONG_MAX && errno == ERANGE)) {\n-\t\tPMD_DRV_LOG(ERR,\n-\t\t\t    \"Invalid parameter passed to truflow devargs.\\n\");\n-\t\treturn -EINVAL;\n-\t}\n-\n-\tif (BNXT_DEVARG_TRUFLOW_INVALID(truflow)) {\n-\t\tPMD_DRV_LOG(ERR,\n-\t\t\t    \"Invalid value passed to truflow devargs.\\n\");\n-\t\treturn -EINVAL;\n-\t}\n-\n-\tif (truflow) {\n-\t\tbp->flags |= BNXT_FLAG_TRUFLOW_EN;\n-\t\tPMD_DRV_LOG(INFO, \"Host-based truflow feature enabled.\\n\");\n-\t} else {\n-\t\tbp->flags &= ~BNXT_FLAG_TRUFLOW_EN;\n-\t\tPMD_DRV_LOG(INFO, \"Host-based truflow feature disabled.\\n\");\n-\t}\n-\n-\treturn 0;\n-}\n-\n static int\n bnxt_parse_devarg_flow_xstat(__rte_unused const char *key,\n \t\t\t     const char *value, void *opaque_arg)\n@@ -5607,15 +5560,6 @@ bnxt_parse_dev_args(struct bnxt *bp, struct rte_devargs *devargs)\n \tif (kvlist == NULL)\n \t\treturn -EINVAL;\n \n-\t/*\n-\t * Handler for \"truflow\" devarg.\n-\t * Invoked as for ex: \"-a 0000:00:0d.0,host-based-truflow=1\"\n-\t */\n-\tret = rte_kvargs_process(kvlist, BNXT_DEVARG_TRUFLOW,\n-\t\t\t\t bnxt_parse_devarg_truflow, bp);\n-\tif (ret)\n-\t\tgoto err;\n-\n \t/*\n \t * Handler for \"flow_xstat\" devarg.\n \t * Invoked as for ex: \"-a 0000:00:0d.0,flow_xstat=1\"\ndiff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c\nindex a65ac6c0ec..6eab2342f6 100644\n--- a/drivers/net/bnxt/bnxt_hwrm.c\n+++ b/drivers/net/bnxt/bnxt_hwrm.c\n@@ -1349,6 +1349,12 @@ int bnxt_hwrm_ver_get(struct bnxt *bp, uint32_t timeout)\n \t\tbp->fw_cap |= BNXT_FW_CAP_ADV_FLOW_COUNTERS;\n \t}\n \n+\tif (dev_caps_cfg &\n+\t    HWRM_VER_GET_OUTPUT_DEV_CAPS_CFG_CFA_TRUFLOW_SUPPORTED) {\n+\t\tPMD_DRV_LOG(DEBUG, \"Host-based truflow feature enabled.\\n\");\n+\t\tbp->fw_cap |= BNXT_FW_CAP_TRUFLOW_EN;\n+\t}\n+\n error:\n \tHWRM_UNLOCK();\n \treturn rc;\n@@ -4660,7 +4666,6 @@ int bnxt_hwrm_erase_nvram_directory(struct bnxt *bp, uint8_t index)\n \treturn rc;\n }\n \n-\n int bnxt_hwrm_flash_nvram(struct bnxt *bp, uint16_t dir_type,\n \t\t\t  uint16_t dir_ordinal, uint16_t dir_ext,\n \t\t\t  uint16_t dir_attr, const uint8_t *data,\n",
    "prefixes": [
        "v2",
        "26/58"
    ]
}