get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 81184,
    "url": "http://patches.dpdk.org/api/patches/81184/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1602916089-18576-3-git-send-email-venkatkumar.duvvuru@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": "<1602916089-18576-3-git-send-email-venkatkumar.duvvuru@broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1602916089-18576-3-git-send-email-venkatkumar.duvvuru@broadcom.com",
    "date": "2020-10-17T06:27:57",
    "name": "[02/14] net/bnxt: add stingray support",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "6809be6fd96972be70447c4bb26b890286514de0",
    "submitter": {
        "id": 1635,
        "url": "http://patches.dpdk.org/api/people/1635/?format=api",
        "name": "Venkat Duvvuru",
        "email": "venkatkumar.duvvuru@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/1602916089-18576-3-git-send-email-venkatkumar.duvvuru@broadcom.com/mbox/",
    "series": [
        {
            "id": 13073,
            "url": "http://patches.dpdk.org/api/series/13073/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=13073",
            "date": "2020-10-17T06:27:55",
            "name": "bnxt patches",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/13073/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/81184/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/81184/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 3CCA5A04DB;\n\tSat, 17 Oct 2020 08:29:03 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id D8F0FE2D8;\n\tSat, 17 Oct 2020 08:28:20 +0200 (CEST)",
            "from relay.smtp-ext.broadcom.com (unknown [192.19.221.30])\n by dpdk.org (Postfix) with ESMTP id 12D21E265\n for <dev@dpdk.org>; Sat, 17 Oct 2020 08:28:13 +0200 (CEST)",
            "from S60.dhcp.broadcom.net (unknown [10.123.66.170])\n (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits))\n (No client certificate requested)\n by relay.smtp-ext.broadcom.com (Postfix) with ESMTPS id C6B0E82CE9;\n Fri, 16 Oct 2020 23:28:11 -0700 (PDT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com C6B0E82CE9",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com;\n s=dkimrelay; t=1602916092;\n bh=dgQabiAyg5+O5cXmHXuuobe9HVLbMjkK56vfXVPpbSY=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n b=Kx5jzZjrmOuCXfl36JVSKhvAEFWV1TRujOp46EjyXtEQcon/gzQUcSuTdvrzzx9Mb\n wT3bHw8jJIU7Rf9daS0u9L2hQ1FmLDOw5lGwvBqnTo2ANlI3aXBS7ESLEgBQK3DNiz\n w+JqQsLTZq9SlRdBQ2keQAgRQpAswRN6yKu6qNqU=",
        "From": "Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>",
        "To": "dev@dpdk.org",
        "Cc": "Jay Ding <jay.ding@broadcom.com>",
        "Date": "Sat, 17 Oct 2020 11:57:57 +0530",
        "Message-Id": "\n <1602916089-18576-3-git-send-email-venkatkumar.duvvuru@broadcom.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "\n <1602916089-18576-1-git-send-email-venkatkumar.duvvuru@broadcom.com>",
        "References": "\n <1602916089-18576-1-git-send-email-venkatkumar.duvvuru@broadcom.com>",
        "Subject": "[dpdk-dev] [PATCH 02/14] net/bnxt: add stingray support",
        "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: Jay Ding <jay.ding@broadcom.com>\n\nAdd SR support in truflow.\n\nSigned-off-by: Jay Ding <jay.ding@broadcom.com>\nReviewed-by: Farah Smith <farah.smith@broadcom.com>\n---\n drivers/net/bnxt/tf_core/cfa_resource_types.h | 95 ++++++++++-----------------\n drivers/net/bnxt/tf_core/tf_core.c            |  3 +-\n drivers/net/bnxt/tf_core/tf_device.c          |  9 ++-\n drivers/net/bnxt/tf_core/tf_device_p4.c       | 25 ++++++-\n drivers/net/bnxt/tf_core/tf_device_p4.h       |  6 ++\n drivers/net/bnxt/tf_core/tf_device_p45.h      | 89 +++++++++++++++++++++++++\n 6 files changed, 161 insertions(+), 66 deletions(-)",
    "diff": "diff --git a/drivers/net/bnxt/tf_core/cfa_resource_types.h b/drivers/net/bnxt/tf_core/cfa_resource_types.h\nindex 19838c3..a62063b 100644\n--- a/drivers/net/bnxt/tf_core/cfa_resource_types.h\n+++ b/drivers/net/bnxt/tf_core/cfa_resource_types.h\n@@ -1,6 +1,13 @@\n-/* SPDX-License-Identifier: BSD-3-Clause\n- * Copyright(c) 2019-2020 Broadcom\n- * All rights reserved.\n+/*\n+ * Copyright(c) 2001-2020, Broadcom. All rights reserved. The\n+ * term Broadcom refers to Broadcom Inc. and/or its subsidiaries.\n+ * Proprietary and Confidential Information.\n+ *\n+ * This source file is the property of Broadcom Corporation, and\n+ * may not be copied or distributed in any isomorphic form without\n+ * the prior written consent of Broadcom Corporation.\n+ *\n+ * DO NOT MODIFY!!! This file is automatically generated.\n  */\n \n #ifndef _CFA_RESOURCE_TYPES_H_\n@@ -64,79 +71,47 @@\n #define CFA_RESOURCE_TYPE_P59_LAST              CFA_RESOURCE_TYPE_P59_VEB_TCAM\n \n \n-/* Multicast Group */\n-#define CFA_RESOURCE_TYPE_P58_MCG                 0x0UL\n-/* Encap 8 byte record */\n-#define CFA_RESOURCE_TYPE_P58_ENCAP_8B            0x1UL\n-/* Encap 16 byte record */\n-#define CFA_RESOURCE_TYPE_P58_ENCAP_16B           0x2UL\n-/* Encap 64 byte record */\n-#define CFA_RESOURCE_TYPE_P58_ENCAP_64B           0x3UL\n-/* Source Property MAC */\n-#define CFA_RESOURCE_TYPE_P58_SP_MAC              0x4UL\n-/* Source Property MAC and IPv4 */\n-#define CFA_RESOURCE_TYPE_P58_SP_MAC_IPV4         0x5UL\n-/* Source Property MAC and IPv6 */\n-#define CFA_RESOURCE_TYPE_P58_SP_MAC_IPV6         0x6UL\n-/* Network Address Translation Port */\n-#define CFA_RESOURCE_TYPE_P58_NAT_PORT            0x7UL\n-/* Network Address Translation IPv4 address */\n-#define CFA_RESOURCE_TYPE_P58_NAT_IPV4            0x8UL\n /* Meter */\n-#define CFA_RESOURCE_TYPE_P58_METER               0x9UL\n-/* Flow State */\n-#define CFA_RESOURCE_TYPE_P58_FLOW_STATE          0xaUL\n-/* Full Action Records */\n-#define CFA_RESOURCE_TYPE_P58_FULL_ACTION         0xbUL\n-/* Action Record Format 0 */\n-#define CFA_RESOURCE_TYPE_P58_FORMAT_0_ACTION     0xcUL\n-/* Action Record Ext Format 0 */\n-#define CFA_RESOURCE_TYPE_P58_EXT_FORMAT_0_ACTION 0xdUL\n-/* Action Record Format 1 */\n-#define CFA_RESOURCE_TYPE_P58_FORMAT_1_ACTION     0xeUL\n-/* Action Record Format 2 */\n-#define CFA_RESOURCE_TYPE_P58_FORMAT_2_ACTION     0xfUL\n-/* Action Record Format 3 */\n-#define CFA_RESOURCE_TYPE_P58_FORMAT_3_ACTION     0x10UL\n-/* Action Record Format 4 */\n-#define CFA_RESOURCE_TYPE_P58_FORMAT_4_ACTION     0x11UL\n-/* Action Record Format 5 */\n-#define CFA_RESOURCE_TYPE_P58_FORMAT_5_ACTION     0x12UL\n-/* Action Record Format 6 */\n-#define CFA_RESOURCE_TYPE_P58_FORMAT_6_ACTION     0x13UL\n+#define CFA_RESOURCE_TYPE_P58_METER              0x0UL\n+/* SRAM_Bank_0 */\n+#define CFA_RESOURCE_TYPE_P58_SRAM_BANK_0        0x1UL\n+/* SRAM_Bank_1 */\n+#define CFA_RESOURCE_TYPE_P58_SRAM_BANK_1        0x2UL\n+/* SRAM_Bank_2 */\n+#define CFA_RESOURCE_TYPE_P58_SRAM_BANK_2        0x3UL\n+/* SRAM_Bank_3 */\n+#define CFA_RESOURCE_TYPE_P58_SRAM_BANK_3        0x4UL\n /* L2 Context TCAM High priority entries */\n-#define CFA_RESOURCE_TYPE_P58_L2_CTXT_TCAM_HIGH   0x14UL\n+#define CFA_RESOURCE_TYPE_P58_L2_CTXT_TCAM_HIGH  0x5UL\n /* L2 Context TCAM Low priority entries */\n-#define CFA_RESOURCE_TYPE_P58_L2_CTXT_TCAM_LOW    0x15UL\n+#define CFA_RESOURCE_TYPE_P58_L2_CTXT_TCAM_LOW   0x6UL\n /* L2 Context REMAP high priority entries */\n-#define CFA_RESOURCE_TYPE_P58_L2_CTXT_REMAP_HIGH  0x16UL\n+#define CFA_RESOURCE_TYPE_P58_L2_CTXT_REMAP_HIGH 0x7UL\n /* L2 Context REMAP Low priority entries */\n-#define CFA_RESOURCE_TYPE_P58_L2_CTXT_REMAP_LOW   0x17UL\n+#define CFA_RESOURCE_TYPE_P58_L2_CTXT_REMAP_LOW  0x8UL\n /* Profile Func */\n-#define CFA_RESOURCE_TYPE_P58_PROF_FUNC           0x18UL\n+#define CFA_RESOURCE_TYPE_P58_PROF_FUNC          0x9UL\n /* Profile TCAM */\n-#define CFA_RESOURCE_TYPE_P58_PROF_TCAM           0x19UL\n+#define CFA_RESOURCE_TYPE_P58_PROF_TCAM          0xaUL\n /* Exact Match Profile Id */\n-#define CFA_RESOURCE_TYPE_P58_EM_PROF_ID          0x1aUL\n+#define CFA_RESOURCE_TYPE_P58_EM_PROF_ID         0xbUL\n /* Wildcard Profile Id */\n-#define CFA_RESOURCE_TYPE_P58_WC_TCAM_PROF_ID     0x1bUL\n+#define CFA_RESOURCE_TYPE_P58_WC_TCAM_PROF_ID    0xcUL\n /* Exact Match Record */\n-#define CFA_RESOURCE_TYPE_P58_EM_REC              0x1cUL\n+#define CFA_RESOURCE_TYPE_P58_EM_REC             0xdUL\n /* Wildcard TCAM */\n-#define CFA_RESOURCE_TYPE_P58_WC_TCAM             0x1dUL\n+#define CFA_RESOURCE_TYPE_P58_WC_TCAM            0xeUL\n /* Meter profile */\n-#define CFA_RESOURCE_TYPE_P58_METER_PROF          0x1eUL\n+#define CFA_RESOURCE_TYPE_P58_METER_PROF         0xfUL\n /* Meter */\n-#define CFA_RESOURCE_TYPE_P58_MIRROR              0x1fUL\n-/* Source Property TCAM */\n-#define CFA_RESOURCE_TYPE_P58_SP_TCAM             0x20UL\n+#define CFA_RESOURCE_TYPE_P58_MIRROR             0x10UL\n /* Exact Match Flexible Key Builder */\n-#define CFA_RESOURCE_TYPE_P58_EM_FKB              0x21UL\n+#define CFA_RESOURCE_TYPE_P58_EM_FKB             0x11UL\n /* Wildcard Flexible Key Builder */\n-#define CFA_RESOURCE_TYPE_P58_WC_FKB              0x22UL\n+#define CFA_RESOURCE_TYPE_P58_WC_FKB             0x12UL\n /* VEB TCAM */\n-#define CFA_RESOURCE_TYPE_P58_VEB_TCAM            0x23UL\n-#define CFA_RESOURCE_TYPE_P58_LAST               CFA_RESOURCE_TYPE_P58_VEB_TCAM\n+#define CFA_RESOURCE_TYPE_P58_VEB_TCAM           0x13UL\n+#define CFA_RESOURCE_TYPE_P58_LAST              CFA_RESOURCE_TYPE_P58_VEB_TCAM\n \n \n /* Multicast Group */\ndiff --git a/drivers/net/bnxt/tf_core/tf_core.c b/drivers/net/bnxt/tf_core/tf_core.c\nindex 0dbde1d..788335b 100644\n--- a/drivers/net/bnxt/tf_core/tf_core.c\n+++ b/drivers/net/bnxt/tf_core/tf_core.c\n@@ -34,7 +34,8 @@ tf_open_session(struct tf *tfp,\n \t * side. It is assumed that the Firmware will be supported if\n \t * firmware open session succeeds.\n \t */\n-\tif (parms->device_type != TF_DEVICE_TYPE_WH) {\n+\tif (parms->device_type != TF_DEVICE_TYPE_WH &&\n+\t    parms->device_type != TF_DEVICE_TYPE_SR) {\n \t\tTFP_DRV_LOG(ERR,\n \t\t\t    \"Unsupported device type %d\\n\",\n \t\t\t    parms->device_type);\ndiff --git a/drivers/net/bnxt/tf_core/tf_device.c b/drivers/net/bnxt/tf_core/tf_device.c\nindex 1129440..8389828 100644\n--- a/drivers/net/bnxt/tf_core/tf_device.c\n+++ b/drivers/net/bnxt/tf_core/tf_device.c\n@@ -47,7 +47,6 @@ tf_dev_bind_p4(struct tf *tfp,\n \tstruct tf_if_tbl_cfg_parms if_tbl_cfg;\n \tstruct tf_global_cfg_cfg_parms global_cfg;\n \n-\tdev_handle->type = TF_DEVICE_TYPE_WH;\n \t/* Initial function initialization */\n \tdev_handle->ops = &tf_dev_ops_p4_init;\n \n@@ -90,7 +89,10 @@ tf_dev_bind_p4(struct tf *tfp,\n \t * EEM\n \t */\n \tem_cfg.num_elements = TF_EM_TBL_TYPE_MAX;\n-\tem_cfg.cfg = tf_em_ext_p4;\n+\tif (dev_handle->type == TF_DEVICE_TYPE_WH)\n+\t\tem_cfg.cfg = tf_em_ext_p4;\n+\telse\n+\t\tem_cfg.cfg = tf_em_ext_p45;\n \tem_cfg.resources = resources;\n \tem_cfg.mem_type = TF_EEM_MEM_TYPE_HOST;\n \trc = tf_em_ext_common_bind(tfp, &em_cfg);\n@@ -241,6 +243,8 @@ tf_dev_bind(struct tf *tfp __rte_unused,\n {\n \tswitch (type) {\n \tcase TF_DEVICE_TYPE_WH:\n+\tcase TF_DEVICE_TYPE_SR:\n+\t\tdev_handle->type = type;\n \t\treturn tf_dev_bind_p4(tfp,\n \t\t\t\t      shadow_copy,\n \t\t\t\t      resources,\n@@ -258,6 +262,7 @@ tf_dev_unbind(struct tf *tfp,\n {\n \tswitch (dev_handle->type) {\n \tcase TF_DEVICE_TYPE_WH:\n+\tcase TF_DEVICE_TYPE_SR:\n \t\treturn tf_dev_unbind_p4(tfp);\n \tdefault:\n \t\tTFP_DRV_LOG(ERR,\ndiff --git a/drivers/net/bnxt/tf_core/tf_device_p4.c b/drivers/net/bnxt/tf_core/tf_device_p4.c\nindex fe8dec3..0344565 100644\n--- a/drivers/net/bnxt/tf_core/tf_device_p4.c\n+++ b/drivers/net/bnxt/tf_core/tf_device_p4.c\n@@ -28,13 +28,32 @@\n  *   - (-EINVAL) on failure.\n  */\n static int\n-tf_dev_p4_get_max_types(struct tf *tfp __rte_unused,\n+tf_dev_p4_get_max_types(struct tf *tfp,\n \t\t\tuint16_t *max_types)\n {\n-\tif (max_types == NULL)\n+\tstruct tf_session *tfs;\n+\tstruct tf_dev_info *dev;\n+\tint rc;\n+\n+\tif (max_types == NULL || tfp == NULL)\n \t\treturn -EINVAL;\n \n-\t*max_types = CFA_RESOURCE_TYPE_P4_LAST + 1;\n+\t/* Retrieve the session information */\n+\trc = tf_session_get_session(tfp, &tfs);\n+\tif (rc)\n+\t\treturn rc;\n+\n+\t/* Retrieve the device information */\n+\trc = tf_session_get_device(tfs, &dev);\n+\tif (rc)\n+\t\treturn rc;\n+\n+\tif (dev->type == TF_DEVICE_TYPE_WH)\n+\t\t*max_types = CFA_RESOURCE_TYPE_P4_LAST + 1;\n+\telse if (dev->type == TF_DEVICE_TYPE_SR)\n+\t\t*max_types = CFA_RESOURCE_TYPE_P45_LAST + 1;\n+\telse\n+\t\treturn -ENODEV;\n \n \treturn 0;\n }\ndiff --git a/drivers/net/bnxt/tf_core/tf_device_p4.h b/drivers/net/bnxt/tf_core/tf_device_p4.h\nindex 7e58469..aba28fe 100644\n--- a/drivers/net/bnxt/tf_core/tf_device_p4.h\n+++ b/drivers/net/bnxt/tf_core/tf_device_p4.h\n@@ -83,6 +83,12 @@ struct tf_rm_element_cfg tf_em_ext_p4[TF_EM_TBL_TYPE_MAX] = {\n \t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_TBL_SCOPE },\n };\n \n+struct tf_rm_element_cfg tf_em_ext_p45[TF_EM_TBL_TYPE_MAX] = {\n+\t/* CFA_RESOURCE_TYPE_P4_EM_REC */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_TBL_SCOPE },\n+};\n+\n struct tf_rm_element_cfg tf_em_int_p4[TF_EM_TBL_TYPE_MAX] = {\n \t{ TF_RM_ELEM_CFG_HCAPI, CFA_RESOURCE_TYPE_P4_EM_REC },\n \t/* CFA_RESOURCE_TYPE_P4_TBL_SCOPE */\ndiff --git a/drivers/net/bnxt/tf_core/tf_device_p45.h b/drivers/net/bnxt/tf_core/tf_device_p45.h\nindex 2da59d1..016d6e2 100644\n--- a/drivers/net/bnxt/tf_core/tf_device_p45.h\n+++ b/drivers/net/bnxt/tf_core/tf_device_p45.h\n@@ -13,4 +13,93 @@\n #include \"tf_if_tbl.h\"\n #include \"tf_global_cfg.h\"\n \n+struct tf_rm_element_cfg tf_ident_p4[TF_IDENT_TYPE_MAX] = {\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_L2_CTXT_REMAP_HIGH },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_L2_CTXT_REMAP_LOW },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_PROF_FUNC },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_WC_TCAM_PROF_ID },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_EM_PROF_ID },\n+\t/* CFA_RESOURCE_TYPE_P45_L2_FUNC */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID }\n+};\n+\n+struct tf_rm_element_cfg tf_tcam_p4[TF_TCAM_TBL_TYPE_MAX] = {\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_L2_CTXT_TCAM_HIGH },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_L2_CTXT_TCAM_LOW },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_PROF_TCAM },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_WC_TCAM },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_SP_TCAM },\n+\t/* CFA_RESOURCE_TYPE_P45_CT_RULE_TCAM */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID },\n+\t/* CFA_RESOURCE_TYPE_P45_VEB_TCAM */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID }\n+};\n+\n+struct tf_rm_element_cfg tf_tbl_p4[TF_TBL_TYPE_MAX] = {\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_FULL_ACTION },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_MCG },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_ENCAP_8B },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_ENCAP_16B },\n+\t/* CFA_RESOURCE_TYPE_P45_ENCAP_32B */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_ENCAP_64B },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_SP_MAC },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_SP_MAC_IPV4 },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_SP_MAC_IPV6 },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_COUNTER_64B },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_NAT_PORT },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_NAT_PORT },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_NAT_IPV4 },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_METER_PROF },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_METER },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_MIRROR },\n+\t/* CFA_RESOURCE_TYPE_P45_UPAR */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID },\n+\t/* CFA_RESOURCE_TYPE_P45_EPOC */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID },\n+\t/* CFA_RESOURCE_TYPE_P45_METADATA */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID },\n+\t/* CFA_RESOURCE_TYPE_P45_CT_STATE */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID },\n+\t/* CFA_RESOURCE_TYPE_P45_RANGE_PROF */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID },\n+\t/* CFA_RESOURCE_TYPE_P45_RANGE_ENTRY */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID },\n+\t/* CFA_RESOURCE_TYPE_P45_LAG */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID },\n+\t/* CFA_RESOURCE_TYPE_P45_VNIC_SVIF */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID },\n+\t/* CFA_RESOURCE_TYPE_P45_EM_FBK */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID },\n+\t/* CFA_RESOURCE_TYPE_P45_WC_FKB */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID },\n+\t/* CFA_RESOURCE_TYPE_P45_EXT */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID }\n+};\n+\n+struct tf_rm_element_cfg tf_em_ext_p4[TF_EM_TBL_TYPE_MAX] = {\n+\t/* CFA_RESOURCE_TYPE_P45_EM_REC */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID },\n+\t{ TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P45_TBL_SCOPE },\n+};\n+\n+struct tf_rm_element_cfg tf_em_int_p4[TF_EM_TBL_TYPE_MAX] = {\n+\t{ TF_RM_ELEM_CFG_HCAPI, CFA_RESOURCE_TYPE_P45_EM_REC },\n+\t/* CFA_RESOURCE_TYPE_P45_TBL_SCOPE */\n+\t{ TF_RM_ELEM_CFG_NULL, CFA_RESOURCE_TYPE_INVALID },\n+};\n+\n+struct tf_if_tbl_cfg tf_if_tbl_p4[TF_IF_TBL_TYPE_MAX] = {\n+\t{ TF_IF_TBL_CFG, CFA_P4_TBL_PROF_SPIF_DFLT_L2CTXT },\n+\t{ TF_IF_TBL_CFG, CFA_P4_TBL_PROF_PARIF_DFLT_ACT_REC_PTR },\n+\t{ TF_IF_TBL_CFG, CFA_P4_TBL_PROF_PARIF_ERR_ACT_REC_PTR },\n+\t{ TF_IF_TBL_CFG, CFA_P4_TBL_LKUP_PARIF_DFLT_ACT_REC_PTR },\n+\t{ TF_IF_TBL_CFG_NULL, CFA_IF_TBL_TYPE_INVALID },\n+\t{ TF_IF_TBL_CFG_NULL, CFA_IF_TBL_TYPE_INVALID }\n+};\n+\n+struct tf_global_cfg_cfg tf_global_cfg_p4[TF_GLOBAL_CFG_TYPE_MAX] = {\n+\t{ TF_GLOBAL_CFG_CFG_HCAPI, TF_TUNNEL_ENCAP },\n+\t{ TF_GLOBAL_CFG_CFG_HCAPI, TF_ACTION_BLOCK },\n+};\n #endif /* _TF_DEVICE_P45_H_ */\n",
    "prefixes": [
        "02/14"
    ]
}