net/bnxt: support runtime EM selection
authorMike Baucom <michael.baucom@broadcom.com>
Fri, 9 Oct 2020 11:11:25 +0000 (16:41 +0530)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 16 Oct 2020 17:47:58 +0000 (19:47 +0200)
This patch adds support to select internal Exact Match vs
External Exact Match support while loading the PMD.
- Added new mem type conditional opcode for internal/external
- Adapted the flowdb resource counts based on selected mode
- Template changes to use the new opcode
- The decision for internal/external EM support is based on the
  devargs parameter max_num_kflows.  If this is set, external EM
  is used.

Signed-off-by: Mike Baucom <michael.baucom@broadcom.com>
Reviewed-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
12 files changed:
doc/guides/nics/bnxt.rst
drivers/net/bnxt/tf_ulp/bnxt_ulp.c
drivers/net/bnxt/tf_ulp/bnxt_ulp.h
drivers/net/bnxt/tf_ulp/ulp_flow_db.c
drivers/net/bnxt/tf_ulp/ulp_mapper.c
drivers/net/bnxt/tf_ulp/ulp_template_db_enum.h
drivers/net/bnxt/tf_ulp/ulp_template_db_stingray_act.c
drivers/net/bnxt/tf_ulp/ulp_template_db_stingray_class.c
drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.c
drivers/net/bnxt/tf_ulp/ulp_template_db_wh_plus_act.c
drivers/net/bnxt/tf_ulp/ulp_template_db_wh_plus_class.c
drivers/net/bnxt/tf_ulp/ulp_template_struct.h

index 553f571..74d90ba 100644 (file)
@@ -762,6 +762,19 @@ The sample command line with the new ``devargs`` looks like this::
        representor=[0], rep-based-pf=8,rep-is-pf=0,rep-q-r2f=1,rep-fc-r2f=1,\
        rep-q-f2r=0,rep-fc-f2r=1 --log-level="pmd.*",8 -- -i --rxq=3 --txq=3
 
+Number of flows supported
+-------------------------
+The number of flows that can be support can be changed using the devargs
+parameter ``max_num_kflows``. The default number of flows supported is 16K each
+in ingress and egress path.
+
+Selecting EM vs EEM
+-------------------
+Broadcom devices can support filter creation in the onchip memory or the
+external memory. This is referred to as EM or EEM mode respectively.
+The decision for internal/external EM support is based on the ``devargs``
+parameter ``max_num_kflows``.  If this is set by the user, external EM is used.
+Otherwise EM support is enabled with flows created in internal memory.
 
 Application Support
 -------------------
index 9ed92a8..b22929a 100644 (file)
@@ -359,16 +359,20 @@ bnxt_init_tbl_scope_parms(struct bnxt *bp,
                params->rx_max_action_entry_sz_in_bits =
                        BNXT_ULP_DFLT_RX_MAX_ACTN_ENTRY;
                params->rx_mem_size_in_mb = BNXT_ULP_DFLT_RX_MEM;
-               params->rx_num_flows_in_k = dparms->flow_db_num_entries / 1024;
+               params->rx_num_flows_in_k =
+                       dparms->ext_flow_db_num_entries / 1024;
                params->rx_tbl_if_id = BNXT_ULP_RX_TBL_IF_ID;
 
                params->tx_max_key_sz_in_bits = BNXT_ULP_DFLT_TX_MAX_KEY;
                params->tx_max_action_entry_sz_in_bits =
                        BNXT_ULP_DFLT_TX_MAX_ACTN_ENTRY;
                params->tx_mem_size_in_mb = BNXT_ULP_DFLT_TX_MEM;
-               params->tx_num_flows_in_k = dparms->flow_db_num_entries / 1024;
+               params->tx_num_flows_in_k =
+                       dparms->ext_flow_db_num_entries / 1024;
                params->tx_tbl_if_id = BNXT_ULP_TX_TBL_IF_ID;
        }
+       BNXT_TF_DBG(INFO, "Table Scope initialized with %uK flows.\n",
+                   params->rx_num_flows_in_k);
 }
 
 /* Initialize Extended Exact Match host memory. */
@@ -376,8 +380,9 @@ static int32_t
 ulp_eem_tbl_scope_init(struct bnxt *bp)
 {
        struct tf_alloc_tbl_scope_parms params = {0};
-       uint32_t dev_id;
        struct bnxt_ulp_device_params *dparms;
+       enum bnxt_ulp_flow_mem_type mtype;
+       uint32_t dev_id;
        int rc;
 
        /* Get the dev specific number of flows that needed to be supported. */
@@ -392,7 +397,10 @@ ulp_eem_tbl_scope_init(struct bnxt *bp)
                return -ENODEV;
        }
 
-       if (dparms->flow_mem_type != BNXT_ULP_FLOW_MEM_TYPE_EXT) {
+       if (bnxt_ulp_cntxt_mem_type_get(bp->ulp_ctx, &mtype))
+               return -EINVAL;
+
+       if (mtype != BNXT_ULP_FLOW_MEM_TYPE_EXT) {
                BNXT_TF_DBG(INFO, "Table Scope alloc is not required\n");
                return 0;
        }
@@ -423,6 +431,7 @@ ulp_eem_tbl_scope_deinit(struct bnxt *bp, struct bnxt_ulp_context *ulp_ctx)
        struct tf                       *tfp;
        int32_t                         rc = 0;
        struct bnxt_ulp_device_params *dparms;
+       enum bnxt_ulp_flow_mem_type mtype;
        uint32_t dev_id;
 
        if (!ulp_ctx || !ulp_ctx->cfg_data)
@@ -446,7 +455,9 @@ ulp_eem_tbl_scope_deinit(struct bnxt *bp, struct bnxt_ulp_context *ulp_ctx)
                return -ENODEV;
        }
 
-       if (dparms->flow_mem_type != BNXT_ULP_FLOW_MEM_TYPE_EXT) {
+       if (bnxt_ulp_cntxt_mem_type_get(ulp_ctx, &mtype))
+               return -EINVAL;
+       if (mtype != BNXT_ULP_FLOW_MEM_TYPE_EXT) {
                BNXT_TF_DBG(INFO, "Table Scope free is not required\n");
                return 0;
        }
@@ -539,8 +550,16 @@ ulp_dparms_init(struct bnxt *bp,
        struct bnxt_ulp_device_params *dparms;
        uint32_t dev_id;
 
-       if (!bp->max_num_kflows)
+       if (!bp->max_num_kflows) {
+               /* Defaults to Internal */
+               bnxt_ulp_cntxt_mem_type_set(ulp_ctx,
+                                           BNXT_ULP_FLOW_MEM_TYPE_INT);
                return 0;
+       }
+
+       /* The max_num_kflows were set, so move to external */
+       if (bnxt_ulp_cntxt_mem_type_set(ulp_ctx, BNXT_ULP_FLOW_MEM_TYPE_EXT))
+               return -EINVAL;
 
        if (bnxt_ulp_cntxt_dev_id_get(ulp_ctx, &dev_id)) {
                BNXT_TF_DBG(DEBUG, "Failed to get device id\n");
@@ -554,11 +573,11 @@ ulp_dparms_init(struct bnxt *bp,
        }
 
        /* num_flows = max_num_kflows * 1024 */
-       dparms->flow_db_num_entries = bp->max_num_kflows * 1024;
+       dparms->ext_flow_db_num_entries = bp->max_num_kflows * 1024;
        /* GFID =  2 * num_flows */
-       dparms->mark_db_gfid_entries = dparms->flow_db_num_entries * 2;
+       dparms->mark_db_gfid_entries = dparms->ext_flow_db_num_entries * 2;
        BNXT_TF_DBG(DEBUG, "Set the number of flows = %"PRIu64"\n",
-                   dparms->flow_db_num_entries);
+                   dparms->ext_flow_db_num_entries);
 
        return 0;
 }
@@ -568,22 +587,12 @@ static int32_t
 ulp_dparms_dev_port_intf_update(struct bnxt *bp,
                                struct bnxt_ulp_context *ulp_ctx)
 {
-       struct bnxt_ulp_device_params *dparms;
-       uint32_t dev_id;
+       enum bnxt_ulp_flow_mem_type mtype;
 
-       if (bnxt_ulp_cntxt_dev_id_get(ulp_ctx, &dev_id)) {
-               BNXT_TF_DBG(DEBUG, "Failed to get device id\n");
-               return -EINVAL;
-       }
-
-       dparms = bnxt_ulp_device_params_get(dev_id);
-       if (!dparms) {
-               BNXT_TF_DBG(DEBUG, "Failed to get device parms\n");
+       if (bnxt_ulp_cntxt_mem_type_get(ulp_ctx, &mtype))
                return -EINVAL;
-       }
-
        /* Update the bp flag with gfid flag */
-       if (dparms->flow_mem_type == BNXT_ULP_FLOW_MEM_TYPE_EXT)
+       if (mtype == BNXT_ULP_FLOW_MEM_TYPE_EXT)
                bp->flags |= BNXT_FLAG_GFID_ENABLE;
 
        return 0;
@@ -1197,6 +1206,31 @@ bnxt_ulp_cntxt_dev_id_get(struct bnxt_ulp_context *ulp_ctx,
                return 0;
        }
 
+       BNXT_TF_DBG(ERR, "Failed to read dev_id from ulp ctxt\n");
+       return -EINVAL;
+}
+
+int32_t
+bnxt_ulp_cntxt_mem_type_set(struct bnxt_ulp_context *ulp_ctx,
+                           enum bnxt_ulp_flow_mem_type mem_type)
+{
+       if (ulp_ctx && ulp_ctx->cfg_data) {
+               ulp_ctx->cfg_data->mem_type = mem_type;
+               return 0;
+       }
+       BNXT_TF_DBG(ERR, "Failed to write mem_type in ulp ctxt\n");
+       return -EINVAL;
+}
+
+int32_t
+bnxt_ulp_cntxt_mem_type_get(struct bnxt_ulp_context *ulp_ctx,
+                           enum bnxt_ulp_flow_mem_type *mem_type)
+{
+       if (ulp_ctx && ulp_ctx->cfg_data) {
+               *mem_type = ulp_ctx->cfg_data->mem_type;
+               return 0;
+       }
+       BNXT_TF_DBG(ERR, "Failed to read mem_type in ulp ctxt\n");
        return -EINVAL;
 }
 
index 36405ae..c2c5bcb 100644 (file)
@@ -54,6 +54,7 @@ struct bnxt_ulp_data {
        uint32_t                        ulp_flags;
        struct bnxt_ulp_df_rule_info    df_rule_info[RTE_MAX_ETHPORTS];
        struct bnxt_ulp_vfr_rule_info   vfr_rule_info[RTE_MAX_ETHPORTS];
+       enum bnxt_ulp_flow_mem_type     mem_type;
 };
 
 struct bnxt_ulp_context {
@@ -102,6 +103,16 @@ bnxt_ulp_cntxt_dev_id_set(struct bnxt_ulp_context *ulp_ctx, uint32_t dev_id);
 int32_t
 bnxt_ulp_cntxt_dev_id_get(struct bnxt_ulp_context *ulp_ctx, uint32_t *dev_id);
 
+/* Function to get whether or not ext mem is used for EM */
+int32_t
+bnxt_ulp_cntxt_mem_type_get(struct bnxt_ulp_context *ulp_ctx,
+                           enum bnxt_ulp_flow_mem_type *mem_type);
+
+/* Function to set whether or not ext mem is used for EM */
+int32_t
+bnxt_ulp_cntxt_mem_type_set(struct bnxt_ulp_context *ulp_ctx,
+                           enum bnxt_ulp_flow_mem_type mem_type);
+
 /* Function to set the table scope id of the EEM table. */
 int32_t
 bnxt_ulp_cntxt_tbl_scope_id_set(struct bnxt_ulp_context *ulp_ctx,
index 0a3fb01..da01245 100644 (file)
@@ -298,7 +298,8 @@ ulp_flow_db_init(struct bnxt_ulp_context *ulp_ctxt)
        struct bnxt_ulp_device_params *dparms;
        struct bnxt_ulp_flow_tbl *flow_tbl;
        struct bnxt_ulp_flow_db *flow_db;
-       uint32_t dev_id;
+       uint32_t dev_id, num_flows;
+       enum bnxt_ulp_flow_mem_type mtype;
 
        /* Get the dev specific number of flows that needed to be supported. */
        if (bnxt_ulp_cntxt_dev_id_get(ulp_ctxt, &dev_id)) {
@@ -323,10 +324,17 @@ ulp_flow_db_init(struct bnxt_ulp_context *ulp_ctxt)
        /* Attach the flow database to the ulp context. */
        bnxt_ulp_cntxt_ptr2_flow_db_set(ulp_ctxt, flow_db);
 
+       /* Determine the number of flows based on EM type */
+       bnxt_ulp_cntxt_mem_type_get(ulp_ctxt, &mtype);
+       if (mtype == BNXT_ULP_FLOW_MEM_TYPE_INT)
+               num_flows = dparms->int_flow_db_num_entries;
+       else
+               num_flows = dparms->ext_flow_db_num_entries;
+
        /* Populate the regular flow table limits. */
        flow_tbl = &flow_db->flow_tbl;
-       flow_tbl->num_flows = dparms->flow_db_num_entries + 1;
-       flow_tbl->num_resources = ((dparms->flow_db_num_entries + 1) *
+       flow_tbl->num_flows = num_flows + 1;
+       flow_tbl->num_resources = ((num_flows + 1) *
                                   dparms->num_resources_per_flow);
 
        /* Include the default flow table limits. */
@@ -350,6 +358,8 @@ ulp_flow_db_init(struct bnxt_ulp_context *ulp_ctxt)
                goto error_free;
        }
        /* All good so return. */
+       BNXT_TF_DBG(INFO, "FlowDB initialized with %d flows.\n",
+                   flow_tbl->num_flows);
        return 0;
 error_free:
        ulp_flow_db_deinit(ulp_ctxt);
index 0f55f4f..812e35c 100644 (file)
@@ -1679,11 +1679,17 @@ ulp_mapper_em_tbl_process(struct bnxt_ulp_mapper_parms *parms,
        struct ulp_flow_db_res_params   fid_parms = { 0 };
        struct tf_insert_em_entry_parms iparms = { 0 };
        struct tf_delete_em_entry_parms free_parms = { 0 };
+       enum bnxt_ulp_flow_mem_type mtype;
        int32_t trc;
-       enum bnxt_ulp_flow_mem_type mtype = parms->device_params->flow_mem_type;
        int32_t rc = 0;
        uint32_t encap_flds = 0;
 
+       rc = bnxt_ulp_cntxt_mem_type_get(parms->ulp_ctx, &mtype);
+       if (rc) {
+               BNXT_TF_DBG(ERR, "Failed to get the mem type for EM\n");
+               return -EINVAL;
+       }
+
        kflds = ulp_mapper_key_fields_get(parms, tbl, &num_kflds);
        if (!kflds || !num_kflds) {
                BNXT_TF_DBG(ERR, "Failed to get key fields\n");
@@ -2327,6 +2333,8 @@ ulp_mapper_glb_resource_info_init(struct bnxt_ulp_context *ulp_ctx,
  * Function to process the conditional opcode of the mapper table.
  * returns 1 to skip the table.
  * return 0 to continue processing the table.
+ *
+ * defaults to skip
  */
 static int32_t
 ulp_mapper_tbl_cond_opcode_process(struct bnxt_ulp_mapper_parms *parms,
@@ -2376,6 +2384,42 @@ ulp_mapper_tbl_cond_opcode_process(struct bnxt_ulp_mapper_parms *parms,
        return rc;
 }
 
+/*
+ * Function to process the memtype opcode of the mapper table.
+ * returns 1 to skip the table.
+ * return 0 to continue processing the table.
+ *
+ * defaults to skip
+ */
+static int32_t
+ulp_mapper_tbl_memtype_opcode_process(struct bnxt_ulp_mapper_parms *parms,
+                                     struct bnxt_ulp_mapper_tbl_info *tbl)
+{
+       enum bnxt_ulp_flow_mem_type mtype = BNXT_ULP_FLOW_MEM_TYPE_INT;
+       int32_t rc = 1;
+
+       bnxt_ulp_cntxt_mem_type_get(parms->ulp_ctx, &mtype);
+
+       switch (tbl->mem_type_opcode) {
+       case BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT:
+               if (mtype == BNXT_ULP_FLOW_MEM_TYPE_INT)
+                       rc = 0;
+               break;
+       case BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT:
+               if (mtype == BNXT_ULP_FLOW_MEM_TYPE_EXT)
+                       rc = 0;
+               break;
+       case BNXT_ULP_MEM_TYPE_OPCODE_NOP:
+               rc = 0;
+               break;
+       default:
+               BNXT_TF_DBG(ERR,
+                           "Invalid arg in mapper in memtype opcode\n");
+               break;
+       }
+       return rc;
+}
+
 static int32_t
 ulp_mapper_tbls_process(struct bnxt_ulp_mapper_parms *parms, uint32_t tid)
 {
@@ -2394,6 +2438,8 @@ ulp_mapper_tbls_process(struct bnxt_ulp_mapper_parms *parms, uint32_t tid)
        for (i = 0; i < num_tbls; i++) {
                struct bnxt_ulp_mapper_tbl_info *tbl = &tbls[i];
 
+               if (ulp_mapper_tbl_memtype_opcode_process(parms, tbl))
+                       continue;
                if (ulp_mapper_tbl_cond_opcode_process(parms, tbl))
                        continue;
 
index e083af0..81da34e 100644 (file)
@@ -235,6 +235,13 @@ enum bnxt_ulp_match_type {
        BNXT_ULP_MATCH_TYPE_LAST = 2
 };
 
+enum bnxt_ulp_mem_type_opcode {
+       BNXT_ULP_MEM_TYPE_OPCODE_NOP = 0,
+       BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT = 1,
+       BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT = 2,
+       BNXT_ULP_MEM_TYPE_OPCODE_LAST = 3
+};
+
 enum bnxt_ulp_priority {
        BNXT_ULP_PRIORITY_LEVEL_0 = 0,
        BNXT_ULP_PRIORITY_LEVEL_1 = 1,
index 01d3b8d..a5019d6 100644 (file)
 struct bnxt_ulp_mapper_tbl_list_info ulp_act_stingray_tmpl_list[] = {
        [1] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 5,
+       .num_tbls = 6,
        .start_tbl_idx = 0,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [2] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 2,
-       .start_tbl_idx = 5,
+       .num_tbls = 3,
+       .start_tbl_idx = 6,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [3] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 2,
-       .start_tbl_idx = 7,
+       .num_tbls = 3,
+       .start_tbl_idx = 9,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [4] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 5,
-       .start_tbl_idx = 9,
+       .num_tbls = 6,
+       .start_tbl_idx = 12,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [5] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 5,
-       .start_tbl_idx = 14,
+       .num_tbls = 6,
+       .start_tbl_idx = 18,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [6] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 3,
-       .start_tbl_idx = 19,
+       .num_tbls = 5,
+       .start_tbl_idx = 24,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        }
 };
@@ -104,6 +104,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
        .result_start_idx = 3,
@@ -116,9 +117,10 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        },
        {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-       .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
+       .resource_type = TF_TBL_TYPE_EXT,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
        .direction = TF_DIR_RX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
        .result_start_idx = 15,
@@ -131,6 +133,22 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        },
        {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
+       .direction = TF_DIR_RX,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .result_start_idx = 41,
+       .result_bit_size = 128,
+       .result_num_fields = 26,
+       .encap_num_fields = 0,
+       .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
+       .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
+       },
+       {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type = TF_TBL_TYPE_ACT_STATS_64,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_INT_COUNT,
@@ -138,7 +156,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
        .direction = TF_DIR_RX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 41,
+       .result_start_idx = 67,
        .result_bit_size = 64,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -148,12 +166,29 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        },
        {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_EXT,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .result_start_idx = 68,
+       .result_bit_size = 128,
+       .result_num_fields = 26,
+       .encap_num_fields = 0,
+       .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
+       .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
+       },
+       {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 42,
+       .result_start_idx = 94,
        .result_bit_size = 128,
        .result_num_fields = 26,
        .encap_num_fields = 0,
@@ -170,7 +205,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
        .direction = TF_DIR_RX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 68,
+       .result_start_idx = 120,
        .result_bit_size = 64,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -180,12 +215,29 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        },
        {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_EXT,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .result_start_idx = 121,
+       .result_bit_size = 128,
+       .result_num_fields = 26,
+       .encap_num_fields = 0,
+       .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
+       .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
+       },
+       {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 69,
+       .result_start_idx = 147,
        .result_bit_size = 128,
        .result_num_fields = 26,
        .encap_num_fields = 0,
@@ -202,7 +254,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 95,
+       .result_start_idx = 173,
        .result_bit_size = 64,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -219,7 +271,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .result_start_idx = 96,
+       .result_start_idx = 174,
        .result_bit_size = 0,
        .result_num_fields = 0,
        .encap_num_fields = 3,
@@ -236,7 +288,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .result_start_idx = 99,
+       .result_start_idx = 177,
        .result_bit_size = 0,
        .result_num_fields = 0,
        .encap_num_fields = 3,
@@ -251,7 +303,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .result_start_idx = 102,
+       .result_start_idx = 180,
        .result_bit_size = 0,
        .result_num_fields = 0,
        .encap_num_fields = 12,
@@ -261,12 +313,29 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        },
        {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_EXT,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_TX,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .result_start_idx = 192,
+       .result_bit_size = 128,
+       .result_num_fields = 26,
+       .encap_num_fields = 12,
+       .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
+       .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
+       },
+       {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 114,
+       .result_start_idx = 230,
        .result_bit_size = 128,
        .result_num_fields = 26,
        .encap_num_fields = 0,
@@ -283,7 +352,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 140,
+       .result_start_idx = 256,
        .result_bit_size = 64,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -300,7 +369,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        .cond_operand = BNXT_ULP_ACTION_BIT_SET_IPV4_SRC,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 141,
+       .result_start_idx = 257,
        .result_bit_size = 32,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -317,7 +386,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        .cond_operand = BNXT_ULP_ACTION_BIT_SET_IPV4_DST,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 142,
+       .result_start_idx = 258,
        .result_bit_size = 32,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -330,9 +399,10 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 143,
+       .result_start_idx = 259,
        .result_bit_size = 0,
        .result_num_fields = 0,
        .encap_num_fields = 12,
@@ -345,9 +415,10 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 155,
+       .result_start_idx = 271,
        .result_bit_size = 128,
        .result_num_fields = 26,
        .encap_num_fields = 0,
@@ -357,6 +428,22 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        },
        {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_EXT,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_TX,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .result_start_idx = 297,
+       .result_bit_size = 128,
+       .result_num_fields = 26,
+       .encap_num_fields = 11,
+       .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
+       .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
+       },
+       {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type = TF_TBL_TYPE_ACT_STATS_64,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_INT_COUNT,
@@ -364,7 +451,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 181,
+       .result_start_idx = 334,
        .result_bit_size = 64,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -377,11 +464,12 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .cond_opcode = BNXT_ULP_COND_OPCODE_ACTION_BIT_IS_SET,
        .cond_operand = BNXT_ULP_ACTION_BIT_PUSH_VLAN,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 182,
+       .result_start_idx = 335,
        .result_bit_size = 0,
        .result_num_fields = 0,
        .encap_num_fields = 12,
@@ -394,15 +482,52 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_stingray_tbl_list[] = {
        .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
+       .direction = TF_DIR_TX,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .result_start_idx = 347,
+       .result_bit_size = 128,
+       .result_num_fields = 26,
+       .encap_num_fields = 0,
+       .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
+       .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
+       },
+       {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_EXT,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .cond_opcode = BNXT_ULP_COND_OPCODE_ACTION_BIT_NOT_SET,
+       .cond_operand = BNXT_ULP_ACTION_BIT_PUSH_VLAN,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 194,
+       .result_start_idx = 373,
        .result_bit_size = 128,
        .result_num_fields = 26,
        .encap_num_fields = 0,
        .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
        .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
+       },
+       {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_EXT,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .cond_opcode = BNXT_ULP_COND_OPCODE_ACTION_BIT_IS_SET,
+       .cond_operand = BNXT_ULP_ACTION_BIT_PUSH_VLAN,
+       .direction = TF_DIR_TX,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .result_start_idx = 399,
+       .result_bit_size = 128,
+       .result_num_fields = 26,
+       .encap_num_fields = 11,
+       .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
+       .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
        }
 };
 
@@ -519,6 +644,10 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
        .field_bit_size = 8,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -540,6 +669,12 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -669,18 +804,6 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 64,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
        .field_bit_size = 14,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -729,10 +852,10 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
        },
        {
        .field_bit_size = 11,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
        .result_operand = {
-               (BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 >> 8) & 0xff,
-               BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 & 0xff,
+               (BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR >> 8) & 0xff,
+               BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
@@ -824,18 +947,20 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
        },
        {
        .field_bit_size = 4,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_CONST_ELSE_CONST,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_HDR_BIT_THEN_CONST_ELSE_CONST,
        .result_operand = {
-               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 56) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 48) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 40) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 32) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 24) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 16) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 8) & 0xff,
-               (uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
-       .result_operand_true = {0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
+       .result_operand_true = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_false = {0x0b, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
@@ -849,17 +974,7 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
-       .result_operand = {
-               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
-               (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 1,
@@ -871,17 +986,7 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
-       .result_operand = {
-               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
-               (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 1,
@@ -931,6 +1036,10 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
        .field_bit_size = 8,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -947,20 +1056,64 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 10,
+       .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 16,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 10,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 16,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 10,
@@ -976,11 +1129,21 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 4,
@@ -1031,11 +1194,224 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 14,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_CONST_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 1,
@@ -1046,73 +1422,1284 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 48,
+       .field_bit_size = 14,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_CONST_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 14,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_CONST_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 64,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               BNXT_ULP_SYM_ECV_TUN_TYPE_VXLAN,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               BNXT_ULP_SYM_ECV_L4_TYPE_UDP_CSUM,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 0,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 0,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 0,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 14,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               BNXT_ULP_SYM_ECV_TUN_TYPE_VXLAN,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               BNXT_ULP_SYM_ECV_L4_TYPE_UDP_CSUM,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 0,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 0,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 0,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 14,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 64,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 32,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               BNXT_ULP_SYM_ECV_L2_EN_YES,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 80,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 14,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR >> 8) & 0xff,
+               BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_HDR_BIT_THEN_CONST_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_false = {0x0b, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 14,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_HDR_BIT_THEN_CONST_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_false = {0x0b, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
        .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 32,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 48,
+       .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 48,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 128,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 16,
+       .field_bit_size = 3,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .result_operand = {
-               BNXT_ULP_SYM_ECV_TUN_TYPE_VXLAN,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
        .result_operand = {
-               BNXT_ULP_SYM_ECV_L4_TYPE_UDP_CSUM,
+               BNXT_ULP_SYM_ECV_L2_EN_YES,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 1,
@@ -1121,13 +2708,48 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 64,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
        .field_bit_size = 4,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
        .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff,
+               BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 1,
@@ -1140,55 +2762,39 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 48,
+       .field_bit_size = 16,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
        .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 0,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
        .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG & 0xff,
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00,
+               (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 0,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP & 0xff,
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 32,
+       .field_bit_size = 3,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
        .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 0,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN & 0xff,
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .field_bit_size = 80,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 14,
@@ -1276,11 +2882,21 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 4,
@@ -1309,90 +2925,24 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 64,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 32,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
-       .field_bit_size = 32,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
-       .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
        .result_operand = {
-               BNXT_ULP_SYM_ECV_L2_EN_YES,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 4,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
-       .field_bit_size = 16,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 12,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 3,
+       .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 80,
+       .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
@@ -1431,6 +2981,10 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
        .field_bit_size = 8,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -1444,68 +2998,27 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
        },
        {
        .field_bit_size = 11,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
-       .result_operand = {
-               (BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR >> 8) & 0xff,
-               BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 10,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
-       .result_operand = {
-               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
-               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 16,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
-       .result_operand = {
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
-               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
-       .result_operand_true = {
-               (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 10,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
-       .result_operand = {
-               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
-               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 16,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
-       .result_operand = {
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
-               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
-       .result_operand_true = {
-               (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 10,
@@ -1539,21 +3052,7 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
        },
        {
        .field_bit_size = 4,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_HDR_BIT_THEN_CONST_ELSE_CONST,
-       .result_operand = {
-               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
-               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
-               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
-               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
-               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
-               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
-               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
-               (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
-       .result_operand_true = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
-       .result_operand_false = {0x0b, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 12,
@@ -1578,90 +3077,19 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 64,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 4,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
        .result_operand = {
-               BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
-       .field_bit_size = 16,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
-       .field_bit_size = 12,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
-       .field_bit_size = 80,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
        .field_bit_size = 14,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -1697,6 +3125,10 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
        .field_bit_size = 8,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -1710,12 +3142,11 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
        },
        {
        .field_bit_size = 11,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
-       .result_operand = {
-               (BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 >> 8) & 0xff,
-               BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 10,
@@ -1778,7 +3209,17 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 1,
@@ -1803,11 +3244,68 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_stingray_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        }
 };
index f365c5c..b5bdb94 100644 (file)
@@ -41,110 +41,110 @@ struct bnxt_ulp_mapper_tbl_list_info ulp_class_stingray_tmpl_list[] = {
        },
        [6] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 4,
+       .num_tbls = 5,
        .start_tbl_idx = 28,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [7] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 4,
-       .start_tbl_idx = 32,
+       .num_tbls = 5,
+       .start_tbl_idx = 33,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [8] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 5,
-       .start_tbl_idx = 36,
+       .num_tbls = 6,
+       .start_tbl_idx = 38,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [9] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 5,
-       .start_tbl_idx = 41,
+       .num_tbls = 6,
+       .start_tbl_idx = 44,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [10] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 5,
-       .start_tbl_idx = 46,
+       .num_tbls = 6,
+       .start_tbl_idx = 50,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [11] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 5,
-       .start_tbl_idx = 51,
+       .num_tbls = 6,
+       .start_tbl_idx = 56,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [12] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 4,
-       .start_tbl_idx = 56,
+       .num_tbls = 5,
+       .start_tbl_idx = 62,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [13] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 4,
-       .start_tbl_idx = 60,
+       .num_tbls = 5,
+       .start_tbl_idx = 67,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [14] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 4,
-       .start_tbl_idx = 64,
+       .num_tbls = 5,
+       .start_tbl_idx = 72,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [15] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 4,
-       .start_tbl_idx = 68,
+       .num_tbls = 5,
+       .start_tbl_idx = 77,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [16] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 4,
-       .start_tbl_idx = 72,
+       .num_tbls = 5,
+       .start_tbl_idx = 82,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [17] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 4,
-       .start_tbl_idx = 76,
+       .num_tbls = 5,
+       .start_tbl_idx = 87,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [18] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 5,
-       .start_tbl_idx = 80,
+       .num_tbls = 6,
+       .start_tbl_idx = 92,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [19] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 5,
-       .start_tbl_idx = 85,
+       .num_tbls = 6,
+       .start_tbl_idx = 98,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [20] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 5,
-       .start_tbl_idx = 90,
+       .num_tbls = 6,
+       .start_tbl_idx = 104,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [21] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 5,
-       .start_tbl_idx = 95,
+       .num_tbls = 6,
+       .start_tbl_idx = 110,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [22] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 4,
-       .start_tbl_idx = 100,
+       .num_tbls = 5,
+       .start_tbl_idx = 116,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [23] = {
        .device_name = BNXT_ULP_DEVICE_ID_STINGRAY,
-       .num_tbls = 4,
-       .start_tbl_idx = 104,
+       .num_tbls = 5,
+       .start_tbl_idx = 121,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        }
 };
@@ -629,14 +629,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 167,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 306,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 5,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 167,
+       .key_start_idx = 178,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 306,
+       .result_start_idx = 315,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -651,11 +670,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .key_start_idx = 178,
+       .key_start_idx = 189,
        .blob_key_bit_size = 171,
        .key_bit_size = 171,
        .key_num_fields = 13,
-       .result_start_idx = 315,
+       .result_start_idx = 324,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -670,11 +689,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 191,
+       .key_start_idx = 202,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 328,
+       .result_start_idx = 337,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -687,11 +706,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_1,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 194,
+       .key_start_idx = 205,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 329,
+       .result_start_idx = 338,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -701,14 +720,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 248,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 346,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 7,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 237,
+       .key_start_idx = 259,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 337,
+       .result_start_idx = 355,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -723,11 +761,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 248,
+       .key_start_idx = 270,
        .blob_key_bit_size = 12,
        .key_bit_size = 12,
        .key_num_fields = 1,
-       .result_start_idx = 346,
+       .result_start_idx = 364,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -740,11 +778,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 249,
+       .key_start_idx = 271,
        .blob_key_bit_size = 171,
        .key_bit_size = 171,
        .key_num_fields = 13,
-       .result_start_idx = 347,
+       .result_start_idx = 365,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -759,11 +797,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 262,
+       .key_start_idx = 284,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 360,
+       .result_start_idx = 378,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -776,11 +814,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 265,
+       .key_start_idx = 287,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 361,
+       .result_start_idx = 379,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -790,14 +828,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 330,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 387,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 9,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 308,
+       .key_start_idx = 341,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 369,
+       .result_start_idx = 396,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -812,11 +869,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 319,
+       .key_start_idx = 352,
        .blob_key_bit_size = 12,
        .key_bit_size = 12,
        .key_num_fields = 1,
-       .result_start_idx = 378,
+       .result_start_idx = 405,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -829,11 +886,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 320,
+       .key_start_idx = 353,
        .blob_key_bit_size = 171,
        .key_bit_size = 171,
        .key_num_fields = 13,
-       .result_start_idx = 379,
+       .result_start_idx = 406,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -848,11 +905,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 333,
+       .key_start_idx = 366,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 392,
+       .result_start_idx = 419,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -865,11 +922,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 336,
+       .key_start_idx = 369,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 393,
+       .result_start_idx = 420,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -879,14 +936,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 412,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 428,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 11,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 379,
+       .key_start_idx = 423,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 401,
+       .result_start_idx = 437,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -901,11 +977,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 390,
+       .key_start_idx = 434,
        .blob_key_bit_size = 12,
        .key_bit_size = 12,
        .key_num_fields = 1,
-       .result_start_idx = 410,
+       .result_start_idx = 446,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -918,11 +994,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 391,
+       .key_start_idx = 435,
        .blob_key_bit_size = 171,
        .key_bit_size = 171,
        .key_num_fields = 13,
-       .result_start_idx = 411,
+       .result_start_idx = 447,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -937,11 +1013,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 404,
+       .key_start_idx = 448,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 424,
+       .result_start_idx = 460,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -954,11 +1030,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 407,
+       .key_start_idx = 451,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 425,
+       .result_start_idx = 461,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -968,14 +1044,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 494,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 469,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 13,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 450,
+       .key_start_idx = 505,
        .blob_key_bit_size = 392,
        .key_bit_size = 392,
        .key_num_fields = 11,
-       .result_start_idx = 433,
+       .result_start_idx = 478,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -990,11 +1085,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 461,
+       .key_start_idx = 516,
        .blob_key_bit_size = 12,
        .key_bit_size = 12,
        .key_num_fields = 1,
-       .result_start_idx = 442,
+       .result_start_idx = 487,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1007,11 +1102,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 462,
+       .key_start_idx = 517,
        .blob_key_bit_size = 171,
        .key_bit_size = 171,
        .key_num_fields = 13,
-       .result_start_idx = 443,
+       .result_start_idx = 488,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1026,11 +1121,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 475,
+       .key_start_idx = 530,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 456,
+       .result_start_idx = 501,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1043,11 +1138,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 478,
+       .key_start_idx = 533,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 457,
+       .result_start_idx = 502,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1057,14 +1152,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 576,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 510,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 15,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 521,
+       .key_start_idx = 587,
        .blob_key_bit_size = 392,
        .key_bit_size = 392,
        .key_num_fields = 11,
-       .result_start_idx = 465,
+       .result_start_idx = 519,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1079,11 +1193,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .key_start_idx = 532,
+       .key_start_idx = 598,
        .blob_key_bit_size = 171,
        .key_bit_size = 171,
        .key_num_fields = 13,
-       .result_start_idx = 474,
+       .result_start_idx = 528,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1098,11 +1212,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 545,
+       .key_start_idx = 611,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 487,
+       .result_start_idx = 541,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1115,11 +1229,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 548,
+       .key_start_idx = 614,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 488,
+       .result_start_idx = 542,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1129,14 +1243,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 657,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 550,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 17,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 591,
+       .key_start_idx = 668,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 496,
+       .result_start_idx = 559,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1151,11 +1284,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .key_start_idx = 602,
+       .key_start_idx = 679,
        .blob_key_bit_size = 171,
        .key_bit_size = 171,
        .key_num_fields = 13,
-       .result_start_idx = 505,
+       .result_start_idx = 568,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1170,11 +1303,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 615,
+       .key_start_idx = 692,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 518,
+       .result_start_idx = 581,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1187,11 +1320,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 618,
+       .key_start_idx = 695,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 519,
+       .result_start_idx = 582,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1201,14 +1334,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 738,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 590,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 19,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 661,
+       .key_start_idx = 749,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 527,
+       .result_start_idx = 599,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1223,11 +1375,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .key_start_idx = 672,
+       .key_start_idx = 760,
        .blob_key_bit_size = 171,
        .key_bit_size = 171,
        .key_num_fields = 13,
-       .result_start_idx = 536,
+       .result_start_idx = 608,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1242,11 +1394,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 685,
+       .key_start_idx = 773,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 549,
+       .result_start_idx = 621,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1259,11 +1411,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 688,
+       .key_start_idx = 776,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 550,
+       .result_start_idx = 622,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1273,14 +1425,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 819,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 630,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 21,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 731,
+       .key_start_idx = 830,
        .blob_key_bit_size = 392,
        .key_bit_size = 392,
        .key_num_fields = 11,
-       .result_start_idx = 558,
+       .result_start_idx = 639,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1295,11 +1466,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .key_start_idx = 742,
+       .key_start_idx = 841,
        .blob_key_bit_size = 171,
        .key_bit_size = 171,
        .key_num_fields = 13,
-       .result_start_idx = 567,
+       .result_start_idx = 648,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1314,11 +1485,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 755,
+       .key_start_idx = 854,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 580,
+       .result_start_idx = 661,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1331,11 +1502,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 758,
+       .key_start_idx = 857,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 581,
+       .result_start_idx = 662,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1345,14 +1516,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 900,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 670,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 23,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 801,
+       .key_start_idx = 911,
        .blob_key_bit_size = 392,
        .key_bit_size = 392,
        .key_num_fields = 11,
-       .result_start_idx = 589,
+       .result_start_idx = 679,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1367,11 +1557,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .key_start_idx = 812,
+       .key_start_idx = 922,
        .blob_key_bit_size = 171,
        .key_bit_size = 171,
        .key_num_fields = 13,
-       .result_start_idx = 598,
+       .result_start_idx = 688,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1386,11 +1576,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 825,
+       .key_start_idx = 935,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 611,
+       .result_start_idx = 701,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1403,11 +1593,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 828,
+       .key_start_idx = 938,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 612,
+       .result_start_idx = 702,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1417,14 +1607,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 981,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 710,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 25,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 871,
+       .key_start_idx = 992,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 620,
+       .result_start_idx = 719,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1439,11 +1648,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .key_start_idx = 882,
+       .key_start_idx = 1003,
        .blob_key_bit_size = 171,
        .key_bit_size = 171,
        .key_num_fields = 13,
-       .result_start_idx = 629,
+       .result_start_idx = 728,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1458,11 +1667,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 895,
+       .key_start_idx = 1016,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 642,
+       .result_start_idx = 741,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1475,11 +1684,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 898,
+       .key_start_idx = 1019,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 643,
+       .result_start_idx = 742,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1489,14 +1698,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 1062,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 750,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 27,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 941,
+       .key_start_idx = 1073,
        .blob_key_bit_size = 392,
        .key_bit_size = 392,
        .key_num_fields = 11,
-       .result_start_idx = 651,
+       .result_start_idx = 759,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1511,11 +1739,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 952,
+       .key_start_idx = 1084,
        .blob_key_bit_size = 12,
        .key_bit_size = 12,
        .key_num_fields = 1,
-       .result_start_idx = 660,
+       .result_start_idx = 768,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1528,11 +1756,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 953,
+       .key_start_idx = 1085,
        .blob_key_bit_size = 171,
        .key_bit_size = 171,
        .key_num_fields = 13,
-       .result_start_idx = 661,
+       .result_start_idx = 769,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1547,11 +1775,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 966,
+       .key_start_idx = 1098,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 674,
+       .result_start_idx = 782,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1564,11 +1792,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 969,
+       .key_start_idx = 1101,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 675,
+       .result_start_idx = 783,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1578,14 +1806,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_TX,
+       .key_start_idx = 1144,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 791,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 29,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1012,
+       .key_start_idx = 1155,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 683,
+       .result_start_idx = 800,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1600,11 +1847,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1023,
+       .key_start_idx = 1166,
        .blob_key_bit_size = 12,
        .key_bit_size = 12,
        .key_num_fields = 1,
-       .result_start_idx = 692,
+       .result_start_idx = 809,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1617,11 +1864,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 1024,
+       .key_start_idx = 1167,
        .blob_key_bit_size = 171,
        .key_bit_size = 171,
        .key_num_fields = 13,
-       .result_start_idx = 693,
+       .result_start_idx = 810,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1636,11 +1883,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1037,
+       .key_start_idx = 1180,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 706,
+       .result_start_idx = 823,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1653,11 +1900,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 1040,
+       .key_start_idx = 1183,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 707,
+       .result_start_idx = 824,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1667,14 +1914,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_TX,
+       .key_start_idx = 1226,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 832,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 31,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1083,
+       .key_start_idx = 1237,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 715,
+       .result_start_idx = 841,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1689,11 +1955,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1094,
+       .key_start_idx = 1248,
        .blob_key_bit_size = 12,
        .key_bit_size = 12,
        .key_num_fields = 1,
-       .result_start_idx = 724,
+       .result_start_idx = 850,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1706,11 +1972,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 1095,
+       .key_start_idx = 1249,
        .blob_key_bit_size = 171,
        .key_bit_size = 171,
        .key_num_fields = 13,
-       .result_start_idx = 725,
+       .result_start_idx = 851,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1725,11 +1991,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1108,
+       .key_start_idx = 1262,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 738,
+       .result_start_idx = 864,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1742,11 +2008,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 1111,
+       .key_start_idx = 1265,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 739,
+       .result_start_idx = 865,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1756,14 +2022,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_TX,
+       .key_start_idx = 1308,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 873,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 33,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1154,
+       .key_start_idx = 1319,
        .blob_key_bit_size = 392,
        .key_bit_size = 392,
        .key_num_fields = 11,
-       .result_start_idx = 747,
+       .result_start_idx = 882,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1778,11 +2063,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1165,
+       .key_start_idx = 1330,
        .blob_key_bit_size = 12,
        .key_bit_size = 12,
        .key_num_fields = 1,
-       .result_start_idx = 756,
+       .result_start_idx = 891,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1795,11 +2080,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 1166,
+       .key_start_idx = 1331,
        .blob_key_bit_size = 171,
        .key_bit_size = 171,
        .key_num_fields = 13,
-       .result_start_idx = 757,
+       .result_start_idx = 892,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1814,11 +2099,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1179,
+       .key_start_idx = 1344,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 770,
+       .result_start_idx = 905,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1831,11 +2116,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 1182,
+       .key_start_idx = 1347,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 771,
+       .result_start_idx = 906,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1845,14 +2130,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_TX,
+       .key_start_idx = 1390,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 914,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 35,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1225,
+       .key_start_idx = 1401,
        .blob_key_bit_size = 392,
        .key_bit_size = 392,
        .key_num_fields = 11,
-       .result_start_idx = 779,
+       .result_start_idx = 923,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1867,11 +2171,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_UPDATE,
-       .key_start_idx = 1236,
+       .key_start_idx = 1412,
        .blob_key_bit_size = 171,
        .key_bit_size = 171,
        .key_num_fields = 13,
-       .result_start_idx = 788,
+       .result_start_idx = 932,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1886,11 +2190,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1249,
+       .key_start_idx = 1425,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 801,
+       .result_start_idx = 945,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1903,11 +2207,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 1252,
+       .key_start_idx = 1428,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 802,
+       .result_start_idx = 946,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1917,14 +2221,15 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
-       .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
-       .resource_type = TF_MEM_INTERNAL,
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1295,
-       .blob_key_bit_size = 104,
-       .key_bit_size = 104,
+       .key_start_idx = 1471,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
        .key_num_fields = 7,
-       .result_start_idx = 810,
+       .result_start_idx = 954,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1934,16 +2239,34 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
        },
        {
-       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
-       .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
+       .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
-       .priority = BNXT_ULP_PRIORITY_LEVEL_0,
-       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_UPDATE,
-       .key_start_idx = 1302,
+       .key_start_idx = 1478,
+       .blob_key_bit_size = 104,
+       .key_bit_size = 104,
+       .key_num_fields = 7,
+       .result_start_idx = 963,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 37,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
+       .direction = TF_DIR_TX,
+       .priority = BNXT_ULP_PRIORITY_LEVEL_0,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_UPDATE,
+       .key_start_idx = 1485,
        .blob_key_bit_size = 171,
        .key_bit_size = 171,
        .key_num_fields = 13,
-       .result_start_idx = 819,
+       .result_start_idx = 972,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1958,11 +2281,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1315,
+       .key_start_idx = 1498,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 832,
+       .result_start_idx = 985,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1975,11 +2298,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 1318,
+       .key_start_idx = 1501,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 833,
+       .result_start_idx = 986,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1989,14 +2312,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_stingray_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_TX,
+       .key_start_idx = 1544,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 7,
+       .result_start_idx = 994,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 39,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1361,
+       .key_start_idx = 1551,
        .blob_key_bit_size = 104,
        .key_bit_size = 104,
        .key_num_fields = 7,
-       .result_start_idx = 841,
+       .result_start_idx = 1003,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -3084,6 +3426,76 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 251,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF6_IDX_O_ETH_SMAC >> 8) & 0xff,
+               BNXT_ULP_HF6_IDX_O_ETH_SMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -3551,6 +3963,76 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 251,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF7_IDX_O_ETH_SMAC >> 8) & 0xff,
+               BNXT_ULP_HF7_IDX_O_ETH_SMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -4009,6 +4491,95 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 251,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF8_IDX_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF8_IDX_O_UDP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF8_IDX_O_UDP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF8_IDX_O_UDP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_UDP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF8_IDX_O_IPV4_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF8_IDX_O_IPV4_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF8_IDX_O_IPV4_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF8_IDX_O_IPV4_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -4482,6 +5053,95 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 251,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF9_IDX_O_TCP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF9_IDX_O_TCP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF9_IDX_O_TCP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF9_IDX_O_TCP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_TCP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF9_IDX_O_IPV4_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF9_IDX_O_IPV4_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF9_IDX_O_IPV4_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF9_IDX_O_IPV4_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -4963,6 +5623,95 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 59,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF10_IDX_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF10_IDX_O_UDP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF10_IDX_O_UDP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF10_IDX_O_UDP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_UDP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF10_IDX_O_IPV6_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF10_IDX_O_IPV6_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF10_IDX_O_IPV6_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF10_IDX_O_IPV6_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -5440,7 +6189,7 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 3,
+       .field_bit_size = 59,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -5529,89 +6278,178 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
-       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .mask_operand = {
-               (BNXT_ULP_HF12_IDX_OO_VLAN_VID >> 8) & 0xff,
-               BNXT_ULP_HF12_IDX_OO_VLAN_VID & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .spec_operand = {
-               (BNXT_ULP_HF12_IDX_OO_VLAN_VID >> 8) & 0xff,
-               BNXT_ULP_HF12_IDX_OO_VLAN_VID & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 12,
+       .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 48,
-       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .mask_operand = {
-               (BNXT_ULP_HF12_IDX_O_ETH_DMAC >> 8) & 0xff,
-               BNXT_ULP_HF12_IDX_O_ETH_DMAC & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
        .spec_operand = {
-               (BNXT_ULP_HF12_IDX_O_ETH_DMAC >> 8) & 0xff,
-               BNXT_ULP_HF12_IDX_O_ETH_DMAC & 0xff,
+               (BNXT_ULP_HF11_IDX_O_TCP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF11_IDX_O_TCP_DST_PORT & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
-       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .mask_operand = {
-               (BNXT_ULP_HF12_IDX_SVIF_INDEX >> 8) & 0xff,
-               BNXT_ULP_HF12_IDX_SVIF_INDEX & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
        .spec_operand = {
-               (BNXT_ULP_HF12_IDX_SVIF_INDEX >> 8) & 0xff,
-               BNXT_ULP_HF12_IDX_SVIF_INDEX & 0xff,
+               (BNXT_ULP_HF11_IDX_O_TCP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF11_IDX_O_TCP_SRC_PORT & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
+       .field_bit_size = 8,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_TCP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
+       .field_bit_size = 128,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF11_IDX_O_IPV6_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF11_IDX_O_IPV6_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 48,
+       .field_bit_size = 128,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 2,
-       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-               0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
        .spec_operand = {
-               (BNXT_ULP_CF_IDX_O_VTAG_NUM >> 8) & 0xff,
-               BNXT_ULP_CF_IDX_O_VTAG_NUM & 0xff,
+               (BNXT_ULP_HF11_IDX_O_IPV6_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF11_IDX_O_IPV6_SRC_ADDR & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 2,
+       .field_bit_size = 48,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 4,
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .mask_operand = {
+               (BNXT_ULP_HF12_IDX_OO_VLAN_VID >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_OO_VLAN_VID & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF12_IDX_OO_VLAN_VID >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_OO_VLAN_VID & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .mask_operand = {
+               (BNXT_ULP_HF12_IDX_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_O_ETH_DMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF12_IDX_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_O_ETH_DMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .mask_operand = {
+               (BNXT_ULP_HF12_IDX_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_SVIF_INDEX & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF12_IDX_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_SVIF_INDEX & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+               0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_CF_IDX_O_VTAG_NUM >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_O_VTAG_NUM & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 2,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 4,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -5936,6 +6774,95 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 251,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF12_IDX_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_O_UDP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF12_IDX_O_UDP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_O_UDP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_UDP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF12_IDX_O_IPV4_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_O_IPV4_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF12_IDX_O_IPV4_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_O_IPV4_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -6428,7 +7355,7 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 3,
+       .field_bit_size = 251,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -6517,67 +7444,156 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
-       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .mask_operand = {
-               (BNXT_ULP_HF14_IDX_OO_VLAN_VID >> 8) & 0xff,
-               BNXT_ULP_HF14_IDX_OO_VLAN_VID & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .spec_operand = {
-               (BNXT_ULP_HF14_IDX_OO_VLAN_VID >> 8) & 0xff,
-               BNXT_ULP_HF14_IDX_OO_VLAN_VID & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 12,
+       .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 48,
-       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .mask_operand = {
-               (BNXT_ULP_HF14_IDX_O_ETH_DMAC >> 8) & 0xff,
-               BNXT_ULP_HF14_IDX_O_ETH_DMAC & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
        .spec_operand = {
-               (BNXT_ULP_HF14_IDX_O_ETH_DMAC >> 8) & 0xff,
-               BNXT_ULP_HF14_IDX_O_ETH_DMAC & 0xff,
+               (BNXT_ULP_HF13_IDX_O_TCP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF13_IDX_O_TCP_DST_PORT & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
-       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .mask_operand = {
-               (BNXT_ULP_HF14_IDX_SVIF_INDEX >> 8) & 0xff,
-               BNXT_ULP_HF14_IDX_SVIF_INDEX & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
        .spec_operand = {
-               (BNXT_ULP_HF14_IDX_SVIF_INDEX >> 8) & 0xff,
-               BNXT_ULP_HF14_IDX_SVIF_INDEX & 0xff,
+               (BNXT_ULP_HF13_IDX_O_TCP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF13_IDX_O_TCP_SRC_PORT & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
-       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 12,
+       .field_bit_size = 8,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_TCP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 48,
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF13_IDX_O_IPV4_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF13_IDX_O_IPV4_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF13_IDX_O_IPV4_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF13_IDX_O_IPV4_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .mask_operand = {
+               (BNXT_ULP_HF14_IDX_OO_VLAN_VID >> 8) & 0xff,
+               BNXT_ULP_HF14_IDX_OO_VLAN_VID & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF14_IDX_OO_VLAN_VID >> 8) & 0xff,
+               BNXT_ULP_HF14_IDX_OO_VLAN_VID & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .mask_operand = {
+               (BNXT_ULP_HF14_IDX_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_HF14_IDX_O_ETH_DMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF14_IDX_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_HF14_IDX_O_ETH_DMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .mask_operand = {
+               (BNXT_ULP_HF14_IDX_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_HF14_IDX_SVIF_INDEX & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF14_IDX_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_HF14_IDX_SVIF_INDEX & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -6928,6 +7944,95 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 59,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF14_IDX_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF14_IDX_O_UDP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF14_IDX_O_UDP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF14_IDX_O_UDP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_UDP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF14_IDX_O_IPV6_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF14_IDX_O_IPV6_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF14_IDX_O_IPV6_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF14_IDX_O_IPV6_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -7424,7 +8529,7 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 3,
+       .field_bit_size = 59,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -7513,61 +8618,63 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
+       .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 12,
+       .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 48,
-       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-               0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
        .spec_operand = {
-               (BNXT_ULP_HF16_IDX_O_ETH_DMAC >> 8) & 0xff,
-               BNXT_ULP_HF16_IDX_O_ETH_DMAC & 0xff,
+               (BNXT_ULP_HF15_IDX_O_TCP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF15_IDX_O_TCP_DST_PORT & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
-       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .mask_operand = {
-               (BNXT_ULP_HF16_IDX_SVIF_INDEX >> 8) & 0xff,
-               BNXT_ULP_HF16_IDX_SVIF_INDEX & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
        .spec_operand = {
-               (BNXT_ULP_HF16_IDX_SVIF_INDEX >> 8) & 0xff,
-               BNXT_ULP_HF16_IDX_SVIF_INDEX & 0xff,
+               (BNXT_ULP_HF15_IDX_O_TCP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF15_IDX_O_TCP_SRC_PORT & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
-       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .mask_operand = {
-               (BNXT_ULP_HF16_IDX_OO_VLAN_VID >> 8) & 0xff,
-               BNXT_ULP_HF16_IDX_OO_VLAN_VID & 0xff,
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_TCP,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
        .spec_operand = {
-               (BNXT_ULP_HF16_IDX_OO_VLAN_VID >> 8) & 0xff,
-               BNXT_ULP_HF16_IDX_OO_VLAN_VID & 0xff,
+               (BNXT_ULP_HF15_IDX_O_IPV6_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF15_IDX_O_IPV6_DST_ADDR & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
+       .field_bit_size = 128,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF15_IDX_O_IPV6_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF15_IDX_O_IPV6_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 48,
@@ -7575,7 +8682,94 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 2,
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+               0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF16_IDX_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_HF16_IDX_O_ETH_DMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .mask_operand = {
+               (BNXT_ULP_HF16_IDX_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_HF16_IDX_SVIF_INDEX & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF16_IDX_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_HF16_IDX_SVIF_INDEX & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .mask_operand = {
+               (BNXT_ULP_HF16_IDX_OO_VLAN_VID >> 8) & 0xff,
+               BNXT_ULP_HF16_IDX_OO_VLAN_VID & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF16_IDX_OO_VLAN_VID >> 8) & 0xff,
+               BNXT_ULP_HF16_IDX_OO_VLAN_VID & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -7917,6 +9111,80 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 251,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_UDP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF16_IDX_O_IPV4_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF16_IDX_O_IPV4_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -8399,6 +9667,80 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 59,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_UDP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF17_IDX_O_IPV6_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF17_IDX_O_IPV6_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -8857,7 +10199,7 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 3,
+       .field_bit_size = 251,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -8946,27 +10288,116 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
+       .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .spec_operand = {
-               (BNXT_ULP_HF19_IDX_SVIF_INDEX >> 8) & 0xff,
-               BNXT_ULP_HF19_IDX_SVIF_INDEX & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 12,
+       .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 12,
+       .field_bit_size = 16,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF18_IDX_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF18_IDX_O_UDP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 48,
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF18_IDX_O_UDP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF18_IDX_O_UDP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_UDP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF18_IDX_O_IPV4_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF18_IDX_O_IPV4_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF18_IDX_O_IPV4_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF18_IDX_O_IPV4_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF19_IDX_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_HF19_IDX_SVIF_INDEX & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -9326,6 +10757,95 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 251,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF19_IDX_O_TCP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF19_IDX_O_TCP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF19_IDX_O_TCP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF19_IDX_O_TCP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_TCP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF19_IDX_O_IPV4_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF19_IDX_O_IPV4_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF19_IDX_O_IPV4_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF19_IDX_O_IPV4_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -9803,7 +11323,7 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 3,
+       .field_bit_size = 59,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -9892,78 +11412,167 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
-       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .spec_operand = {
-               (BNXT_ULP_HF21_IDX_SVIF_INDEX >> 8) & 0xff,
-               BNXT_ULP_HF21_IDX_SVIF_INDEX & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
-       .field_bit_size = 12,
+       .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 12,
+       .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 48,
+       .field_bit_size = 16,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF20_IDX_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF20_IDX_O_UDP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
-       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .mask_operand = {
-               (BNXT_ULP_HF21_IDX_SVIF_INDEX >> 8) & 0xff,
-               BNXT_ULP_HF21_IDX_SVIF_INDEX & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
        .spec_operand = {
-               (BNXT_ULP_HF21_IDX_SVIF_INDEX >> 8) & 0xff,
-               BNXT_ULP_HF21_IDX_SVIF_INDEX & 0xff,
+               (BNXT_ULP_HF20_IDX_O_UDP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF20_IDX_O_UDP_SRC_PORT & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
+       .field_bit_size = 8,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_UDP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
+       .field_bit_size = 128,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF20_IDX_O_IPV6_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF20_IDX_O_IPV6_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 48,
+       .field_bit_size = 128,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF20_IDX_O_IPV6_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF20_IDX_O_IPV6_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 2,
+       .field_bit_size = 48,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 2,
+       .field_bit_size = 24,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 4,
-       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-               0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .spec_operand = {
-               BNXT_ULP_SYM_TUN_HDR_TYPE_NONE,
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF21_IDX_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_HF21_IDX_SVIF_INDEX & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .mask_operand = {
+               (BNXT_ULP_HF21_IDX_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_HF21_IDX_SVIF_INDEX & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF21_IDX_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_HF21_IDX_SVIF_INDEX & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 4,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .mask_operand = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+               0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_TUN_HDR_TYPE_NONE,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
@@ -10276,6 +11885,95 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 59,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF21_IDX_O_TCP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF21_IDX_O_TCP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF21_IDX_O_TCP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF21_IDX_O_TCP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_TCP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF21_IDX_O_IPV6_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF21_IDX_O_IPV6_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF21_IDX_O_IPV6_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF21_IDX_O_IPV6_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -10766,6 +12464,56 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 351,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF22_IDX_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_HF22_IDX_O_ETH_DMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 7,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -11221,7 +12969,7 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 7,
+       .field_bit_size = 351,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -11269,36 +13017,86 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_stingray_key_field_list[]
                BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       }
-};
-
-struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[] = {
-       {
-       .field_bit_size = 14,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .field_bit_size = 7,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 8,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 1,
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF23_IDX_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_HF23_IDX_O_ETH_DMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       }
+};
+
+struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[] = {
+       {
+       .field_bit_size = 14,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
@@ -12791,6 +14589,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -12969,6 +14821,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -13156,6 +15062,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -13343,39 +15303,93 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 10,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
-       .result_operand = {
-               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
-               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
-       .field_bit_size = 10,
+       .field_bit_size = 33,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
-               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
-               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 7,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
-       .result_operand = {
-               (BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID >> 8) & 0xff,
-               BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 4,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 7,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID >> 8) & 0xff,
+               BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
        .result_operand = {
                (BNXT_ULP_CF_IDX_PHY_PORT_PARIF >> 8) & 0xff,
                BNXT_ULP_CF_IDX_PHY_PORT_PARIF & 0xff,
@@ -13530,6 +15544,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x0185 >> 8) & 0xff,
+               0x0185 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -13717,6 +15785,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x0185 >> 8) & 0xff,
+               0x0185 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -13895,6 +16017,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -14073,6 +16249,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -14251,6 +16481,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x0185 >> 8) & 0xff,
+               0x0185 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -14341,33 +16625,81 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 10,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00f9 >> 8) & 0xff,
+               0x00f9 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x19, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
-               (0x00f9 >> 8) & 0xff,
-               0x00f9 & 0xff,
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
        .field_bit_size = 5,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .result_operand = {0x19, 0x00, 0x00, 0x00, 0x00, 0x00,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 8,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
        .result_operand = {
-               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
-               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               (0x0185 >> 8) & 0xff,
+               0x0185 & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 1,
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
@@ -14375,6 +16707,12 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 33,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -14607,6 +16945,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -14785,6 +17177,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x0185 >> 8) & 0xff,
+               0x0185 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -14987,6 +17433,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -15093,41 +17593,89 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 8,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00f9 >> 8) & 0xff,
+               0x00f9 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x15, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 10,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .result_operand = {
-               (0x00f9 >> 8) & 0xff,
-               0x00f9 & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
        .field_bit_size = 5,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .result_operand = {0x15, 0x00, 0x00, 0x00, 0x00, 0x00,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 8,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
        .result_operand = {
-               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
-               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 1,
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
@@ -15135,6 +17683,12 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 33,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -15391,6 +17945,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x0185 >> 8) & 0xff,
+               0x0185 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -15593,6 +18201,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x0185 >> 8) & 0xff,
+               0x0185 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -15786,6 +18448,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x0061 >> 8) & 0xff,
+               0x0061 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -15975,6 +18691,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_stingray_result_field_list[]
        {
        .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x0061 >> 8) & 0xff,
+               0x0061 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
        .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        }
index 86fd489..4904a41 100644 (file)
@@ -314,42 +314,42 @@ struct bnxt_ulp_cache_tbl_params ulp_cache_tbl_params[] = {
 
 const struct ulp_template_device_tbls ulp_template_stingray_tbls[] = {
        [BNXT_ULP_TEMPLATE_TYPE_CLASS] = {
-               .tmpl_list = ulp_class_stingray_tmpl_list,
-               .tbl_list = ulp_class_stingray_tbl_list,
-               .key_field_list = ulp_class_stingray_key_field_list,
-               .result_field_list = ulp_class_stingray_result_field_list,
-               .ident_list = ulp_class_stingray_ident_list
+       .tmpl_list               = ulp_class_stingray_tmpl_list,
+       .tbl_list                = ulp_class_stingray_tbl_list,
+       .key_field_list          = ulp_class_stingray_key_field_list,
+       .result_field_list       = ulp_class_stingray_result_field_list,
+       .ident_list              = ulp_class_stingray_ident_list
        },
        [BNXT_ULP_TEMPLATE_TYPE_ACTION] = {
-               .tmpl_list = ulp_act_stingray_tmpl_list,
-               .tbl_list = ulp_act_stingray_tbl_list,
-               .result_field_list = ulp_act_stingray_result_field_list,
+       .tmpl_list               = ulp_act_stingray_tmpl_list,
+       .tbl_list                = ulp_act_stingray_tbl_list,
+       .result_field_list       = ulp_act_stingray_result_field_list
        }
 };
 
 const struct ulp_template_device_tbls ulp_template_wh_plus_tbls[] = {
        [BNXT_ULP_TEMPLATE_TYPE_CLASS] = {
-               .tmpl_list = ulp_class_wh_plus_tmpl_list,
-               .tbl_list = ulp_class_wh_plus_tbl_list,
-               .key_field_list = ulp_class_wh_plus_key_field_list,
-               .result_field_list = ulp_class_wh_plus_result_field_list,
-               .ident_list = ulp_class_wh_plus_ident_list,
+       .tmpl_list               = ulp_class_wh_plus_tmpl_list,
+       .tbl_list                = ulp_class_wh_plus_tbl_list,
+       .key_field_list          = ulp_class_wh_plus_key_field_list,
+       .result_field_list       = ulp_class_wh_plus_result_field_list,
+       .ident_list              = ulp_class_wh_plus_ident_list
        },
        [BNXT_ULP_TEMPLATE_TYPE_ACTION] = {
-               .tmpl_list = ulp_act_wh_plus_tmpl_list,
-               .tbl_list = ulp_act_wh_plus_tbl_list,
-               .result_field_list = ulp_act_wh_plus_result_field_list
+       .tmpl_list               = ulp_act_wh_plus_tmpl_list,
+       .tbl_list                = ulp_act_wh_plus_tbl_list,
+       .result_field_list       = ulp_act_wh_plus_result_field_list
        }
 };
 
 struct bnxt_ulp_device_params ulp_device_params[BNXT_ULP_DEVICE_ID_LAST] = {
        [BNXT_ULP_DEVICE_ID_WH_PLUS] = {
-       .flow_mem_type           = BNXT_ULP_FLOW_MEM_TYPE_INT,
        .byte_order              = BNXT_ULP_BYTE_ORDER_LE,
        .encap_byte_swap         = 1,
-       .flow_db_num_entries     = 16384,
+       .int_flow_db_num_entries = 16384,
+       .ext_flow_db_num_entries = 32768,
        .mark_db_lfid_entries    = 65536,
-       .mark_db_gfid_entries    = 0,
+       .mark_db_gfid_entries    = 65536,
        .flow_count_db_entries   = 16384,
        .num_resources_per_flow  = 8,
        .num_phy_ports           = 2,
@@ -358,15 +358,15 @@ struct bnxt_ulp_device_params ulp_device_params[BNXT_ULP_DEVICE_ID_LAST] = {
        .packet_count_mask       = 0xffffffff00000000,
        .byte_count_shift        = 0,
        .packet_count_shift      = 36,
-       .dev_tbls                = ulp_template_wh_plus_tbls
+       .dev_tbls                = ulp_template_wh_plus_tbls
        },
        [BNXT_ULP_DEVICE_ID_STINGRAY] = {
-       .flow_mem_type           = BNXT_ULP_FLOW_MEM_TYPE_INT,
        .byte_order              = BNXT_ULP_BYTE_ORDER_LE,
        .encap_byte_swap         = 1,
-       .flow_db_num_entries     = 16384,
+       .int_flow_db_num_entries = 16384,
+       .ext_flow_db_num_entries = 32768,
        .mark_db_lfid_entries    = 65536,
-       .mark_db_gfid_entries    = 0,
+       .mark_db_gfid_entries    = 65536,
        .flow_count_db_entries   = 16384,
        .num_resources_per_flow  = 8,
        .num_phy_ports           = 2,
@@ -375,7 +375,7 @@ struct bnxt_ulp_device_params ulp_device_params[BNXT_ULP_DEVICE_ID_LAST] = {
        .packet_count_mask       = 0xffffffff00000000,
        .byte_count_shift        = 0,
        .packet_count_shift      = 36,
-       .dev_tbls                = ulp_template_stingray_tbls
+       .dev_tbls                = ulp_template_stingray_tbls
        }
 };
 
index 3e9ec26..82b2ad9 100644 (file)
 struct bnxt_ulp_mapper_tbl_list_info ulp_act_wh_plus_tmpl_list[] = {
        [1] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 5,
+       .num_tbls = 6,
        .start_tbl_idx = 0,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [2] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 2,
-       .start_tbl_idx = 5,
+       .num_tbls = 3,
+       .start_tbl_idx = 6,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [3] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 2,
-       .start_tbl_idx = 7,
+       .num_tbls = 3,
+       .start_tbl_idx = 9,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [4] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 5,
-       .start_tbl_idx = 9,
+       .num_tbls = 6,
+       .start_tbl_idx = 12,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [5] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 5,
-       .start_tbl_idx = 14,
+       .num_tbls = 6,
+       .start_tbl_idx = 18,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [6] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 3,
-       .start_tbl_idx = 19,
+       .num_tbls = 5,
+       .start_tbl_idx = 24,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        }
 };
@@ -116,9 +116,10 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        },
        {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-       .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
+       .resource_type = TF_TBL_TYPE_EXT,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
        .direction = TF_DIR_RX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
        .result_start_idx = 15,
@@ -131,6 +132,22 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        },
        {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
+       .direction = TF_DIR_RX,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .result_start_idx = 41,
+       .result_bit_size = 128,
+       .result_num_fields = 26,
+       .encap_num_fields = 0,
+       .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
+       .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
+       },
+       {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type = TF_TBL_TYPE_ACT_STATS_64,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_INT_COUNT,
@@ -138,7 +155,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
        .direction = TF_DIR_RX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 41,
+       .result_start_idx = 67,
        .result_bit_size = 64,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -148,12 +165,29 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        },
        {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_EXT,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .result_start_idx = 68,
+       .result_bit_size = 128,
+       .result_num_fields = 26,
+       .encap_num_fields = 0,
+       .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
+       .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
+       },
+       {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 42,
+       .result_start_idx = 94,
        .result_bit_size = 128,
        .result_num_fields = 26,
        .encap_num_fields = 0,
@@ -170,7 +204,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
        .direction = TF_DIR_RX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 68,
+       .result_start_idx = 120,
        .result_bit_size = 64,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -180,12 +214,29 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        },
        {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_EXT,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .result_start_idx = 121,
+       .result_bit_size = 128,
+       .result_num_fields = 26,
+       .encap_num_fields = 0,
+       .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
+       .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
+       },
+       {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 69,
+       .result_start_idx = 147,
        .result_bit_size = 128,
        .result_num_fields = 26,
        .encap_num_fields = 0,
@@ -202,7 +253,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 95,
+       .result_start_idx = 173,
        .result_bit_size = 64,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -219,7 +270,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .result_start_idx = 96,
+       .result_start_idx = 174,
        .result_bit_size = 0,
        .result_num_fields = 0,
        .encap_num_fields = 3,
@@ -236,7 +287,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        .cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .result_start_idx = 99,
+       .result_start_idx = 177,
        .result_bit_size = 0,
        .result_num_fields = 0,
        .encap_num_fields = 3,
@@ -251,7 +302,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .result_start_idx = 102,
+       .result_start_idx = 180,
        .result_bit_size = 0,
        .result_num_fields = 0,
        .encap_num_fields = 12,
@@ -261,12 +312,29 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        },
        {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_EXT,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_TX,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .result_start_idx = 192,
+       .result_bit_size = 128,
+       .result_num_fields = 26,
+       .encap_num_fields = 12,
+       .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
+       .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
+       },
+       {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 114,
+       .result_start_idx = 230,
        .result_bit_size = 128,
        .result_num_fields = 26,
        .encap_num_fields = 0,
@@ -283,7 +351,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 140,
+       .result_start_idx = 256,
        .result_bit_size = 64,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -300,7 +368,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        .cond_operand = BNXT_ULP_ACTION_BIT_SET_IPV4_SRC,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 141,
+       .result_start_idx = 257,
        .result_bit_size = 32,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -317,7 +385,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        .cond_operand = BNXT_ULP_ACTION_BIT_SET_IPV4_DST,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 142,
+       .result_start_idx = 258,
        .result_bit_size = 32,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -330,9 +398,10 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 143,
+       .result_start_idx = 259,
        .result_bit_size = 0,
        .result_num_fields = 0,
        .encap_num_fields = 12,
@@ -345,9 +414,10 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 155,
+       .result_start_idx = 271,
        .result_bit_size = 128,
        .result_num_fields = 26,
        .encap_num_fields = 0,
@@ -357,6 +427,22 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        },
        {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_EXT,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_TX,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .result_start_idx = 297,
+       .result_bit_size = 128,
+       .result_num_fields = 26,
+       .encap_num_fields = 11,
+       .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
+       .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
+       },
+       {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type = TF_TBL_TYPE_ACT_STATS_64,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_INT_COUNT,
@@ -364,7 +450,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        .cond_operand = BNXT_ULP_ACTION_BIT_COUNT,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 181,
+       .result_start_idx = 334,
        .result_bit_size = 64,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -377,11 +463,12 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        .resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .cond_opcode = BNXT_ULP_COND_OPCODE_ACTION_BIT_IS_SET,
        .cond_operand = BNXT_ULP_ACTION_BIT_PUSH_VLAN,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 182,
+       .result_start_idx = 335,
        .result_bit_size = 0,
        .result_num_fields = 0,
        .encap_num_fields = 12,
@@ -394,15 +481,52 @@ struct bnxt_ulp_mapper_tbl_info ulp_act_wh_plus_tbl_list[] = {
        .resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
+       .direction = TF_DIR_TX,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .result_start_idx = 347,
+       .result_bit_size = 128,
+       .result_num_fields = 26,
+       .encap_num_fields = 0,
+       .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
+       .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
+       },
+       {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_EXT,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .cond_opcode = BNXT_ULP_COND_OPCODE_ACTION_BIT_NOT_SET,
+       .cond_operand = BNXT_ULP_ACTION_BIT_PUSH_VLAN,
        .direction = TF_DIR_TX,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .result_start_idx = 194,
+       .result_start_idx = 373,
        .result_bit_size = 128,
        .result_num_fields = 26,
        .encap_num_fields = 0,
        .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
        .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
+       },
+       {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+       .resource_type = TF_TBL_TYPE_EXT,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .cond_opcode = BNXT_ULP_COND_OPCODE_ACTION_BIT_IS_SET,
+       .cond_operand = BNXT_ULP_ACTION_BIT_PUSH_VLAN,
+       .direction = TF_DIR_TX,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
+       .result_start_idx = 399,
+       .result_bit_size = 128,
+       .result_num_fields = 26,
+       .encap_num_fields = 11,
+       .index_opcode = BNXT_ULP_INDEX_OPCODE_ALLOCATE,
+       .index_operand = BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP
        }
 };
 
@@ -519,6 +643,10 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
        .field_bit_size = 8,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -540,6 +668,12 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -669,18 +803,6 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 64,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
        .field_bit_size = 14,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -729,10 +851,10 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
        },
        {
        .field_bit_size = 11,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
        .result_operand = {
-               (BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 >> 8) & 0xff,
-               BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 & 0xff,
+               (BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR >> 8) & 0xff,
+               BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
@@ -824,18 +946,20 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
        },
        {
        .field_bit_size = 4,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_CONST_ELSE_CONST,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_HDR_BIT_THEN_CONST_ELSE_CONST,
        .result_operand = {
-               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 56) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 48) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 40) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 32) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 24) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 16) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 8) & 0xff,
-               (uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
-       .result_operand_true = {0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
+       .result_operand_true = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_false = {0x0b, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
@@ -849,17 +973,7 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
-       .result_operand = {
-               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
-               (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 1,
@@ -871,17 +985,7 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
-       .result_operand = {
-               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
-               (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 1,
@@ -931,6 +1035,10 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
        .field_bit_size = 8,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -947,20 +1055,64 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 10,
+       .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 16,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 10,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 16,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 10,
@@ -976,11 +1128,21 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 4,
@@ -1031,11 +1193,224 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 14,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_CONST_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 1,
@@ -1046,73 +1421,1284 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 48,
+       .field_bit_size = 14,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_CONST_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 14,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_CONST_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_VXLAN_DECAP & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 64,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               BNXT_ULP_SYM_ECV_TUN_TYPE_VXLAN,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               BNXT_ULP_SYM_ECV_L4_TYPE_UDP_CSUM,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 0,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 0,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 0,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 14,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               BNXT_ULP_SYM_ECV_TUN_TYPE_VXLAN,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               BNXT_ULP_SYM_ECV_L4_TYPE_UDP_CSUM,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 0,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 0,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 0,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 14,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 64,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 32,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               BNXT_ULP_SYM_ECV_L2_EN_YES,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 80,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 14,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR >> 8) & 0xff,
+               BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_HDR_BIT_THEN_CONST_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_false = {0x0b, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 14,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_COUNT >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_COUNT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_HDR_BIT_THEN_CONST_ELSE_CONST,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_true = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .result_operand_false = {0x0b, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
        .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 32,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 48,
+       .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 48,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 128,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 16,
+       .field_bit_size = 3,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .result_operand = {
-               BNXT_ULP_SYM_ECV_TUN_TYPE_VXLAN,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
        .result_operand = {
-               BNXT_ULP_SYM_ECV_L4_TYPE_UDP_CSUM,
+               BNXT_ULP_SYM_ECV_L2_EN_YES,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 1,
@@ -1121,13 +2707,48 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 64,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
        .field_bit_size = 4,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
        .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff,
+               BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 1,
@@ -1140,55 +2761,39 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 48,
+       .field_bit_size = 16,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
        .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 0,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
        .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG & 0xff,
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00,
+               (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 0,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP & 0xff,
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 32,
+       .field_bit_size = 3,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
        .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP & 0xff,
+               (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 0,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ENCAP_ACT_PROP_SZ,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN & 0xff,
-               (BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .field_bit_size = 80,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 14,
@@ -1276,11 +2881,21 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 4,
@@ -1309,90 +2924,24 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 64,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 32,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
-       .field_bit_size = 32,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
-       .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
        .result_operand = {
-               BNXT_ULP_SYM_ECV_L2_EN_YES,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 4,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
-       .field_bit_size = 16,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 12,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 3,
+       .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 80,
+       .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
@@ -1431,6 +2980,10 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
        .field_bit_size = 8,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -1444,68 +2997,27 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
        },
        {
        .field_bit_size = 11,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
-       .result_operand = {
-               (BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR >> 8) & 0xff,
-               BNXT_ULP_GLB_REGFILE_INDEX_ENCAP_MAC_PTR & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 10,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
-       .result_operand = {
-               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 >> 8) & 0xff,
-               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 16,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
-       .result_operand = {
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 56) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 48) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 40) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 32) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 24) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 16) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST >> 8) & 0xff,
-               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_DST & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
-       .result_operand_true = {
-               (BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 10,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
-       .result_operand = {
-               (BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 >> 8) & 0xff,
-               BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 16,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_ACT_BIT_THEN_ACT_PROP_ELSE_CONST,
-       .result_operand = {
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 56) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 48) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 40) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 32) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 24) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 16) & 0xff,
-               ((uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC >> 8) & 0xff,
-               (uint64_t)BNXT_ULP_ACTION_BIT_SET_TP_SRC & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
-       .result_operand_true = {
-               (BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 10,
@@ -1539,21 +3051,7 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
        },
        {
        .field_bit_size = 4,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_IF_HDR_BIT_THEN_CONST_ELSE_CONST,
-       .result_operand = {
-               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 56) & 0xff,
-               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 48) & 0xff,
-               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 40) & 0xff,
-               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 32) & 0xff,
-               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 24) & 0xff,
-               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 16) & 0xff,
-               ((uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN >> 8) & 0xff,
-               (uint64_t)BNXT_ULP_HDR_BIT_T_VXLAN & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
-       .result_operand_true = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
-       .result_operand_false = {0x0b, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 12,
@@ -1578,90 +3076,19 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 64,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 4,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
        .result_operand = {
-               BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_DROP >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_DROP & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
-       .field_bit_size = 16,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
-       .field_bit_size = 12,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
-       .field_bit_size = 3,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
-       .result_operand = {
-               (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
-               BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
-       .field_bit_size = 80,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
-       },
-       {
        .field_bit_size = 14,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -1697,6 +3124,10 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
        .field_bit_size = 8,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -1710,12 +3141,11 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
        },
        {
        .field_bit_size = 11,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
-       .result_operand = {
-               (BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 >> 8) & 0xff,
-               BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 10,
@@ -1778,7 +3208,17 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
        },
        {
        .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_BIT,
+       .result_operand = {
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 56) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 48) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 40) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 32) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 24) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 16) & 0xff,
+               ((uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN >> 8) & 0xff,
+               (uint64_t)BNXT_ULP_ACTION_BIT_POP_VLAN & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 1,
@@ -1803,11 +3243,68 @@ struct bnxt_ulp_mapper_result_field_info ulp_act_wh_plus_result_field_list[] = {
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               BNXT_ULP_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ACT_PROP,
+       .result_operand = {
+               (BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
+               BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        }
 };
index b747241..9f40b39 100644 (file)
@@ -41,110 +41,110 @@ struct bnxt_ulp_mapper_tbl_list_info ulp_class_wh_plus_tmpl_list[] = {
        },
        [6] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 4,
+       .num_tbls = 5,
        .start_tbl_idx = 28,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [7] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 4,
-       .start_tbl_idx = 32,
+       .num_tbls = 5,
+       .start_tbl_idx = 33,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [8] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 5,
-       .start_tbl_idx = 36,
+       .num_tbls = 6,
+       .start_tbl_idx = 38,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [9] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 5,
-       .start_tbl_idx = 41,
+       .num_tbls = 6,
+       .start_tbl_idx = 44,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [10] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 5,
-       .start_tbl_idx = 46,
+       .num_tbls = 6,
+       .start_tbl_idx = 50,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [11] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 5,
-       .start_tbl_idx = 51,
+       .num_tbls = 6,
+       .start_tbl_idx = 56,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [12] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 4,
-       .start_tbl_idx = 56,
+       .num_tbls = 5,
+       .start_tbl_idx = 62,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [13] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 4,
-       .start_tbl_idx = 60,
+       .num_tbls = 5,
+       .start_tbl_idx = 67,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [14] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 4,
-       .start_tbl_idx = 64,
+       .num_tbls = 5,
+       .start_tbl_idx = 72,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [15] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 4,
-       .start_tbl_idx = 68,
+       .num_tbls = 5,
+       .start_tbl_idx = 77,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [16] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 4,
-       .start_tbl_idx = 72,
+       .num_tbls = 5,
+       .start_tbl_idx = 82,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [17] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 4,
-       .start_tbl_idx = 76,
+       .num_tbls = 5,
+       .start_tbl_idx = 87,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [18] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 5,
-       .start_tbl_idx = 80,
+       .num_tbls = 6,
+       .start_tbl_idx = 92,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [19] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 5,
-       .start_tbl_idx = 85,
+       .num_tbls = 6,
+       .start_tbl_idx = 98,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [20] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 5,
-       .start_tbl_idx = 90,
+       .num_tbls = 6,
+       .start_tbl_idx = 104,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [21] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 5,
-       .start_tbl_idx = 95,
+       .num_tbls = 6,
+       .start_tbl_idx = 110,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [22] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 4,
-       .start_tbl_idx = 100,
+       .num_tbls = 5,
+       .start_tbl_idx = 116,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        },
        [23] = {
        .device_name = BNXT_ULP_DEVICE_ID_WH_PLUS,
-       .num_tbls = 4,
-       .start_tbl_idx = 104,
+       .num_tbls = 5,
+       .start_tbl_idx = 121,
        .flow_db_table_type = BNXT_ULP_FDB_TYPE_REGULAR
        }
 };
@@ -629,14 +629,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 167,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 306,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 5,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 167,
+       .key_start_idx = 178,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 306,
+       .result_start_idx = 315,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -651,11 +670,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .key_start_idx = 178,
+       .key_start_idx = 189,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
        .key_num_fields = 13,
-       .result_start_idx = 315,
+       .result_start_idx = 324,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -670,11 +689,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 191,
+       .key_start_idx = 202,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 328,
+       .result_start_idx = 337,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -687,11 +706,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_1,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 194,
+       .key_start_idx = 205,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 329,
+       .result_start_idx = 338,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -701,14 +720,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 248,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 346,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 7,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 237,
+       .key_start_idx = 259,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 337,
+       .result_start_idx = 355,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -723,11 +761,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 248,
+       .key_start_idx = 270,
        .blob_key_bit_size = 8,
        .key_bit_size = 8,
        .key_num_fields = 1,
-       .result_start_idx = 346,
+       .result_start_idx = 364,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -740,11 +778,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 249,
+       .key_start_idx = 271,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
        .key_num_fields = 13,
-       .result_start_idx = 347,
+       .result_start_idx = 365,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -759,11 +797,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 262,
+       .key_start_idx = 284,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 360,
+       .result_start_idx = 378,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -776,11 +814,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 265,
+       .key_start_idx = 287,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 361,
+       .result_start_idx = 379,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -790,14 +828,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 330,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 387,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 9,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 308,
+       .key_start_idx = 341,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 369,
+       .result_start_idx = 396,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -812,11 +869,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 319,
+       .key_start_idx = 352,
        .blob_key_bit_size = 8,
        .key_bit_size = 8,
        .key_num_fields = 1,
-       .result_start_idx = 378,
+       .result_start_idx = 405,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -829,11 +886,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 320,
+       .key_start_idx = 353,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
        .key_num_fields = 13,
-       .result_start_idx = 379,
+       .result_start_idx = 406,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -848,11 +905,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 333,
+       .key_start_idx = 366,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 392,
+       .result_start_idx = 419,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -865,11 +922,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 336,
+       .key_start_idx = 369,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 393,
+       .result_start_idx = 420,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -879,14 +936,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 412,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 428,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 11,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 379,
+       .key_start_idx = 423,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 401,
+       .result_start_idx = 437,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -901,11 +977,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 390,
+       .key_start_idx = 434,
        .blob_key_bit_size = 8,
        .key_bit_size = 8,
        .key_num_fields = 1,
-       .result_start_idx = 410,
+       .result_start_idx = 446,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -918,11 +994,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 391,
+       .key_start_idx = 435,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
        .key_num_fields = 13,
-       .result_start_idx = 411,
+       .result_start_idx = 447,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -937,11 +1013,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 404,
+       .key_start_idx = 448,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 424,
+       .result_start_idx = 460,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -954,11 +1030,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 407,
+       .key_start_idx = 451,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 425,
+       .result_start_idx = 461,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -968,14 +1044,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 494,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 469,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 13,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 450,
+       .key_start_idx = 505,
        .blob_key_bit_size = 392,
        .key_bit_size = 392,
        .key_num_fields = 11,
-       .result_start_idx = 433,
+       .result_start_idx = 478,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -990,11 +1085,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 461,
+       .key_start_idx = 516,
        .blob_key_bit_size = 8,
        .key_bit_size = 8,
        .key_num_fields = 1,
-       .result_start_idx = 442,
+       .result_start_idx = 487,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1007,11 +1102,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 462,
+       .key_start_idx = 517,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
        .key_num_fields = 13,
-       .result_start_idx = 443,
+       .result_start_idx = 488,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1026,11 +1121,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 475,
+       .key_start_idx = 530,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 456,
+       .result_start_idx = 501,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1043,11 +1138,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 478,
+       .key_start_idx = 533,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 457,
+       .result_start_idx = 502,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1057,14 +1152,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 576,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 510,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 15,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 521,
+       .key_start_idx = 587,
        .blob_key_bit_size = 392,
        .key_bit_size = 392,
        .key_num_fields = 11,
-       .result_start_idx = 465,
+       .result_start_idx = 519,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1079,11 +1193,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .key_start_idx = 532,
+       .key_start_idx = 598,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
        .key_num_fields = 13,
-       .result_start_idx = 474,
+       .result_start_idx = 528,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1098,11 +1212,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 545,
+       .key_start_idx = 611,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 487,
+       .result_start_idx = 541,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1115,11 +1229,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 548,
+       .key_start_idx = 614,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 488,
+       .result_start_idx = 542,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1129,14 +1243,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 657,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 550,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 17,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 591,
+       .key_start_idx = 668,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 496,
+       .result_start_idx = 559,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1151,11 +1284,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .key_start_idx = 602,
+       .key_start_idx = 679,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
        .key_num_fields = 13,
-       .result_start_idx = 505,
+       .result_start_idx = 568,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1170,11 +1303,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 615,
+       .key_start_idx = 692,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 518,
+       .result_start_idx = 581,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1187,11 +1320,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 618,
+       .key_start_idx = 695,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 519,
+       .result_start_idx = 582,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1201,14 +1334,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 738,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 590,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 19,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 661,
+       .key_start_idx = 749,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 527,
+       .result_start_idx = 599,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1223,11 +1375,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .key_start_idx = 672,
+       .key_start_idx = 760,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
        .key_num_fields = 13,
-       .result_start_idx = 536,
+       .result_start_idx = 608,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1242,11 +1394,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 685,
+       .key_start_idx = 773,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 549,
+       .result_start_idx = 621,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1259,11 +1411,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 688,
+       .key_start_idx = 776,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 550,
+       .result_start_idx = 622,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1273,14 +1425,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 819,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 630,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 21,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 731,
+       .key_start_idx = 830,
        .blob_key_bit_size = 392,
        .key_bit_size = 392,
        .key_num_fields = 11,
-       .result_start_idx = 558,
+       .result_start_idx = 639,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1295,11 +1466,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .key_start_idx = 742,
+       .key_start_idx = 841,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
        .key_num_fields = 13,
-       .result_start_idx = 567,
+       .result_start_idx = 648,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1314,11 +1485,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 755,
+       .key_start_idx = 854,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 580,
+       .result_start_idx = 661,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1331,11 +1502,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 758,
+       .key_start_idx = 857,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 581,
+       .result_start_idx = 662,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1345,14 +1516,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 900,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 670,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 23,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 801,
+       .key_start_idx = 911,
        .blob_key_bit_size = 392,
        .key_bit_size = 392,
        .key_num_fields = 11,
-       .result_start_idx = 589,
+       .result_start_idx = 679,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1367,11 +1557,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .key_start_idx = 812,
+       .key_start_idx = 922,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
        .key_num_fields = 13,
-       .result_start_idx = 598,
+       .result_start_idx = 688,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1386,11 +1576,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 825,
+       .key_start_idx = 935,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 611,
+       .result_start_idx = 701,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1403,11 +1593,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 828,
+       .key_start_idx = 938,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 612,
+       .result_start_idx = 702,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1417,14 +1607,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 981,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 710,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 25,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 871,
+       .key_start_idx = 992,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 620,
+       .result_start_idx = 719,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1439,11 +1648,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_SKIP,
-       .key_start_idx = 882,
+       .key_start_idx = 1003,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
        .key_num_fields = 13,
-       .result_start_idx = 629,
+       .result_start_idx = 728,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1458,11 +1667,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_RX,
-       .key_start_idx = 895,
+       .key_start_idx = 1016,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 642,
+       .result_start_idx = 741,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1475,11 +1684,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_RX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 898,
+       .key_start_idx = 1019,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 643,
+       .result_start_idx = 742,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1489,14 +1698,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_RX,
+       .key_start_idx = 1062,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 750,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 27,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_RX,
-       .key_start_idx = 941,
+       .key_start_idx = 1073,
        .blob_key_bit_size = 392,
        .key_bit_size = 392,
        .key_num_fields = 11,
-       .result_start_idx = 651,
+       .result_start_idx = 759,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1511,11 +1739,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 952,
+       .key_start_idx = 1084,
        .blob_key_bit_size = 8,
        .key_bit_size = 8,
        .key_num_fields = 1,
-       .result_start_idx = 660,
+       .result_start_idx = 768,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1528,11 +1756,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 953,
+       .key_start_idx = 1085,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
        .key_num_fields = 13,
-       .result_start_idx = 661,
+       .result_start_idx = 769,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1547,11 +1775,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 966,
+       .key_start_idx = 1098,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 674,
+       .result_start_idx = 782,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1564,11 +1792,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 969,
+       .key_start_idx = 1101,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 675,
+       .result_start_idx = 783,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1578,14 +1806,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_TX,
+       .key_start_idx = 1144,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 791,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 29,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1012,
+       .key_start_idx = 1155,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 683,
+       .result_start_idx = 800,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1600,11 +1847,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1023,
+       .key_start_idx = 1166,
        .blob_key_bit_size = 8,
        .key_bit_size = 8,
        .key_num_fields = 1,
-       .result_start_idx = 692,
+       .result_start_idx = 809,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1617,11 +1864,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 1024,
+       .key_start_idx = 1167,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
        .key_num_fields = 13,
-       .result_start_idx = 693,
+       .result_start_idx = 810,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1636,11 +1883,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1037,
+       .key_start_idx = 1180,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 706,
+       .result_start_idx = 823,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1653,11 +1900,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 1040,
+       .key_start_idx = 1183,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 707,
+       .result_start_idx = 824,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1667,14 +1914,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_TX,
+       .key_start_idx = 1226,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 832,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 31,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1083,
+       .key_start_idx = 1237,
        .blob_key_bit_size = 200,
        .key_bit_size = 200,
        .key_num_fields = 11,
-       .result_start_idx = 715,
+       .result_start_idx = 841,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1689,11 +1955,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1094,
+       .key_start_idx = 1248,
        .blob_key_bit_size = 8,
        .key_bit_size = 8,
        .key_num_fields = 1,
-       .result_start_idx = 724,
+       .result_start_idx = 850,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1706,11 +1972,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 1095,
+       .key_start_idx = 1249,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
        .key_num_fields = 13,
-       .result_start_idx = 725,
+       .result_start_idx = 851,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1725,11 +1991,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1108,
+       .key_start_idx = 1262,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 738,
+       .result_start_idx = 864,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1742,11 +2008,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 1111,
+       .key_start_idx = 1265,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 739,
+       .result_start_idx = 865,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1756,14 +2022,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_TX,
+       .key_start_idx = 1308,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 873,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 33,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1154,
+       .key_start_idx = 1319,
        .blob_key_bit_size = 392,
        .key_bit_size = 392,
        .key_num_fields = 11,
-       .result_start_idx = 747,
+       .result_start_idx = 882,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1778,11 +2063,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1165,
+       .key_start_idx = 1330,
        .blob_key_bit_size = 8,
        .key_bit_size = 8,
        .key_num_fields = 1,
-       .result_start_idx = 756,
+       .result_start_idx = 891,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1795,11 +2080,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 1166,
+       .key_start_idx = 1331,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
        .key_num_fields = 13,
-       .result_start_idx = 757,
+       .result_start_idx = 892,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1814,11 +2099,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1179,
+       .key_start_idx = 1344,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 770,
+       .result_start_idx = 905,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1831,11 +2116,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 1182,
+       .key_start_idx = 1347,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 771,
+       .result_start_idx = 906,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1845,14 +2130,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_TX,
+       .key_start_idx = 1390,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 11,
+       .result_start_idx = 914,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 35,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_SET_IF_MARK_ACTION,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1225,
+       .key_start_idx = 1401,
        .blob_key_bit_size = 392,
        .key_bit_size = 392,
        .key_num_fields = 11,
-       .result_start_idx = 779,
+       .result_start_idx = 923,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1867,11 +2171,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_UPDATE,
-       .key_start_idx = 1236,
+       .key_start_idx = 1412,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
        .key_num_fields = 13,
-       .result_start_idx = 788,
+       .result_start_idx = 932,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1886,11 +2190,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1249,
+       .key_start_idx = 1425,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 801,
+       .result_start_idx = 945,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1903,11 +2207,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 1252,
+       .key_start_idx = 1428,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 802,
+       .result_start_idx = 946,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1917,14 +2221,15 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
-       .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
-       .resource_type = TF_MEM_INTERNAL,
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1295,
-       .blob_key_bit_size = 104,
-       .key_bit_size = 104,
+       .key_start_idx = 1471,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
        .key_num_fields = 7,
-       .result_start_idx = 810,
+       .result_start_idx = 954,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -1934,16 +2239,34 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
        },
        {
-       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
-       .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
+       .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
-       .priority = BNXT_ULP_PRIORITY_LEVEL_0,
-       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_UPDATE,
-       .key_start_idx = 1302,
+       .key_start_idx = 1478,
+       .blob_key_bit_size = 104,
+       .key_bit_size = 104,
+       .key_num_fields = 7,
+       .result_start_idx = 963,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 37,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
+       .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH,
+       .direction = TF_DIR_TX,
+       .priority = BNXT_ULP_PRIORITY_LEVEL_0,
+       .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_SEARCH_IF_HIT_UPDATE,
+       .key_start_idx = 1485,
        .blob_key_bit_size = 167,
        .key_bit_size = 167,
        .key_num_fields = 13,
-       .result_start_idx = 819,
+       .result_start_idx = 972,
        .result_bit_size = 64,
        .result_num_fields = 13,
        .encap_num_fields = 0,
@@ -1958,11 +2281,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .resource_sub_type =
                BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1315,
+       .key_start_idx = 1498,
        .blob_key_bit_size = 16,
        .key_bit_size = 16,
        .key_num_fields = 3,
-       .result_start_idx = 832,
+       .result_start_idx = 985,
        .result_bit_size = 10,
        .result_num_fields = 1,
        .encap_num_fields = 0,
@@ -1975,11 +2298,11 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .direction = TF_DIR_TX,
        .priority = BNXT_ULP_PRIORITY_LEVEL_0,
        .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO,
-       .key_start_idx = 1318,
+       .key_start_idx = 1501,
        .blob_key_bit_size = 81,
        .key_bit_size = 81,
        .key_num_fields = 43,
-       .result_start_idx = 833,
+       .result_start_idx = 986,
        .result_bit_size = 38,
        .result_num_fields = 8,
        .encap_num_fields = 0,
@@ -1989,14 +2312,33 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_wh_plus_tbl_list[] = {
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO
        },
        {
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_EXT_EM_TABLE,
+       .resource_type = TF_MEM_EXTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_EXT,
+       .direction = TF_DIR_TX,
+       .key_start_idx = 1544,
+       .blob_key_bit_size = 448,
+       .key_bit_size = 448,
+       .key_num_fields = 7,
+       .result_start_idx = 994,
+       .result_bit_size = 64,
+       .result_num_fields = 9,
+       .encap_num_fields = 0,
+       .ident_start_idx = 39,
+       .ident_nums = 0,
+       .mark_db_opcode = BNXT_ULP_MARK_DB_OPCODE_NOP,
+       .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES
+       },
+       {
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INT_EM_TABLE,
        .resource_type = TF_MEM_INTERNAL,
+       .mem_type_opcode = BNXT_ULP_MEM_TYPE_OPCODE_EXECUTE_IF_INT,
        .direction = TF_DIR_TX,
-       .key_start_idx = 1361,
+       .key_start_idx = 1551,
        .blob_key_bit_size = 104,
        .key_bit_size = 104,
        .key_num_fields = 7,
-       .result_start_idx = 841,
+       .result_start_idx = 1003,
        .result_bit_size = 64,
        .result_num_fields = 9,
        .encap_num_fields = 0,
@@ -3084,6 +3426,76 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 251,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF6_IDX_O_ETH_SMAC >> 8) & 0xff,
+               BNXT_ULP_HF6_IDX_O_ETH_SMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -3551,6 +3963,76 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 251,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF7_IDX_O_ETH_SMAC >> 8) & 0xff,
+               BNXT_ULP_HF7_IDX_O_ETH_SMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -4009,6 +4491,95 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 251,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF8_IDX_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF8_IDX_O_UDP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF8_IDX_O_UDP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF8_IDX_O_UDP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_UDP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF8_IDX_O_IPV4_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF8_IDX_O_IPV4_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF8_IDX_O_IPV4_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF8_IDX_O_IPV4_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -4482,6 +5053,95 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 251,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF9_IDX_O_TCP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF9_IDX_O_TCP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF9_IDX_O_TCP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF9_IDX_O_TCP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_TCP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF9_IDX_O_IPV4_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF9_IDX_O_IPV4_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF9_IDX_O_IPV4_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF9_IDX_O_IPV4_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -4963,6 +5623,95 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 59,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF10_IDX_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF10_IDX_O_UDP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF10_IDX_O_UDP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF10_IDX_O_UDP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_UDP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF10_IDX_O_IPV6_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF10_IDX_O_IPV6_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF10_IDX_O_IPV6_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF10_IDX_O_IPV6_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -5440,7 +6189,7 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 3,
+       .field_bit_size = 59,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -5529,74 +6278,163 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
-       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .mask_operand = {
-               (BNXT_ULP_HF12_IDX_OO_VLAN_VID >> 8) & 0xff,
-               BNXT_ULP_HF12_IDX_OO_VLAN_VID & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .spec_operand = {
-               (BNXT_ULP_HF12_IDX_OO_VLAN_VID >> 8) & 0xff,
-               BNXT_ULP_HF12_IDX_OO_VLAN_VID & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 12,
+       .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 48,
-       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .mask_operand = {
-               (BNXT_ULP_HF12_IDX_O_ETH_DMAC >> 8) & 0xff,
-               BNXT_ULP_HF12_IDX_O_ETH_DMAC & 0xff,
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF11_IDX_O_TCP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF11_IDX_O_TCP_DST_PORT & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
        .spec_operand = {
-               (BNXT_ULP_HF12_IDX_O_ETH_DMAC >> 8) & 0xff,
-               BNXT_ULP_HF12_IDX_O_ETH_DMAC & 0xff,
+               (BNXT_ULP_HF11_IDX_O_TCP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF11_IDX_O_TCP_SRC_PORT & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 8,
-       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .mask_operand = {
-               (BNXT_ULP_HF12_IDX_SVIF_INDEX >> 8) & 0xff,
-               BNXT_ULP_HF12_IDX_SVIF_INDEX & 0xff,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_TCP,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
        .spec_operand = {
-               (BNXT_ULP_HF12_IDX_SVIF_INDEX >> 8) & 0xff,
-               BNXT_ULP_HF12_IDX_SVIF_INDEX & 0xff,
+               (BNXT_ULP_HF11_IDX_O_IPV6_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF11_IDX_O_IPV6_DST_ADDR & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 4,
+       .field_bit_size = 128,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF11_IDX_O_IPV6_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF11_IDX_O_IPV6_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 12,
+       .field_bit_size = 48,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 12,
+       .field_bit_size = 24,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 48,
+       .field_bit_size = 10,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .mask_operand = {
+               (BNXT_ULP_HF12_IDX_OO_VLAN_VID >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_OO_VLAN_VID & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF12_IDX_OO_VLAN_VID >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_OO_VLAN_VID & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .mask_operand = {
+               (BNXT_ULP_HF12_IDX_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_O_ETH_DMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF12_IDX_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_O_ETH_DMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .mask_operand = {
+               (BNXT_ULP_HF12_IDX_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_SVIF_INDEX & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF12_IDX_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_SVIF_INDEX & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 4,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
        .field_bit_size = 2,
@@ -5936,6 +6774,95 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 251,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF12_IDX_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_O_UDP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF12_IDX_O_UDP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_O_UDP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_UDP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF12_IDX_O_IPV4_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_O_IPV4_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF12_IDX_O_IPV4_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF12_IDX_O_IPV4_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -6428,6 +7355,95 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 251,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF13_IDX_O_TCP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF13_IDX_O_TCP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF13_IDX_O_TCP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF13_IDX_O_TCP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_TCP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF13_IDX_O_IPV4_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF13_IDX_O_IPV4_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF13_IDX_O_IPV4_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF13_IDX_O_IPV4_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -6928,6 +7944,95 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 59,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF14_IDX_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF14_IDX_O_UDP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF14_IDX_O_UDP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF14_IDX_O_UDP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_UDP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF14_IDX_O_IPV6_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF14_IDX_O_IPV6_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF14_IDX_O_IPV6_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF14_IDX_O_IPV6_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -7424,6 +8529,95 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 59,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF15_IDX_O_TCP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF15_IDX_O_TCP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF15_IDX_O_TCP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF15_IDX_O_TCP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_TCP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF15_IDX_O_IPV6_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF15_IDX_O_IPV6_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF15_IDX_O_IPV6_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF15_IDX_O_IPV6_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -7917,6 +9111,80 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 251,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_UDP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF16_IDX_O_IPV4_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF16_IDX_O_IPV4_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -8399,7 +9667,7 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 3,
+       .field_bit_size = 59,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -8473,12 +9741,86 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 8,
+       .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
-       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
-       .spec_operand = {
-               (BNXT_ULP_HF18_IDX_SVIF_INDEX >> 8) & 0xff,
-               BNXT_ULP_HF18_IDX_SVIF_INDEX & 0xff,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_UDP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF17_IDX_O_IPV6_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF17_IDX_O_IPV6_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF18_IDX_SVIF_INDEX >> 8) & 0xff,
+               BNXT_ULP_HF18_IDX_SVIF_INDEX & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
@@ -8857,6 +10199,95 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 251,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF18_IDX_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF18_IDX_O_UDP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF18_IDX_O_UDP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF18_IDX_O_UDP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_UDP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF18_IDX_O_IPV4_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF18_IDX_O_IPV4_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF18_IDX_O_IPV4_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF18_IDX_O_IPV4_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -9326,6 +10757,95 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 251,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF19_IDX_O_TCP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF19_IDX_O_TCP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF19_IDX_O_TCP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF19_IDX_O_TCP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_TCP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF19_IDX_O_IPV4_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF19_IDX_O_IPV4_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 32,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF19_IDX_O_IPV4_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF19_IDX_O_IPV4_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -9803,7 +11323,7 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 3,
+       .field_bit_size = 59,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -9892,7 +11412,96 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 8,
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF20_IDX_O_UDP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF20_IDX_O_UDP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF20_IDX_O_UDP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF20_IDX_O_UDP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_UDP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF20_IDX_O_IPV6_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF20_IDX_O_IPV6_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF20_IDX_O_IPV6_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF20_IDX_O_IPV6_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
        .spec_operand = {
@@ -10276,6 +11885,95 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 59,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF21_IDX_O_TCP_DST_PORT >> 8) & 0xff,
+               BNXT_ULP_HF21_IDX_O_TCP_DST_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF21_IDX_O_TCP_SRC_PORT >> 8) & 0xff,
+               BNXT_ULP_HF21_IDX_O_TCP_SRC_PORT & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .spec_operand = {
+               BNXT_ULP_SYM_IP_PROTO_TCP,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF21_IDX_O_IPV6_DST_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF21_IDX_O_IPV6_DST_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 128,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF21_IDX_O_IPV6_SRC_ADDR >> 8) & 0xff,
+               BNXT_ULP_HF21_IDX_O_IPV6_SRC_ADDR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 24,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 3,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -10766,6 +12464,56 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 351,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF22_IDX_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_HF22_IDX_O_ETH_DMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 7,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
@@ -11221,7 +12969,7 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 7,
+       .field_bit_size = 351,
        .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
        .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
@@ -11269,32 +13017,82 @@ struct bnxt_ulp_mapper_class_key_field_info ulp_class_wh_plus_key_field_list[] =
                BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       }
-};
-
-struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] = {
-       {
-       .field_bit_size = 14,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .field_bit_size = 7,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .field_bit_size = 3,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .field_bit_size = 16,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 1,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .field_bit_size = 12,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 8,
+       .field_bit_size = 48,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_HDR_FIELD,
+       .spec_operand = {
+               (BNXT_ULP_HF23_IDX_O_ETH_DMAC >> 8) & 0xff,
+               BNXT_ULP_HF23_IDX_O_ETH_DMAC & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .mask_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO,
+       .spec_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .spec_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       }
+};
+
+struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] = {
+       {
+       .field_bit_size = 14,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 8,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
@@ -12791,6 +14589,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -12969,6 +14821,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -13156,6 +15062,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -13343,42 +15303,96 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 10,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
-       .result_operand = {
-               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
-               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
-       .field_bit_size = 10,
+       .field_bit_size = 33,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
-               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
-               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 7,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
-       .result_operand = {
-               (BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID >> 8) & 0xff,
-               BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 4,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
        .result_operand = {
-               (BNXT_ULP_CF_IDX_PHY_PORT_PARIF >> 8) & 0xff,
-               BNXT_ULP_CF_IDX_PHY_PORT_PARIF & 0xff,
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 7,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_GLB_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID >> 8) & 0xff,
+               BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 4,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_COMP_FIELD,
+       .result_operand = {
+               (BNXT_ULP_CF_IDX_PHY_PORT_PARIF >> 8) & 0xff,
+               BNXT_ULP_CF_IDX_PHY_PORT_PARIF & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
@@ -13530,6 +15544,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x0185 >> 8) & 0xff,
+               0x0185 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -13717,6 +15785,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x0185 >> 8) & 0xff,
+               0x0185 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -13895,6 +16017,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -14073,6 +16249,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -14251,6 +16481,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x0185 >> 8) & 0xff,
+               0x0185 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -14341,33 +16625,81 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 10,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00f9 >> 8) & 0xff,
+               0x00f9 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x19, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
-               (0x00f9 >> 8) & 0xff,
-               0x00f9 & 0xff,
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
        .field_bit_size = 5,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .result_operand = {0x19, 0x00, 0x00, 0x00, 0x00, 0x00,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 8,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
        .result_operand = {
-               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
-               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               (0x0185 >> 8) & 0xff,
+               0x0185 & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 1,
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
@@ -14375,6 +16707,12 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 33,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -14607,6 +16945,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -14785,6 +17177,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x0185 >> 8) & 0xff,
+               0x0185 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -14987,6 +17433,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -15093,41 +17593,89 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 8,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 10,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x00f9 >> 8) & 0xff,
+               0x00f9 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x15, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 8,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
        .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
-       .field_bit_size = 10,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .result_operand = {
-               (0x00f9 >> 8) & 0xff,
-               0x00f9 & 0xff,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-       },
-       {
        .field_bit_size = 5,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .result_operand = {0x15, 0x00, 0x00, 0x00, 0x00, 0x00,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 8,
-       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
        .result_operand = {
-               (BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 >> 8) & 0xff,
-               BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 & 0xff,
+               (0x00c5 >> 8) & 0xff,
+               0x00c5 & 0xff,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
-       .field_bit_size = 1,
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
-       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
@@ -15135,6 +17683,12 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
        },
        {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 33,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -15391,6 +17945,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x0185 >> 8) & 0xff,
+               0x0185 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -15593,6 +18201,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x0185 >> 8) & 0xff,
+               0x0185 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -15786,6 +18448,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        },
        {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x0061 >> 8) & 0xff,
+               0x0061 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
        .field_bit_size = 10,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
        .result_operand = {
@@ -15975,6 +18691,60 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_wh_plus_result_field_list[] =
        {
        .field_bit_size = 1,
        .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 33,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_REGFILE,
+       .result_operand = {
+               (BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR >> 8) & 0xff,
+               BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 5,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 9,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {
+               (0x0061 >> 8) & 0xff,
+               0x0061 & 0xff,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 11,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 2,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
+       .result_operand = {0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_ZERO
+       },
+       {
+       .field_bit_size = 1,
+       .result_opcode = BNXT_ULP_MAPPER_OPC_SET_TO_CONSTANT,
        .result_operand = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
        }
index 026c42d..50a986c 100644 (file)
@@ -152,13 +152,13 @@ struct ulp_template_device_tbls {
 /* Device specific parameters */
 struct bnxt_ulp_device_params {
        uint8_t                         description[16];
-       enum bnxt_ulp_flow_mem_type     flow_mem_type;
        enum bnxt_ulp_byte_order        byte_order;
        uint8_t                         encap_byte_swap;
        uint8_t                         num_phy_ports;
        uint32_t                        mark_db_lfid_entries;
        uint64_t                        mark_db_gfid_entries;
-       uint64_t                        flow_db_num_entries;
+       uint64_t                        int_flow_db_num_entries;
+       uint64_t                        ext_flow_db_num_entries;
        uint32_t                        flow_count_db_entries;
        uint32_t                        num_resources_per_flow;
        uint32_t                        ext_cntr_table_type;
@@ -183,6 +183,7 @@ struct bnxt_ulp_mapper_tbl_info {
        enum bnxt_ulp_resource_sub_type resource_sub_type;
        enum bnxt_ulp_cond_opcode       cond_opcode;
        uint32_t                        cond_operand;
+       enum bnxt_ulp_mem_type_opcode   mem_type_opcode;
        uint8_t                         direction;
        uint32_t                        priority;
        enum bnxt_ulp_search_before_alloc       srch_b4_alloc;