From: Kishore Padmanabha <kishore.padmana...@broadcom.com>

This patch updates template files for the following list
of changes, that are being added in the next patch.

- enable recipe id generation
- fix segfault in the wildcard recipe process

Signed-off-by: Kishore Padmanabha <kishore.padmana...@broadcom.com>
Signed-off-by: Sriharsha Basavapatna <sriharsha.basavapa...@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khapa...@broadcom.com>
---
 .../generic_templates/ulp_template_db_enum.h  | 115 +++---
 .../generic_templates/ulp_template_db_tbl.c   |   8 +-
 .../ulp_template_db_thor2_class.c             | 352 +++++++++++------
 .../ulp_template_db_thor_class.c              | 372 ++++++++++++------
 4 files changed, 547 insertions(+), 300 deletions(-)

diff --git a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h 
b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h
index 240acbc564..ddd65a62b1 100644
--- a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h
+++ b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h
@@ -6,7 +6,7 @@
 #ifndef ULP_TEMPLATE_DB_H_
 #define ULP_TEMPLATE_DB_H_
 
-#define BNXT_ULP_REGFILE_MAX_SZ 81
+#define BNXT_ULP_REGFILE_MAX_SZ 82
 #define BNXT_ULP_MAX_NUM_DEVICES 5
 #define BNXT_ULP_LOG2_MAX_NUM_DEV 2.32192809488736
 #define BNXT_ULP_GEN_TBL_MAX_SZ 50
@@ -31,19 +31,19 @@
 #define ULP_WH_PLUS_CLASS_COND_LIST_SIZE 50
 #define ULP_WH_PLUS_CLASS_COND_OPER_LIST_SIZE 0
 #define ULP_THOR_CLASS_TMPL_LIST_SIZE 5
-#define ULP_THOR_CLASS_TBL_LIST_SIZE 122
+#define ULP_THOR_CLASS_TBL_LIST_SIZE 126
 #define ULP_THOR_CLASS_KEY_INFO_LIST_SIZE 605
 #define ULP_THOR_CLASS_KEY_EXT_LIST_SIZE 615
-#define ULP_THOR_CLASS_IDENT_LIST_SIZE 39
-#define ULP_THOR_CLASS_RESULT_FIELD_LIST_SIZE 1248
+#define ULP_THOR_CLASS_IDENT_LIST_SIZE 43
+#define ULP_THOR_CLASS_RESULT_FIELD_LIST_SIZE 1252
 #define ULP_THOR_CLASS_COND_LIST_SIZE 3077
 #define ULP_THOR_CLASS_COND_OPER_LIST_SIZE 7
 #define ULP_THOR2_CLASS_TMPL_LIST_SIZE 5
-#define ULP_THOR2_CLASS_TBL_LIST_SIZE 121
+#define ULP_THOR2_CLASS_TBL_LIST_SIZE 125
 #define ULP_THOR2_CLASS_KEY_INFO_LIST_SIZE 665
 #define ULP_THOR2_CLASS_KEY_EXT_LIST_SIZE 628
-#define ULP_THOR2_CLASS_IDENT_LIST_SIZE 49
-#define ULP_THOR2_CLASS_RESULT_FIELD_LIST_SIZE 1512
+#define ULP_THOR2_CLASS_IDENT_LIST_SIZE 53
+#define ULP_THOR2_CLASS_RESULT_FIELD_LIST_SIZE 1516
 #define ULP_THOR2_CLASS_COND_LIST_SIZE 3298
 #define ULP_THOR2_CLASS_COND_OPER_LIST_SIZE 7
 #define ULP_WH_PLUS_ACT_TMPL_LIST_SIZE 11
@@ -699,8 +699,10 @@ enum bnxt_ulp_key_recipe_opc {
 
 enum bnxt_ulp_key_recipe_tbl_opc {
        BNXT_ULP_KEY_RECIPE_TBL_OPC_NOT_USED = 0,
-       BNXT_ULP_KEY_RECIPE_TBL_OPC_WR_REGFILE = 1,
-       BNXT_ULP_KEY_RECIPE_TBL_OPC_LAST = 2
+       BNXT_ULP_KEY_RECIPE_TBL_OPC_ALLOC_REGFILE = 1,
+       BNXT_ULP_KEY_RECIPE_TBL_OPC_ALLOC_WR_REGFILE = 2,
+       BNXT_ULP_KEY_RECIPE_TBL_OPC_WR_REGFILE = 3,
+       BNXT_ULP_KEY_RECIPE_TBL_OPC_LAST = 4
 };
 
 enum bnxt_ulp_mark_db_opc {
@@ -795,53 +797,54 @@ enum bnxt_ulp_rf_idx {
        BNXT_ULP_RF_IDX_HDR_SIG_ID = 32,
        BNXT_ULP_RF_IDX_FLOW_SIG_ID = 33,
        BNXT_ULP_RF_IDX_RID = 34,
-       BNXT_ULP_RF_IDX_RID_1 = 35,
-       BNXT_ULP_RF_IDX_WC_KEY_ID_0 = 36,
-       BNXT_ULP_RF_IDX_EM_KEY_ID_0 = 37,
-       BNXT_ULP_RF_IDX_DRV_FUNC_MAC = 38,
-       BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC = 39,
-       BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR = 40,
-       BNXT_ULP_RF_IDX_CC = 41,
-       BNXT_ULP_RF_IDX_CF_FLOW_SIG_ID = 42,
-       BNXT_ULP_RF_IDX_PHY_PORT = 43,
-       BNXT_ULP_RF_IDX_METADATA_PROF = 44,
-       BNXT_ULP_RF_IDX_MODIFY_PTR = 45,
-       BNXT_ULP_RF_IDX_SOCK_DIR_SVIF = 46,
-       BNXT_ULP_RF_IDX_SOCK_DIR_PARIF = 47,
-       BNXT_ULP_RF_IDX_SOCK_DIR_ACT_PTR = 48,
-       BNXT_ULP_RF_IDX_SOCK_DIR_PARENT_MAC = 49,
-       BNXT_ULP_RF_IDX_RSS_VNIC = 50,
-       BNXT_ULP_RF_IDX_PORT_IS_PF = 51,
-       BNXT_ULP_RF_IDX_METER_PROFILE_PTR_0 = 52,
-       BNXT_ULP_RF_IDX_METER_PTR_0 = 53,
-       BNXT_ULP_RF_IDX_REF_CNT = 54,
-       BNXT_ULP_RF_IDX_RF_0 = 55,
-       BNXT_ULP_RF_IDX_RF_1 = 56,
-       BNXT_ULP_RF_IDX_RF_2 = 57,
-       BNXT_ULP_RF_IDX_RF_3 = 58,
-       BNXT_ULP_RF_IDX_RF_4 = 59,
-       BNXT_ULP_RF_IDX_RF_5 = 60,
-       BNXT_ULP_RF_IDX_RF_6 = 61,
-       BNXT_ULP_RF_IDX_RF_7 = 62,
-       BNXT_ULP_RF_IDX_CMM_ACT_HNDL = 63,
-       BNXT_ULP_RF_IDX_CMM_STAT_HNDL = 64,
-       BNXT_ULP_RF_IDX_CMM_MOD_HNDL = 65,
-       BNXT_ULP_RF_IDX_CMM_ENC_HNDL = 66,
-       BNXT_ULP_RF_IDX_CMM_SRP_HNDL = 67,
-       BNXT_ULP_RF_IDX_VF_FUNC_METADATA = 68,
-       BNXT_ULP_RF_IDX_CHAIN_ID_METADATA = 69,
-       BNXT_ULP_RF_IDX_RECYCLE_CNT = 70,
-       BNXT_ULP_RF_IDX_DEST_VNIC = 71,
-       BNXT_ULP_RF_IDX_DEST_VPORT = 72,
-       BNXT_ULP_RF_IDX_DEST_METADATA = 73,
-       BNXT_ULP_RF_IDX_PROF_TCAM_PRI = 74,
-       BNXT_ULP_RF_IDX_EM_INSERT_FAIL = 75,
-       BNXT_ULP_RF_IDX_PROF_TCAM_PRIORITY = 76,
-       BNXT_ULP_RF_IDX_TERM_FLOW = 77,
-       BNXT_ULP_RF_IDX_O_DMAC = 78,
-       BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_F1 = 79,
-       BNXT_ULP_RF_IDX_CMM_STAT_HNDL_F1 = 80,
-       BNXT_ULP_RF_IDX_LAST = 81
+       BNXT_ULP_RF_IDX_WC_KEY_ID_0 = 35,
+       BNXT_ULP_RF_IDX_EM_KEY_ID_0 = 36,
+       BNXT_ULP_RF_IDX_DRV_FUNC_MAC = 37,
+       BNXT_ULP_RF_IDX_DRV_FUNC_PARENT_MAC = 38,
+       BNXT_ULP_RF_IDX_DEFAULT_AREC_PTR = 39,
+       BNXT_ULP_RF_IDX_CC = 40,
+       BNXT_ULP_RF_IDX_CF_FLOW_SIG_ID = 41,
+       BNXT_ULP_RF_IDX_PHY_PORT = 42,
+       BNXT_ULP_RF_IDX_METADATA_PROF = 43,
+       BNXT_ULP_RF_IDX_MODIFY_PTR = 44,
+       BNXT_ULP_RF_IDX_SOCK_DIR_SVIF = 45,
+       BNXT_ULP_RF_IDX_SOCK_DIR_PARIF = 46,
+       BNXT_ULP_RF_IDX_SOCK_DIR_ACT_PTR = 47,
+       BNXT_ULP_RF_IDX_SOCK_DIR_PARENT_MAC = 48,
+       BNXT_ULP_RF_IDX_RSS_VNIC = 49,
+       BNXT_ULP_RF_IDX_PORT_IS_PF = 50,
+       BNXT_ULP_RF_IDX_METER_PROFILE_PTR_0 = 51,
+       BNXT_ULP_RF_IDX_METER_PTR_0 = 52,
+       BNXT_ULP_RF_IDX_REF_CNT = 53,
+       BNXT_ULP_RF_IDX_RF_0 = 54,
+       BNXT_ULP_RF_IDX_RF_1 = 55,
+       BNXT_ULP_RF_IDX_RF_2 = 56,
+       BNXT_ULP_RF_IDX_RF_3 = 57,
+       BNXT_ULP_RF_IDX_RF_4 = 58,
+       BNXT_ULP_RF_IDX_RF_5 = 59,
+       BNXT_ULP_RF_IDX_RF_6 = 60,
+       BNXT_ULP_RF_IDX_RF_7 = 61,
+       BNXT_ULP_RF_IDX_CMM_ACT_HNDL = 62,
+       BNXT_ULP_RF_IDX_CMM_STAT_HNDL = 63,
+       BNXT_ULP_RF_IDX_CMM_MOD_HNDL = 64,
+       BNXT_ULP_RF_IDX_CMM_ENC_HNDL = 65,
+       BNXT_ULP_RF_IDX_CMM_SRP_HNDL = 66,
+       BNXT_ULP_RF_IDX_VF_FUNC_METADATA = 67,
+       BNXT_ULP_RF_IDX_CHAIN_ID_METADATA = 68,
+       BNXT_ULP_RF_IDX_RECYCLE_CNT = 69,
+       BNXT_ULP_RF_IDX_DEST_VNIC = 70,
+       BNXT_ULP_RF_IDX_DEST_VPORT = 71,
+       BNXT_ULP_RF_IDX_DEST_METADATA = 72,
+       BNXT_ULP_RF_IDX_PROF_TCAM_PRI = 73,
+       BNXT_ULP_RF_IDX_EM_INSERT_FAIL = 74,
+       BNXT_ULP_RF_IDX_PROF_TCAM_PRIORITY = 75,
+       BNXT_ULP_RF_IDX_TERM_FLOW = 76,
+       BNXT_ULP_RF_IDX_O_DMAC = 77,
+       BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_F1 = 78,
+       BNXT_ULP_RF_IDX_CMM_STAT_HNDL_F1 = 79,
+       BNXT_ULP_RF_IDX_WC_RECIPE_ID = 80,
+       BNXT_ULP_RF_IDX_EM_RECIPE_ID = 81,
+       BNXT_ULP_RF_IDX_LAST = 82
 };
 
 enum bnxt_ulp_tcam_tbl_opc {
diff --git a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c 
b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c
index 70f31946ab..4f8cc5a4b3 100644
--- a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c
+++ b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c
@@ -1121,7 +1121,7 @@ const struct bnxt_ulp_generic_tbl_params 
ulp_thor_generic_tbl_params[] = {
        .name = "INGRESS GENERIC_TABLE_PROTO_HEADER",
        .gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
        .result_num_entries = 256,
-       .result_num_bytes = 10,
+       .result_num_bytes = 14,
        .key_num_bytes = 10,
        .partial_key_num_bytes = 0,
        .num_buckets = 4,
@@ -1133,7 +1133,7 @@ const struct bnxt_ulp_generic_tbl_params 
ulp_thor_generic_tbl_params[] = {
        .name = "EGRESS GENERIC_TABLE_PROTO_HEADER",
        .gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
        .result_num_entries = 256,
-       .result_num_bytes = 10,
+       .result_num_bytes = 14,
        .key_num_bytes = 10,
        .partial_key_num_bytes = 0,
        .num_buckets = 4,
@@ -1724,7 +1724,7 @@ const struct bnxt_ulp_generic_tbl_params 
ulp_thor2_generic_tbl_params[] = {
        .name = "INGRESS GENERIC_TABLE_PROTO_HEADER",
        .gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
        .result_num_entries = 256,
-       .result_num_bytes = 10,
+       .result_num_bytes = 14,
        .key_num_bytes = 10,
        .partial_key_num_bytes = 0,
        .num_buckets = 4,
@@ -1736,7 +1736,7 @@ const struct bnxt_ulp_generic_tbl_params 
ulp_thor2_generic_tbl_params[] = {
        .name = "EGRESS GENERIC_TABLE_PROTO_HEADER",
        .gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
        .result_num_entries = 256,
-       .result_num_bytes = 10,
+       .result_num_bytes = 14,
        .key_num_bytes = 10,
        .partial_key_num_bytes = 0,
        .num_buckets = 4,
diff --git 
a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor2_class.c 
b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor2_class.c
index 5cfdd0804b..99c56fea0c 100644
--- a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor2_class.c
+++ b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor2_class.c
@@ -13,7 +13,7 @@ struct bnxt_ulp_mapper_tmpl_info ulp_thor2_class_tmpl_list[] 
= {
        /* class_tid: 1, ingress */
        [1] = {
        .device_name = BNXT_ULP_DEVICE_ID_THOR2,
-       .num_tbls = 41,
+       .num_tbls = 43,
        .start_tbl_idx = 0,
        .reject_info = {
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
@@ -23,8 +23,8 @@ struct bnxt_ulp_mapper_tmpl_info ulp_thor2_class_tmpl_list[] 
= {
        /* class_tid: 2, egress */
        [2] = {
        .device_name = BNXT_ULP_DEVICE_ID_THOR2,
-       .num_tbls = 26,
-       .start_tbl_idx = 41,
+       .num_tbls = 28,
+       .start_tbl_idx = 43,
        .reject_info = {
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
                .cond_start_idx = 1655,
@@ -34,7 +34,7 @@ struct bnxt_ulp_mapper_tmpl_info ulp_thor2_class_tmpl_list[] 
= {
        [3] = {
        .device_name = BNXT_ULP_DEVICE_ID_THOR2,
        .num_tbls = 35,
-       .start_tbl_idx = 67,
+       .start_tbl_idx = 71,
        .reject_info = {
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
                .cond_start_idx = 3292,
@@ -44,7 +44,7 @@ struct bnxt_ulp_mapper_tmpl_info ulp_thor2_class_tmpl_list[] 
= {
        [4] = {
        .device_name = BNXT_ULP_DEVICE_ID_THOR2,
        .num_tbls = 19,
-       .start_tbl_idx = 102,
+       .start_tbl_idx = 106,
        .reject_info = {
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
                .cond_start_idx = 3296,
@@ -442,20 +442,19 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .key_bit_size = 74,
        .key_num_fields = 3,
        .ident_start_idx = 11,
-       .ident_nums = 5
+       .ident_nums = 7
        },
        { /* class_tid: 1, , table: control.proto_header_cache_miss */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
        .direction = TF_DIR_RX,
        .execute_info = {
                .cond_true_goto  = 1,
-               .cond_false_goto = 11,
+               .cond_false_goto = 13,
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
                .cond_start_idx = 42,
                .cond_nums = 1 },
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-       .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP
        },
        { /* class_tid: 1, , table: hdr_overlap_cache.overlap_check */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
@@ -479,7 +478,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] 
= {
        .partial_key_start_idx = 53,
        .partial_key_num_fields = 1,
        .partial_key_bit_size = 64,
-       .ident_start_idx = 16,
+       .ident_start_idx = 18,
        .ident_nums = 2
        },
        { /* class_tid: 1, , table: control.overlap_miss */
@@ -493,7 +492,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] 
= {
                .cond_nums = 1 },
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID_1
+       .fdb_operand = BNXT_ULP_RF_IDX_RID
        },
        { /* class_tid: 1, , table: profile_tcam.allocate_wc_profile */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
@@ -509,10 +508,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID_1,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
        .pri_opcode  = BNXT_ULP_PRI_OPC_APP_PRI_OR_CONST,
        .pri_operand = ULP_THOR2_SYM_PROF_TCAM_PRI_APP,
-       .ident_start_idx = 18,
+       .ident_start_idx = 20,
        .ident_nums = 1
        },
        { /* class_tid: 1, , table: fkb_select.wc_gen_template */
@@ -529,7 +528,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] 
= {
        .tbl_operand = BNXT_ULP_RF_IDX_WC_KEY_ID_0,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID_1,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
        .result_start_idx = 31,
        .result_bit_size = 256,
        .result_num_fields = 172
@@ -560,6 +559,19 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] 
= {
        .result_bit_size = 48,
        .result_num_fields = 3
        },
+       { /* class_tid: 1, , table: control.proto_header_rid_alloc */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 1,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 320,
+               .cond_nums = 0 },
+       .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID
+       },
        { /* class_tid: 1, , table: fkb_select.em_gen_template_alloc */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type = CFA_RSUBTYPE_IDX_TBL_EM_FKB,
@@ -579,6 +591,26 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] 
= {
        .result_bit_size = 256,
        .result_num_fields = 172
        },
+       { /* class_tid: 1, , table: em_key_recipe.alloc_only */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_KEY_RECIPE_TABLE,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_KEY_RECIPE_TABLE_EM,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 1,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 321,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_ALLOC_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
+       .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .result_start_idx = 378,
+       .result_bit_size = 0,
+       .result_num_fields = 0
+       },
        { /* class_tid: 1, , table: control.profile_tcam_priority */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
        .direction = TF_DIR_RX,
@@ -622,7 +654,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] 
= {
        .result_start_idx = 378,
        .result_bit_size = 64,
        .result_num_fields = 10,
-       .ident_start_idx = 19,
+       .ident_start_idx = 21,
        .ident_nums = 1
        },
        { /* class_tid: 1, , table: wm_key_recipe.0 */
@@ -636,8 +668,8 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] 
= {
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
                .cond_start_idx = 568,
                .cond_nums = 0 },
-       .tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_WR_REGFILE,
-       .tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
+       .tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_WC_RECIPE_ID,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
        .fdb_operand = BNXT_ULP_RF_IDX_RID,
@@ -669,8 +701,8 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] 
= {
        .key_bit_size = 74,
        .key_num_fields = 3,
        .result_start_idx = 388,
-       .result_bit_size = 74,
-       .result_num_fields = 6
+       .result_bit_size = 106,
+       .result_num_fields = 8
        },
        { /* class_tid: 1, , table: em_flow_conflict_cache.rd */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
@@ -691,7 +723,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] 
= {
        .blob_key_bit_size = 74,
        .key_bit_size = 74,
        .key_num_fields = 3,
-       .ident_start_idx = 20,
+       .ident_start_idx = 22,
        .ident_nums = 1
        },
        { /* class_tid: 1, , table: control.em_flow_conflict_cache_miss */
@@ -721,7 +753,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] 
= {
        .tbl_operand = BNXT_ULP_RF_IDX_EM_KEY_ID_0,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-       .result_start_idx = 394,
+       .result_start_idx = 396,
        .result_bit_size = 256,
        .result_num_fields = 172
        },
@@ -737,15 +769,14 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
                .cond_start_idx = 1246,
                .cond_nums = 0 },
        .tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_WR_REGFILE,
-       .tbl_operand = BNXT_ULP_RF_IDX_EM_KEY_ID_0,
+       .tbl_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
        .key_start_idx = 162,
        .blob_key_bit_size = 0,
        .key_bit_size = 0,
        .key_num_fields = 33,
-       .result_start_idx = 566,
+       .result_start_idx = 568,
        .result_bit_size = 0,
        .result_num_fields = 0
        },
@@ -768,7 +799,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] 
= {
        .blob_key_bit_size = 74,
        .key_bit_size = 74,
        .key_num_fields = 3,
-       .result_start_idx = 566,
+       .result_start_idx = 568,
        .result_bit_size = 96,
        .result_num_fields = 2
        },
@@ -804,10 +835,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .tbl_opcode = BNXT_ULP_EM_TBL_OPC_WR_REGFILE,
        .tbl_operand = BNXT_ULP_RF_IDX_EM_INSERT_FAIL,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_DYN_KEY,
-       .key_recipe_operand = BNXT_ULP_RF_IDX_EM_KEY_ID_0,
+       .key_recipe_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
-       .result_start_idx = 568,
+       .result_start_idx = 570,
        .result_bit_size = 0,
        .result_num_fields = 17
        },
@@ -836,13 +867,13 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
        .tbl_operand = BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_DYN_KEY,
-       .key_recipe_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
+       .key_recipe_operand = BNXT_ULP_RF_IDX_WC_RECIPE_ID,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
        .pri_operand = 0,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
-       .result_start_idx = 585,
+       .result_start_idx = 587,
        .result_bit_size = 128,
        .result_num_fields = 15
        },
@@ -865,7 +896,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] 
= {
        .blob_key_bit_size = 10,
        .key_bit_size = 10,
        .key_num_fields = 1,
-       .ident_start_idx = 21,
+       .ident_start_idx = 23,
        .ident_nums = 1
        },
        { /* class_tid: 2, , table: l2_cntxt_tcam_cache.def_rd */
@@ -888,7 +919,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] 
= {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .ident_start_idx = 22,
+       .ident_start_idx = 24,
        .ident_nums = 2
        },
        { /* class_tid: 2, , table: control.l2_only_check */
@@ -954,21 +985,20 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 74,
        .key_bit_size = 74,
        .key_num_fields = 3,
-       .ident_start_idx = 24,
-       .ident_nums = 5
+       .ident_start_idx = 26,
+       .ident_nums = 7
        },
        { /* class_tid: 2, , table: control.proto_header_cache_miss */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
        .direction = TF_DIR_TX,
        .execute_info = {
                .cond_true_goto  = 1,
-               .cond_false_goto = 11,
+               .cond_false_goto = 13,
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
                .cond_start_idx = 1681,
                .cond_nums = 1 },
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-       .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP
        },
        { /* class_tid: 2, , table: hdr_overlap_cache.overlap_check */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
@@ -992,7 +1022,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] 
= {
        .partial_key_start_idx = 205,
        .partial_key_num_fields = 1,
        .partial_key_bit_size = 64,
-       .ident_start_idx = 29,
+       .ident_start_idx = 33,
        .ident_nums = 2
        },
        { /* class_tid: 2, , table: control.overlap_miss */
@@ -1006,7 +1036,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
                .cond_nums = 1 },
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID_1
+       .fdb_operand = BNXT_ULP_RF_IDX_RID
        },
        { /* class_tid: 2, , table: profile_tcam.allocate_wc_profile */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
@@ -1022,10 +1052,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID_1,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
        .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
        .pri_operand = 0,
-       .ident_start_idx = 31,
+       .ident_start_idx = 35,
        .ident_nums = 1
        },
        { /* class_tid: 2, , table: fkb_select.wc_gen_template */
@@ -1042,8 +1072,8 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .tbl_operand = BNXT_ULP_RF_IDX_WC_KEY_ID_0,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID_1,
-       .result_start_idx = 600,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .result_start_idx = 602,
        .result_bit_size = 256,
        .result_num_fields = 172
        },
@@ -1069,10 +1099,23 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .partial_key_start_idx = 208,
        .partial_key_num_fields = 1,
        .partial_key_bit_size = 64,
-       .result_start_idx = 772,
+       .result_start_idx = 774,
        .result_bit_size = 48,
        .result_num_fields = 3
        },
+       { /* class_tid: 2, , table: control.proto_header_rid_alloc */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+       .direction = TF_DIR_TX,
+       .execute_info = {
+               .cond_true_goto  = 1,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 1961,
+               .cond_nums = 0 },
+       .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID
+       },
        { /* class_tid: 2, , table: fkb_select.em_gen_template_alloc */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type = CFA_RSUBTYPE_IDX_TBL_EM_FKB,
@@ -1088,10 +1131,30 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
        .fdb_operand = BNXT_ULP_RF_IDX_RID,
-       .result_start_idx = 775,
+       .result_start_idx = 777,
        .result_bit_size = 256,
        .result_num_fields = 172
        },
+       { /* class_tid: 2, , table: em_key_recipe.alloc_only */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_KEY_RECIPE_TABLE,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_KEY_RECIPE_TABLE_EM,
+       .direction = TF_DIR_TX,
+       .execute_info = {
+               .cond_true_goto  = 1,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 1962,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_ALLOC_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
+       .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .result_start_idx = 949,
+       .result_bit_size = 0,
+       .result_num_fields = 0
+       },
        { /* class_tid: 2, , table: control.profile_tcam_priority */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
        .direction = TF_DIR_TX,
@@ -1133,10 +1196,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 256,
        .key_bit_size = 256,
        .key_num_fields = 66,
-       .result_start_idx = 947,
+       .result_start_idx = 949,
        .result_bit_size = 64,
        .result_num_fields = 10,
-       .ident_start_idx = 32,
+       .ident_start_idx = 36,
        .ident_nums = 1
        },
        { /* class_tid: 2, , table: wm_key_recipe.0 */
@@ -1150,8 +1213,8 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
                .cond_start_idx = 2201,
                .cond_nums = 0 },
-       .tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_WR_REGFILE,
-       .tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
+       .tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_WC_RECIPE_ID,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
        .fdb_operand = BNXT_ULP_RF_IDX_RID,
@@ -1159,7 +1222,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 0,
        .key_bit_size = 0,
        .key_num_fields = 33,
-       .result_start_idx = 957,
+       .result_start_idx = 959,
        .result_bit_size = 0,
        .result_num_fields = 0
        },
@@ -1182,9 +1245,9 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 74,
        .key_bit_size = 74,
        .key_num_fields = 3,
-       .result_start_idx = 957,
-       .result_bit_size = 74,
-       .result_num_fields = 6
+       .result_start_idx = 959,
+       .result_bit_size = 106,
+       .result_num_fields = 8
        },
        { /* class_tid: 2, , table: em_flow_conflict_cache.rd */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
@@ -1205,7 +1268,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 74,
        .key_bit_size = 74,
        .key_num_fields = 3,
-       .ident_start_idx = 33,
+       .ident_start_idx = 37,
        .ident_nums = 1
        },
        { /* class_tid: 2, , table: control.em_flow_conflict_cache_miss */
@@ -1235,7 +1298,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .tbl_operand = BNXT_ULP_RF_IDX_EM_KEY_ID_0,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-       .result_start_idx = 963,
+       .result_start_idx = 967,
        .result_bit_size = 256,
        .result_num_fields = 172
        },
@@ -1251,15 +1314,14 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
                .cond_start_idx = 2883,
                .cond_nums = 0 },
        .tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_WR_REGFILE,
-       .tbl_operand = BNXT_ULP_RF_IDX_EM_KEY_ID_0,
+       .tbl_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
        .key_start_idx = 314,
        .blob_key_bit_size = 0,
        .key_bit_size = 0,
        .key_num_fields = 33,
-       .result_start_idx = 1135,
+       .result_start_idx = 1139,
        .result_bit_size = 0,
        .result_num_fields = 0
        },
@@ -1282,7 +1344,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 74,
        .key_bit_size = 74,
        .key_num_fields = 3,
-       .result_start_idx = 1135,
+       .result_start_idx = 1139,
        .result_bit_size = 96,
        .result_num_fields = 2
        },
@@ -1318,10 +1380,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .tbl_opcode = BNXT_ULP_EM_TBL_OPC_WR_REGFILE,
        .tbl_operand = BNXT_ULP_RF_IDX_EM_INSERT_FAIL,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_DYN_KEY,
-       .key_recipe_operand = BNXT_ULP_RF_IDX_EM_KEY_ID_0,
+       .key_recipe_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
-       .result_start_idx = 1137,
+       .result_start_idx = 1141,
        .result_bit_size = 0,
        .result_num_fields = 17
        },
@@ -1350,13 +1412,13 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
        .tbl_operand = BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_DYN_KEY,
-       .key_recipe_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
+       .key_recipe_operand = BNXT_ULP_RF_IDX_WC_RECIPE_ID,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
        .pri_operand = 0,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
-       .result_start_idx = 1154,
+       .result_start_idx = 1158,
        .result_bit_size = 128,
        .result_num_fields = 15
        },
@@ -1377,7 +1439,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 1169,
+       .result_start_idx = 1173,
        .result_bit_size = 32,
        .result_num_fields = 1
        },
@@ -1398,7 +1460,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 1170,
+       .result_start_idx = 1174,
        .result_bit_size = 32,
        .result_num_fields = 1
        },
@@ -1419,7 +1481,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 1171,
+       .result_start_idx = 1175,
        .result_bit_size = 32,
        .result_num_fields = 1
        },
@@ -1440,7 +1502,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 1172,
+       .result_start_idx = 1176,
        .result_bit_size = 32,
        .result_num_fields = 1
        },
@@ -1461,7 +1523,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 1173,
+       .result_start_idx = 1177,
        .result_bit_size = 32,
        .result_num_fields = 1
        },
@@ -1482,7 +1544,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 1174,
+       .result_start_idx = 1178,
        .result_bit_size = 32,
        .result_num_fields = 1
        },
@@ -1505,7 +1567,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 6,
        .key_bit_size = 6,
        .key_num_fields = 2,
-       .ident_start_idx = 34,
+       .ident_start_idx = 38,
        .ident_nums = 2
        },
        { /* class_tid: 3, , table: control.ts_ing_rd_check */
@@ -1539,7 +1601,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
        .fdb_operand = BNXT_ULP_RF_IDX_RID,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 1175,
+       .result_start_idx = 1179,
        .result_bit_size = 192,
        .result_num_fields = 18
        },
@@ -1561,7 +1623,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
        .fdb_operand = BNXT_ULP_RF_IDX_RID,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 1193,
+       .result_start_idx = 1197,
        .result_bit_size = 192,
        .result_num_fields = 18
        },
@@ -1606,10 +1668,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 256,
        .key_bit_size = 256,
        .key_num_fields = 66,
-       .result_start_idx = 1211,
+       .result_start_idx = 1215,
        .result_bit_size = 65,
        .result_num_fields = 7,
-       .ident_start_idx = 36,
+       .ident_start_idx = 40,
        .ident_nums = 1
        },
        { /* class_tid: 3, , table: table_scope_cache.tsid_ing_wr */
@@ -1631,7 +1693,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 6,
        .key_bit_size = 6,
        .key_num_fields = 2,
-       .result_start_idx = 1218,
+       .result_start_idx = 1222,
        .result_bit_size = 88,
        .result_num_fields = 5
        },
@@ -1654,7 +1716,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 10,
        .key_bit_size = 10,
        .key_num_fields = 1,
-       .result_start_idx = 1223,
+       .result_start_idx = 1227,
        .result_bit_size = 169,
        .result_num_fields = 6
        },
@@ -1677,7 +1739,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .ident_start_idx = 37,
+       .ident_start_idx = 41,
        .ident_nums = 1
        },
        { /* class_tid: 3, , table: control.ing_rd_check */
@@ -1714,10 +1776,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 256,
        .key_bit_size = 256,
        .key_num_fields = 24,
-       .result_start_idx = 1229,
+       .result_start_idx = 1233,
        .result_bit_size = 127,
        .result_num_fields = 17,
-       .ident_start_idx = 38,
+       .ident_start_idx = 42,
        .ident_nums = 1
        },
        { /* class_tid: 3, , table: l2_cntxt_tcam_cache.ing_wr */
@@ -1739,7 +1801,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .result_start_idx = 1246,
+       .result_start_idx = 1250,
        .result_bit_size = 94,
        .result_num_fields = 5
        },
@@ -1760,7 +1822,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 1251,
+       .result_start_idx = 1255,
        .result_bit_size = 192,
        .result_num_fields = 18,
        .encap_num_fields = 0
@@ -1782,7 +1844,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 1269,
+       .result_start_idx = 1273,
        .result_bit_size = 192,
        .result_num_fields = 18,
        .encap_num_fields = 0
@@ -1813,7 +1875,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 10,
        .key_bit_size = 10,
        .key_num_fields = 1,
-       .result_start_idx = 1287,
+       .result_start_idx = 1291,
        .result_bit_size = 169,
        .result_num_fields = 6
        },
@@ -1831,7 +1893,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .tbl_operand = BNXT_ULP_CF_IDX_DRV_FUNC_SVIF,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-       .result_start_idx = 1293,
+       .result_start_idx = 1297,
        .result_bit_size = 128,
        .result_num_fields = 14
        },
@@ -1854,7 +1916,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .ident_start_idx = 39,
+       .ident_start_idx = 43,
        .ident_nums = 0
        },
        { /* class_tid: 3, , table: control.non_vfr_egr_rd_check */
@@ -1891,10 +1953,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 256,
        .key_bit_size = 256,
        .key_num_fields = 24,
-       .result_start_idx = 1307,
+       .result_start_idx = 1311,
        .result_bit_size = 127,
        .result_num_fields = 17,
-       .ident_start_idx = 39,
+       .ident_start_idx = 43,
        .ident_nums = 2
        },
        { /* class_tid: 3, , table: profile_tcam_bypass.non_vfr_egr_catch_all */
@@ -1919,10 +1981,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 256,
        .key_bit_size = 256,
        .key_num_fields = 66,
-       .result_start_idx = 1324,
+       .result_start_idx = 1328,
        .result_bit_size = 65,
        .result_num_fields = 7,
-       .ident_start_idx = 41,
+       .ident_start_idx = 45,
        .ident_nums = 0
        },
        { /* class_tid: 3, , table: l2_cntxt_tcam_cache.non_vfr_egr_wr */
@@ -1944,7 +2006,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .result_start_idx = 1331,
+       .result_start_idx = 1335,
        .result_bit_size = 94,
        .result_num_fields = 5
        },
@@ -1967,7 +2029,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 6,
        .key_bit_size = 6,
        .key_num_fields = 2,
-       .ident_start_idx = 41,
+       .ident_start_idx = 45,
        .ident_nums = 1
        },
        { /* class_tid: 3, , table: control.tsid_vfr_rd_check */
@@ -2000,7 +2062,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
        .fdb_operand = BNXT_ULP_RF_IDX_RID,
-       .result_start_idx = 1336,
+       .result_start_idx = 1340,
        .result_bit_size = 0,
        .result_num_fields = 0,
        .encap_num_fields = 20
@@ -2042,7 +2104,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
        .fdb_operand = BNXT_ULP_RF_IDX_RID,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 1356,
+       .result_start_idx = 1360,
        .result_bit_size = 192,
        .result_num_fields = 18
        },
@@ -2086,10 +2148,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 256,
        .key_bit_size = 256,
        .key_num_fields = 24,
-       .result_start_idx = 1374,
+       .result_start_idx = 1378,
        .result_bit_size = 127,
        .result_num_fields = 17,
-       .ident_start_idx = 42,
+       .ident_start_idx = 46,
        .ident_nums = 1
        },
        { /* class_tid: 3, , table: table_scope_cache.tsid_vfr_wr */
@@ -2111,7 +2173,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 6,
        .key_bit_size = 6,
        .key_num_fields = 2,
-       .result_start_idx = 1391,
+       .result_start_idx = 1395,
        .result_bit_size = 88,
        .result_num_fields = 5
        },
@@ -2134,7 +2196,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 6,
        .key_bit_size = 6,
        .key_num_fields = 2,
-       .ident_start_idx = 43,
+       .ident_start_idx = 47,
        .ident_nums = 3
        },
        { /* class_tid: 4, , table: control.tsid_vfr_egr_check */
@@ -2174,7 +2236,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
                .func_src2 = BNXT_ULP_FUNC_SRC_CONST,
                .func_opr2 = ULP_THOR2_SYM_VF_2_VF_META_VAL,
                .func_dst_opr = BNXT_ULP_RF_IDX_RF_0 },
-       .result_start_idx = 1396,
+       .result_start_idx = 1400,
        .result_bit_size = 0,
        .result_num_fields = 0,
        .encap_num_fields = 20
@@ -2216,7 +2278,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
        .fdb_operand = BNXT_ULP_RF_IDX_RID,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 1416,
+       .result_start_idx = 1420,
        .result_bit_size = 192,
        .result_num_fields = 18
        },
@@ -2261,10 +2323,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 256,
        .key_bit_size = 256,
        .key_num_fields = 66,
-       .result_start_idx = 1434,
+       .result_start_idx = 1438,
        .result_bit_size = 65,
        .result_num_fields = 7,
-       .ident_start_idx = 46,
+       .ident_start_idx = 50,
        .ident_nums = 1
        },
        { /* class_tid: 4, , table: table_scope_cache.tsid_vfr_egr_wr */
@@ -2286,7 +2348,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 6,
        .key_bit_size = 6,
        .key_num_fields = 2,
-       .result_start_idx = 1441,
+       .result_start_idx = 1445,
        .result_bit_size = 88,
        .result_num_fields = 5
        },
@@ -2310,7 +2372,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .ident_start_idx = 47,
+       .ident_start_idx = 51,
        .ident_nums = 1
        },
        { /* class_tid: 4, , table: control.endpoint_def_egr_rd_check */
@@ -2347,10 +2409,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 256,
        .key_bit_size = 256,
        .key_num_fields = 24,
-       .result_start_idx = 1446,
+       .result_start_idx = 1450,
        .result_bit_size = 127,
        .result_num_fields = 17,
-       .ident_start_idx = 48,
+       .ident_start_idx = 52,
        .ident_nums = 1
        },
        { /* class_tid: 4, , table: l2_cntxt_tcam_cache.endpoint_def_egr_wr */
@@ -2373,7 +2435,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .result_start_idx = 1463,
+       .result_start_idx = 1467,
        .result_bit_size = 94,
        .result_num_fields = 5
        },
@@ -2396,7 +2458,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .blob_key_bit_size = 10,
        .key_bit_size = 10,
        .key_num_fields = 1,
-       .result_start_idx = 1468,
+       .result_start_idx = 1472,
        .result_bit_size = 169,
        .result_num_fields = 6
        },
@@ -2423,7 +2485,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
                .func_src2 = BNXT_ULP_FUNC_SRC_CONST,
                .func_opr2 = ULP_THOR2_SYM_VF_2_VF_META_VAL,
                .func_dst_opr = BNXT_ULP_RF_IDX_RF_0 },
-       .result_start_idx = 1474,
+       .result_start_idx = 1478,
        .result_bit_size = 0,
        .result_num_fields = 0,
        .encap_num_fields = 20
@@ -2464,7 +2526,7 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor2_class_tbl_list[] = {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 1494,
+       .result_start_idx = 1498,
        .result_bit_size = 192,
        .result_num_fields = 18
        },
@@ -7012,7 +7074,7 @@ struct bnxt_ulp_mapper_cond_info 
ulp_thor2_class_cond_list[] = {
        },
        /* field_cond: class_tid: 1, fkb_select.em_gen_template:1012*/
        {
-       .cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
+       .cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
        .cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
        },
        {
@@ -42521,8 +42583,8 @@ struct bnxt_ulp_mapper_field_info 
ulp_thor2_class_result_field_list[] = {
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_RF,
        .field_opr1 = {
-       (BNXT_ULP_RF_IDX_RID_1 >> 8) & 0xff,
-       BNXT_ULP_RF_IDX_RID_1 & 0xff}
+       (BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_RID & 0xff}
        },
        {
        .description = "wc_profile_id",
@@ -43718,6 +43780,24 @@ struct bnxt_ulp_mapper_field_info 
ulp_thor2_class_result_field_list[] = {
        (BNXT_ULP_RF_IDX_WC_KEY_ID_0 >> 8) & 0xff,
        BNXT_ULP_RF_IDX_WC_KEY_ID_0 & 0xff}
        },
+       {
+       .description = "em_recipe_id",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_EM_RECIPE_ID >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_EM_RECIPE_ID & 0xff}
+       },
+       {
+       .description = "wc_recipe_id",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_WC_RECIPE_ID >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_WC_RECIPE_ID & 0xff}
+       },
        /* class_tid: 1, , table: fkb_select.em_gen_template */
        {
        .description = "l2_cntxt_id.en",
@@ -46921,8 +47001,8 @@ struct bnxt_ulp_mapper_field_info 
ulp_thor2_class_result_field_list[] = {
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_RF,
        .field_opr1 = {
-       (BNXT_ULP_RF_IDX_RID_1 >> 8) & 0xff,
-       BNXT_ULP_RF_IDX_RID_1 & 0xff}
+       (BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_RID & 0xff}
        },
        {
        .description = "wc_profile_id",
@@ -48117,6 +48197,24 @@ struct bnxt_ulp_mapper_field_info 
ulp_thor2_class_result_field_list[] = {
        (BNXT_ULP_RF_IDX_WC_KEY_ID_0 >> 8) & 0xff,
        BNXT_ULP_RF_IDX_WC_KEY_ID_0 & 0xff}
        },
+       {
+       .description = "em_recipe_id",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_EM_RECIPE_ID >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_EM_RECIPE_ID & 0xff}
+       },
+       {
+       .description = "wc_recipe_id",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_WC_RECIPE_ID >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_WC_RECIPE_ID & 0xff}
+       },
        /* class_tid: 2, , table: fkb_select.em_gen_template */
        {
        .description = "l2_cntxt_id.en",
@@ -52303,6 +52401,12 @@ struct bnxt_ulp_mapper_ident_info 
ulp_thor2_class_ident_list[] = {
        .ident_bit_pos = 42
        },
        {
+       .description = "em_recipe_id",
+       .regfile_idx = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
+       .ident_bit_size = 16,
+       .ident_bit_pos = 74
+       },
+       {
        .description = "profile_tcam_index",
        .regfile_idx = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
        .ident_bit_size = 10,
@@ -52320,6 +52424,12 @@ struct bnxt_ulp_mapper_ident_info 
ulp_thor2_class_ident_list[] = {
        .ident_bit_size = 8,
        .ident_bit_pos = 58
        },
+       {
+       .description = "wc_recipe_id",
+       .regfile_idx = BNXT_ULP_RF_IDX_WC_RECIPE_ID,
+       .ident_bit_size = 16,
+       .ident_bit_pos = 90
+       },
        /* class_tid: 1, , table: hdr_overlap_cache.overlap_check */
        {
        .description = "wc_key_id",
@@ -52392,6 +52502,12 @@ struct bnxt_ulp_mapper_ident_info 
ulp_thor2_class_ident_list[] = {
        .ident_bit_pos = 42
        },
        {
+       .description = "em_recipe_id",
+       .regfile_idx = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
+       .ident_bit_size = 16,
+       .ident_bit_pos = 74
+       },
+       {
        .description = "profile_tcam_index",
        .regfile_idx = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
        .ident_bit_size = 10,
@@ -52409,6 +52525,12 @@ struct bnxt_ulp_mapper_ident_info 
ulp_thor2_class_ident_list[] = {
        .ident_bit_size = 8,
        .ident_bit_pos = 58
        },
+       {
+       .description = "wc_recipe_id",
+       .regfile_idx = BNXT_ULP_RF_IDX_WC_RECIPE_ID,
+       .ident_bit_size = 16,
+       .ident_bit_pos = 90
+       },
        /* class_tid: 2, , table: hdr_overlap_cache.overlap_check */
        {
        .description = "wc_key_id",
diff --git 
a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_class.c 
b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_class.c
index 4d8f54dac1..f2fb25d7b6 100644
--- a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_class.c
+++ b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_class.c
@@ -13,7 +13,7 @@ struct bnxt_ulp_mapper_tmpl_info ulp_thor_class_tmpl_list[] = 
{
        /* class_tid: 1, ingress */
        [1] = {
        .device_name = BNXT_ULP_DEVICE_ID_THOR,
-       .num_tbls = 39,
+       .num_tbls = 41,
        .start_tbl_idx = 0,
        .reject_info = {
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
@@ -23,8 +23,8 @@ struct bnxt_ulp_mapper_tmpl_info ulp_thor_class_tmpl_list[] = 
{
        /* class_tid: 2, egress */
        [2] = {
        .device_name = BNXT_ULP_DEVICE_ID_THOR,
-       .num_tbls = 25,
-       .start_tbl_idx = 39,
+       .num_tbls = 27,
+       .start_tbl_idx = 41,
        .reject_info = {
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
                .cond_start_idx = 1545,
@@ -34,7 +34,7 @@ struct bnxt_ulp_mapper_tmpl_info ulp_thor_class_tmpl_list[] = 
{
        [3] = {
        .device_name = BNXT_ULP_DEVICE_ID_THOR,
        .num_tbls = 23,
-       .start_tbl_idx = 64,
+       .start_tbl_idx = 68,
        .reject_info = {
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
                .cond_start_idx = 3069,
@@ -44,7 +44,7 @@ struct bnxt_ulp_mapper_tmpl_info ulp_thor_class_tmpl_list[] = 
{
        [4] = {
        .device_name = BNXT_ULP_DEVICE_ID_THOR,
        .num_tbls = 35,
-       .start_tbl_idx = 87,
+       .start_tbl_idx = 91,
        .reject_info = {
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
                .cond_start_idx = 3073,
@@ -398,20 +398,19 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .key_bit_size = 73,
        .key_num_fields = 3,
        .ident_start_idx = 10,
-       .ident_nums = 5
+       .ident_nums = 7
        },
        { /* class_tid: 1, , table: control.proto_header_cache_miss */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
        .direction = TF_DIR_RX,
        .execute_info = {
                .cond_true_goto  = 1,
-               .cond_false_goto = 11,
+               .cond_false_goto = 13,
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
                .cond_start_idx = 42,
                .cond_nums = 1 },
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-       .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP
        },
        { /* class_tid: 1, , table: hdr_overlap_cache.overlap_check */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
@@ -435,7 +434,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = 
{
        .partial_key_start_idx = 48,
        .partial_key_num_fields = 1,
        .partial_key_bit_size = 64,
-       .ident_start_idx = 15,
+       .ident_start_idx = 17,
        .ident_nums = 2
        },
        { /* class_tid: 1, , table: control.overlap_miss */
@@ -449,7 +448,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = 
{
                .cond_nums = 1 },
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID_1
+       .fdb_operand = BNXT_ULP_RF_IDX_RID
        },
        { /* class_tid: 1, , table: profile_tcam.allocate_wc_profile */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
@@ -465,10 +464,10 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID_1,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
        .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
        .pri_operand = 0,
-       .ident_start_idx = 17,
+       .ident_start_idx = 19,
        .ident_nums = 1
        },
        { /* class_tid: 1, , table: fkb_select.wc_gen_template */
@@ -485,7 +484,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = 
{
        .tbl_operand = BNXT_ULP_RF_IDX_WC_KEY_ID_0,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID_1,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
        .result_start_idx = 14,
        .result_bit_size = 106,
        .result_num_fields = 106
@@ -516,6 +515,19 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .result_bit_size = 48,
        .result_num_fields = 3
        },
+       { /* class_tid: 1, , table: control.proto_header_rid_alloc */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 1,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 253,
+               .cond_nums = 0 },
+       .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID
+       },
        { /* class_tid: 1, , table: fkb_select.em_gen_template_alloc */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type = TF_TBL_TYPE_EM_FKB,
@@ -535,6 +547,26 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .result_bit_size = 106,
        .result_num_fields = 106
        },
+       { /* class_tid: 1, , table: em_key_recipe.alloc_only */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_KEY_RECIPE_TABLE,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_KEY_RECIPE_TABLE_EM,
+       .direction = TF_DIR_RX,
+       .execute_info = {
+               .cond_true_goto  = 1,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 254,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_ALLOC_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
+       .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .result_start_idx = 229,
+       .result_bit_size = 0,
+       .result_num_fields = 0
+       },
        { /* class_tid: 1, , table: control.profile_tcam_priority */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
        .direction = TF_DIR_RX,
@@ -579,7 +611,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = 
{
        .result_start_idx = 229,
        .result_bit_size = 33,
        .result_num_fields = 8,
-       .ident_start_idx = 18,
+       .ident_start_idx = 20,
        .ident_nums = 1
        },
        { /* class_tid: 1, , table: wm_key_recipe.0 */
@@ -593,8 +625,8 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = 
{
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
                .cond_start_idx = 513,
                .cond_nums = 0 },
-       .tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_WR_REGFILE,
-       .tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
+       .tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_WC_RECIPE_ID,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
        .fdb_operand = BNXT_ULP_RF_IDX_RID,
@@ -626,8 +658,8 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = 
{
        .key_bit_size = 73,
        .key_num_fields = 3,
        .result_start_idx = 237,
-       .result_bit_size = 74,
-       .result_num_fields = 6
+       .result_bit_size = 106,
+       .result_num_fields = 8
        },
        { /* class_tid: 1, , table: em_flow_conflict_cache.rd */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
@@ -648,7 +680,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = 
{
        .blob_key_bit_size = 73,
        .key_bit_size = 73,
        .key_num_fields = 3,
-       .ident_start_idx = 19,
+       .ident_start_idx = 21,
        .ident_nums = 1
        },
        { /* class_tid: 1, , table: control.em_flow_conflict_cache_miss */
@@ -678,7 +710,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = 
{
        .tbl_operand = BNXT_ULP_RF_IDX_EM_KEY_ID_0,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-       .result_start_idx = 243,
+       .result_start_idx = 245,
        .result_bit_size = 106,
        .result_num_fields = 106
        },
@@ -694,15 +726,14 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
                .cond_start_idx = 1136,
                .cond_nums = 0 },
        .tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_WR_REGFILE,
-       .tbl_operand = BNXT_ULP_RF_IDX_EM_KEY_ID_0,
+       .tbl_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
        .key_start_idx = 134,
        .blob_key_bit_size = 0,
        .key_bit_size = 0,
        .key_num_fields = 33,
-       .result_start_idx = 349,
+       .result_start_idx = 351,
        .result_bit_size = 0,
        .result_num_fields = 0
        },
@@ -725,7 +756,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = 
{
        .blob_key_bit_size = 73,
        .key_bit_size = 73,
        .key_num_fields = 3,
-       .result_start_idx = 349,
+       .result_start_idx = 351,
        .result_bit_size = 96,
        .result_num_fields = 2
        },
@@ -761,10 +792,10 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .tbl_opcode = BNXT_ULP_EM_TBL_OPC_WR_REGFILE,
        .tbl_operand = BNXT_ULP_RF_IDX_EM_INSERT_FAIL,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_DYN_KEY,
-       .key_recipe_operand = BNXT_ULP_RF_IDX_EM_KEY_ID_0,
+       .key_recipe_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
-       .result_start_idx = 351,
+       .result_start_idx = 353,
        .result_bit_size = 0,
        .result_num_fields = 6
        },
@@ -793,13 +824,13 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
        .tbl_operand = BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_DYN_KEY,
-       .key_recipe_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
+       .key_recipe_operand = BNXT_ULP_RF_IDX_WC_RECIPE_ID,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
        .pri_operand = 0,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
-       .result_start_idx = 357,
+       .result_start_idx = 359,
        .result_bit_size = 38,
        .result_num_fields = 5
        },
@@ -822,7 +853,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = 
{
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .ident_start_idx = 20,
+       .ident_start_idx = 22,
        .ident_nums = 2
        },
        { /* class_tid: 2, , table: control.l2_only_check */
@@ -888,21 +919,20 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 73,
        .key_bit_size = 73,
        .key_num_fields = 3,
-       .ident_start_idx = 22,
-       .ident_nums = 5
+       .ident_start_idx = 24,
+       .ident_nums = 7
        },
        { /* class_tid: 2, , table: control.proto_header_cache_miss */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
        .direction = TF_DIR_TX,
        .execute_info = {
                .cond_true_goto  = 1,
-               .cond_false_goto = 11,
+               .cond_false_goto = 13,
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
                .cond_start_idx = 1571,
                .cond_nums = 1 },
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-       .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP
        },
        { /* class_tid: 2, , table: hdr_overlap_cache.overlap_check */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
@@ -926,7 +956,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = 
{
        .partial_key_start_idx = 176,
        .partial_key_num_fields = 1,
        .partial_key_bit_size = 64,
-       .ident_start_idx = 27,
+       .ident_start_idx = 31,
        .ident_nums = 2
        },
        { /* class_tid: 2, , table: control.overlap_miss */
@@ -940,7 +970,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] = 
{
                .cond_nums = 1 },
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID_1
+       .fdb_operand = BNXT_ULP_RF_IDX_RID
        },
        { /* class_tid: 2, , table: profile_tcam.allocate_wc_profile */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
@@ -956,10 +986,10 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID_1,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
        .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
        .pri_operand = 0,
-       .ident_start_idx = 29,
+       .ident_start_idx = 33,
        .ident_nums = 1
        },
        { /* class_tid: 2, , table: fkb_select.wc_gen_template */
@@ -976,8 +1006,8 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .tbl_operand = BNXT_ULP_RF_IDX_WC_KEY_ID_0,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID_1,
-       .result_start_idx = 362,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .result_start_idx = 364,
        .result_bit_size = 106,
        .result_num_fields = 106
        },
@@ -1003,10 +1033,23 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor_class_tbl_list[] = {
        .partial_key_start_idx = 179,
        .partial_key_num_fields = 1,
        .partial_key_bit_size = 64,
-       .result_start_idx = 468,
+       .result_start_idx = 470,
        .result_bit_size = 48,
        .result_num_fields = 3
        },
+       { /* class_tid: 2, , table: control.proto_header_rid_alloc */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+       .direction = TF_DIR_TX,
+       .execute_info = {
+               .cond_true_goto  = 1,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 1784,
+               .cond_nums = 0 },
+       .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID
+       },
        { /* class_tid: 2, , table: fkb_select.em_gen_template_alloc */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
        .resource_type = TF_TBL_TYPE_EM_FKB,
@@ -1022,10 +1065,30 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor_class_tbl_list[] = {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
        .fdb_operand = BNXT_ULP_RF_IDX_RID,
-       .result_start_idx = 471,
+       .result_start_idx = 473,
        .result_bit_size = 106,
        .result_num_fields = 106
        },
+       { /* class_tid: 2, , table: em_key_recipe.alloc_only */
+       .resource_func = BNXT_ULP_RESOURCE_FUNC_KEY_RECIPE_TABLE,
+       .resource_sub_type =
+               BNXT_ULP_RESOURCE_SUB_TYPE_KEY_RECIPE_TABLE_EM,
+       .direction = TF_DIR_TX,
+       .execute_info = {
+               .cond_true_goto  = 1,
+               .cond_false_goto = 1,
+               .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+               .cond_start_idx = 1785,
+               .cond_nums = 0 },
+       .tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_ALLOC_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
+       .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
+       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .result_start_idx = 579,
+       .result_bit_size = 0,
+       .result_num_fields = 0
+       },
        { /* class_tid: 2, , table: control.profile_tcam_priority */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
        .direction = TF_DIR_TX,
@@ -1067,10 +1130,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor_class_tbl_list[] = {
        .blob_key_bit_size = 94,
        .key_bit_size = 94,
        .key_num_fields = 43,
-       .result_start_idx = 577,
+       .result_start_idx = 579,
        .result_bit_size = 33,
        .result_num_fields = 8,
-       .ident_start_idx = 30,
+       .ident_start_idx = 34,
        .ident_nums = 1
        },
        { /* class_tid: 2, , table: wm_key_recipe.0 */
@@ -1084,8 +1147,8 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
                .cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
                .cond_start_idx = 2042,
                .cond_nums = 0 },
-       .tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_WR_REGFILE,
-       .tbl_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
+       .tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_ALLOC_WR_REGFILE,
+       .tbl_operand = BNXT_ULP_RF_IDX_WC_RECIPE_ID,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
        .fdb_operand = BNXT_ULP_RF_IDX_RID,
@@ -1093,7 +1156,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 0,
        .key_bit_size = 0,
        .key_num_fields = 33,
-       .result_start_idx = 585,
+       .result_start_idx = 587,
        .result_bit_size = 0,
        .result_num_fields = 0
        },
@@ -1116,9 +1179,9 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 73,
        .key_bit_size = 73,
        .key_num_fields = 3,
-       .result_start_idx = 585,
-       .result_bit_size = 74,
-       .result_num_fields = 6
+       .result_start_idx = 587,
+       .result_bit_size = 106,
+       .result_num_fields = 8
        },
        { /* class_tid: 2, , table: em_flow_conflict_cache.rd */
        .resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
@@ -1139,7 +1202,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 73,
        .key_bit_size = 73,
        .key_num_fields = 3,
-       .ident_start_idx = 31,
+       .ident_start_idx = 35,
        .ident_nums = 1
        },
        { /* class_tid: 2, , table: control.em_flow_conflict_cache_miss */
@@ -1169,7 +1232,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .tbl_operand = BNXT_ULP_RF_IDX_EM_KEY_ID_0,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-       .result_start_idx = 591,
+       .result_start_idx = 595,
        .result_bit_size = 106,
        .result_num_fields = 106
        },
@@ -1185,15 +1248,14 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor_class_tbl_list[] = {
                .cond_start_idx = 2666,
                .cond_nums = 0 },
        .tbl_opcode = BNXT_ULP_KEY_RECIPE_TBL_OPC_WR_REGFILE,
-       .tbl_operand = BNXT_ULP_RF_IDX_EM_KEY_ID_0,
+       .tbl_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-       .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
-       .fdb_operand = BNXT_ULP_RF_IDX_RID,
+       .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
        .key_start_idx = 262,
        .blob_key_bit_size = 0,
        .key_bit_size = 0,
        .key_num_fields = 33,
-       .result_start_idx = 697,
+       .result_start_idx = 701,
        .result_bit_size = 0,
        .result_num_fields = 0
        },
@@ -1216,7 +1278,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 73,
        .key_bit_size = 73,
        .key_num_fields = 3,
-       .result_start_idx = 697,
+       .result_start_idx = 701,
        .result_bit_size = 96,
        .result_num_fields = 2
        },
@@ -1252,10 +1314,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor_class_tbl_list[] = {
        .tbl_opcode = BNXT_ULP_EM_TBL_OPC_WR_REGFILE,
        .tbl_operand = BNXT_ULP_RF_IDX_EM_INSERT_FAIL,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_DYN_KEY,
-       .key_recipe_operand = BNXT_ULP_RF_IDX_EM_KEY_ID_0,
+       .key_recipe_operand = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
-       .result_start_idx = 699,
+       .result_start_idx = 703,
        .result_bit_size = 0,
        .result_num_fields = 6
        },
@@ -1284,13 +1346,13 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor_class_tbl_list[] = {
        .tbl_opcode = BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE,
        .tbl_operand = BNXT_ULP_RF_IDX_WC_TCAM_INDEX_0,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_DYN_KEY,
-       .key_recipe_operand = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
+       .key_recipe_operand = BNXT_ULP_RF_IDX_WC_RECIPE_ID,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
        .pri_operand = 0,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
        .critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
-       .result_start_idx = 705,
+       .result_start_idx = 709,
        .result_bit_size = 38,
        .result_num_fields = 5
        },
@@ -1311,7 +1373,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 710,
+       .result_start_idx = 714,
        .result_bit_size = 128,
        .result_num_fields = 17
        },
@@ -1334,7 +1396,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 10,
        .key_bit_size = 10,
        .key_num_fields = 1,
-       .result_start_idx = 727,
+       .result_start_idx = 731,
        .result_bit_size = 179,
        .result_num_fields = 8
        },
@@ -1357,7 +1419,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .ident_start_idx = 32,
+       .ident_start_idx = 36,
        .ident_nums = 0
        },
        { /* class_tid: 3, , table: control.ing_0 */
@@ -1396,10 +1458,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor_class_tbl_list[] = {
        .blob_key_bit_size = 213,
        .key_bit_size = 213,
        .key_num_fields = 21,
-       .result_start_idx = 735,
+       .result_start_idx = 739,
        .result_bit_size = 43,
        .result_num_fields = 6,
-       .ident_start_idx = 32,
+       .ident_start_idx = 36,
        .ident_nums = 2
        },
        { /* class_tid: 3, , table: l2_cntxt_tcam_cache.ing_wr */
@@ -1421,7 +1483,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .result_start_idx = 741,
+       .result_start_idx = 745,
        .result_bit_size = 70,
        .result_num_fields = 5
        },
@@ -1447,10 +1509,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor_class_tbl_list[] = {
        .blob_key_bit_size = 94,
        .key_bit_size = 94,
        .key_num_fields = 43,
-       .result_start_idx = 746,
+       .result_start_idx = 750,
        .result_bit_size = 33,
        .result_num_fields = 8,
-       .ident_start_idx = 34,
+       .ident_start_idx = 38,
        .ident_nums = 0
        },
        { /* class_tid: 3, , table: parif_def_arec_ptr.ing_0 */
@@ -1467,7 +1529,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .tbl_operand = BNXT_ULP_CF_IDX_PHY_PORT_PARIF,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-       .result_start_idx = 754,
+       .result_start_idx = 758,
        .result_bit_size = 32,
        .result_num_fields = 1
        },
@@ -1485,7 +1547,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .tbl_operand = BNXT_ULP_CF_IDX_PHY_PORT_PARIF,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-       .result_start_idx = 755,
+       .result_start_idx = 759,
        .result_bit_size = 32,
        .result_num_fields = 1
        },
@@ -1506,7 +1568,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 756,
+       .result_start_idx = 760,
        .result_bit_size = 128,
        .result_num_fields = 17,
        .encap_num_fields = 0
@@ -1530,7 +1592,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 10,
        .key_bit_size = 10,
        .key_num_fields = 1,
-       .result_start_idx = 773,
+       .result_start_idx = 777,
        .result_bit_size = 179,
        .result_num_fields = 8
        },
@@ -1565,7 +1627,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .ident_start_idx = 34,
+       .ident_start_idx = 38,
        .ident_nums = 0
        },
        { /* class_tid: 3, , table: control.egr_1 */
@@ -1598,7 +1660,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .fdb_operand = BNXT_ULP_RF_IDX_RID,
        .pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
        .pri_operand = 0,
-       .ident_start_idx = 34,
+       .ident_start_idx = 38,
        .ident_nums = 1
        },
        { /* class_tid: 3, , table: ilt_tbl.egr_vfr */
@@ -1616,7 +1678,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
        .fdb_operand = BNXT_ULP_RF_IDX_RID,
-       .result_start_idx = 781,
+       .result_start_idx = 785,
        .result_bit_size = 64,
        .result_num_fields = 8
        },
@@ -1639,7 +1701,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .result_start_idx = 789,
+       .result_start_idx = 793,
        .result_bit_size = 70,
        .result_num_fields = 5
        },
@@ -1662,7 +1724,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .ident_start_idx = 35,
+       .ident_start_idx = 39,
        .ident_nums = 0
        },
        { /* class_tid: 3, , table: control.egr_2 */
@@ -1699,10 +1761,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor_class_tbl_list[] = {
        .blob_key_bit_size = 213,
        .key_bit_size = 213,
        .key_num_fields = 21,
-       .result_start_idx = 794,
+       .result_start_idx = 798,
        .result_bit_size = 43,
        .result_num_fields = 6,
-       .ident_start_idx = 35,
+       .ident_start_idx = 39,
        .ident_nums = 2
        },
        { /* class_tid: 3, , table: l2_cntxt_tcam_cache.egr_wr */
@@ -1724,7 +1786,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .result_start_idx = 800,
+       .result_start_idx = 804,
        .result_bit_size = 70,
        .result_num_fields = 5
        },
@@ -1742,7 +1804,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .tbl_operand = BNXT_ULP_CF_IDX_DRV_FUNC_PARIF,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-       .result_start_idx = 805,
+       .result_start_idx = 809,
        .result_bit_size = 32,
        .result_num_fields = 1
        },
@@ -1760,7 +1822,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .tbl_operand = BNXT_ULP_CF_IDX_DRV_FUNC_PARIF,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-       .result_start_idx = 806,
+       .result_start_idx = 810,
        .result_bit_size = 32,
        .result_num_fields = 1
        },
@@ -1784,7 +1846,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 15,
        .key_bit_size = 15,
        .key_num_fields = 3,
-       .ident_start_idx = 37,
+       .ident_start_idx = 41,
        .ident_nums = 0
        },
        { /* class_tid: 4, , table: 
control.prof_tcam_cache.vfr_glb_act_rec_rd.0 */
@@ -1816,7 +1878,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .tbl_operand = BNXT_ULP_GLB_RF_IDX_GLB_MODIFY_PTR,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-       .result_start_idx = 807,
+       .result_start_idx = 811,
        .result_bit_size = 0,
        .result_num_fields = 0,
        .encap_num_fields = 20
@@ -1838,7 +1900,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 827,
+       .result_start_idx = 831,
        .result_bit_size = 128,
        .result_num_fields = 17,
        .encap_num_fields = 0
@@ -1858,7 +1920,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
        .fdb_operand = BNXT_ULP_RF_IDX_RID,
-       .result_start_idx = 844,
+       .result_start_idx = 848,
        .result_bit_size = 32,
        .result_num_fields = 1
        },
@@ -1877,7 +1939,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
        .fdb_operand = BNXT_ULP_RF_IDX_RID,
-       .result_start_idx = 845,
+       .result_start_idx = 849,
        .result_bit_size = 32,
        .result_num_fields = 1
        },
@@ -1901,7 +1963,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 15,
        .key_bit_size = 15,
        .key_num_fields = 3,
-       .result_start_idx = 846,
+       .result_start_idx = 850,
        .result_bit_size = 138,
        .result_num_fields = 7
        },
@@ -1924,7 +1986,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .ident_start_idx = 37,
+       .ident_start_idx = 41,
        .ident_nums = 0
        },
        { /* class_tid: 4, , table: control.vf_2_vfr.0 */
@@ -1959,7 +2021,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .ident_start_idx = 37,
+       .ident_start_idx = 41,
        .ident_nums = 1
        },
        { /* class_tid: 4, , table: l2_cntxt_tcam.vf_egr */
@@ -1983,10 +2045,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor_class_tbl_list[] = {
        .blob_key_bit_size = 213,
        .key_bit_size = 213,
        .key_num_fields = 21,
-       .result_start_idx = 853,
+       .result_start_idx = 857,
        .result_bit_size = 43,
        .result_num_fields = 6,
-       .ident_start_idx = 38,
+       .ident_start_idx = 42,
        .ident_nums = 1
        },
        { /* class_tid: 4, , table: profile_tcam.prof_func_catch_all */
@@ -2012,10 +2074,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor_class_tbl_list[] = {
        .blob_key_bit_size = 94,
        .key_bit_size = 94,
        .key_num_fields = 43,
-       .result_start_idx = 859,
+       .result_start_idx = 863,
        .result_bit_size = 33,
        .result_num_fields = 8,
-       .ident_start_idx = 39,
+       .ident_start_idx = 43,
        .ident_nums = 0
        },
        { /* class_tid: 4, , table: l2_cntxt_tcam_cache.vf_egr_wr */
@@ -2037,7 +2099,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .result_start_idx = 867,
+       .result_start_idx = 871,
        .result_bit_size = 70,
        .result_num_fields = 5
        },
@@ -2058,7 +2120,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_PUSH_AND_SET_VFR_FLAG,
-       .result_start_idx = 872,
+       .result_start_idx = 876,
        .result_bit_size = 128,
        .result_num_fields = 17
        },
@@ -2082,7 +2144,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 15,
        .key_bit_size = 15,
        .key_num_fields = 3,
-       .ident_start_idx = 39,
+       .ident_start_idx = 43,
        .ident_nums = 0
        },
        { /* class_tid: 4, , table: control.prof_tcam_cache.vfr.0 */
@@ -2115,7 +2177,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 889,
+       .result_start_idx = 893,
        .result_bit_size = 128,
        .result_num_fields = 17,
        .encap_num_fields = 0
@@ -2143,10 +2205,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor_class_tbl_list[] = {
        .blob_key_bit_size = 213,
        .key_bit_size = 213,
        .key_num_fields = 21,
-       .result_start_idx = 906,
+       .result_start_idx = 910,
        .result_bit_size = 43,
        .result_num_fields = 6,
-       .ident_start_idx = 39,
+       .ident_start_idx = 43,
        .ident_nums = 0
        },
        { /* class_tid: 4, , table: l2_cntxt_tcam.vfr_2_vf_ing.0 */
@@ -2172,10 +2234,10 @@ struct bnxt_ulp_mapper_tbl_info 
ulp_thor_class_tbl_list[] = {
        .blob_key_bit_size = 213,
        .key_bit_size = 213,
        .key_num_fields = 21,
-       .result_start_idx = 912,
+       .result_start_idx = 916,
        .result_bit_size = 43,
        .result_num_fields = 6,
-       .ident_start_idx = 39,
+       .ident_start_idx = 43,
        .ident_nums = 0
        },
        { /* class_tid: 4, , table: fkb_select.vfr_em */
@@ -2192,7 +2254,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .tbl_operand = BNXT_ULP_GLB_RF_IDX_GLB_VFR_EM_KEY_ID_0,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-       .result_start_idx = 918,
+       .result_start_idx = 922,
        .result_bit_size = 106,
        .result_num_fields = 106
        },
@@ -2210,7 +2272,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .tbl_operand = BNXT_ULP_GLB_RF_IDX_GLB_VFR_EM_KEY_ID_1,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-       .result_start_idx = 1024,
+       .result_start_idx = 1028,
        .result_bit_size = 106,
        .result_num_fields = 106
        },
@@ -2237,7 +2299,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 94,
        .key_bit_size = 94,
        .key_num_fields = 43,
-       .result_start_idx = 1130,
+       .result_start_idx = 1134,
        .result_bit_size = 33,
        .result_num_fields = 8
        },
@@ -2264,7 +2326,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 94,
        .key_bit_size = 94,
        .key_num_fields = 43,
-       .result_start_idx = 1138,
+       .result_start_idx = 1142,
        .result_bit_size = 33,
        .result_num_fields = 8
        },
@@ -2288,7 +2350,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 15,
        .key_bit_size = 15,
        .key_num_fields = 3,
-       .result_start_idx = 1146,
+       .result_start_idx = 1150,
        .result_bit_size = 138,
        .result_num_fields = 7
        },
@@ -2306,7 +2368,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .tbl_operand = BNXT_ULP_CF_IDX_VF_FUNC_SVIF,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-       .result_start_idx = 1153,
+       .result_start_idx = 1157,
        .result_bit_size = 64,
        .result_num_fields = 8
        },
@@ -2327,7 +2389,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 0,
        .key_bit_size = 0,
        .key_num_fields = 3,
-       .result_start_idx = 1161,
+       .result_start_idx = 1165,
        .result_bit_size = 0,
        .result_num_fields = 6
        },
@@ -2351,7 +2413,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .ident_start_idx = 39,
+       .ident_start_idx = 43,
        .ident_nums = 0
        },
        { /* class_tid: 4, , table: control.0 */
@@ -2382,7 +2444,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
        .fdb_operand = BNXT_ULP_RF_IDX_RID,
-       .result_start_idx = 1167,
+       .result_start_idx = 1171,
        .result_bit_size = 64,
        .result_num_fields = 8
        },
@@ -2405,7 +2467,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 11,
        .key_bit_size = 11,
        .key_num_fields = 1,
-       .result_start_idx = 1175,
+       .result_start_idx = 1179,
        .result_bit_size = 70,
        .result_num_fields = 5
        },
@@ -2423,7 +2485,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .tbl_operand = BNXT_ULP_CF_IDX_VF_FUNC_SVIF,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-       .result_start_idx = 1180,
+       .result_start_idx = 1184,
        .result_bit_size = 64,
        .result_num_fields = 8
        },
@@ -2443,7 +2505,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .tbl_operand = BNXT_ULP_RF_IDX_MODIFY_PTR,
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-       .result_start_idx = 1188,
+       .result_start_idx = 1192,
        .result_bit_size = 0,
        .result_num_fields = 0,
        .encap_num_fields = 20
@@ -2465,7 +2527,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 1208,
+       .result_start_idx = 1212,
        .result_bit_size = 128,
        .result_num_fields = 17
        },
@@ -2486,7 +2548,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
        .fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
        .mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-       .result_start_idx = 1225,
+       .result_start_idx = 1229,
        .result_bit_size = 128,
        .result_num_fields = 17
        },
@@ -2507,7 +2569,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_thor_class_tbl_list[] 
= {
        .blob_key_bit_size = 0,
        .key_bit_size = 0,
        .key_num_fields = 2,
-       .result_start_idx = 1242,
+       .result_start_idx = 1246,
        .result_bit_size = 0,
        .result_num_fields = 6
        }
@@ -6759,7 +6821,7 @@ struct bnxt_ulp_mapper_cond_info 
ulp_thor_class_cond_list[] = {
        },
        /* field_cond: class_tid: 1, fkb_select.em_gen_template:956*/
        {
-       .cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_NOT_SET,
+       .cond_opcode = BNXT_ULP_COND_OPC_CF_BIT_IS_SET,
        .cond_operand = BNXT_ULP_CF_BIT_L2_ONLY
        },
        {
@@ -39971,8 +40033,8 @@ struct bnxt_ulp_mapper_field_info 
ulp_thor_class_result_field_list[] = {
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_RF,
        .field_opr1 = {
-       (BNXT_ULP_RF_IDX_RID_1 >> 8) & 0xff,
-       BNXT_ULP_RF_IDX_RID_1 & 0xff}
+       (BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_RID & 0xff}
        },
        {
        .description = "wc_profile_id",
@@ -40750,6 +40812,24 @@ struct bnxt_ulp_mapper_field_info 
ulp_thor_class_result_field_list[] = {
        (BNXT_ULP_RF_IDX_WC_KEY_ID_0 >> 8) & 0xff,
        BNXT_ULP_RF_IDX_WC_KEY_ID_0 & 0xff}
        },
+       {
+       .description = "em_recipe_id",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_EM_RECIPE_ID >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_EM_RECIPE_ID & 0xff}
+       },
+       {
+       .description = "wc_recipe_id",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_WC_RECIPE_ID >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_WC_RECIPE_ID & 0xff}
+       },
        /* class_tid: 1, , table: fkb_select.em_gen_template */
        {
        .description = "l2_cntxt_id.en",
@@ -42763,8 +42843,8 @@ struct bnxt_ulp_mapper_field_info 
ulp_thor_class_result_field_list[] = {
        .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
        .field_src1 = BNXT_ULP_FIELD_SRC_RF,
        .field_opr1 = {
-       (BNXT_ULP_RF_IDX_RID_1 >> 8) & 0xff,
-       BNXT_ULP_RF_IDX_RID_1 & 0xff}
+       (BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_RID & 0xff}
        },
        {
        .description = "wc_profile_id",
@@ -43542,6 +43622,24 @@ struct bnxt_ulp_mapper_field_info 
ulp_thor_class_result_field_list[] = {
        (BNXT_ULP_RF_IDX_WC_KEY_ID_0 >> 8) & 0xff,
        BNXT_ULP_RF_IDX_WC_KEY_ID_0 & 0xff}
        },
+       {
+       .description = "em_recipe_id",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_EM_RECIPE_ID >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_EM_RECIPE_ID & 0xff}
+       },
+       {
+       .description = "wc_recipe_id",
+       .field_bit_size = 16,
+       .field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+       .field_src1 = BNXT_ULP_FIELD_SRC_RF,
+       .field_opr1 = {
+       (BNXT_ULP_RF_IDX_WC_RECIPE_ID >> 8) & 0xff,
+       BNXT_ULP_RF_IDX_WC_RECIPE_ID & 0xff}
+       },
        /* class_tid: 2, , table: fkb_select.em_gen_template */
        {
        .description = "l2_cntxt_id.en",
@@ -48221,6 +48319,12 @@ struct bnxt_ulp_mapper_ident_info 
ulp_thor_class_ident_list[] = {
        .ident_bit_pos = 42
        },
        {
+       .description = "em_recipe_id",
+       .regfile_idx = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
+       .ident_bit_size = 16,
+       .ident_bit_pos = 74
+       },
+       {
        .description = "profile_tcam_index",
        .regfile_idx = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
        .ident_bit_size = 10,
@@ -48238,6 +48342,12 @@ struct bnxt_ulp_mapper_ident_info 
ulp_thor_class_ident_list[] = {
        .ident_bit_size = 8,
        .ident_bit_pos = 58
        },
+       {
+       .description = "wc_recipe_id",
+       .regfile_idx = BNXT_ULP_RF_IDX_WC_RECIPE_ID,
+       .ident_bit_size = 16,
+       .ident_bit_pos = 90
+       },
        /* class_tid: 1, , table: hdr_overlap_cache.overlap_check */
        {
        .description = "wc_key_id",
@@ -48303,6 +48413,12 @@ struct bnxt_ulp_mapper_ident_info 
ulp_thor_class_ident_list[] = {
        .ident_bit_pos = 42
        },
        {
+       .description = "em_recipe_id",
+       .regfile_idx = BNXT_ULP_RF_IDX_EM_RECIPE_ID,
+       .ident_bit_size = 16,
+       .ident_bit_pos = 74
+       },
+       {
        .description = "profile_tcam_index",
        .regfile_idx = BNXT_ULP_RF_IDX_PROFILE_TCAM_INDEX_0,
        .ident_bit_size = 10,
@@ -48320,6 +48436,12 @@ struct bnxt_ulp_mapper_ident_info 
ulp_thor_class_ident_list[] = {
        .ident_bit_size = 8,
        .ident_bit_pos = 58
        },
+       {
+       .description = "wc_recipe_id",
+       .regfile_idx = BNXT_ULP_RF_IDX_WC_RECIPE_ID,
+       .ident_bit_size = 16,
+       .ident_bit_pos = 90
+       },
        /* class_tid: 2, , table: hdr_overlap_cache.overlap_check */
        {
        .description = "wc_key_id",
-- 
2.39.3

Reply via email to