get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 72562,
    "url": "https://patches.dpdk.org/api/patches/72562/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20200701065212.41391-40-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": "<20200701065212.41391-40-ajit.khaparde@broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200701065212.41391-40-ajit.khaparde@broadcom.com",
    "date": "2020-07-01T06:52:00",
    "name": "[v2,39/51] net/bnxt: add support for conditional execution of mapper tables",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "be7bdc3bd47f0b29ce99c8e312a9046d7a0799b8",
    "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/20200701065212.41391-40-ajit.khaparde@broadcom.com/mbox/",
    "series": [
        {
            "id": 10703,
            "url": "https://patches.dpdk.org/api/series/10703/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=10703",
            "date": "2020-07-01T06:51:22",
            "name": "add features for host-based flow management",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/10703/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/72562/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/72562/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 70CBCA0350;\n\tWed,  1 Jul 2020 09:01:34 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 384D11D518;\n\tWed,  1 Jul 2020 08:53:12 +0200 (CEST)",
            "from rnd-relay.smtp.broadcom.com (rnd-relay.smtp.broadcom.com\n [192.19.229.170]) by dpdk.org (Postfix) with ESMTP id 838651C195\n for <dev@dpdk.org>; Wed,  1 Jul 2020 08:52:29 +0200 (CEST)",
            "from mail-irv-17.broadcom.com (mail-irv-17.lvn.broadcom.net\n [10.75.242.48])\n by rnd-relay.smtp.broadcom.com (Postfix) with ESMTP id CEF9830C346;\n Tue, 30 Jun 2020 23:52:28 -0700 (PDT)",
            "from localhost.localdomain (unknown [10.230.185.215])\n by mail-irv-17.broadcom.com (Postfix) with ESMTP id A542614008B;\n Tue, 30 Jun 2020 23:52:28 -0700 (PDT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.10.3 rnd-relay.smtp.broadcom.com CEF9830C346",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com;\n s=dkimrelay; t=1593586348;\n bh=Fh31T8KbW5FbKzDSv61okGmzdKKa9uIOS1MtTbYvZII=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n b=uOd81Fn3ngltnVxkvnqrQFGqaTExjLNOpLP/Fz/qrK7dNJUjfxaS5VMVT146q717I\n Us4NrxtRpLfT9osTAFznRRVfKdeGFzz+BT2Zwo26gDAPBkMzThHqwE7Zd82KbZ8Cp0\n rC9soURXOcu4R4Y5OXTGGWL/cGRf/TQL7QOA1/gU=",
        "From": "Ajit Khaparde <ajit.khaparde@broadcom.com>",
        "To": "dev@dpdk.org",
        "Cc": "Kishore Padmanabha <kishore.padmanabha@broadcom.com>,\n Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>,\n Somnath Kotur <somnath.kotur@broadcom.com>",
        "Date": "Tue, 30 Jun 2020 23:52:00 -0700",
        "Message-Id": "<20200701065212.41391-40-ajit.khaparde@broadcom.com>",
        "X-Mailer": "git-send-email 2.21.1 (Apple Git-122.3)",
        "In-Reply-To": "<20200701065212.41391-1-ajit.khaparde@broadcom.com>",
        "References": "<20200612132934.16488-1-somnath.kotur@broadcom.com>\n <20200701065212.41391-1-ajit.khaparde@broadcom.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v2 39/51] net/bnxt: add support for conditional\n\texecution of mapper tables",
        "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": "From: Kishore Padmanabha <kishore.padmanabha@broadcom.com>\n\nAdded support for conditional execution of the mapper tables so that\nactions like count will have table processed only if action count\nis configured.\n\nSigned-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>\nSigned-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>\nReviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>\nReviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>\n---\n drivers/net/bnxt/tf_ulp/ulp_mapper.c          | 45 +++++++++++++++++++\n drivers/net/bnxt/tf_ulp/ulp_mapper.h          |  1 +\n drivers/net/bnxt/tf_ulp/ulp_rte_parser.c      |  8 ++++\n .../net/bnxt/tf_ulp/ulp_template_db_enum.h    | 12 ++++-\n drivers/net/bnxt/tf_ulp/ulp_template_struct.h |  2 +\n 5 files changed, 67 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/drivers/net/bnxt/tf_ulp/ulp_mapper.c b/drivers/net/bnxt/tf_ulp/ulp_mapper.c\nindex e2b771c9f..d0931d411 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_mapper.c\n+++ b/drivers/net/bnxt/tf_ulp/ulp_mapper.c\n@@ -2008,6 +2008,44 @@ ulp_mapper_glb_resource_info_init(struct bnxt_ulp_context *ulp_ctx,\n \treturn rc;\n }\n \n+/*\n+ * Function to process the conditional opcode of the mapper table.\n+ * returns 1 to skip the table.\n+ * return 0 to continue processing the table.\n+ */\n+static int32_t\n+ulp_mapper_tbl_cond_opcode_process(struct bnxt_ulp_mapper_parms *parms,\n+\t\t\t\t   struct bnxt_ulp_mapper_tbl_info *tbl)\n+{\n+\tint32_t rc = 1;\n+\n+\tswitch (tbl->cond_opcode) {\n+\tcase BNXT_ULP_COND_OPCODE_NOP:\n+\t\trc = 0;\n+\t\tbreak;\n+\tcase BNXT_ULP_COND_OPCODE_COMP_FIELD:\n+\t\tif (tbl->cond_operand < BNXT_ULP_CF_IDX_LAST &&\n+\t\t    ULP_COMP_FLD_IDX_RD(parms, tbl->cond_operand))\n+\t\t\trc = 0;\n+\t\tbreak;\n+\tcase BNXT_ULP_COND_OPCODE_ACTION_BIT:\n+\t\tif (ULP_BITMAP_ISSET(parms->act_bitmap->bits,\n+\t\t\t\t     tbl->cond_operand))\n+\t\t\trc = 0;\n+\t\tbreak;\n+\tcase BNXT_ULP_COND_OPCODE_HDR_BIT:\n+\t\tif (ULP_BITMAP_ISSET(parms->hdr_bitmap->bits,\n+\t\t\t\t     tbl->cond_operand))\n+\t\t\trc = 0;\n+\t\tbreak;\n+\tdefault:\n+\t\tBNXT_TF_DBG(ERR,\n+\t\t\t    \"Invalid arg in mapper tbl for cond opcode\\n\");\n+\t\tbreak;\n+\t}\n+\treturn rc;\n+}\n+\n /*\n  * Function to process the action template. Iterate through the list\n  * action info templates and process it.\n@@ -2027,6 +2065,9 @@ ulp_mapper_action_tbls_process(struct bnxt_ulp_mapper_parms *parms)\n \n \tfor (i = 0; i < parms->num_atbls; i++) {\n \t\ttbl = &parms->atbls[i];\n+\t\tif (ulp_mapper_tbl_cond_opcode_process(parms, tbl))\n+\t\t\tcontinue;\n+\n \t\tswitch (tbl->resource_func) {\n \t\tcase BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE:\n \t\t\trc = ulp_mapper_index_tbl_process(parms, tbl, false);\n@@ -2065,6 +2106,9 @@ ulp_mapper_class_tbls_process(struct bnxt_ulp_mapper_parms *parms)\n \tfor (i = 0; i < parms->num_ctbls; i++) {\n \t\tstruct bnxt_ulp_mapper_tbl_info *tbl = &parms->ctbls[i];\n \n+\t\tif (ulp_mapper_tbl_cond_opcode_process(parms, tbl))\n+\t\t\tcontinue;\n+\n \t\tswitch (tbl->resource_func) {\n \t\tcase BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE:\n \t\t\trc = ulp_mapper_tcam_tbl_process(parms, tbl);\n@@ -2326,6 +2370,7 @@ ulp_mapper_flow_create(struct bnxt_ulp_context *ulp_ctx,\n \tmemset(&parms, 0, sizeof(parms));\n \tparms.act_prop = cparms->act_prop;\n \tparms.act_bitmap = cparms->act;\n+\tparms.hdr_bitmap = cparms->hdr_bitmap;\n \tparms.regfile = &regfile;\n \tparms.hdr_field = cparms->hdr_field;\n \tparms.comp_fld = cparms->comp_fld;\ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_mapper.h b/drivers/net/bnxt/tf_ulp/ulp_mapper.h\nindex b159081b1..19134830a 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_mapper.h\n+++ b/drivers/net/bnxt/tf_ulp/ulp_mapper.h\n@@ -62,6 +62,7 @@ struct bnxt_ulp_mapper_parms {\n \tuint32_t\t\t\t\tnum_ctbls;\n \tstruct ulp_rte_act_prop\t\t\t*act_prop;\n \tstruct ulp_rte_act_bitmap\t\t*act_bitmap;\n+\tstruct ulp_rte_hdr_bitmap\t\t*hdr_bitmap;\n \tstruct ulp_rte_hdr_field\t\t*hdr_field;\n \tuint32_t\t\t\t\t*comp_fld;\n \tstruct ulp_regfile\t\t\t*regfile;\ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c\nindex 41ac77c6f..8fffaecce 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c\n+++ b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c\n@@ -1128,6 +1128,10 @@ ulp_rte_vxlan_encap_act_handler(const struct rte_flow_action *action_item,\n \t\tmemcpy(&ap->act_details[BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE],\n \t\t       &ip_type, sizeof(uint32_t));\n \n+\t\t/* update the computed field to notify it is ipv4 header */\n+\t\tULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG,\n+\t\t\t\t    1);\n+\n \t\tif (!ulp_rte_item_skip_void(&item, 1))\n \t\t\treturn BNXT_TF_RC_ERROR;\n \t} else if (item->type == RTE_FLOW_ITEM_TYPE_IPV6) {\n@@ -1148,6 +1152,10 @@ ulp_rte_vxlan_encap_act_handler(const struct rte_flow_action *action_item,\n \t\tmemcpy(&ap->act_details[BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE],\n \t\t       &ip_type, sizeof(uint32_t));\n \n+\t\t/* update the computed field to notify it is ipv6 header */\n+\t\tULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG,\n+\t\t\t\t    1);\n+\n \t\tif (!ulp_rte_item_skip_void(&item, 1))\n \t\t\treturn BNXT_TF_RC_ERROR;\n \t} else {\ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_template_db_enum.h b/drivers/net/bnxt/tf_ulp/ulp_template_db_enum.h\nindex 3168d29a9..27628a510 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_template_db_enum.h\n+++ b/drivers/net/bnxt/tf_ulp/ulp_template_db_enum.h\n@@ -118,7 +118,17 @@ enum bnxt_ulp_cf_idx {\n \tBNXT_ULP_CF_IDX_PHY_PORT_SPIF = 26,\n \tBNXT_ULP_CF_IDX_PHY_PORT_PARIF = 27,\n \tBNXT_ULP_CF_IDX_PHY_PORT_VPORT = 28,\n-\tBNXT_ULP_CF_IDX_LAST = 29\n+\tBNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG = 29,\n+\tBNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG = 30,\n+\tBNXT_ULP_CF_IDX_LAST = 31\n+};\n+\n+enum bnxt_ulp_cond_opcode {\n+\tBNXT_ULP_COND_OPCODE_NOP = 0,\n+\tBNXT_ULP_COND_OPCODE_COMP_FIELD = 1,\n+\tBNXT_ULP_COND_OPCODE_ACTION_BIT = 2,\n+\tBNXT_ULP_COND_OPCODE_HDR_BIT = 3,\n+\tBNXT_ULP_COND_OPCODE_LAST = 4\n };\n \n enum bnxt_ulp_critical_resource {\ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_template_struct.h b/drivers/net/bnxt/tf_ulp/ulp_template_struct.h\nindex 5a7a7b910..df999b18c 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_template_struct.h\n+++ b/drivers/net/bnxt/tf_ulp/ulp_template_struct.h\n@@ -165,6 +165,8 @@ struct bnxt_ulp_mapper_tbl_info {\n \tenum bnxt_ulp_resource_func\tresource_func;\n \tuint32_t\t\t\tresource_type; /* TF_ enum type */\n \tenum bnxt_ulp_resource_sub_type\tresource_sub_type;\n+\tenum bnxt_ulp_cond_opcode\tcond_opcode;\n+\tuint32_t\t\t\tcond_operand;\n \tuint8_t\t\tdirection;\n \tuint32_t\tpriority;\n \tuint8_t\t\tsrch_b4_alloc;\n",
    "prefixes": [
        "v2",
        "39/51"
    ]
}