get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 80261,
    "url": "http://patches.dpdk.org/api/patches/80261/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20201010041153.63921-6-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": "<20201010041153.63921-6-ajit.khaparde@broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20201010041153.63921-6-ajit.khaparde@broadcom.com",
    "date": "2020-10-10T04:11:46",
    "name": "[v2,05/12] net/bnxt: consolidate template table processing",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "dcebd7006384b2f166e23a3697d7e2cdc7e0ddec",
    "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/20201010041153.63921-6-ajit.khaparde@broadcom.com/mbox/",
    "series": [
        {
            "id": 12854,
            "url": "http://patches.dpdk.org/api/series/12854/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=12854",
            "date": "2020-10-10T04:11:42",
            "name": "[v2,01/12] net/bnxt: fix the corruption of the session details",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/12854/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/80261/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/80261/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 81EC3A04BC;\n\tSat, 10 Oct 2020 06:14:37 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 868921D71A;\n\tSat, 10 Oct 2020 06:13:13 +0200 (CEST)",
            "from mail-pg1-f232.google.com (mail-pg1-f232.google.com\n [209.85.215.232]) by dpdk.org (Postfix) with ESMTP id 437331D6B4\n for <dev@dpdk.org>; Sat, 10 Oct 2020 06:13:07 +0200 (CEST)",
            "by mail-pg1-f232.google.com with SMTP id g29so8910364pgl.2\n for <dev@dpdk.org>; Fri, 09 Oct 2020 21:13:07 -0700 (PDT)",
            "from localhost.localdomain ([192.19.223.252])\n by smtp-relay.gmail.com with ESMTPS id b4sm1597022pjn.3.2020.10.09.21.13.04\n (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);\n Fri, 09 Oct 2020 21:13:05 -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:content-transfer-encoding;\n bh=B8CZA7w/8MMBACYLCR4Hn+r+vTaafijWICzGSoFdUQ0=;\n b=C/jeCloTpHGYBkb+BtI9gwahIH0z/Q30tAanAcLkp94m5TJTazcE/HmzvJ4IXWq8do\n /npF7isEOuTerFqfDYronPBIMvobTxN8R0Qf64rp3PJdSeSDQHzIQsdkz+doLNYcQdlV\n LL7tc/p00dYAQuR51kznNKRB0Esh+WtogxCHI=",
        "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=B8CZA7w/8MMBACYLCR4Hn+r+vTaafijWICzGSoFdUQ0=;\n b=MzYiEIwykcLTm9fd6HA5nT17x4dXTAGnMRskpVJqOHSY6hyESm6qiWidofChdTqGqd\n q5SQbVbhpNChKn6YGXKOhKD543MlMz3h7lFdmSetyTCAqEnnnk7QGBlL5vmclmQ/CsmU\n c4ce6PWAnk2u1BBSbJHn6JiH2ik9N7xohRjZrrZ39xdZ5m5LkpQxFTq+7GrkISNuZICE\n G3CP1zIJPW5JOl7bC62tXizfxVDjNeBNgqjFOpqfUNCFaY4OlX3dra9vM3RCC+eM3sIV\n zPCcKkC+qqsdzuOP5cD4soSjZeJyU1l5DaCrU1c6AIoOIInIN8NCQdyEKKBrwR8nCxWw\n axtA==",
        "X-Gm-Message-State": "AOAM531lIrYhW7Rv1IX1kbgPxrplj464xB6s+D319d59cNyqof+2Rzda\n ihC7sNatCbHj9HT2gFyb/bCRGqXdux1rDzFbl40i8yVGHW9d40iOHWShCWw1cNWIcG3e+QbgS+s\n BKdPOgzKKEFJnwrL6cFSL+zv0+qbEF5cWPadeQvIMyE1Q84LXiqWN42iORlWsQ+GDd6LKM1wlRF\n li4w==",
        "X-Google-Smtp-Source": "\n ABdhPJzfS6fywb2jONO2ZwIw1x3bbSlqd8cBFW0rhVCC7B2DmBLxuq7IdmsoNliS6u7rJFiTL3InCza37xrd",
        "X-Received": "by 2002:aa7:93b6:0:b029:155:3b0b:d47a with SMTP id\n x22-20020aa793b60000b02901553b0bd47amr11545840pff.47.1602303185197;\n Fri, 09 Oct 2020 21:13:05 -0700 (PDT)",
        "X-Relaying-Domain": "broadcom.com",
        "From": "Ajit Khaparde <ajit.khaparde@broadcom.com>",
        "To": "dev@dpdk.org",
        "Cc": "Mike Baucom <michael.baucom@broadcom.com>,\n Kishore Padmanabha <kishore.padmanabha@broadcom.com>",
        "Date": "Fri,  9 Oct 2020 21:11:46 -0700",
        "Message-Id": "<20201010041153.63921-6-ajit.khaparde@broadcom.com>",
        "X-Mailer": "git-send-email 2.21.1 (Apple Git-122.3)",
        "In-Reply-To": "<20201010041153.63921-1-ajit.khaparde@broadcom.com>",
        "References": "<20201009111130.10422-1-somnath.kotur@broadcom.com>\n <20201010041153.63921-1-ajit.khaparde@broadcom.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v2 05/12] net/bnxt: consolidate template table\n\tprocessing",
        "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: Mike Baucom <michael.baucom@broadcom.com>\n\nThe table processing has been consolidated to be able to reuse the same\ncode for action and classification template processing.\n\nSigned-off-by: Mike Baucom <michael.baucom@broadcom.com>\nReviewed-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>\nReviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>\n---\n drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c       |   1 +\n drivers/net/bnxt/tf_ulp/ulp_def_rules.c       |   1 +\n drivers/net/bnxt/tf_ulp/ulp_mapper.c          | 298 +++++-------------\n drivers/net/bnxt/tf_ulp/ulp_mapper.h          |   4 +-\n .../net/bnxt/tf_ulp/ulp_template_db_enum.h    |   6 +\n .../tf_ulp/ulp_template_db_stingray_class.c   |   2 +-\n drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.c |  56 +++-\n drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.h |   4 +-\n .../tf_ulp/ulp_template_db_wh_plus_class.c    |   2 +-\n drivers/net/bnxt/tf_ulp/ulp_template_struct.h |  11 +-\n 10 files changed, 144 insertions(+), 241 deletions(-)",
    "diff": "diff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c b/drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c\nindex 566e1254a..eea39f6b7 100644\n--- a/drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c\n+++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c\n@@ -147,6 +147,7 @@ bnxt_ulp_flow_create(struct rte_eth_dev *dev,\n \tmapper_cparms.act_prop = &params.act_prop;\n \tmapper_cparms.class_tid = class_id;\n \tmapper_cparms.act_tid = act_tmpl;\n+\tmapper_cparms.flow_type = BNXT_ULP_FDB_TYPE_REGULAR;\n \n \t/* Get the function id */\n \tif (ulp_port_db_port_func_id_get(ulp_ctx,\ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_def_rules.c b/drivers/net/bnxt/tf_ulp/ulp_def_rules.c\nindex 8dea235f0..01f4fd087 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_def_rules.c\n+++ b/drivers/net/bnxt/tf_ulp/ulp_def_rules.c\n@@ -351,6 +351,7 @@ ulp_default_flow_create(struct rte_eth_dev *eth_dev,\n \t}\n \n \tmapper_params.class_tid = ulp_class_tid;\n+\tmapper_params.flow_type = BNXT_ULP_FDB_TYPE_DEFAULT;\n \n \trc = ulp_mapper_flow_create(ulp_ctx, &mapper_params, flow_id);\n \tif (rc) {\ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_mapper.c b/drivers/net/bnxt/tf_ulp/ulp_mapper.c\nindex 44a29629b..5ed481ab3 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_mapper.c\n+++ b/drivers/net/bnxt/tf_ulp/ulp_mapper.c\n@@ -216,37 +216,6 @@ ulp_mapper_act_prop_size_get(uint32_t idx)\n \treturn ulp_act_prop_map_table[idx];\n }\n \n-/*\n- * Get the list of result fields that implement the flow action.\n- * Gets a device dependent list of tables that implement the action template id.\n- *\n- * mparms [in] The mappers parms with data related to the flow.\n- *\n- * tid [in] The action template id that matches the flow\n- *\n- * num_tbls [out] The number of action tables in the returned array\n- *\n- * Returns An array of action tables to implement the flow, or NULL on error.\n- */\n-static struct bnxt_ulp_mapper_tbl_info *\n-ulp_mapper_action_tbl_list_get(struct bnxt_ulp_mapper_parms *mparms,\n-\t\t\t       uint32_t tid,\n-\t\t\t       uint32_t *num_tbls)\n-{\n-\tuint32_t\tidx;\n-\tconst struct ulp_template_device_tbls *dev_tbls;\n-\n-\tdev_tbls = mparms->device_params->dev_tbls;\n-\n-\t/* NOTE: Need to have something from template compiler to help validate\n-\t * range of dev_id and act_tid\n-\t */\n-\tidx = dev_tbls->act_tmpl_list[tid].start_tbl_idx;\n-\t*num_tbls = dev_tbls->act_tmpl_list[tid].num_tbls;\n-\n-\treturn &dev_tbls->act_tbl_list[idx];\n-}\n-\n /*\n  * Get a list of classifier tables that implement the flow\n  * Gets a device dependent list of tables that implement the class template id\n@@ -257,30 +226,23 @@ ulp_mapper_action_tbl_list_get(struct bnxt_ulp_mapper_parms *mparms,\n  *\n  * num_tbls [out] The number of classifier tables in the returned array\n  *\n- * fdb_tbl_idx [out] The flow database index Regular or default\n- *\n  * returns An array of classifier tables to implement the flow, or NULL on\n  * error\n  */\n static struct bnxt_ulp_mapper_tbl_info *\n-ulp_mapper_class_tbl_list_get(struct bnxt_ulp_mapper_parms *mparms,\n-\t\t\t      uint32_t tid,\n-\t\t\t      uint32_t *num_tbls,\n-\t\t\t      uint32_t *fdb_tbl_idx)\n+ulp_mapper_tbl_list_get(struct bnxt_ulp_mapper_parms *mparms,\n+\t\t\tuint32_t tid,\n+\t\t\tuint32_t *num_tbls)\n {\n \tuint32_t idx;\n \tconst struct ulp_template_device_tbls *dev_tbls;\n \n-\tdev_tbls = mparms->device_params->dev_tbls;\n+\tdev_tbls = &mparms->device_params->dev_tbls[mparms->tmpl_type];\n \n-\t/* NOTE: Need to have something from template compiler to help validate\n-\t * range of dev_id and tid\n-\t */\n-\tidx = dev_tbls->class_tmpl_list[tid].start_tbl_idx;\n-\t*num_tbls = dev_tbls->class_tmpl_list[tid].num_tbls;\n-\t*fdb_tbl_idx = dev_tbls->class_tmpl_list[tid].flow_db_table_type;\n+\tidx = dev_tbls->tmpl_list[tid].start_tbl_idx;\n+\t*num_tbls = dev_tbls->tmpl_list[tid].num_tbls;\n \n-\treturn &dev_tbls->class_tbl_list[idx];\n+\treturn &dev_tbls->tbl_list[idx];\n }\n \n /*\n@@ -302,13 +264,16 @@ ulp_mapper_key_fields_get(struct bnxt_ulp_mapper_parms *mparms,\n \tuint32_t idx;\n \tconst struct ulp_template_device_tbls *dev_tbls;\n \n-\tdev_tbls = mparms->device_params->dev_tbls;\n+\tdev_tbls = &mparms->device_params->dev_tbls[mparms->tmpl_type];\n+\tif (!dev_tbls->key_field_list) {\n+\t\t*num_flds = 0;\n+\t\treturn NULL;\n+\t}\n \n \tidx\t\t= tbl->key_start_idx;\n \t*num_flds\t= tbl->key_num_fields;\n \n-\t/* NOTE: Need template to provide range checking define */\n-\treturn &dev_tbls->class_key_field_list[idx];\n+\treturn &dev_tbls->key_field_list[idx];\n }\n \n /*\n@@ -333,48 +298,18 @@ ulp_mapper_result_fields_get(struct bnxt_ulp_mapper_parms *mparms,\n \tuint32_t idx;\n \tconst struct ulp_template_device_tbls *dev_tbls;\n \n-\tdev_tbls = mparms->device_params->dev_tbls;\n+\tdev_tbls = &mparms->device_params->dev_tbls[mparms->tmpl_type];\n+\tif (!dev_tbls->result_field_list) {\n+\t\t*num_flds = 0;\n+\t\t*num_encap_flds = 0;\n+\t\treturn NULL;\n+\t}\n \n \tidx\t\t= tbl->result_start_idx;\n \t*num_flds\t= tbl->result_num_fields;\n \t*num_encap_flds = tbl->encap_num_fields;\n \n-\t/* NOTE: Need template to provide range checking define */\n-\treturn &dev_tbls->class_result_field_list[idx];\n-}\n-\n-/*\n- * Get the list of result fields that implement the flow action.\n- *\n- * mparms [in] The mapper parms with information about the flow\n- *\n- * tbl [in] A single table instance to get the results fields\n- * from num_flds\n- *\n- * num_rslt_flds [out] The number of data fields in the returned\n- * array.\n- *\n- * num_encap_flds [out] The number of encap fields if any.\n- *\n- * Returns array of data fields, or NULL on error.\n- */\n-static struct bnxt_ulp_mapper_result_field_info *\n-ulp_mapper_act_result_fields_get(struct bnxt_ulp_mapper_parms *mparms,\n-\t\t\t\t struct bnxt_ulp_mapper_tbl_info *tbl,\n-\t\t\t\t uint32_t *num_rslt_flds,\n-\t\t\t\t uint32_t *num_encap_flds)\n-{\n-\tuint32_t idx;\n-\tconst struct ulp_template_device_tbls *dev_tbls;\n-\n-\tdev_tbls = mparms->device_params->dev_tbls;\n-\n-\tidx\t\t= tbl->result_start_idx;\n-\t*num_rslt_flds\t= tbl->result_num_fields;\n-\t*num_encap_flds = tbl->encap_num_fields;\n-\n-\t/* NOTE: Need template to provide range checking define */\n-\treturn &dev_tbls->act_result_field_list[idx];\n+\treturn &dev_tbls->result_field_list[idx];\n }\n \n /*\n@@ -392,12 +327,18 @@ ulp_mapper_ident_fields_get(struct bnxt_ulp_mapper_parms *mparms,\n \t\t\t    uint32_t *num_flds)\n {\n \tuint32_t idx;\n+\tconst struct ulp_template_device_tbls *dev_tbls;\n+\n+\tdev_tbls = &mparms->device_params->dev_tbls[mparms->tmpl_type];\n+\tif (!dev_tbls->ident_list) {\n+\t\t*num_flds = 0;\n+\t\treturn NULL;\n+\t}\n \n \tidx = tbl->ident_start_idx;\n \t*num_flds = tbl->ident_nums;\n \n-\t/* NOTE: Need template to provide range checking define */\n-\treturn &mparms->device_params->dev_tbls->ident_list[idx];\n+\treturn &dev_tbls->ident_list[idx];\n }\n \n static struct bnxt_ulp_mapper_cache_entry *\n@@ -652,7 +593,7 @@ ulp_mapper_ident_process(struct bnxt_ulp_mapper_parms *parms,\n \t\tfid_parms.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO;\n \n \t\trc = ulp_flow_db_resource_add(parms->ulp_ctx,\n-\t\t\t\t\t      parms->tbl_idx,\n+\t\t\t\t\t      parms->flow_type,\n \t\t\t\t\t      parms->fid,\n \t\t\t\t\t      &fid_parms);\n \t\tif (rc) {\n@@ -749,7 +690,7 @@ ulp_mapper_ident_extract(struct bnxt_ulp_mapper_parms *parms,\n \tfid_parms.resource_hndl = sparms.search_id;\n \tfid_parms.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO;\n \trc = ulp_flow_db_resource_add(parms->ulp_ctx,\n-\t\t\t\t      parms->tbl_idx,\n+\t\t\t\t      parms->flow_type,\n \t\t\t\t      parms->fid,\n \t\t\t\t      &fid_parms);\n \tif (rc) {\n@@ -1234,7 +1175,7 @@ ulp_mapper_mark_gfid_process(struct bnxt_ulp_mapper_parms *parms,\n \tfid_parms.resource_type\t= mark_flag;\n \tfid_parms.resource_hndl\t= gfid;\n \trc = ulp_flow_db_resource_add(parms->ulp_ctx,\n-\t\t\t\t      parms->tbl_idx,\n+\t\t\t\t      parms->flow_type,\n \t\t\t\t      parms->fid,\n \t\t\t\t      &fid_parms);\n \tif (rc)\n@@ -1283,7 +1224,7 @@ ulp_mapper_mark_act_ptr_process(struct bnxt_ulp_mapper_parms *parms,\n \tfid_parms.resource_type\t= mark_flag;\n \tfid_parms.resource_hndl\t= act_idx;\n \trc = ulp_flow_db_resource_add(parms->ulp_ctx,\n-\t\t\t\t      parms->tbl_idx,\n+\t\t\t\t      parms->flow_type,\n \t\t\t\t      parms->fid,\n \t\t\t\t      &fid_parms);\n \tif (rc)\n@@ -1332,7 +1273,7 @@ ulp_mapper_mark_vfr_idx_process(struct bnxt_ulp_mapper_parms *parms,\n \tfid_parms.resource_type\t= mark_flag;\n \tfid_parms.resource_hndl\t= act_idx;\n \trc = ulp_flow_db_resource_add(parms->ulp_ctx,\n-\t\t\t\t      parms->tbl_idx,\n+\t\t\t\t      parms->flow_type,\n \t\t\t\t      parms->fid,\n \t\t\t\t      &fid_parms);\n \tif (rc)\n@@ -1692,7 +1633,7 @@ ulp_mapper_tcam_tbl_process(struct bnxt_ulp_mapper_parms *parms,\n \t\tfid_parms.critical_resource = tbl->critical_resource;\n \t\tfid_parms.resource_hndl\t= idx;\n \t\trc = ulp_flow_db_resource_add(parms->ulp_ctx,\n-\t\t\t\t\t      parms->tbl_idx,\n+\t\t\t\t\t      parms->flow_type,\n \t\t\t\t\t      parms->fid,\n \t\t\t\t\t      &fid_parms);\n \t\tif (rc) {\n@@ -1849,7 +1790,7 @@ ulp_mapper_em_tbl_process(struct bnxt_ulp_mapper_parms *parms,\n \tfid_parms.resource_hndl\t\t= iparms.flow_handle;\n \n \trc = ulp_flow_db_resource_add(parms->ulp_ctx,\n-\t\t\t\t      parms->tbl_idx,\n+\t\t\t\t      parms->flow_type,\n \t\t\t\t      parms->fid,\n \t\t\t\t      &fid_parms);\n \tif (rc) {\n@@ -1875,8 +1816,7 @@ ulp_mapper_em_tbl_process(struct bnxt_ulp_mapper_parms *parms,\n \n static int32_t\n ulp_mapper_index_tbl_process(struct bnxt_ulp_mapper_parms *parms,\n-\t\t\t     struct bnxt_ulp_mapper_tbl_info *tbl,\n-\t\t\t     bool is_class_tbl)\n+\t\t\t     struct bnxt_ulp_mapper_tbl_info *tbl)\n {\n \tstruct bnxt_ulp_mapper_result_field_info *flds;\n \tstruct ulp_flow_db_res_params\tfid_parms;\n@@ -1915,12 +1855,7 @@ ulp_mapper_index_tbl_process(struct bnxt_ulp_mapper_parms *parms,\n \t}\n \n \t/* Get the result fields list */\n-\tif (is_class_tbl)\n-\t\tflds = ulp_mapper_result_fields_get(parms, tbl, &num_flds,\n-\t\t\t\t\t\t    &encap_flds);\n-\telse\n-\t\tflds = ulp_mapper_act_result_fields_get(parms, tbl, &num_flds,\n-\t\t\t\t\t\t\t&encap_flds);\n+\tflds = ulp_mapper_result_fields_get(parms, tbl, &num_flds, &encap_flds);\n \n \tif (!flds || (!num_flds && !encap_flds)) {\n \t\tBNXT_TF_DBG(ERR, \"template undefined for the index table\\n\");\n@@ -2083,7 +2018,7 @@ ulp_mapper_index_tbl_process(struct bnxt_ulp_mapper_parms *parms,\n \tfid_parms.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO;\n \n \trc = ulp_flow_db_resource_add(parms->ulp_ctx,\n-\t\t\t\t      parms->tbl_idx,\n+\t\t\t\t      parms->flow_type,\n \t\t\t\t      parms->fid,\n \t\t\t\t      &fid_parms);\n \tif (rc) {\n@@ -2246,7 +2181,7 @@ ulp_mapper_cache_tbl_process(struct bnxt_ulp_mapper_parms *parms,\n \tfid_parms.resource_hndl\t= (uint64_t)*ckey;\n \tfid_parms.critical_resource = tbl->critical_resource;\n \trc = ulp_flow_db_resource_add(parms->ulp_ctx,\n-\t\t\t\t      parms->tbl_idx,\n+\t\t\t\t      parms->flow_type,\n \t\t\t\t      parms->fid,\n \t\t\t\t      &fid_parms);\n \tif (rc)\n@@ -2441,65 +2376,23 @@ ulp_mapper_tbl_cond_opcode_process(struct bnxt_ulp_mapper_parms *parms,\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- */\n static int32_t\n-ulp_mapper_action_tbls_process(struct bnxt_ulp_mapper_parms *parms)\n+ulp_mapper_tbls_process(struct bnxt_ulp_mapper_parms *parms, uint32_t tid)\n {\n-\tuint32_t\ti;\n-\tint32_t\t\trc = 0;\n-\tstruct bnxt_ulp_mapper_tbl_info *tbl;\n-\n-\tif (!parms->atbls || !parms->num_atbls) {\n-\t\tBNXT_TF_DBG(ERR, \"No action tables for template[%d][%d].\\n\",\n-\t\t\t    parms->dev_id, parms->act_tid);\n+\tstruct bnxt_ulp_mapper_tbl_info *tbls;\n+\tuint32_t num_tbls, i;\n+\tint32_t rc = -EINVAL;\n+\n+\ttbls = ulp_mapper_tbl_list_get(parms, tid, &num_tbls);\n+\tif (!tbls || !num_tbls) {\n+\t\tBNXT_TF_DBG(ERR, \"No %s tables for %d:%d\\n\",\n+\t\t\t    (parms->tmpl_type = BNXT_ULP_TEMPLATE_TYPE_CLASS) ?\n+\t\t\t    \"class\" : \"action\", parms->dev_id, tid);\n \t\treturn -EINVAL;\n \t}\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-\t\t\tif (rc) {\n-\t\t\t\tBNXT_TF_DBG(ERR, \"Resource type %d failed\\n\",\n-\t\t\t\t\t    tbl->resource_func);\n-\t\t\t\treturn rc;\n-\t\t\t}\n-\t\t\tbreak;\n-\t\tdefault:\n-\t\t\tBNXT_TF_DBG(ERR, \"Unexpected action resource %d\\n\",\n-\t\t\t\t    tbl->resource_func);\n-\t\t\treturn -EINVAL;\n-\t\t}\n-\t}\n-\n-\treturn rc;\n-}\n-\n-/* Create the classifier table entries for a flow. */\n-static int32_t\n-ulp_mapper_class_tbls_process(struct bnxt_ulp_mapper_parms *parms)\n-{\n-\tuint32_t\ti;\n-\tint32_t\t\trc = 0;\n-\n-\tif (!parms)\n-\t\treturn -EINVAL;\n-\n-\tif (!parms->ctbls || !parms->num_ctbls) {\n-\t\tBNXT_TF_DBG(ERR, \"No class tables for template[%d][%d].\\n\",\n-\t\t\t    parms->dev_id, parms->class_tid);\n-\t\treturn -EINVAL;\n-\t}\n-\n-\tfor (i = 0; i < parms->num_ctbls; i++) {\n-\t\tstruct bnxt_ulp_mapper_tbl_info *tbl = &parms->ctbls[i];\n+\tfor (i = 0; i < num_tbls; i++) {\n+\t\tstruct bnxt_ulp_mapper_tbl_info *tbl = &tbls[i];\n \n \t\tif (ulp_mapper_tbl_cond_opcode_process(parms, tbl))\n \t\t\tcontinue;\n@@ -2513,7 +2406,7 @@ ulp_mapper_class_tbls_process(struct bnxt_ulp_mapper_parms *parms)\n \t\t\trc = ulp_mapper_em_tbl_process(parms, tbl);\n \t\t\tbreak;\n \t\tcase BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE:\n-\t\t\trc = ulp_mapper_index_tbl_process(parms, tbl, true);\n+\t\t\trc = ulp_mapper_index_tbl_process(parms, tbl);\n \t\t\tbreak;\n \t\tcase BNXT_ULP_RESOURCE_FUNC_CACHE_TABLE:\n \t\t\trc = ulp_mapper_cache_tbl_process(parms, tbl);\n@@ -2522,19 +2415,25 @@ ulp_mapper_class_tbls_process(struct bnxt_ulp_mapper_parms *parms)\n \t\t\trc = ulp_mapper_if_tbl_process(parms, tbl);\n \t\t\tbreak;\n \t\tdefault:\n-\t\t\tBNXT_TF_DBG(ERR, \"Unexpected class resource %d\\n\",\n+\t\t\tBNXT_TF_DBG(ERR, \"Unexpected mapper resource %d\\n\",\n \t\t\t\t    tbl->resource_func);\n-\t\t\treturn -EINVAL;\n+\t\t\trc = -EINVAL;\n+\t\t\tgoto error;\n \t\t}\n \n \t\tif (rc) {\n \t\t\tBNXT_TF_DBG(ERR, \"Resource type %d failed\\n\",\n \t\t\t\t    tbl->resource_func);\n-\t\t\treturn rc;\n+\t\t\tgoto error;\n \t\t}\n \t}\n \n \treturn rc;\n+error:\n+\tBNXT_TF_DBG(ERR, \"%s tables failed creation for %d:%d\\n\",\n+\t\t    (parms->tmpl_type = BNXT_ULP_TEMPLATE_TYPE_CLASS) ?\n+\t\t    \"class\" : \"action\", parms->dev_id, tid);\n+\treturn rc;\n }\n \n static int32_t\n@@ -2725,6 +2624,8 @@ ulp_mapper_glb_template_table_init(struct bnxt_ulp_context *ulp_ctx)\n \t\tparms.ulp_ctx = ulp_ctx;\n \t\tparms.dev_id = dev_id;\n \t\tparms.mapper_data = mapper_data;\n+\t\tparms.flow_type = BNXT_ULP_DEFAULT_FLOW_TABLE;\n+\t\tparms.tmpl_type = BNXT_ULP_TEMPLATE_TYPE_CLASS;\n \n \t\t/* Get the class table entry from dev id and class id */\n \t\tparms.class_tid = glbl_tmpl_list[idx];\n@@ -2735,22 +2636,10 @@ ulp_mapper_glb_template_table_init(struct bnxt_ulp_context *ulp_ctx)\n \t\t\t\t    parms.dev_id);\n \t\t\treturn -EINVAL;\n \t\t}\n-\t\tparms.ctbls = ulp_mapper_class_tbl_list_get(&parms,\n-\t\t\t\t\t\t\t    parms.class_tid,\n-\t\t\t\t\t\t\t    &parms.num_ctbls,\n-\t\t\t\t\t\t\t    &parms.tbl_idx);\n-\t\tif (!parms.ctbls || !parms.num_ctbls) {\n-\t\t\tBNXT_TF_DBG(ERR, \"No class tables for %d:%d\\n\",\n-\t\t\t\t    parms.dev_id, parms.class_tid);\n-\t\t\treturn -EINVAL;\n-\t\t}\n-\t\trc = ulp_mapper_class_tbls_process(&parms);\n-\t\tif (rc) {\n-\t\t\tBNXT_TF_DBG(ERR,\n-\t\t\t\t    \"class tables failed creation for %d:%d\\n\",\n-\t\t\t\t    parms.dev_id, parms.class_tid);\n+\n+\t\trc = ulp_mapper_tbls_process(&parms, parms.class_tid);\n+\t\tif (rc)\n \t\t\treturn rc;\n-\t\t}\n \t}\n \treturn rc;\n }\n@@ -2783,6 +2672,7 @@ ulp_mapper_flow_create(struct bnxt_ulp_context *ulp_ctx,\n \tparms.tcam_tbl_opc = BNXT_ULP_MAPPER_TCAM_TBL_OPC_NORMAL;\n \tparms.act_tid = cparms->act_tid;\n \tparms.class_tid = cparms->class_tid;\n+\tparms.flow_type = cparms->flow_type;\n \n \t/* Get the device id from the ulp context */\n \tif (bnxt_ulp_cntxt_dev_id_get(ulp_ctx, &parms.dev_id)) {\n@@ -2809,34 +2699,6 @@ ulp_mapper_flow_create(struct bnxt_ulp_context *ulp_ctx,\n \t\treturn -EINVAL;\n \t}\n \n-\t/* Get the action table entry from device id and act context id */\n-\t/*\n-\t * Perform the action table get only if act template is not zero\n-\t * for act template zero like for default rules ignore the action\n-\t * table processing.\n-\t */\n-\tif (parms.act_tid) {\n-\t\tparms.atbls = ulp_mapper_action_tbl_list_get(&parms,\n-\t\t\t\t\t\t\t     parms.act_tid,\n-\t\t\t\t\t\t\t     &parms.num_atbls);\n-\t\tif (!parms.atbls || !parms.num_atbls) {\n-\t\t\tBNXT_TF_DBG(ERR, \"No action tables for %d:%d\\n\",\n-\t\t\t\t    parms.dev_id, parms.act_tid);\n-\t\t\treturn -EINVAL;\n-\t\t}\n-\t}\n-\n-\t/* Get the class table entry from device id and act context id */\n-\tparms.ctbls = ulp_mapper_class_tbl_list_get(&parms,\n-\t\t\t\t\t\t    parms.class_tid,\n-\t\t\t\t\t\t    &parms.num_ctbls,\n-\t\t\t\t\t\t    &parms.tbl_idx);\n-\tif (!parms.ctbls || !parms.num_ctbls) {\n-\t\tBNXT_TF_DBG(ERR, \"No class tables for %d:%d\\n\",\n-\t\t\t    parms.dev_id, parms.class_tid);\n-\t\treturn -EINVAL;\n-\t}\n-\n \t/* initialize the registry file for further processing */\n \tif (!ulp_regfile_init(parms.regfile)) {\n \t\tBNXT_TF_DBG(ERR, \"regfile initialization failed.\\n\");\n@@ -2862,7 +2724,7 @@ ulp_mapper_flow_create(struct bnxt_ulp_context *ulp_ctx,\n \t * free each of them.\n \t */\n \trc = ulp_flow_db_fid_alloc(ulp_ctx,\n-\t\t\t\t   parms.tbl_idx,\n+\t\t\t\t   parms.flow_type,\n \t\t\t\t   cparms->func_id,\n \t\t\t\t   &parms.fid);\n \tif (rc) {\n@@ -2871,23 +2733,21 @@ ulp_mapper_flow_create(struct bnxt_ulp_context *ulp_ctx,\n \t\treturn rc;\n \t}\n \n-\t/* Process the action template list from the selected action table*/\n \tif (parms.act_tid) {\n-\t\trc = ulp_mapper_action_tbls_process(&parms);\n-\t\tif (rc) {\n-\t\t\tBNXT_TF_DBG(ERR,\n-\t\t\t\t    \"action tables failed creation for %d:%d\\n\",\n-\t\t\t\t    parms.dev_id, parms.act_tid);\n+\t\tparms.tmpl_type = BNXT_ULP_TEMPLATE_TYPE_ACTION;\n+\t\t/* Process the action template tables */\n+\t\trc = ulp_mapper_tbls_process(&parms, parms.act_tid);\n+\t\tif (rc)\n \t\t\tgoto flow_error;\n-\t\t}\n \t}\n \n-\t/* All good. Now process the class template */\n-\trc = ulp_mapper_class_tbls_process(&parms);\n-\tif (rc) {\n-\t\tBNXT_TF_DBG(ERR, \"class tables failed creation for %d:%d\\n\",\n-\t\t\t    parms.dev_id, parms.class_tid);\n-\t\tgoto flow_error;\n+\tif (parms.class_tid) {\n+\t\tparms.tmpl_type = BNXT_ULP_TEMPLATE_TYPE_CLASS;\n+\n+\t\t/* Process the class template tables.*/\n+\t\trc = ulp_mapper_tbls_process(&parms, parms.class_tid);\n+\t\tif (rc)\n+\t\t\tgoto flow_error;\n \t}\n \n \t*flowid = parms.fid;\ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_mapper.h b/drivers/net/bnxt/tf_ulp/ulp_mapper.h\nindex a19fb0d76..936fb9af4 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_mapper.h\n+++ b/drivers/net/bnxt/tf_ulp/ulp_mapper.h\n@@ -53,6 +53,7 @@ struct bnxt_ulp_mapper_data {\n \n /* Internal Structure for passing the arguments around */\n struct bnxt_ulp_mapper_parms {\n+\tenum bnxt_ulp_template_type\t\ttmpl_type;\n \tuint32_t\t\t\t\tdev_id;\n \tuint32_t\t\t\t\tact_tid;\n \tstruct bnxt_ulp_mapper_tbl_info\t\t*atbls; /* action table */\n@@ -70,7 +71,7 @@ struct bnxt_ulp_mapper_parms {\n \tstruct bnxt_ulp_context\t\t\t*ulp_ctx;\n \tuint8_t\t\t\t\t\tencap_byte_swap;\n \tuint32_t\t\t\t\tfid;\n-\tenum bnxt_ulp_flow_db_tables\t\ttbl_idx;\n+\tenum bnxt_ulp_fdb_type\t\t\tflow_type;\n \tstruct bnxt_ulp_mapper_data\t\t*mapper_data;\n \tenum bnxt_ulp_cache_table_opc\t\ttcam_tbl_opc;\n \tstruct bnxt_ulp_mapper_cache_entry\t*cache_ptr;\n@@ -88,6 +89,7 @@ struct bnxt_ulp_mapper_create_parms {\n \tuint32_t\t\t\tact_tid;\n \tuint16_t\t\t\tfunc_id;\n \tuint32_t\t\t\tdir_attr;\n+\tenum bnxt_ulp_fdb_type\t\tflow_type;\n };\n \n /* Function to initialize any dynamic mapper data. */\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 de56b7ef9..e083af0ae 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@@ -278,6 +278,12 @@ enum bnxt_ulp_search_before_alloc {\n \tBNXT_ULP_SEARCH_BEFORE_ALLOC_LAST = 3\n };\n \n+enum bnxt_ulp_template_type {\n+\tBNXT_ULP_TEMPLATE_TYPE_CLASS = 0,\n+\tBNXT_ULP_TEMPLATE_TYPE_ACTION = 1,\n+\tBNXT_ULP_TEMPLATE_TYPE_LAST = 2\n+};\n+\n enum bnxt_ulp_fdb_resource_flags {\n \tBNXT_ULP_FDB_RESOURCE_FLAGS_DIR_INGR = 0x00,\n \tBNXT_ULP_FDB_RESOURCE_FLAGS_DIR_EGR = 0x01\ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_template_db_stingray_class.c b/drivers/net/bnxt/tf_ulp/ulp_template_db_stingray_class.c\nindex 2d40cde8e..f365c5c5b 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_template_db_stingray_class.c\n+++ b/drivers/net/bnxt/tf_ulp/ulp_template_db_stingray_class.c\n@@ -15980,7 +15980,7 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]\n \t}\n };\n \n-struct bnxt_ulp_mapper_ident_info ulp_stingray_ident_list[] = {\n+struct bnxt_ulp_mapper_ident_info ulp_class_stingray_ident_list[] = {\n \t{\n \t.resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,\n \t.ident_type = TF_IDENT_TYPE_L2_CTXT_HIGH,\ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.c b/drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.c\nindex 9cf62a094..86fd489b9 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.c\n+++ b/drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.c\n@@ -312,15 +312,34 @@ struct bnxt_ulp_cache_tbl_params ulp_cache_tbl_params[] = {\n \t}\n };\n \n-const struct ulp_template_device_tbls ulp_template_wh_plus_tbls = {\n-\t.class_tmpl_list          = ulp_class_wh_plus_tmpl_list,\n-\t.class_tbl_list           = ulp_class_wh_plus_tbl_list,\n-\t.class_key_field_list     = ulp_class_wh_plus_key_field_list,\n-\t.class_result_field_list  = ulp_class_wh_plus_result_field_list,\n-\t.ident_list               = ulp_wh_plus_ident_list,\n-\t.act_tmpl_list            = ulp_act_wh_plus_tmpl_list,\n-\t.act_tbl_list             = ulp_act_wh_plus_tbl_list,\n-\t.act_result_field_list    = ulp_act_wh_plus_result_field_list\n+const struct ulp_template_device_tbls ulp_template_stingray_tbls[] = {\n+\t[BNXT_ULP_TEMPLATE_TYPE_CLASS] = {\n+\t\t.tmpl_list = ulp_class_stingray_tmpl_list,\n+\t\t.tbl_list = ulp_class_stingray_tbl_list,\n+\t\t.key_field_list = ulp_class_stingray_key_field_list,\n+\t\t.result_field_list = ulp_class_stingray_result_field_list,\n+\t\t.ident_list = ulp_class_stingray_ident_list\n+\t},\n+\t[BNXT_ULP_TEMPLATE_TYPE_ACTION] = {\n+\t\t.tmpl_list = ulp_act_stingray_tmpl_list,\n+\t\t.tbl_list = ulp_act_stingray_tbl_list,\n+\t\t.result_field_list = ulp_act_stingray_result_field_list,\n+\t}\n+};\n+\n+const struct ulp_template_device_tbls ulp_template_wh_plus_tbls[] = {\n+\t[BNXT_ULP_TEMPLATE_TYPE_CLASS] = {\n+\t\t.tmpl_list = ulp_class_wh_plus_tmpl_list,\n+\t\t.tbl_list = ulp_class_wh_plus_tbl_list,\n+\t\t.key_field_list = ulp_class_wh_plus_key_field_list,\n+\t\t.result_field_list = ulp_class_wh_plus_result_field_list,\n+\t\t.ident_list = ulp_class_wh_plus_ident_list,\n+\t},\n+\t[BNXT_ULP_TEMPLATE_TYPE_ACTION] = {\n+\t\t.tmpl_list = ulp_act_wh_plus_tmpl_list,\n+\t\t.tbl_list = ulp_act_wh_plus_tbl_list,\n+\t\t.result_field_list = ulp_act_wh_plus_result_field_list\n+\t}\n };\n \n struct bnxt_ulp_device_params ulp_device_params[BNXT_ULP_DEVICE_ID_LAST] = {\n@@ -339,7 +358,24 @@ struct bnxt_ulp_device_params ulp_device_params[BNXT_ULP_DEVICE_ID_LAST] = {\n \t.packet_count_mask       = 0xffffffff00000000,\n \t.byte_count_shift        = 0,\n \t.packet_count_shift      = 36,\n-\t.dev_tbls\t\t = &ulp_template_wh_plus_tbls\n+\t.dev_tbls\t\t = ulp_template_wh_plus_tbls\n+\t},\n+\t[BNXT_ULP_DEVICE_ID_STINGRAY] = {\n+\t.flow_mem_type           = BNXT_ULP_FLOW_MEM_TYPE_INT,\n+\t.byte_order              = BNXT_ULP_BYTE_ORDER_LE,\n+\t.encap_byte_swap         = 1,\n+\t.flow_db_num_entries     = 16384,\n+\t.mark_db_lfid_entries    = 65536,\n+\t.mark_db_gfid_entries    = 0,\n+\t.flow_count_db_entries   = 16384,\n+\t.num_resources_per_flow  = 8,\n+\t.num_phy_ports           = 2,\n+\t.ext_cntr_table_type     = 0,\n+\t.byte_count_mask         = 0x0000000fffffffff,\n+\t.packet_count_mask       = 0xffffffff00000000,\n+\t.byte_count_shift        = 0,\n+\t.packet_count_shift      = 36,\n+\t.dev_tbls\t\t = ulp_template_stingray_tbls\n \t}\n };\n \ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.h b/drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.h\nindex 93f87f32b..7a541cb8e 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.h\n+++ b/drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.h\n@@ -18,7 +18,7 @@ bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[];\n extern struct\n bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[];\n \n-extern struct bnxt_ulp_mapper_ident_info ulp_wh_plus_ident_list[];\n+extern struct bnxt_ulp_mapper_ident_info ulp_class_wh_plus_ident_list[];\n \n extern struct bnxt_ulp_mapper_tbl_list_info ulp_act_wh_plus_tmpl_list[];\n \n@@ -37,7 +37,7 @@ bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[];\n extern struct\n bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[];\n \n-extern struct bnxt_ulp_mapper_ident_info ulp_stingray_ident_list[];\n+extern struct bnxt_ulp_mapper_ident_info ulp_class_stingray_ident_list[];\n \n extern struct bnxt_ulp_mapper_tbl_list_info ulp_act_stingray_tmpl_list[];\n \ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_template_db_wh_plus_class.c b/drivers/net/bnxt/tf_ulp/ulp_template_db_wh_plus_class.c\nindex 10160f821..b747241cd 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_template_db_wh_plus_class.c\n+++ b/drivers/net/bnxt/tf_ulp/ulp_template_db_wh_plus_class.c\n@@ -15980,7 +15980,7 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =\n \t}\n };\n \n-struct bnxt_ulp_mapper_ident_info ulp_wh_plus_ident_list[] = {\n+struct bnxt_ulp_mapper_ident_info ulp_class_wh_plus_ident_list[] = {\n \t{\n \t.resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER,\n \t.ident_type = TF_IDENT_TYPE_L2_CTXT_HIGH,\ndiff --git a/drivers/net/bnxt/tf_ulp/ulp_template_struct.h b/drivers/net/bnxt/tf_ulp/ulp_template_struct.h\nindex 621ccce15..026c42d1c 100644\n--- a/drivers/net/bnxt/tf_ulp/ulp_template_struct.h\n+++ b/drivers/net/bnxt/tf_ulp/ulp_template_struct.h\n@@ -142,14 +142,11 @@ extern struct bnxt_ulp_act_match_info ulp_act_match_list[];\n \n /* Device Specific Tables for mapper */\n struct ulp_template_device_tbls {\n-\tstruct bnxt_ulp_mapper_tbl_list_info *class_tmpl_list;\n-\tstruct bnxt_ulp_mapper_tbl_info *class_tbl_list;\n-\tstruct bnxt_ulp_mapper_class_key_field_info *class_key_field_list;\n-\tstruct bnxt_ulp_mapper_result_field_info *class_result_field_list;\n+\tstruct bnxt_ulp_mapper_tbl_list_info *tmpl_list;\n+\tstruct bnxt_ulp_mapper_tbl_info *tbl_list;\n+\tstruct bnxt_ulp_mapper_class_key_field_info *key_field_list;\n+\tstruct bnxt_ulp_mapper_result_field_info *result_field_list;\n \tstruct bnxt_ulp_mapper_ident_info *ident_list;\n-\tstruct bnxt_ulp_mapper_tbl_list_info *act_tmpl_list;\n-\tstruct bnxt_ulp_mapper_tbl_info *act_tbl_list;\n-\tstruct bnxt_ulp_mapper_result_field_info *act_result_field_list;\n };\n \n /* Device specific parameters */\n",
    "prefixes": [
        "v2",
        "05/12"
    ]
}