get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 72328,
    "url": "https://patches.dpdk.org/api/patches/72328/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20200627100050.19688-10-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": "<20200627100050.19688-10-ajit.khaparde@broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200627100050.19688-10-ajit.khaparde@broadcom.com",
    "date": "2020-06-27T10:00:34",
    "name": "[v4,09/25] net/bnxt: add support for action bitmap opcode",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "32fa6bd46a969f2788bfe903a859e86d4cdff902",
    "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/20200627100050.19688-10-ajit.khaparde@broadcom.com/mbox/",
    "series": [
        {
            "id": 10645,
            "url": "https://patches.dpdk.org/api/series/10645/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=10645",
            "date": "2020-06-27T10:00:25",
            "name": "bnxt patches",
            "version": 4,
            "mbox": "https://patches.dpdk.org/series/10645/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/72328/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/72328/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 BE799A0520;\n\tSat, 27 Jun 2020 12:02:48 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id CBF581C022;\n\tSat, 27 Jun 2020 12:01:27 +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 8E6821BF83\n for <dev@dpdk.org>; Sat, 27 Jun 2020 12:00:59 +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 81E7230C0F3;\n Sat, 27 Jun 2020 03:00:58 -0700 (PDT)",
            "from localhost.localdomain (unknown [10.230.185.215])\n by mail-irv-17.broadcom.com (Postfix) with ESMTP id F1BC314008C;\n Sat, 27 Jun 2020 03:00:57 -0700 (PDT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.10.3 rnd-relay.smtp.broadcom.com 81E7230C0F3",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com;\n s=dkimrelay; t=1593252058;\n bh=xBtfV0g2mlbsE/vdveZj+yPvkcWREL1crKm4pH2eBco=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n b=XqvtKmm//5dlCTXeMcITupr+7zFrM2Lso6iqcmoUD8ggew8baVRp9k/oZ3jnNQxdv\n A258/l69D1RBr+NpRfIXAkFpMdRFJSRDWLXLrosiWe1HpBP63hyvUndfG5vO9ewclA\n 0KzBZzh9JVvO3JBE/pb8yXjBKiWMlr6gnCkNog9w=",
        "From": "Ajit Khaparde <ajit.khaparde@broadcom.com>",
        "To": "dev@dpdk.org",
        "Cc": "Kishore Padmanabha <kishore.padmanabha@broadcom.com>,\n Somnath Kotur <somnath.kotur@broadcom.com>,\n Mike Baucom <michael.baucom@broadcom.com>",
        "Date": "Sat, 27 Jun 2020 03:00:34 -0700",
        "Message-Id": "<20200627100050.19688-10-ajit.khaparde@broadcom.com>",
        "X-Mailer": "git-send-email 2.21.1 (Apple Git-122.3)",
        "In-Reply-To": "<20200627100050.19688-1-ajit.khaparde@broadcom.com>",
        "References": "<20200612125024.15989-1-somnath.kotur@broadcom.com>\n <20200627100050.19688-1-ajit.khaparde@broadcom.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v4 09/25] net/bnxt: add support for action bitmap\n\topcode",
        "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\nThis enables using the action bitmap to update the action result\nfields in the flow creation instead of using computed header fields.\nDirection bit needs to be added to the action bitmap during\nflow parsing, so that egress flows can be matched to the\ntemplate signature.\nAn example would be the usage of the vlan pop action bitmap that is\nused to updated action result field as part of this commit.\nAlso the ulp action bitmap enumeration values that\ncontain open flow string are renamed.\n\nSigned-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>\nSigned-off-by: Somnath Kotur <somnath.kotur@broadcom.com>\nReviewed-by: Mike Baucom <michael.baucom@broadcom.com>\nReviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>\n---\n drivers/net/bnxt/tf_ulp/ulp_mapper.c      | 20 ++++++++++++++++++++\n drivers/net/bnxt/tf_ulp/ulp_rte_parser.c  |  4 ++++\n drivers/net/bnxt/tf_ulp/ulp_template_db.c | 14 +++++++++++---\n drivers/net/bnxt/tf_ulp/ulp_template_db.h | 23 ++++++++++++-----------\n 4 files changed, 47 insertions(+), 14 deletions(-)",
    "diff": "diff --git a/drivers/net/bnxt/tf_ulp/ulp_mapper.c b/drivers/net/bnxt/tf_ulp/ulp_mapper.c\nindex 34dd3a988..3d44d61ce 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_mapper.c\n+++ b/drivers/net/bnxt/tf_ulp/ulp_mapper.c\n@@ -611,6 +611,8 @@ ulp_mapper_result_field_process(struct bnxt_ulp_mapper_parms *parms,\n \tuint8_t\t *val = NULL;\n \tuint64_t regval;\n \tuint32_t val_size = 0, field_size = 0;\n+\tuint64_t act_bit;\n+\tuint8_t act_val;\n \n \tswitch (fld->result_opcode) {\n \tcase BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT:\n@@ -644,6 +646,24 @@ ulp_mapper_result_field_process(struct bnxt_ulp_mapper_parms *parms,\n \t\t\treturn -EINVAL;\n \t\t}\n \t\tbreak;\n+\tcase BNXT_ULP_RESULT_OPC_SET_TO_ACT_BIT:\n+\t\tif (!ulp_operand_read(fld->result_operand,\n+\t\t\t\t      (uint8_t *)&act_bit, sizeof(uint64_t))) {\n+\t\t\tBNXT_TF_DBG(ERR, \"%s operand read failed\\n\", name);\n+\t\t\treturn -EINVAL;\n+\t\t}\n+\t\tact_bit = tfp_be_to_cpu_64(act_bit);\n+\t\tact_val = ULP_BITMAP_ISSET(parms->act_bitmap->bits, act_bit);\n+\t\tif (fld->field_bit_size > ULP_BYTE_2_BITS(sizeof(act_val))) {\n+\t\t\tBNXT_TF_DBG(ERR, \"%s field size is incorrect\\n\", name);\n+\t\t\treturn -EINVAL;\n+\t\t}\n+\t\tif (!ulp_blob_push(blob, &act_val, fld->field_bit_size)) {\n+\t\t\tBNXT_TF_DBG(ERR, \"%s push field failed\\n\", name);\n+\t\t\treturn -EINVAL;\n+\t\t}\n+\t\tval = &act_val;\n+\t\tbreak;\n \tcase BNXT_ULP_RESULT_OPC_SET_TO_ENCAP_ACT_PROP_SZ:\n \t\tif (!ulp_operand_read(fld->result_operand,\n \t\t\t\t      (uint8_t *)&idx, sizeof(uint16_t))) {\ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c\nindex d264fd533..842466da9 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c\n+++ b/drivers/net/bnxt/tf_ulp/ulp_rte_parser.c\n@@ -124,6 +124,10 @@ bnxt_ulp_rte_parser_act_parse(const struct rte_flow_action actions[],\n \tconst struct rte_flow_action *action_item = actions;\n \tstruct bnxt_ulp_rte_act_info *hdr_info;\n \n+\tif (params->dir == ULP_DIR_EGRESS)\n+\t\tULP_BITMAP_SET(params->act_bitmap.bits,\n+\t\t\t       BNXT_ULP_FLOW_DIR_BITMASK_EGR);\n+\n \t/* Parse all the items in the pattern */\n \twhile (action_item && action_item->type != RTE_FLOW_ACTION_TYPE_END) {\n \t\t/* get the header information from the flow_hdr_info table */\ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_template_db.c b/drivers/net/bnxt/tf_ulp/ulp_template_db.c\nindex 140f96ac8..e8b860a71 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_template_db.c\n+++ b/drivers/net/bnxt/tf_ulp/ulp_template_db.c\n@@ -1769,9 +1769,17 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_result_field_list[] = {\n \t},\n \t{\n \t.field_bit_size = 1,\n-\t.result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT,\n-\t.result_operand = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n-\t\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}\n+\t.result_opcode = BNXT_ULP_RESULT_OPC_SET_TO_ACT_BIT,\n+\t.result_operand = {\n+\t\t((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,\n+\t\t((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,\n+\t\t((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,\n+\t\t((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,\n+\t\t((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,\n+\t\t((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,\n+\t\t((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,\n+\t\t(uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,\n+\t\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}\n \t},\n \t{\n \t.field_bit_size = 2,\ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_template_db.h b/drivers/net/bnxt/tf_ulp/ulp_template_db.h\nindex a2cb11dcf..cf9cc5853 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_template_db.h\n+++ b/drivers/net/bnxt/tf_ulp/ulp_template_db.h\n@@ -38,15 +38,15 @@ enum bnxt_ulp_action_bit {\n \tBNXT_ULP_ACTION_BIT_VPORT            = 0x0000000000000040,\n \tBNXT_ULP_ACTION_BIT_VXLAN_DECAP      = 0x0000000000000080,\n \tBNXT_ULP_ACTION_BIT_NVGRE_DECAP      = 0x0000000000000100,\n-\tBNXT_ULP_ACTION_BIT_OF_POP_MPLS      = 0x0000000000000200,\n-\tBNXT_ULP_ACTION_BIT_OF_PUSH_MPLS     = 0x0000000000000400,\n+\tBNXT_ULP_ACTION_BIT_POP_MPLS         = 0x0000000000000200,\n+\tBNXT_ULP_ACTION_BIT_PUSH_MPLS        = 0x0000000000000400,\n \tBNXT_ULP_ACTION_BIT_MAC_SWAP         = 0x0000000000000800,\n \tBNXT_ULP_ACTION_BIT_SET_MAC_SRC      = 0x0000000000001000,\n \tBNXT_ULP_ACTION_BIT_SET_MAC_DST      = 0x0000000000002000,\n-\tBNXT_ULP_ACTION_BIT_OF_POP_VLAN      = 0x0000000000004000,\n-\tBNXT_ULP_ACTION_BIT_OF_PUSH_VLAN     = 0x0000000000008000,\n-\tBNXT_ULP_ACTION_BIT_OF_SET_VLAN_PCP  = 0x0000000000010000,\n-\tBNXT_ULP_ACTION_BIT_OF_SET_VLAN_VID  = 0x0000000000020000,\n+\tBNXT_ULP_ACTION_BIT_POP_VLAN         = 0x0000000000004000,\n+\tBNXT_ULP_ACTION_BIT_PUSH_VLAN        = 0x0000000000008000,\n+\tBNXT_ULP_ACTION_BIT_SET_VLAN_PCP     = 0x0000000000010000,\n+\tBNXT_ULP_ACTION_BIT_SET_VLAN_VID     = 0x0000000000020000,\n \tBNXT_ULP_ACTION_BIT_SET_IPV4_SRC     = 0x0000000000040000,\n \tBNXT_ULP_ACTION_BIT_SET_IPV4_DST     = 0x0000000000080000,\n \tBNXT_ULP_ACTION_BIT_SET_IPV6_SRC     = 0x0000000000100000,\n@@ -212,11 +212,12 @@ enum bnxt_ulp_regfile_index {\n enum bnxt_ulp_result_opc {\n \tBNXT_ULP_RESULT_OPC_SET_TO_CONSTANT = 0,\n \tBNXT_ULP_RESULT_OPC_SET_TO_ACT_PROP = 1,\n-\tBNXT_ULP_RESULT_OPC_SET_TO_ENCAP_ACT_PROP_SZ = 2,\n-\tBNXT_ULP_RESULT_OPC_SET_TO_REGFILE = 3,\n-\tBNXT_ULP_RESULT_OPC_SET_TO_GLB_REGFILE = 4,\n-\tBNXT_ULP_RESULT_OPC_SET_TO_COMP_FIELD = 5,\n-\tBNXT_ULP_RESULT_OPC_LAST = 6\n+\tBNXT_ULP_RESULT_OPC_SET_TO_ACT_BIT = 2,\n+\tBNXT_ULP_RESULT_OPC_SET_TO_ENCAP_ACT_PROP_SZ = 3,\n+\tBNXT_ULP_RESULT_OPC_SET_TO_REGFILE = 4,\n+\tBNXT_ULP_RESULT_OPC_SET_TO_GLB_REGFILE = 5,\n+\tBNXT_ULP_RESULT_OPC_SET_TO_COMP_FIELD = 6,\n+\tBNXT_ULP_RESULT_OPC_LAST = 7\n };\n \n enum bnxt_ulp_search_before_alloc {\n",
    "prefixes": [
        "v4",
        "09/25"
    ]
}