[37/47] net/bnxt: tf_ulp: add track type feature to tables

Message ID 20240830140049.1715230-38-sriharsha.basavapatna@broadcom.com (mailing list archive)
State Superseded
Delegated to: Ajit Khaparde
Headers
Series TruFlow update for Thor2 |

Checks

Context Check Description
ci/checkpatch warning coding style issues

Commit Message

Sriharsha Basavapatna Aug. 30, 2024, 2 p.m. UTC
From: Kishore Padmanabha <kishore.padmanabha@broadcom.com>

Added track type field to the mapper tables so that resources
can be tracked by session id or function id. By default, the track type
is session id unless specified as function id.

This patch also includes a couple of additional changes.

action template consolidation for Thor/Thor2
	Reduced the number of action templates in order to reduce
	duplication and make more permutations of actions easier to
	handle going forward.

Change on GPE flow creation/deletion
	Corrected the tunnel type for GPE flow creation;
	Corrected the port number for GPE flow deletion.

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

- add track type feature to tables
- action template consolidation for Thor/Thor2

Signed-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>
Reviewed-by: Farah Smith <farah.smith@broadcom.com>
Signed-off-by: Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
---
 drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c    |    2 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c            |   34 +
 drivers/net/bnxt/tf_ulp/bnxt_ulp.h            |   15 +
 drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c         |    4 +
 drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c        |    5 +
 .../generic_templates/ulp_template_db_act.c   |  153 +-
 .../generic_templates/ulp_template_db_class.c | 1134 ++-
 .../generic_templates/ulp_template_db_enum.h  |   52 +-
 .../generic_templates/ulp_template_db_tbl.c   |   65 +-
 .../generic_templates/ulp_template_db_tbl.h   |    9 +
 .../ulp_template_db_thor2_act.c               | 6465 ++++++++---------
 .../ulp_template_db_thor2_class.c             |   28 +
 .../ulp_template_db_thor_act.c                | 6425 ++++++----------
 .../ulp_template_db_thor_class.c              | 3925 +++++-----
 .../ulp_template_db_wh_plus_act.c             |  911 ++-
 .../ulp_template_db_wh_plus_class.c           |   29 +
 drivers/net/bnxt/tf_ulp/ulp_mapper.c          |    9 +-
 drivers/net/bnxt/tf_ulp/ulp_mapper.h          |    1 +
 drivers/net/bnxt/tf_ulp/ulp_mapper_tf.c       |    1 +
 drivers/net/bnxt/tf_ulp/ulp_mapper_tfc.c      |    6 +-
 drivers/net/bnxt/tf_ulp/ulp_matcher.c         |    8 +
 drivers/net/bnxt/tf_ulp/ulp_rte_parser.c      |    5 +
 drivers/net/bnxt/tf_ulp/ulp_template_struct.h |    4 +
 23 files changed, 8987 insertions(+), 10303 deletions(-)
  

Patch

diff --git a/drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c b/drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c
index b091c192c2..1817701d15 100644
--- a/drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c
+++ b/drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c
@@ -603,7 +603,7 @@  bnxt_pmd_global_tunnel_set(struct bnxt_ulp_context *ulp_ctx,
 			rc = bnxt_hwrm_tunnel_dst_port_alloc(bp, udp_port,
 							     hwtype);
 		else
-			rc = bnxt_hwrm_tunnel_dst_port_free(bp, port_id,
+			rc = bnxt_hwrm_tunnel_dst_port_free(bp, ludp_port,
 							    hwtype);
 	}
 
diff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c
index d258f51106..2b5f1dc4fd 100644
--- a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c
+++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c
@@ -1127,6 +1127,40 @@  bnxt_ulp_cntxt_fid_get(struct bnxt_ulp_context *ulp, uint16_t *fid)
 	return 0;
 }
 
+void
+bnxt_ulp_cntxt_ptr2_default_class_bits_set(struct bnxt_ulp_context *ulp_ctx,
+					   uint64_t bits)
+{
+	if (!ulp_ctx || !ulp_ctx->cfg_data)
+		return;
+	ulp_ctx->cfg_data->default_class_bits = bits;
+}
+
+uint64_t
+bnxt_ulp_cntxt_ptr2_default_class_bits_get(struct bnxt_ulp_context *ulp_ctx)
+{
+	if (!ulp_ctx || !ulp_ctx->cfg_data)
+		return 0;
+	return ulp_ctx->cfg_data->default_class_bits;
+}
+
+void
+bnxt_ulp_cntxt_ptr2_default_act_bits_set(struct bnxt_ulp_context *ulp_ctx,
+					 uint64_t bits)
+{
+	if (!ulp_ctx || !ulp_ctx->cfg_data)
+		return;
+	ulp_ctx->cfg_data->default_act_bits = bits;
+}
+
+uint64_t
+bnxt_ulp_cntxt_ptr2_default_act_bits_get(struct bnxt_ulp_context *ulp_ctx)
+{
+	if (!ulp_ctx || !ulp_ctx->cfg_data)
+		return 0;
+	return ulp_ctx->cfg_data->default_act_bits;
+}
+
 /*
  * Get the device table entry based on the device id.
  *
diff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp.h b/drivers/net/bnxt/tf_ulp/bnxt_ulp.h
index 4868339478..da5c9bc61a 100644
--- a/drivers/net/bnxt/tf_ulp/bnxt_ulp.h
+++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp.h
@@ -150,6 +150,8 @@  struct bnxt_ulp_data {
 	enum bnxt_ulp_session_type	def_session_type;
 	uint16_t			num_key_recipes_per_dir;
 	uint64_t			feature_bits;
+	uint64_t			default_class_bits;
+	uint64_t			default_act_bits;
 };
 
 enum bnxt_ulp_tfo_type {
@@ -624,4 +626,17 @@  bnxt_ulp_vfr_session_fid_rem(struct bnxt_ulp_context *ulp_ctx,
 int32_t
 bnxt_flow_mtr_init(struct bnxt *bp __rte_unused);
 
+void
+bnxt_ulp_cntxt_ptr2_default_class_bits_set(struct bnxt_ulp_context *ulp_ctx,
+					   uint64_t bits);
+
+uint64_t
+bnxt_ulp_cntxt_ptr2_default_class_bits_get(struct bnxt_ulp_context *ulp_ctx);
+
+void
+bnxt_ulp_cntxt_ptr2_default_act_bits_set(struct bnxt_ulp_context *ulp_ctx,
+					 uint64_t bits);
+uint64_t
+bnxt_ulp_cntxt_ptr2_default_act_bits_get(struct bnxt_ulp_context *ulp_ctx);
+
 #endif /* _BNXT_ULP_H_ */
diff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c b/drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c
index c7a712b8c8..5589e36db4 100644
--- a/drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c
+++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c
@@ -475,6 +475,10 @@  ulp_tf_cntxt_app_caps_init(struct bnxt *bp,
 		bnxt_ulp_max_flow_priority_set(ulp_ctx,
 					       info[i].max_flow_priority);
 		ulp_ctx->cfg_data->feature_bits = info[i].feature_bits;
+		bnxt_ulp_cntxt_ptr2_default_class_bits_set(ulp_ctx,
+							   info[i].default_class_bits);
+		bnxt_ulp_cntxt_ptr2_default_act_bits_set(ulp_ctx,
+							 info[i].default_act_bits);
 	}
 	if (!found) {
 		BNXT_DRV_DBG(ERR, "APP ID %d, Device ID: 0x%x not supported.\n",
diff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c b/drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c
index 42ad944b2c..0f98340564 100644
--- a/drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c
+++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c
@@ -533,6 +533,11 @@  ulp_tfc_cntxt_app_caps_init(struct bnxt *bp, uint8_t app_id, uint32_t dev_id)
 					    "Socket Direct feature is enabled\n");
 			}
 		}
+		ulp_ctx->cfg_data->feature_bits = info[i].feature_bits;
+		bnxt_ulp_cntxt_ptr2_default_class_bits_set(ulp_ctx,
+							   info[i].default_class_bits);
+		bnxt_ulp_cntxt_ptr2_default_act_bits_set(ulp_ctx,
+							 info[i].default_act_bits);
 
 		rc = bnxt_ulp_cntxt_tbl_scope_max_pools_set(ulp_ctx,
 							    info[i].max_pools);
diff --git a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_act.c b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_act.c
index 1288db9974..01fa5a40be 100644
--- a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_act.c
+++ b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_act.c
@@ -12,22 +12,31 @@ 
 struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 	[1] = {
 	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_GENERIC |
 		BNXT_ULP_ACT_BIT_DROP |
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_RSS |
+		BNXT_ULP_ACT_BIT_QUEUE |
 		BNXT_ULP_ACT_BIT_POP_VLAN |
 		BNXT_ULP_ACT_BIT_DEC_TTL |
+		BNXT_ULP_ACT_BIT_SET_MAC_SRC |
+		BNXT_ULP_ACT_BIT_SET_MAC_DST |
+		BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_IPV6_SRC |
+		BNXT_ULP_ACT_BIT_SET_IPV6_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_SRC |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
 		BNXT_ULP_ACT_BIT_VXLAN_DECAP |
 		BNXT_ULP_ACT_BIT_GENEVE_DECAP |
-		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_ACT_BIT_METER |
 		BNXT_ULP_ACT_BIT_SHARED_SAMPLE |
-		BNXT_ULP_ACT_BIT_SET_MAC_SRC |
-		BNXT_ULP_ACT_BIT_SET_MAC_DST |
-		BNXT_ULP_ACT_BIT_MULTIPLE_PORT |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 1
 	},
 	[2] = {
 	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_GENERIC |
 		BNXT_ULP_ACT_BIT_JUMP |
 		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
@@ -35,21 +44,43 @@  struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 	},
 	[3] = {
 	.act_bitmap = { .bits =
-		BNXT_ULP_ACT_BIT_SHARED |
-		BNXT_ULP_ACT_BIT_SAMPLE |
+		BNXT_ULP_ACT_BIT_NON_GENERIC |
+		BNXT_ULP_ACT_BIT_DROP |
+		BNXT_ULP_ACT_BIT_POP_VLAN |
+		BNXT_ULP_ACT_BIT_DEC_TTL |
+		BNXT_ULP_ACT_BIT_VXLAN_DECAP |
+		BNXT_ULP_ACT_BIT_GENEVE_DECAP |
 		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_METER |
+		BNXT_ULP_ACT_BIT_SHARED_SAMPLE |
+		BNXT_ULP_ACT_BIT_SET_MAC_SRC |
+		BNXT_ULP_ACT_BIT_SET_MAC_DST |
+		BNXT_ULP_ACT_BIT_MULTIPLE_PORT |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 2
 	},
 	[4] = {
 	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_NON_GENERIC |
+		BNXT_ULP_ACT_BIT_GENERIC |
+		BNXT_ULP_ACT_BIT_SHARED |
+		BNXT_ULP_ACT_BIT_SAMPLE |
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_FLOW_DIR_BITMASK_ING },
+	.act_tid = 3
+	},
+	[5] = {
+	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_NON_GENERIC |
+		BNXT_ULP_ACT_BIT_GENERIC |
 		BNXT_ULP_ACT_BIT_DELETE |
 		BNXT_ULP_ACT_BIT_SHARED_SAMPLE |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
-	.act_tid = 2
+	.act_tid = 3
 	},
-	[5] = {
+	[6] = {
 	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_NON_GENERIC |
 		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_ACT_BIT_DEC_TTL |
 		BNXT_ULP_ACT_BIT_SHARED_SAMPLE |
@@ -63,72 +94,110 @@  struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_ACT_BIT_SET_TP_SRC |
 		BNXT_ULP_ACT_BIT_SET_TP_DST |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
-	.act_tid = 3
+	.act_tid = 4
 	},
-	[6] = {
+	[7] = {
 	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_NON_GENERIC |
 		BNXT_ULP_ACT_BIT_SHARED_SAMPLE |
 		BNXT_ULP_ACT_BIT_RSS |
 		BNXT_ULP_ACT_BIT_QUEUE |
 		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
-	.act_tid = 4
+	.act_tid = 5
 	},
-	[7] = {
+	[8] = {
 	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_NON_GENERIC |
+		BNXT_ULP_ACT_BIT_GENERIC |
 		BNXT_ULP_ACT_BIT_METER_PROFILE |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
-	.act_tid = 5
+	.act_tid = 6
 	},
-	[8] = {
+	[9] = {
 	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_NON_GENERIC |
+		BNXT_ULP_ACT_BIT_GENERIC |
 		BNXT_ULP_ACT_BIT_SHARED_METER |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
-	.act_tid = 5
+	.act_tid = 6
 	},
-	[9] = {
+	[10] = {
 	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_NON_GENERIC |
+		BNXT_ULP_ACT_BIT_GENERIC |
 		BNXT_ULP_ACT_BIT_DELETE |
 		BNXT_ULP_ACT_BIT_METER_PROFILE |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
-	.act_tid = 5
+	.act_tid = 6
 	},
-	[10] = {
+	[11] = {
 	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_NON_GENERIC |
+		BNXT_ULP_ACT_BIT_GENERIC |
 		BNXT_ULP_ACT_BIT_DELETE |
 		BNXT_ULP_ACT_BIT_SHARED_METER |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
-	.act_tid = 5
+	.act_tid = 6
 	},
-	[11] = {
+	[12] = {
 	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_NON_GENERIC |
+		BNXT_ULP_ACT_BIT_GENERIC |
 		BNXT_ULP_ACT_BIT_UPDATE |
 		BNXT_ULP_ACT_BIT_SHARED_METER |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
-	.act_tid = 5
+	.act_tid = 6
 	},
-	[12] = {
+	[13] = {
 	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_GENERIC |
 		BNXT_ULP_ACT_BIT_DROP |
-		BNXT_ULP_ACT_BIT_SET_VLAN_PCP |
-		BNXT_ULP_ACT_BIT_SET_VLAN_VID |
-		BNXT_ULP_ACT_BIT_PUSH_VLAN |
 		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_ACT_BIT_DEC_TTL |
+		BNXT_ULP_ACT_BIT_VF_TO_VF |
 		BNXT_ULP_ACT_BIT_SHARED_SAMPLE |
-		BNXT_ULP_ACT_BIT_MULTIPLE_PORT |
+		BNXT_ULP_ACT_BIT_SET_MAC_SRC |
+		BNXT_ULP_ACT_BIT_SET_MAC_DST |
+		BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_IPV6_SRC |
+		BNXT_ULP_ACT_BIT_SET_IPV6_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_SRC |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_ACT_BIT_PUSH_VLAN |
+		BNXT_ULP_ACT_BIT_SET_VLAN_PCP |
+		BNXT_ULP_ACT_BIT_SET_VLAN_VID |
+		BNXT_ULP_ACT_BIT_VXLAN_ENCAP |
+		BNXT_ULP_ACT_BIT_GENEVE_ENCAP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
-	.act_tid = 6
+	.act_tid = 7
 	},
-	[13] = {
+	[14] = {
 	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_GENERIC |
 		BNXT_ULP_ACT_BIT_JUMP |
 		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
-	.act_tid = 6
+	.act_tid = 7
 	},
-	[14] = {
+	[15] = {
 	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_NON_GENERIC |
+		BNXT_ULP_ACT_BIT_DROP |
+		BNXT_ULP_ACT_BIT_SET_VLAN_PCP |
+		BNXT_ULP_ACT_BIT_SET_VLAN_VID |
+		BNXT_ULP_ACT_BIT_PUSH_VLAN |
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_DEC_TTL |
+		BNXT_ULP_ACT_BIT_SHARED_SAMPLE |
+		BNXT_ULP_ACT_BIT_MULTIPLE_PORT |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.act_tid = 8
+	},
+	[16] = {
+	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_NON_GENERIC |
 		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_ACT_BIT_SET_MAC_SRC |
 		BNXT_ULP_ACT_BIT_SET_MAC_DST |
@@ -142,10 +211,11 @@  struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_ACT_BIT_SHARED_SAMPLE |
 		BNXT_ULP_ACT_BIT_MULTIPLE_PORT |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
-	.act_tid = 7
+	.act_tid = 9
 	},
-	[15] = {
+	[17] = {
 	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_NON_GENERIC |
 		BNXT_ULP_ACT_BIT_SHARED_SAMPLE |
 		BNXT_ULP_ACT_BIT_MULTIPLE_PORT |
 		BNXT_ULP_ACT_BIT_SET_MAC_SRC |
@@ -154,32 +224,37 @@  struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_ACT_BIT_GENEVE_ENCAP |
 		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
-	.act_tid = 8
+	.act_tid = 10
 	},
-	[16] = {
+	[18] = {
 	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_NON_GENERIC |
 		BNXT_ULP_ACT_BIT_SHARED_SAMPLE |
 		BNXT_ULP_ACT_BIT_MULTIPLE_PORT |
 		BNXT_ULP_ACT_BIT_VF_TO_VF |
 		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
-	.act_tid = 9
+	.act_tid = 11
 	},
-	[17] = {
+	[19] = {
 	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_NON_GENERIC |
+		BNXT_ULP_ACT_BIT_GENERIC |
 		BNXT_ULP_ACT_BIT_SHARED |
 		BNXT_ULP_ACT_BIT_SAMPLE |
 		BNXT_ULP_ACT_BIT_VF_TO_VF |
 		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
-	.act_tid = 10
+	.act_tid = 12
 	},
-	[18] = {
+	[20] = {
 	.act_bitmap = { .bits =
+		BNXT_ULP_ACT_BIT_NON_GENERIC |
+		BNXT_ULP_ACT_BIT_GENERIC |
 		BNXT_ULP_ACT_BIT_DELETE |
 		BNXT_ULP_ACT_BIT_SHARED_SAMPLE |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
-	.act_tid = 10
+	.act_tid = 12
 	}
 };
 
diff --git a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_class.c b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_class.c
index a14c4c2e6f..cf5cfec692 100644
--- a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_class.c
+++ b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_class.c
@@ -5047,15 +5047,742 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	},
 	[126] = {
 	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV6 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A100000000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[8] = 3,
+		[10] = 4,
+		[52] = 5,
+		[54] = 6,
+		[56] = 7,
+		[58] = 8,
+		[60] = 9,
+		[62] = 10,
+		[64] = 11,
+		[66] = 12,
+		[100] = 13,
+		[102] = 14,
+		[104] = 15,
+		[106] = 16,
+		[120] = 17,
+		[121] = 18,
+		[122] = 19,
+		[123] = 20,
+		},
+	},
+	[127] = {
+	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV4 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB006840000000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[8] = 3,
+		[10] = 4,
+		[32] = 5,
+		[34] = 6,
+		[36] = 7,
+		[38] = 8,
+		[40] = 9,
+		[42] = 10,
+		[44] = 11,
+		[46] = 12,
+		[48] = 13,
+		[50] = 14,
+		[100] = 15,
+		[102] = 16,
+		[104] = 17,
+		[106] = 18,
+		[120] = 19,
+		[121] = 20,
+		[122] = 21,
+		[123] = 22,
+		},
+	},
+	[128] = {
+	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV6 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_HDR_BIT_I_ETH |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A170000000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[7] = 21,
+		[8] = 3,
+		[9] = 22,
+		[10] = 4,
+		[11] = 23,
+		[52] = 5,
+		[54] = 6,
+		[56] = 7,
+		[58] = 8,
+		[60] = 9,
+		[62] = 10,
+		[64] = 11,
+		[66] = 12,
+		[100] = 13,
+		[102] = 14,
+		[104] = 15,
+		[106] = 16,
+		[120] = 17,
+		[121] = 18,
+		[122] = 19,
+		[123] = 20,
+		},
+	},
+	[129] = {
+	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV4 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_HDR_BIT_I_ETH |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB00685C000000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[7] = 23,
+		[8] = 3,
+		[9] = 24,
+		[10] = 4,
+		[11] = 25,
+		[32] = 5,
+		[34] = 6,
+		[36] = 7,
+		[38] = 8,
+		[40] = 9,
+		[42] = 10,
+		[44] = 11,
+		[46] = 12,
+		[48] = 13,
+		[50] = 14,
+		[100] = 15,
+		[102] = 16,
+		[104] = 17,
+		[106] = 18,
+		[120] = 19,
+		[121] = 20,
+		[122] = 21,
+		[123] = 22,
+		},
+	},
+	[130] = {
+	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV6 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_HDR_BIT_I_IPV6 |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A105800000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[8] = 3,
+		[10] = 4,
+		[52] = 5,
+		[53] = 21,
+		[54] = 6,
+		[55] = 22,
+		[56] = 7,
+		[57] = 23,
+		[58] = 8,
+		[59] = 24,
+		[60] = 9,
+		[61] = 25,
+		[62] = 10,
+		[63] = 26,
+		[64] = 11,
+		[65] = 27,
+		[66] = 12,
+		[67] = 28,
+		[100] = 13,
+		[102] = 14,
+		[104] = 15,
+		[106] = 16,
+		[120] = 17,
+		[121] = 18,
+		[122] = 19,
+		[123] = 20,
+		},
+	},
+	[131] = {
+	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV4 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_HDR_BIT_I_IPV6 |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB006841600000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[8] = 3,
+		[10] = 4,
+		[32] = 5,
+		[34] = 6,
+		[36] = 7,
+		[38] = 8,
+		[40] = 9,
+		[42] = 10,
+		[44] = 11,
+		[46] = 12,
+		[48] = 13,
+		[50] = 14,
+		[53] = 23,
+		[55] = 24,
+		[57] = 25,
+		[59] = 26,
+		[61] = 27,
+		[63] = 28,
+		[65] = 29,
+		[67] = 30,
+		[100] = 15,
+		[102] = 16,
+		[104] = 17,
+		[106] = 18,
+		[120] = 19,
+		[121] = 20,
+		[122] = 21,
+		[123] = 22,
+		},
+	},
+	[132] = {
+	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV6 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_HDR_BIT_I_IPV4 |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A101600000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[8] = 3,
+		[10] = 4,
+		[33] = 21,
+		[35] = 22,
+		[37] = 23,
+		[39] = 24,
+		[41] = 25,
+		[43] = 26,
+		[45] = 27,
+		[47] = 28,
+		[49] = 29,
+		[51] = 30,
+		[52] = 5,
+		[54] = 6,
+		[56] = 7,
+		[58] = 8,
+		[60] = 9,
+		[62] = 10,
+		[64] = 11,
+		[66] = 12,
+		[100] = 13,
+		[102] = 14,
+		[104] = 15,
+		[106] = 16,
+		[120] = 17,
+		[121] = 18,
+		[122] = 19,
+		[123] = 20,
+		},
+	},
+	[133] = {
+	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV4 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_HDR_BIT_I_IPV4 |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB006840580000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[8] = 3,
+		[10] = 4,
+		[32] = 5,
+		[33] = 23,
+		[34] = 6,
+		[35] = 24,
+		[36] = 7,
+		[37] = 25,
+		[38] = 8,
+		[39] = 26,
+		[40] = 9,
+		[41] = 27,
+		[42] = 10,
+		[43] = 28,
+		[44] = 11,
+		[45] = 29,
+		[46] = 12,
+		[47] = 30,
+		[48] = 13,
+		[49] = 31,
+		[50] = 14,
+		[51] = 32,
+		[100] = 15,
+		[102] = 16,
+		[104] = 17,
+		[106] = 18,
+		[120] = 19,
+		[121] = 20,
+		[122] = 21,
+		[123] = 22,
+		},
+	},
+	[134] = {
+	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV6 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_HDR_BIT_I_ETH |
+		BNXT_ULP_HDR_BIT_I_IPV6 |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A170B00000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[7] = 21,
+		[8] = 3,
+		[9] = 22,
+		[10] = 4,
+		[11] = 23,
+		[52] = 5,
+		[53] = 24,
+		[54] = 6,
+		[55] = 25,
+		[56] = 7,
+		[57] = 26,
+		[58] = 8,
+		[59] = 27,
+		[60] = 9,
+		[61] = 28,
+		[62] = 10,
+		[63] = 29,
+		[64] = 11,
+		[65] = 30,
+		[66] = 12,
+		[67] = 31,
+		[100] = 13,
+		[102] = 14,
+		[104] = 15,
+		[106] = 16,
+		[120] = 17,
+		[121] = 18,
+		[122] = 19,
+		[123] = 20,
+		},
+	},
+	[135] = {
+	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV4 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_HDR_BIT_I_ETH |
+		BNXT_ULP_HDR_BIT_I_IPV6 |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB00685C2C0000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[7] = 23,
+		[8] = 3,
+		[9] = 24,
+		[10] = 4,
+		[11] = 25,
+		[32] = 5,
+		[34] = 6,
+		[36] = 7,
+		[38] = 8,
+		[40] = 9,
+		[42] = 10,
+		[44] = 11,
+		[46] = 12,
+		[48] = 13,
+		[50] = 14,
+		[53] = 26,
+		[55] = 27,
+		[57] = 28,
+		[59] = 29,
+		[61] = 30,
+		[63] = 31,
+		[65] = 32,
+		[67] = 33,
+		[100] = 15,
+		[102] = 16,
+		[104] = 17,
+		[106] = 18,
+		[120] = 19,
+		[121] = 20,
+		[122] = 21,
+		[123] = 22,
+		},
+	},
+	[136] = {
+	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV6 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_HDR_BIT_I_ETH |
+		BNXT_ULP_HDR_BIT_I_IPV4 |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A1702C0000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[7] = 21,
+		[8] = 3,
+		[9] = 22,
+		[10] = 4,
+		[11] = 23,
+		[33] = 24,
+		[35] = 25,
+		[37] = 26,
+		[39] = 27,
+		[41] = 28,
+		[43] = 29,
+		[45] = 30,
+		[47] = 31,
+		[49] = 32,
+		[51] = 33,
+		[52] = 5,
+		[54] = 6,
+		[56] = 7,
+		[58] = 8,
+		[60] = 9,
+		[62] = 10,
+		[64] = 11,
+		[66] = 12,
+		[100] = 13,
+		[102] = 14,
+		[104] = 15,
+		[106] = 16,
+		[120] = 17,
+		[121] = 18,
+		[122] = 19,
+		[123] = 20,
+		},
+	},
+	[137] = {
+	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV4 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_HDR_BIT_I_ETH |
+		BNXT_ULP_HDR_BIT_I_IPV4 |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB00685C0B0000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[7] = 23,
+		[8] = 3,
+		[9] = 24,
+		[10] = 4,
+		[11] = 25,
+		[32] = 5,
+		[33] = 26,
+		[34] = 6,
+		[35] = 27,
+		[36] = 7,
+		[37] = 28,
+		[38] = 8,
+		[39] = 29,
+		[40] = 9,
+		[41] = 30,
+		[42] = 10,
+		[43] = 31,
+		[44] = 11,
+		[45] = 32,
+		[46] = 12,
+		[47] = 33,
+		[48] = 13,
+		[49] = 34,
+		[50] = 14,
+		[51] = 35,
+		[100] = 15,
+		[102] = 16,
+		[104] = 17,
+		[106] = 18,
+		[120] = 19,
+		[121] = 20,
+		[122] = 21,
+		[123] = 22,
+		},
+	},
+	[138] = {
+	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV6 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_HDR_BIT_I_TCP |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A160000000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[8] = 3,
+		[10] = 4,
+		[52] = 5,
+		[54] = 6,
+		[56] = 7,
+		[58] = 8,
+		[60] = 9,
+		[62] = 10,
+		[64] = 11,
+		[66] = 12,
+		[83] = 21,
+		[85] = 22,
+		[87] = 23,
+		[89] = 24,
+		[91] = 25,
+		[93] = 26,
+		[95] = 27,
+		[97] = 28,
+		[99] = 29,
+		[100] = 13,
+		[102] = 14,
+		[104] = 15,
+		[106] = 16,
+		[120] = 17,
+		[121] = 18,
+		[122] = 19,
+		[123] = 20,
+		},
+	},
+	[139] = {
+	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV4 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_HDR_BIT_I_TCP |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB006858000000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[8] = 3,
+		[10] = 4,
+		[32] = 5,
+		[34] = 6,
+		[36] = 7,
+		[38] = 8,
+		[40] = 9,
+		[42] = 10,
+		[44] = 11,
+		[46] = 12,
+		[48] = 13,
+		[50] = 14,
+		[83] = 23,
+		[85] = 24,
+		[87] = 25,
+		[89] = 26,
+		[91] = 27,
+		[93] = 28,
+		[95] = 29,
+		[97] = 30,
+		[99] = 31,
+		[100] = 15,
+		[102] = 16,
+		[104] = 17,
+		[106] = 18,
+		[120] = 19,
+		[121] = 20,
+		[122] = 21,
+		[123] = 22,
+		},
+	},
+	[140] = {
+	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV6 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_HDR_BIT_I_UDP |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A160000000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[8] = 3,
+		[10] = 4,
+		[52] = 5,
+		[54] = 6,
+		[56] = 7,
+		[58] = 8,
+		[60] = 9,
+		[62] = 10,
+		[64] = 11,
+		[66] = 12,
+		[100] = 13,
+		[101] = 21,
+		[102] = 14,
+		[103] = 22,
+		[104] = 15,
+		[105] = 23,
+		[106] = 16,
+		[107] = 24,
+		[120] = 17,
+		[121] = 18,
+		[122] = 19,
+		[123] = 20,
+		},
+	},
+	[141] = {
+	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV4 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_HDR_BIT_I_UDP |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB006858000000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[8] = 3,
+		[10] = 4,
+		[32] = 5,
+		[34] = 6,
+		[36] = 7,
+		[38] = 8,
+		[40] = 9,
+		[42] = 10,
+		[44] = 11,
+		[46] = 12,
+		[48] = 13,
+		[50] = 14,
+		[100] = 15,
+		[101] = 23,
+		[102] = 16,
+		[103] = 24,
+		[104] = 17,
+		[105] = 25,
+		[106] = 18,
+		[107] = 26,
+		[120] = 19,
+		[121] = 20,
+		[122] = 21,
+		[123] = 22,
+		},
+	},
+	[142] = {
+	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
 		BNXT_ULP_HDR_BIT_O_IPV6 |
 		BNXT_ULP_HDR_BIT_O_UDP |
 		BNXT_ULP_HDR_BIT_T_VXLAN |
 		BNXT_ULP_HDR_BIT_I_ETH |
+		BNXT_ULP_HDR_BIT_I_TCP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00A170000000000,
+	.field_opt_bitmap = 0xB01A17C000000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
@@ -5075,6 +5802,15 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[62] = 10,
 		[64] = 11,
 		[66] = 12,
+		[83] = 24,
+		[85] = 25,
+		[87] = 26,
+		[89] = 27,
+		[91] = 28,
+		[93] = 29,
+		[95] = 30,
+		[97] = 31,
+		[99] = 32,
 		[100] = 13,
 		[102] = 14,
 		[104] = 15,
@@ -5085,7 +5821,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[127] = {
+	[143] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -5093,9 +5829,10 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		BNXT_ULP_HDR_BIT_O_UDP |
 		BNXT_ULP_HDR_BIT_T_VXLAN |
 		BNXT_ULP_HDR_BIT_I_ETH |
+		BNXT_ULP_HDR_BIT_I_TCP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00285C000000000,
+	.field_opt_bitmap = 0xB00685F000000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
@@ -5117,6 +5854,15 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[46] = 12,
 		[48] = 13,
 		[50] = 14,
+		[83] = 26,
+		[85] = 27,
+		[87] = 28,
+		[89] = 29,
+		[91] = 30,
+		[93] = 31,
+		[95] = 32,
+		[97] = 33,
+		[99] = 34,
 		[100] = 15,
 		[102] = 16,
 		[104] = 17,
@@ -5127,7 +5873,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[128] = {
+	[144] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -5135,10 +5881,10 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		BNXT_ULP_HDR_BIT_O_UDP |
 		BNXT_ULP_HDR_BIT_T_VXLAN |
 		BNXT_ULP_HDR_BIT_I_ETH |
-		BNXT_ULP_HDR_BIT_I_IPV6 |
+		BNXT_ULP_HDR_BIT_I_UDP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00A170B00000000,
+	.field_opt_bitmap = 0xB01A17C000000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
@@ -5151,21 +5897,119 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[10] = 4,
 		[11] = 23,
 		[52] = 5,
-		[53] = 24,
 		[54] = 6,
-		[55] = 25,
 		[56] = 7,
-		[57] = 26,
 		[58] = 8,
-		[59] = 27,
 		[60] = 9,
-		[61] = 28,
 		[62] = 10,
-		[63] = 29,
 		[64] = 11,
-		[65] = 30,
 		[66] = 12,
-		[67] = 31,
+		[100] = 13,
+		[101] = 24,
+		[102] = 14,
+		[103] = 25,
+		[104] = 15,
+		[105] = 26,
+		[106] = 16,
+		[107] = 27,
+		[120] = 17,
+		[121] = 18,
+		[122] = 19,
+		[123] = 20,
+		},
+	},
+	[145] = {
+	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV4 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_HDR_BIT_I_ETH |
+		BNXT_ULP_HDR_BIT_I_UDP |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB00685F000000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[7] = 23,
+		[8] = 3,
+		[9] = 24,
+		[10] = 4,
+		[11] = 25,
+		[32] = 5,
+		[34] = 6,
+		[36] = 7,
+		[38] = 8,
+		[40] = 9,
+		[42] = 10,
+		[44] = 11,
+		[46] = 12,
+		[48] = 13,
+		[50] = 14,
+		[100] = 15,
+		[101] = 26,
+		[102] = 16,
+		[103] = 27,
+		[104] = 17,
+		[105] = 28,
+		[106] = 18,
+		[107] = 29,
+		[120] = 19,
+		[121] = 20,
+		[122] = 21,
+		[123] = 22,
+		},
+	},
+	[146] = {
+	.app_id = 0,
+	.hdr_bitmap = { .bits =
+		BNXT_ULP_HDR_BIT_O_ETH |
+		BNXT_ULP_HDR_BIT_O_IPV6 |
+		BNXT_ULP_HDR_BIT_O_UDP |
+		BNXT_ULP_HDR_BIT_T_VXLAN |
+		BNXT_ULP_HDR_BIT_I_IPV6 |
+		BNXT_ULP_HDR_BIT_I_TCP |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.field_man_bitmap = 0x0,
+	.field_opt_bitmap = 0xB01A105E00000000,
+	.field_exclude_bitmap = 0x0,
+	.class_tid = 2,
+	.flow_pattern_id = 1,
+	.field_list = {
+		[1] = 1,
+		[6] = 2,
+		[8] = 3,
+		[10] = 4,
+		[52] = 5,
+		[53] = 21,
+		[54] = 6,
+		[55] = 22,
+		[56] = 7,
+		[57] = 23,
+		[58] = 8,
+		[59] = 24,
+		[60] = 9,
+		[61] = 25,
+		[62] = 10,
+		[63] = 26,
+		[64] = 11,
+		[65] = 27,
+		[66] = 12,
+		[67] = 28,
+		[83] = 29,
+		[85] = 30,
+		[87] = 31,
+		[89] = 32,
+		[91] = 33,
+		[93] = 34,
+		[95] = 35,
+		[97] = 36,
+		[99] = 37,
 		[100] = 13,
 		[102] = 14,
 		[104] = 15,
@@ -5176,29 +6020,26 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[129] = {
+	[147] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
 		BNXT_ULP_HDR_BIT_O_IPV4 |
 		BNXT_ULP_HDR_BIT_O_UDP |
 		BNXT_ULP_HDR_BIT_T_VXLAN |
-		BNXT_ULP_HDR_BIT_I_ETH |
 		BNXT_ULP_HDR_BIT_I_IPV6 |
+		BNXT_ULP_HDR_BIT_I_TCP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00285C2C0000000,
+	.field_opt_bitmap = 0xB006841780000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
 	.field_list = {
 		[1] = 1,
 		[6] = 2,
-		[7] = 23,
 		[8] = 3,
-		[9] = 24,
 		[10] = 4,
-		[11] = 25,
 		[32] = 5,
 		[34] = 6,
 		[36] = 7,
@@ -5209,14 +6050,23 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[46] = 12,
 		[48] = 13,
 		[50] = 14,
-		[53] = 26,
-		[55] = 27,
-		[57] = 28,
-		[59] = 29,
-		[61] = 30,
-		[63] = 31,
-		[65] = 32,
-		[67] = 33,
+		[53] = 23,
+		[55] = 24,
+		[57] = 25,
+		[59] = 26,
+		[61] = 27,
+		[63] = 28,
+		[65] = 29,
+		[67] = 30,
+		[83] = 31,
+		[85] = 32,
+		[87] = 33,
+		[89] = 34,
+		[91] = 35,
+		[93] = 36,
+		[95] = 37,
+		[97] = 38,
+		[99] = 39,
 		[100] = 15,
 		[102] = 16,
 		[104] = 17,
@@ -5227,39 +6077,36 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[130] = {
+	[148] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
 		BNXT_ULP_HDR_BIT_O_IPV6 |
 		BNXT_ULP_HDR_BIT_O_UDP |
 		BNXT_ULP_HDR_BIT_T_VXLAN |
-		BNXT_ULP_HDR_BIT_I_ETH |
 		BNXT_ULP_HDR_BIT_I_IPV4 |
+		BNXT_ULP_HDR_BIT_I_TCP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00A1702C0000000,
+	.field_opt_bitmap = 0xB01A101780000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
 	.field_list = {
 		[1] = 1,
 		[6] = 2,
-		[7] = 21,
 		[8] = 3,
-		[9] = 22,
 		[10] = 4,
-		[11] = 23,
-		[33] = 24,
-		[35] = 25,
-		[37] = 26,
-		[39] = 27,
-		[41] = 28,
-		[43] = 29,
-		[45] = 30,
-		[47] = 31,
-		[49] = 32,
-		[51] = 33,
+		[33] = 21,
+		[35] = 22,
+		[37] = 23,
+		[39] = 24,
+		[41] = 25,
+		[43] = 26,
+		[45] = 27,
+		[47] = 28,
+		[49] = 29,
+		[51] = 30,
 		[52] = 5,
 		[54] = 6,
 		[56] = 7,
@@ -5268,6 +6115,15 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[62] = 10,
 		[64] = 11,
 		[66] = 12,
+		[83] = 31,
+		[85] = 32,
+		[87] = 33,
+		[89] = 34,
+		[91] = 35,
+		[93] = 36,
+		[95] = 37,
+		[97] = 38,
+		[99] = 39,
 		[100] = 13,
 		[102] = 14,
 		[104] = 15,
@@ -5278,49 +6134,55 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[131] = {
+	[149] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
 		BNXT_ULP_HDR_BIT_O_IPV4 |
 		BNXT_ULP_HDR_BIT_O_UDP |
 		BNXT_ULP_HDR_BIT_T_VXLAN |
-		BNXT_ULP_HDR_BIT_I_ETH |
 		BNXT_ULP_HDR_BIT_I_IPV4 |
+		BNXT_ULP_HDR_BIT_I_TCP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00285C0B0000000,
+	.field_opt_bitmap = 0xB0068405E0000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
 	.field_list = {
 		[1] = 1,
 		[6] = 2,
-		[7] = 23,
 		[8] = 3,
-		[9] = 24,
 		[10] = 4,
-		[11] = 25,
 		[32] = 5,
-		[33] = 26,
+		[33] = 23,
 		[34] = 6,
-		[35] = 27,
+		[35] = 24,
 		[36] = 7,
-		[37] = 28,
+		[37] = 25,
 		[38] = 8,
-		[39] = 29,
+		[39] = 26,
 		[40] = 9,
-		[41] = 30,
+		[41] = 27,
 		[42] = 10,
-		[43] = 31,
+		[43] = 28,
 		[44] = 11,
-		[45] = 32,
+		[45] = 29,
 		[46] = 12,
-		[47] = 33,
+		[47] = 30,
 		[48] = 13,
-		[49] = 34,
+		[49] = 31,
 		[50] = 14,
-		[51] = 35,
+		[51] = 32,
+		[83] = 33,
+		[85] = 34,
+		[87] = 35,
+		[89] = 36,
+		[91] = 37,
+		[93] = 38,
+		[95] = 39,
+		[97] = 40,
+		[99] = 41,
 		[100] = 15,
 		[102] = 16,
 		[104] = 17,
@@ -5331,79 +6193,76 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[132] = {
+	[150] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
 		BNXT_ULP_HDR_BIT_O_IPV6 |
 		BNXT_ULP_HDR_BIT_O_UDP |
 		BNXT_ULP_HDR_BIT_T_VXLAN |
-		BNXT_ULP_HDR_BIT_I_ETH |
-		BNXT_ULP_HDR_BIT_I_TCP |
+		BNXT_ULP_HDR_BIT_I_IPV6 |
+		BNXT_ULP_HDR_BIT_I_UDP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00A17C000000000,
+	.field_opt_bitmap = 0xB01A105E00000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
 	.field_list = {
 		[1] = 1,
 		[6] = 2,
-		[7] = 21,
 		[8] = 3,
-		[9] = 22,
 		[10] = 4,
-		[11] = 23,
 		[52] = 5,
+		[53] = 21,
 		[54] = 6,
+		[55] = 22,
 		[56] = 7,
+		[57] = 23,
 		[58] = 8,
+		[59] = 24,
 		[60] = 9,
+		[61] = 25,
 		[62] = 10,
+		[63] = 26,
 		[64] = 11,
+		[65] = 27,
 		[66] = 12,
-		[83] = 24,
-		[85] = 25,
-		[87] = 26,
-		[89] = 27,
-		[91] = 28,
-		[93] = 29,
-		[95] = 30,
-		[97] = 31,
-		[99] = 32,
+		[67] = 28,
 		[100] = 13,
+		[101] = 29,
 		[102] = 14,
+		[103] = 30,
 		[104] = 15,
+		[105] = 31,
 		[106] = 16,
+		[107] = 32,
 		[120] = 17,
 		[121] = 18,
 		[122] = 19,
 		[123] = 20,
 		},
 	},
-	[133] = {
+	[151] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
 		BNXT_ULP_HDR_BIT_O_IPV4 |
 		BNXT_ULP_HDR_BIT_O_UDP |
 		BNXT_ULP_HDR_BIT_T_VXLAN |
-		BNXT_ULP_HDR_BIT_I_ETH |
-		BNXT_ULP_HDR_BIT_I_TCP |
+		BNXT_ULP_HDR_BIT_I_IPV6 |
+		BNXT_ULP_HDR_BIT_I_UDP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00285F000000000,
+	.field_opt_bitmap = 0xB006841780000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
 	.field_list = {
 		[1] = 1,
 		[6] = 2,
-		[7] = 23,
 		[8] = 3,
-		[9] = 24,
 		[10] = 4,
-		[11] = 25,
 		[32] = 5,
 		[34] = 6,
 		[36] = 7,
@@ -5414,48 +6273,58 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[46] = 12,
 		[48] = 13,
 		[50] = 14,
-		[83] = 26,
-		[85] = 27,
-		[87] = 28,
-		[89] = 29,
-		[91] = 30,
-		[93] = 31,
-		[95] = 32,
-		[97] = 33,
-		[99] = 34,
+		[53] = 23,
+		[55] = 24,
+		[57] = 25,
+		[59] = 26,
+		[61] = 27,
+		[63] = 28,
+		[65] = 29,
+		[67] = 30,
 		[100] = 15,
+		[101] = 31,
 		[102] = 16,
+		[103] = 32,
 		[104] = 17,
+		[105] = 33,
 		[106] = 18,
+		[107] = 34,
 		[120] = 19,
 		[121] = 20,
 		[122] = 21,
 		[123] = 22,
 		},
 	},
-	[134] = {
+	[152] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
 		BNXT_ULP_HDR_BIT_O_IPV6 |
 		BNXT_ULP_HDR_BIT_O_UDP |
 		BNXT_ULP_HDR_BIT_T_VXLAN |
-		BNXT_ULP_HDR_BIT_I_ETH |
+		BNXT_ULP_HDR_BIT_I_IPV4 |
 		BNXT_ULP_HDR_BIT_I_UDP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00A17C000000000,
+	.field_opt_bitmap = 0xB01A101780000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
 	.field_list = {
 		[1] = 1,
 		[6] = 2,
-		[7] = 21,
 		[8] = 3,
-		[9] = 22,
 		[10] = 4,
-		[11] = 23,
+		[33] = 21,
+		[35] = 22,
+		[37] = 23,
+		[39] = 24,
+		[41] = 25,
+		[43] = 26,
+		[45] = 27,
+		[47] = 28,
+		[49] = 29,
+		[51] = 30,
 		[52] = 5,
 		[54] = 6,
 		[56] = 7,
@@ -5465,67 +6334,74 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[64] = 11,
 		[66] = 12,
 		[100] = 13,
-		[101] = 24,
+		[101] = 31,
 		[102] = 14,
-		[103] = 25,
+		[103] = 32,
 		[104] = 15,
-		[105] = 26,
+		[105] = 33,
 		[106] = 16,
-		[107] = 27,
+		[107] = 34,
 		[120] = 17,
 		[121] = 18,
 		[122] = 19,
 		[123] = 20,
 		},
 	},
-	[135] = {
+	[153] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
 		BNXT_ULP_HDR_BIT_O_IPV4 |
 		BNXT_ULP_HDR_BIT_O_UDP |
 		BNXT_ULP_HDR_BIT_T_VXLAN |
-		BNXT_ULP_HDR_BIT_I_ETH |
+		BNXT_ULP_HDR_BIT_I_IPV4 |
 		BNXT_ULP_HDR_BIT_I_UDP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00285F000000000,
+	.field_opt_bitmap = 0xB0068405E0000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
 	.field_list = {
 		[1] = 1,
 		[6] = 2,
-		[7] = 23,
 		[8] = 3,
-		[9] = 24,
 		[10] = 4,
-		[11] = 25,
 		[32] = 5,
+		[33] = 23,
 		[34] = 6,
+		[35] = 24,
 		[36] = 7,
+		[37] = 25,
 		[38] = 8,
+		[39] = 26,
 		[40] = 9,
+		[41] = 27,
 		[42] = 10,
+		[43] = 28,
 		[44] = 11,
+		[45] = 29,
 		[46] = 12,
+		[47] = 30,
 		[48] = 13,
+		[49] = 31,
 		[50] = 14,
+		[51] = 32,
 		[100] = 15,
-		[101] = 26,
+		[101] = 33,
 		[102] = 16,
-		[103] = 27,
+		[103] = 34,
 		[104] = 17,
-		[105] = 28,
+		[105] = 35,
 		[106] = 18,
-		[107] = 29,
+		[107] = 36,
 		[120] = 19,
 		[121] = 20,
 		[122] = 21,
 		[123] = 22,
 		},
 	},
-	[136] = {
+	[154] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -5537,7 +6413,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		BNXT_ULP_HDR_BIT_I_TCP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00A170BC0000000,
+	.field_opt_bitmap = 0xB01A170BC0000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
@@ -5584,7 +6460,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[137] = {
+	[155] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -5596,7 +6472,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		BNXT_ULP_HDR_BIT_I_TCP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00285C2F0000000,
+	.field_opt_bitmap = 0xB00685C2F0000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
@@ -5645,7 +6521,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[138] = {
+	[156] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -5657,7 +6533,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		BNXT_ULP_HDR_BIT_I_TCP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00A1702F0000000,
+	.field_opt_bitmap = 0xB01A1702F0000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
@@ -5706,7 +6582,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[139] = {
+	[157] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -5718,7 +6594,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		BNXT_ULP_HDR_BIT_I_TCP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00285C0BC000000,
+	.field_opt_bitmap = 0xB00685C0BC000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
@@ -5769,7 +6645,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[140] = {
+	[158] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -5781,7 +6657,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		BNXT_ULP_HDR_BIT_I_UDP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00A170BC0000000,
+	.field_opt_bitmap = 0xB01A170BC0000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
@@ -5823,7 +6699,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[141] = {
+	[159] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -5835,7 +6711,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		BNXT_ULP_HDR_BIT_I_UDP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00285C2F0000000,
+	.field_opt_bitmap = 0xB00685C2F0000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
@@ -5879,7 +6755,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[142] = {
+	[160] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -5891,7 +6767,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		BNXT_ULP_HDR_BIT_I_UDP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00A1702F0000000,
+	.field_opt_bitmap = 0xB01A1702F0000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
@@ -5935,7 +6811,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 20,
 		},
 	},
-	[143] = {
+	[161] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
@@ -5947,7 +6823,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		BNXT_ULP_HDR_BIT_I_UDP |
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.field_man_bitmap = 0x0,
-	.field_opt_bitmap = 0xB00285C0BC000000,
+	.field_opt_bitmap = 0xB00685C0BC000000,
 	.field_exclude_bitmap = 0x0,
 	.class_tid = 2,
 	.flow_pattern_id = 1,
@@ -5993,7 +6869,7 @@  struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 		[123] = 22,
 		},
 	},
-	[144] = {
+	[162] = {
 	.app_id = 0,
 	.hdr_bitmap = { .bits =
 		BNXT_ULP_HDR_BIT_O_ETH |
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 ee1d861dd1..896b3e2802 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
@@ -11,8 +11,8 @@ 
 #define BNXT_ULP_LOG2_MAX_NUM_DEV 2.32192809488736
 #define BNXT_ULP_GEN_TBL_MAX_SZ 56
 #define BNXT_ULP_ALLOCATOR_TBL_MAX_SZ 2
-#define BNXT_ULP_CLASS_MATCH_LIST_MAX_SZ 145
-#define BNXT_ULP_ACT_MATCH_LIST_MAX_SZ 19
+#define BNXT_ULP_CLASS_MATCH_LIST_MAX_SZ 163
+#define BNXT_ULP_ACT_MATCH_LIST_MAX_SZ 21
 #define BNXT_ULP_APP_RESOURCE_RESV_LIST_MAX_SZ 0
 #define BNXT_ULP_GLB_RESOURCE_TBL_MAX_SZ 57
 #define BNXT_ULP_APP_GLB_RESOURCE_TBL_MAX_SZ 0
@@ -35,9 +35,9 @@ 
 #define ULP_THOR_CLASS_TBL_LIST_SIZE 175
 #define ULP_THOR_CLASS_KEY_INFO_LIST_SIZE 717
 #define ULP_THOR_CLASS_KEY_EXT_LIST_SIZE 628
-#define ULP_THOR_CLASS_IDENT_LIST_SIZE 53
+#define ULP_THOR_CLASS_IDENT_LIST_SIZE 52
 #define ULP_THOR_CLASS_RESULT_FIELD_LIST_SIZE 1280
-#define ULP_THOR_CLASS_COND_LIST_SIZE 3828
+#define ULP_THOR_CLASS_COND_LIST_SIZE 3834
 #define ULP_THOR_CLASS_COND_OPER_LIST_SIZE 15
 #define ULP_THOR2_CLASS_TMPL_LIST_SIZE 5
 #define ULP_THOR2_CLASS_TBL_LIST_SIZE 125
@@ -47,29 +47,29 @@ 
 #define ULP_THOR2_CLASS_RESULT_FIELD_LIST_SIZE 1516
 #define ULP_THOR2_CLASS_COND_LIST_SIZE 3302
 #define ULP_THOR2_CLASS_COND_OPER_LIST_SIZE 7
-#define ULP_WH_PLUS_ACT_TMPL_LIST_SIZE 11
-#define ULP_WH_PLUS_ACT_TBL_LIST_SIZE 154
+#define ULP_WH_PLUS_ACT_TMPL_LIST_SIZE 13
+#define ULP_WH_PLUS_ACT_TBL_LIST_SIZE 155
 #define ULP_WH_PLUS_ACT_KEY_INFO_LIST_SIZE 49
 #define ULP_WH_PLUS_ACT_KEY_EXT_LIST_SIZE 0
 #define ULP_WH_PLUS_ACT_IDENT_LIST_SIZE 20
 #define ULP_WH_PLUS_ACT_RESULT_FIELD_LIST_SIZE 995
 #define ULP_WH_PLUS_ACT_COND_LIST_SIZE 134
 #define ULP_WH_PLUS_ACT_COND_OPER_LIST_SIZE 6
-#define ULP_THOR_ACT_TMPL_LIST_SIZE 11
-#define ULP_THOR_ACT_TBL_LIST_SIZE 117
-#define ULP_THOR_ACT_KEY_INFO_LIST_SIZE 88
-#define ULP_THOR_ACT_KEY_EXT_LIST_SIZE 0
-#define ULP_THOR_ACT_IDENT_LIST_SIZE 24
-#define ULP_THOR_ACT_RESULT_FIELD_LIST_SIZE 644
-#define ULP_THOR_ACT_COND_LIST_SIZE 111
-#define ULP_THOR_ACT_COND_OPER_LIST_SIZE 2
-#define ULP_THOR2_ACT_TMPL_LIST_SIZE 11
-#define ULP_THOR2_ACT_TBL_LIST_SIZE 109
-#define ULP_THOR2_ACT_KEY_INFO_LIST_SIZE 64
-#define ULP_THOR2_ACT_KEY_EXT_LIST_SIZE 0
-#define ULP_THOR2_ACT_IDENT_LIST_SIZE 37
-#define ULP_THOR2_ACT_RESULT_FIELD_LIST_SIZE 591
-#define ULP_THOR2_ACT_COND_LIST_SIZE 86
+#define ULP_THOR_ACT_TMPL_LIST_SIZE 13
+#define ULP_THOR_ACT_TBL_LIST_SIZE 104
+#define ULP_THOR_ACT_KEY_INFO_LIST_SIZE 83
+#define ULP_THOR_ACT_KEY_EXT_LIST_SIZE 5
+#define ULP_THOR_ACT_IDENT_LIST_SIZE 19
+#define ULP_THOR_ACT_RESULT_FIELD_LIST_SIZE 416
+#define ULP_THOR_ACT_COND_LIST_SIZE 90
+#define ULP_THOR_ACT_COND_OPER_LIST_SIZE 0
+#define ULP_THOR2_ACT_TMPL_LIST_SIZE 13
+#define ULP_THOR2_ACT_TBL_LIST_SIZE 110
+#define ULP_THOR2_ACT_KEY_INFO_LIST_SIZE 79
+#define ULP_THOR2_ACT_KEY_EXT_LIST_SIZE 4
+#define ULP_THOR2_ACT_IDENT_LIST_SIZE 39
+#define ULP_THOR2_ACT_RESULT_FIELD_LIST_SIZE 441
+#define ULP_THOR2_ACT_COND_LIST_SIZE 97
 #define ULP_THOR2_ACT_COND_OPER_LIST_SIZE 0
 
 enum bnxt_ulp_act_bit {
@@ -115,7 +115,9 @@  enum bnxt_ulp_act_bit {
 	BNXT_ULP_ACT_BIT_GENEVE_DECAP        = 0x0000008000000000,
 	BNXT_ULP_ACT_BIT_GENEVE_ENCAP        = 0x0000010000000000,
 	BNXT_ULP_ACT_BIT_MULTIPLE_PORT       = 0x0000020000000000,
-	BNXT_ULP_ACT_BIT_LAST                = 0x0000040000000000
+	BNXT_ULP_ACT_BIT_NON_GENERIC         = 0x0000040000000000,
+	BNXT_ULP_ACT_BIT_GENERIC             = 0x0000080000000000,
+	BNXT_ULP_ACT_BIT_LAST                = 0x0000100000000000
 };
 
 enum bnxt_ulp_cf_bit {
@@ -177,7 +179,9 @@  enum bnxt_ulp_hdr_bit {
 	BNXT_ULP_HDR_BIT_L2_ONLY             = 0x0000000080000000,
 	BNXT_ULP_HDR_BIT_O_L4_FLOW           = 0x0000000100000000,
 	BNXT_ULP_HDR_BIT_I_L4_FLOW           = 0x0000000200000000,
-	BNXT_ULP_HDR_BIT_LAST                = 0x0000000400000000
+	BNXT_ULP_HDR_BIT_NON_GENERIC         = 0x0000000400000000,
+	BNXT_ULP_HDR_BIT_GENERIC             = 0x0000000800000000,
+	BNXT_ULP_HDR_BIT_LAST                = 0x0000001000000000
 };
 
 enum bnxt_ulp_accept_opc {
@@ -928,7 +932,7 @@  enum bnxt_ulp_feature_bit {
 };
 
 enum bnxt_ulp_flow_dir_bitmask {
-	BNXT_ULP_FLOW_DIR_BITMASK_ING = 0x0000000000000000,
+	BNXT_ULP_FLOW_DIR_BITMASK_ING = 0x4000000000000000,
 	BNXT_ULP_FLOW_DIR_BITMASK_EGR = 0x8000000000000000
 };
 
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 daf649ab29..4afc41a466 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
@@ -1423,13 +1423,13 @@  const struct bnxt_ulp_generic_tbl_params ulp_thor2_generic_tbl_params[] = {
 		BNXT_ULP_DIRECTION_EGRESS] = {
 	.name = "EGRESS GENERIC_TABLE_SHARED_MIRROR",
 	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_KEY_LIST,
-	.result_num_entries = 0,
-	.result_num_bytes = 0,
-	.key_num_bytes = 0,
+	.result_num_entries = 32,
+	.result_num_bytes = 5,
+	.key_num_bytes = 1,
 	.partial_key_num_bytes = 0,
 	.num_buckets = 0,
 	.hash_tbl_entries = 0,
-	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE
 	},
 	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_MAC_ADDR_CACHE << 1 |
 		BNXT_ULP_DIRECTION_INGRESS] = {
@@ -1591,13 +1591,13 @@  const struct bnxt_ulp_generic_tbl_params ulp_thor2_generic_tbl_params[] = {
 		BNXT_ULP_DIRECTION_EGRESS] = {
 	.name = "EGRESS GENERIC_TABLE_VXLAN_ENCAP_IPV6_REC_CACHE",
 	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
-	.result_num_entries = 0,
-	.result_num_bytes = 0,
-	.key_num_bytes = 0,
+	.result_num_entries = 4096,
+	.result_num_bytes = 8,
+	.key_num_bytes = 30,
 	.partial_key_num_bytes = 0,
-	.num_buckets = 0,
-	.hash_tbl_entries = 0,
-	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
+	.num_buckets = 8,
+	.hash_tbl_entries = 16384,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE
 	},
 	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SOURCE_PROPERTY_IPV6_CACHE << 1 |
 		BNXT_ULP_DIRECTION_INGRESS] = {
@@ -1939,25 +1939,25 @@  const struct bnxt_ulp_generic_tbl_params ulp_thor2_generic_tbl_params[] = {
 		BNXT_ULP_DIRECTION_INGRESS] = {
 	.name = "INGRESS GENERIC_TABLE_FLOW_CHAIN_CACHE",
 	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
-	.result_num_entries = 0,
-	.result_num_bytes = 0,
-	.key_num_bytes = 0,
+	.result_num_entries = 32,
+	.result_num_bytes = 8,
+	.key_num_bytes = 4,
 	.partial_key_num_bytes = 0,
-	.num_buckets = 0,
-	.hash_tbl_entries = 0,
-	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
+	.num_buckets = 4,
+	.hash_tbl_entries = 128,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE
 	},
 	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_FLOW_CHAIN_CACHE << 1 |
 		BNXT_ULP_DIRECTION_EGRESS] = {
 	.name = "EGRESS GENERIC_TABLE_FLOW_CHAIN_CACHE",
 	.gen_tbl_type = BNXT_ULP_GEN_TBL_TYPE_HASH_LIST,
-	.result_num_entries = 0,
-	.result_num_bytes = 0,
-	.key_num_bytes = 0,
+	.result_num_entries = 32,
+	.result_num_bytes = 8,
+	.key_num_bytes = 4,
 	.partial_key_num_bytes = 0,
-	.num_buckets = 0,
-	.hash_tbl_entries = 0,
-	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE,
+	.num_buckets = 4,
+	.hash_tbl_entries = 128,
+	.result_byte_order = BNXT_ULP_BYTE_ORDER_LE
 	},
 	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_FLOW_CHAIN_L2_CNTXT << 1 |
 		BNXT_ULP_DIRECTION_INGRESS] = {
@@ -2063,12 +2063,12 @@  const struct bnxt_ulp_allocator_tbl_params ulp_thor2_allocator_tbl_params[] = {
 	[BNXT_ULP_RESOURCE_SUB_TYPE_ALLOCATOR_TABLE_JUMP_INDEX << 1 |
 		BNXT_ULP_DIRECTION_INGRESS] = {
 	.name = "INGRESS ALLOCATOR_TABLE_JUMP_INDEX",
-	.num_entries = 0,
+	.num_entries = 32,
 	},
 	[BNXT_ULP_RESOURCE_SUB_TYPE_ALLOCATOR_TABLE_JUMP_INDEX << 1 |
 		BNXT_ULP_DIRECTION_EGRESS] = {
 	.name = "EGRESS ALLOCATOR_TABLE_JUMP_INDEX",
-	.num_entries = 0,
+	.num_entries = 32,
 	}
 };
 
@@ -2099,6 +2099,8 @@  const struct bnxt_ulp_template_device_tbls ulp_template_wh_plus_tbls[] = {
 	.tbl_list_size           = ULP_WH_PLUS_ACT_TBL_LIST_SIZE,
 	.key_info_list           = ulp_wh_plus_act_key_info_list,
 	.key_info_list_size      = ULP_WH_PLUS_ACT_KEY_INFO_LIST_SIZE,
+	.key_ext_list            = ulp_wh_plus_act_key_ext_list,
+	.key_ext_list_size       = ULP_WH_PLUS_ACT_KEY_EXT_LIST_SIZE,
 	.ident_list              = ulp_wh_plus_act_ident_list,
 	.ident_list_size         = ULP_WH_PLUS_ACT_IDENT_LIST_SIZE,
 	.cond_list               = ulp_wh_plus_act_cond_list,
@@ -2137,6 +2139,8 @@  const struct bnxt_ulp_template_device_tbls ulp_template_thor_tbls[] = {
 	.tbl_list_size           = ULP_THOR_ACT_TBL_LIST_SIZE,
 	.key_info_list           = ulp_thor_act_key_info_list,
 	.key_info_list_size      = ULP_THOR_ACT_KEY_INFO_LIST_SIZE,
+	.key_ext_list            = ulp_thor_act_key_ext_list,
+	.key_ext_list_size       = ULP_THOR_ACT_KEY_EXT_LIST_SIZE,
 	.ident_list              = ulp_thor_act_ident_list,
 	.ident_list_size         = ULP_THOR_ACT_IDENT_LIST_SIZE,
 	.cond_list               = ulp_thor_act_cond_list,
@@ -2175,6 +2179,8 @@  const struct bnxt_ulp_template_device_tbls ulp_template_thor2_tbls[] = {
 	.tbl_list_size           = ULP_THOR2_ACT_TBL_LIST_SIZE,
 	.key_info_list           = ulp_thor2_act_key_info_list,
 	.key_info_list_size      = ULP_THOR2_ACT_KEY_INFO_LIST_SIZE,
+	.key_ext_list            = ulp_thor2_act_key_ext_list,
+	.key_ext_list_size       = ULP_THOR2_ACT_KEY_EXT_LIST_SIZE,
 	.ident_list              = ulp_thor2_act_ident_list,
 	.ident_list_size         = ULP_THOR2_ACT_IDENT_LIST_SIZE,
 	.cond_list               = ulp_thor2_act_cond_list,
@@ -2344,7 +2350,9 @@  struct bnxt_ulp_app_capabilities_info ulp_app_cap_info_list[] = {
 	.min_flow_priority       = 65535,
 	.max_flow_priority       = 0,
 	.vxlan_port              = 4789,
-	.vxlan_ip_port           = 0
+	.vxlan_ip_port           = 0,
+	.default_class_bits      = 0,
+	.default_act_bits        = BNXT_ULP_ACT_BIT_NON_GENERIC
 	},
 	{
 	.app_id                  = 0,
@@ -2357,7 +2365,8 @@  struct bnxt_ulp_app_capabilities_info ulp_app_cap_info_list[] = {
 	.vxlan_port              = 0,
 	.vxlan_ip_port           = 0,
 	.num_key_recipes_per_dir = 256,
-	.feature_bits            = BNXT_ULP_FEATURE_BIT_MULTI_TUNNEL_FLOW
+	.default_class_bits      = 0,
+	.default_act_bits        = BNXT_ULP_ACT_BIT_GENERIC
 	},
 	{
 	.app_id                  = 0,
@@ -2378,7 +2387,9 @@  struct bnxt_ulp_app_capabilities_info ulp_app_cap_info_list[] = {
 	.em_rx_key_max_sz        = 112,
 	.em_tx_key_max_sz        = 112,
 	.pbl_page_sz_in_bytes    = 4096,
-	.num_key_recipes_per_dir = 256
+	.num_key_recipes_per_dir = 256,
+	.default_class_bits      = 0,
+	.default_act_bits        = BNXT_ULP_ACT_BIT_GENERIC
 	}
 };
 
diff --git a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.h b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.h
index d6f4089b6b..e29273dd4c 100644
--- a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.h
+++ b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.h
@@ -33,6 +33,9 @@  extern struct bnxt_ulp_mapper_tmpl_info ulp_wh_plus_act_tmpl_list[];
 
 extern struct bnxt_ulp_mapper_tbl_info ulp_wh_plus_act_tbl_list[];
 
+extern struct
+bnxt_ulp_mapper_field_info ulp_wh_plus_act_key_ext_list[];
+
 extern struct
 bnxt_ulp_mapper_field_info ulp_wh_plus_act_result_field_list[];
 
@@ -109,6 +112,9 @@  extern struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[];
 
 extern struct bnxt_ulp_mapper_ident_info ulp_thor_act_ident_list[];
 
+extern struct
+bnxt_ulp_mapper_field_info ulp_thor_act_key_ext_list[];
+
 extern struct
 bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[];
 
@@ -158,6 +164,9 @@  extern struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[];
 extern struct
 bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[];
 
+extern struct
+bnxt_ulp_mapper_field_info ulp_thor2_act_key_ext_list[];
+
 extern struct
 bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[];
 
diff --git a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor2_act.c b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor2_act.c
index e41a80ac78..e233486870 100644
--- a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor2_act.c
+++ b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor2_act.c
@@ -13,106 +13,230 @@  struct bnxt_ulp_mapper_tmpl_info ulp_thor2_act_tmpl_list[] = {
 	/* act_tid: 1, ingress */
 	[1] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
-	.num_tbls = 16,
+	.num_tbls = 24,
 	.start_tbl_idx = 0,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
 		.cond_start_idx = 0,
-		.cond_nums = 4 }
+		.cond_nums = 2 }
 	},
 	/* act_tid: 2, ingress */
 	[2] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
-	.num_tbls = 12,
-	.start_tbl_idx = 16,
+	.num_tbls = 1,
+	.start_tbl_idx = 24,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
-		.cond_start_idx = 19,
+		.cond_start_idx = 24,
 		.cond_nums = 0 }
 	},
 	/* act_tid: 3, ingress */
 	[3] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
-	.num_tbls = 9,
-	.start_tbl_idx = 28,
+	.num_tbls = 12,
+	.start_tbl_idx = 25,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
-		.cond_start_idx = 23,
+		.cond_start_idx = 24,
 		.cond_nums = 0 }
 	},
 	/* act_tid: 4, ingress */
 	[4] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
-	.num_tbls = 7,
+	.num_tbls = 1,
 	.start_tbl_idx = 37,
 	.reject_info = {
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
 		.cond_start_idx = 28,
-		.cond_nums = 1 }
+		.cond_nums = 0 }
 	},
 	/* act_tid: 5, ingress */
 	[5] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
-	.num_tbls = 19,
-	.start_tbl_idx = 44,
+	.num_tbls = 1,
+	.start_tbl_idx = 38,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
-		.cond_start_idx = 33,
+		.cond_start_idx = 28,
 		.cond_nums = 0 }
 	},
-	/* act_tid: 6, egress */
+	/* act_tid: 6, ingress */
 	[6] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
-	.num_tbls = 6,
-	.start_tbl_idx = 63,
+	.num_tbls = 19,
+	.start_tbl_idx = 39,
 	.reject_info = {
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
-		.cond_start_idx = 48,
-		.cond_nums = 4 }
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+		.cond_start_idx = 28,
+		.cond_nums = 0 }
 	},
 	/* act_tid: 7, egress */
 	[7] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
-	.num_tbls = 7,
-	.start_tbl_idx = 69,
+	.num_tbls = 42,
+	.start_tbl_idx = 58,
 	.reject_info = {
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 54,
-		.cond_nums = 1 }
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
+		.cond_start_idx = 43,
+		.cond_nums = 2 }
 	},
 	/* act_tid: 8, egress */
 	[8] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
-	.num_tbls = 21,
-	.start_tbl_idx = 76,
+	.num_tbls = 1,
+	.start_tbl_idx = 100,
 	.reject_info = {
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 58,
-		.cond_nums = 2 }
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+		.cond_start_idx = 92,
+		.cond_nums = 0 }
 	},
 	/* act_tid: 9, egress */
 	[9] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
-	.num_tbls = 6,
-	.start_tbl_idx = 97,
+	.num_tbls = 1,
+	.start_tbl_idx = 101,
 	.reject_info = {
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
-		.cond_start_idx = 78,
-		.cond_nums = 2 }
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+		.cond_start_idx = 92,
+		.cond_nums = 0 }
 	},
 	/* act_tid: 10, egress */
 	[10] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
-	.num_tbls = 6,
+	.num_tbls = 1,
+	.start_tbl_idx = 102,
+	.reject_info = {
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+		.cond_start_idx = 92,
+		.cond_nums = 0 }
+	},
+	/* act_tid: 11, egress */
+	[11] = {
+	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
+	.num_tbls = 1,
 	.start_tbl_idx = 103,
+	.reject_info = {
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+		.cond_start_idx = 92,
+		.cond_nums = 0 }
+	},
+	/* act_tid: 12, egress */
+	[12] = {
+	.device_name = BNXT_ULP_DEVICE_ID_THOR2,
+	.num_tbls = 6,
+	.start_tbl_idx = 104,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
-		.cond_start_idx = 81,
+		.cond_start_idx = 92,
 		.cond_nums = 4 }
 	}
 };
 
 struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
+	{ /* act_tid: 1, , table: flow_chain_cache.rd */
+	.description = "flow_chain_cache.rd",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_FLOW_CHAIN_CACHE,
+	.direction = TF_DIR_RX,
+	.true_message = "Reject due to unsupported jump action.",
+	.execute_info = {
+		.cond_true_goto  = 1023,
+		.cond_false_goto = 5,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 2,
+		.cond_nums = 1 },
+	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+	.key_start_idx = 0,
+	.blob_key_bit_size = 32,
+	.key_bit_size = 32,
+	.key_num_fields = 1,
+	.ident_start_idx = 0,
+	.ident_nums = 1
+	},
+	{ /* act_tid: 1, , table: control.flow_chain */
+	.description = "control.flow_chain",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_RX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 4,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 3,
+		.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
+	},
+	{ /* act_tid: 1, , table: jump_index_table.alloc */
+	.description = "jump_index_table.alloc",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_ALLOCATOR_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_ALLOCATOR_TABLE_JUMP_INDEX,
+	.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 = 4,
+		.cond_nums = 0 },
+	.tbl_opcode = BNXT_ULP_ALLOC_TBL_OPC_ALLOC,
+	.tbl_operand = BNXT_ULP_RF_IDX_JUMP_META_IDX,
+	.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 = 0,
+	.result_bit_size = 0,
+	.result_num_fields = 0
+	},
+	{ /* act_tid: 1, , table: control.metadata_cal */
+	.description = "control.metadata_cal",
+	.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 = 4,
+		.cond_nums = 0 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+	.func_info = {
+		.func_opc = BNXT_ULP_FUNC_OPC_BIT_OR,
+		.func_oper_size = 16,
+		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
+		.func_opr1 = BNXT_ULP_RF_IDX_JUMP_META_IDX,
+		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
+		.func_opr2 = ULP_THOR2_SYM_CHAIN_META_VAL,
+		.func_dst_opr = BNXT_ULP_RF_IDX_JUMP_META }
+	},
+	{ /* act_tid: 1, , table: flow_chain_cache.write */
+	.description = "flow_chain_cache.write",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_FLOW_CHAIN_CACHE,
+	.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 = 4,
+		.cond_nums = 0 },
+	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
+	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+	.key_start_idx = 1,
+	.blob_key_bit_size = 32,
+	.key_bit_size = 32,
+	.key_num_fields = 1,
+	.result_start_idx = 0,
+	.result_bit_size = 64,
+	.result_num_fields = 2
+	},
 	{ /* act_tid: 1, , table: shared_meter_tbl_cache.rd */
 	.description = "shared_meter_tbl_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
@@ -129,17 +253,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 0,
+	.key_start_idx = 2,
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.ident_start_idx = 0,
+	.ident_start_idx = 1,
 	.ident_nums = 1
 	},
 	{ /* act_tid: 1, , table: control.meter_chk */
 	.description = "control.meter_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
+	.true_message = "Reject due to unknown meter.",
 	.execute_info = {
 		.cond_true_goto  = 1023,
 		.cond_false_goto = 1,
@@ -166,17 +291,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 1,
+	.key_start_idx = 3,
 	.blob_key_bit_size = 5,
 	.key_bit_size = 5,
 	.key_num_fields = 1,
-	.ident_start_idx = 1,
+	.ident_start_idx = 2,
 	.ident_nums = 1
 	},
 	{ /* act_tid: 1, , table: control.mirror */
 	.description = "control.mirror",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
+	.true_message = "Reject due to non-existent handle",
 	.execute_info = {
 		.cond_true_goto  = 1023,
 		.cond_false_goto = 1,
@@ -186,43 +312,59 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 1, , table: control.check_mods */
-	.description = "control.check_mods",
+	{ /* act_tid: 1, , table: control.do_mod */
+	.description = "control.do_mod",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
-		.cond_true_goto  = 4,
-		.cond_false_goto = 1,
+		.cond_true_goto  = 1,
+		.cond_false_goto = 4,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
 		.cond_start_idx = 8,
-		.cond_nums = 3 },
+		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
-	},
-	{ /* act_tid: 1, , table: mod_record.ing_no_ttl */
-	.description = "mod_record.ing_no_ttl",
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+	.func_info = {
+		.func_opc = BNXT_ULP_FUNC_OPC_BIT_AND,
+		.func_src1 = BNXT_ULP_FUNC_SRC_ACTION_BITMAP,
+		.func_opr1 = BNXT_ULP_FUNC_SRC_ACTION_BITMAP,
+		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
+		.func_opr2 = BNXT_ULP_ACT_BIT_DEC_TTL |
+			BNXT_ULP_ACT_BIT_SET_MAC_SRC |
+			BNXT_ULP_ACT_BIT_SET_MAC_DST |
+			BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
+			BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+			BNXT_ULP_ACT_BIT_SET_IPV6_SRC |
+			BNXT_ULP_ACT_BIT_SET_IPV6_DST |
+			BNXT_ULP_ACT_BIT_SET_TP_SRC |
+			BNXT_ULP_ACT_BIT_SET_TP_DST |
+			BNXT_ULP_ACT_BIT_JUMP,
+		.func_dst_opr = BNXT_ULP_RF_IDX_RF_0 }
+	},
+	{ /* act_tid: 1, , table: mod_record.ttl_0 */
+	.description = "mod_record.ttl_0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
 	.direction = TF_DIR_RX,
 	.execute_info = {
-		.cond_true_goto  = 1,
+		.cond_true_goto  = 2,
 		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
-		.cond_start_idx = 11,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 9,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 0,
+	.result_start_idx = 2,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
-	.encap_num_fields = 18
+	.encap_num_fields = 36
 	},
-	{ /* act_tid: 1, , table: mod_record.ing_ttl */
-	.description = "mod_record.ing_ttl",
+	{ /* act_tid: 1, , table: mod_record.non_ttl_0 */
+	.description = "mod_record.non_ttl_0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -232,16 +374,16 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 12,
+		.cond_start_idx = 10,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 18,
+	.result_start_idx = 38,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
-	.encap_num_fields = 26
+	.encap_num_fields = 28
 	},
 	{ /* act_tid: 1, , table: control.mod_handle_to_offset */
 	.description = "control.mod_handle_to_offset",
@@ -251,7 +393,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 13,
+		.cond_start_idx = 11,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -273,17 +415,17 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 4,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
-		.cond_start_idx = 13,
+		.cond_start_idx = 11,
 		.cond_nums = 2 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 2,
+	.key_start_idx = 4,
 	.blob_key_bit_size = 19,
 	.key_bit_size = 19,
 	.key_num_fields = 2,
-	.ident_start_idx = 2,
+	.ident_start_idx = 3,
 	.ident_nums = 2
 	},
 	{ /* act_tid: 1, , table: control.tunnel_cache_check_act */
@@ -294,7 +436,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 3,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 15,
+		.cond_start_idx = 13,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
@@ -310,14 +452,14 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 16,
+		.cond_start_idx = 14,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_STAT_HNDL_F1,
 	.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 = 44,
+	.result_start_idx = 66,
 	.result_bit_size = 128,
 	.result_num_fields = 2
 	},
@@ -329,7 +471,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 16,
+		.cond_start_idx = 14,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -350,16 +492,16 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
+		.cond_false_goto = 2,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 16,
-		.cond_nums = 2 },
+		.cond_start_idx = 14,
+		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_STAT_HNDL,
 	.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 = 46,
+	.result_start_idx = 68,
 	.result_bit_size = 128,
 	.result_num_fields = 2
 	},
@@ -371,7 +513,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 18,
+		.cond_start_idx = 15,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -383,6 +525,60 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_opr2 = 8,
 		.func_dst_opr = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 }
 	},
+	{ /* act_tid: 1, , table: control.queue_and_rss_test */
+	.description = "control.queue_and_rss_test",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_RX,
+	.true_message = "Reject due to both queue and rss set",
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 15,
+		.cond_nums = 2 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
+	{ /* act_tid: 1, , table: vnic_interface_rss_config.0 */
+	.description = "vnic_interface_rss_config.0",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_VNIC_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_VNIC_TABLE_RSS,
+	.direction = TF_DIR_RX,
+	.execute_info = {
+		.cond_true_goto  = 2,
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 17,
+		.cond_nums = 1 },
+	.tbl_opcode = BNXT_ULP_VNIC_TBL_OPC_ALLOC_WR_REGFILE,
+	.tbl_operand = BNXT_ULP_RF_IDX_RSS_VNIC,
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+	.result_start_idx = 70,
+	.result_bit_size = 0,
+	.result_num_fields = 0
+	},
+	{ /* act_tid: 1, , table: vnic_interface_queue_config.0 */
+	.description = "vnic_interface_queue_config.0",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_VNIC_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_VNIC_TABLE_QUEUE,
+	.direction = TF_DIR_RX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 18,
+		.cond_nums = 1 },
+	.tbl_opcode = BNXT_ULP_VNIC_TBL_OPC_ALLOC_WR_REGFILE,
+	.tbl_operand = BNXT_ULP_RF_IDX_RSS_VNIC,
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+	.result_start_idx = 70,
+	.result_bit_size = 0,
+	.result_num_fields = 0
+	},
 	{ /* act_tid: 1, , table: cmm_full_act_record.0 */
 	.description = "cmm_full_act_record.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
@@ -392,16 +588,16 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 0,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 18,
-		.cond_nums = 1 },
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 19,
+		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_ACT_HNDL,
 	.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 = 48,
+	.result_start_idx = 70,
 	.result_bit_size = 192,
 	.result_num_fields = 18
 	},
@@ -413,7 +609,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 0,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 19,
+		.cond_start_idx = 24,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -425,7 +621,21 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_opr2 = 32,
 		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR }
 	},
-	{ /* act_tid: 2, , table: control.delete_chk */
+	{ /* act_tid: 2, , table: control.reject */
+	.description = "control.reject",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_RX,
+	.true_message = "Thor 2 not supporting non-generic template",
+	.execute_info = {
+		.cond_true_goto  = 1023,
+		.cond_false_goto = 0,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 24,
+		.cond_nums = 0 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
+	{ /* act_tid: 3, , table: control.delete_chk */
 	.description = "control.delete_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -433,12 +643,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 4,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 19,
+		.cond_start_idx = 24,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 2, , table: shared_mirror_record.del_chk */
+	{ /* act_tid: 3, , table: shared_mirror_record.del_chk */
 	.description = "shared_mirror_record.del_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_MIRROR,
@@ -449,21 +659,21 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 20,
+		.cond_start_idx = 25,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
 	.ref_cnt_opcode = BNXT_ULP_REF_CNT_OPC_NOP,
-	.key_start_idx = 4,
+	.key_start_idx = 6,
 	.blob_key_bit_size = 5,
 	.key_bit_size = 5,
 	.key_num_fields = 1,
-	.ident_start_idx = 4,
+	.ident_start_idx = 5,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 2, , table: control.mirror_del_exist_chk */
+	{ /* act_tid: 3, , table: control.mirror_del_exist_chk */
 	.description = "control.mirror_del_exist_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -471,12 +681,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 20,
+		.cond_start_idx = 25,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 2, , table: control.mirror_ref_cnt_chk */
+	{ /* act_tid: 3, , table: control.mirror_ref_cnt_chk */
 	.description = "control.mirror_ref_cnt_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -484,7 +694,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 21,
+		.cond_start_idx = 26,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_DELETE_RID_REGFILE,
@@ -497,7 +707,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_opr2 = 1,
 		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
-	{ /* act_tid: 2, , table: control.create */
+	{ /* act_tid: 3, , table: control.create */
 	.description = "control.create",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -505,13 +715,13 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 22,
+		.cond_start_idx = 27,
 		.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
 	},
-	{ /* act_tid: 2, , table: mirror_tbl.alloc */
+	{ /* act_tid: 3, , table: mirror_tbl.alloc */
 	.description = "mirror_tbl.alloc",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_MIRROR,
@@ -522,7 +732,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 22,
+		.cond_start_idx = 27,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_MIRROR_PTR_0,
@@ -530,11 +740,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_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 = 66,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 88,
 	.result_bit_size = 128,
 	.result_num_fields = 12
 	},
-	{ /* act_tid: 2, , table: cmm_stat_record.0 */
+	{ /* act_tid: 3, , table: cmm_stat_record.0 */
 	.description = "cmm_stat_record.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_STAT,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
@@ -545,7 +756,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 22,
+		.cond_start_idx = 27,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_STAT_HNDL,
@@ -553,11 +764,11 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_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 = 78,
+	.result_start_idx = 100,
 	.result_bit_size = 128,
 	.result_num_fields = 2
 	},
-	{ /* act_tid: 2, , table: control.stat_handle_to_offset */
+	{ /* act_tid: 3, , table: control.stat_handle_to_offset */
 	.description = "control.stat_handle_to_offset",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -565,7 +776,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 23,
+		.cond_start_idx = 28,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -577,7 +788,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_opr2 = 8,
 		.func_dst_opr = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 }
 	},
-	{ /* act_tid: 2, , table: cmm_full_act_record.0 */
+	{ /* act_tid: 3, , table: cmm_full_act_record.0 */
 	.description = "cmm_full_act_record.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
@@ -588,7 +799,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 23,
+		.cond_start_idx = 28,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_ACT_HNDL,
@@ -596,11 +807,11 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_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 = 80,
+	.result_start_idx = 102,
 	.result_bit_size = 192,
 	.result_num_fields = 18
 	},
-	{ /* act_tid: 2, , table: control.act_handle_to_offset */
+	{ /* act_tid: 3, , table: control.act_handle_to_offset */
 	.description = "control.act_handle_to_offset",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -608,7 +819,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 23,
+		.cond_start_idx = 28,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -620,7 +831,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_opr2 = 32,
 		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR }
 	},
-	{ /* act_tid: 2, , table: mirror_tbl.wr */
+	{ /* act_tid: 3, , table: mirror_tbl.wr */
 	.description = "mirror_tbl.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_MIRROR,
@@ -631,18 +842,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 23,
+		.cond_start_idx = 28,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_MIRROR_PTR_0,
 	.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 = 98,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 120,
 	.result_bit_size = 128,
 	.result_num_fields = 12
 	},
-	{ /* act_tid: 2, , table: shared_mirror_record.wr */
+	{ /* act_tid: 3, , table: shared_mirror_record.wr */
 	.description = "shared_mirror_record.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_MIRROR,
@@ -653,7 +865,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 0,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 23,
+		.cond_start_idx = 28,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
@@ -661,525 +873,228 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.ref_cnt_opcode = BNXT_ULP_REF_CNT_OPC_INC,
-	.key_start_idx = 5,
+	.key_start_idx = 7,
 	.blob_key_bit_size = 5,
 	.key_bit_size = 5,
 	.key_num_fields = 1,
-	.result_start_idx = 110,
+	.result_start_idx = 132,
 	.result_bit_size = 37,
 	.result_num_fields = 2
 	},
-	{ /* act_tid: 3, , table: shared_mirror_record.rd */
-	.description = "shared_mirror_record.rd",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
-	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR,
+	{ /* act_tid: 4, , table: control.reject */
+	.description = "control.reject",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
+	.true_message = "Thor 2 not supporting non-generic template",
 	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 2,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 23,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
-	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+		.cond_true_goto  = 1023,
+		.cond_false_goto = 0,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 28,
+		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 6,
-	.blob_key_bit_size = 5,
-	.key_bit_size = 5,
-	.key_num_fields = 1,
-	.ident_start_idx = 5,
-	.ident_nums = 1
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 3, , table: control.mirror */
-	.description = "control.mirror",
+	{ /* act_tid: 5, , table: control.reject */
+	.description = "control.reject",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
+	.true_message = "Thor 2 not supporting non-generic template",
 	.execute_info = {
 		.cond_true_goto  = 1023,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 24,
-		.cond_nums = 1 },
+		.cond_false_goto = 0,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 28,
+		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 3, , table: mod_record.ing_no_ttl */
-	.description = "mod_record.ing_no_ttl",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
+	{ /* act_tid: 6, , table: control.create_check */
+	.description = "control.create_check",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
+		.cond_false_goto = 10,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 25,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
+		.cond_start_idx = 28,
+		.cond_nums = 2 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 112,
-	.result_bit_size = 0,
-	.result_num_fields = 0,
-	.encap_num_fields = 24
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 3, , table: mod_record.ing_ttl */
-	.description = "mod_record.ing_ttl",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
+	{ /* act_tid: 6, , table: meter_profile_tbl_cache.rd */
+	.description = "meter_profile_tbl_cache.rd",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_METER_PROFILE_TBL_CACHE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
+		.cond_false_goto = 3,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 26,
+		.cond_start_idx = 30,
 		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 136,
-	.result_bit_size = 0,
-	.result_num_fields = 0,
-	.encap_num_fields = 32
-	},
-	{ /* act_tid: 3, , table: control.mod_handle_to_offset */
-	.description = "control.mod_handle_to_offset",
-	.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 = 27,
-		.cond_nums = 0 },
+	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.func_info = {
-		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
-		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
-		.func_opr1 = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
-		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
-		.func_opr2 = 8,
-		.func_dst_opr = BNXT_ULP_RF_IDX_MODIFY_PTR }
+	.ref_cnt_opcode = BNXT_ULP_REF_CNT_OPC_NOP,
+	.key_start_idx = 8,
+	.blob_key_bit_size = 32,
+	.key_bit_size = 32,
+	.key_num_fields = 1,
+	.ident_start_idx = 6,
+	.ident_nums = 0
 	},
-	{ /* act_tid: 3, , table: cmm_stat_record.0 */
-	.description = "cmm_stat_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_STAT,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
+	{ /* act_tid: 6, , table: control.shared_meter_profile_0 */
+	.description = "control.shared_meter_profile_0",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 2,
+		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 27,
+		.cond_start_idx = 31,
 		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_CMM_STAT_HNDL,
 	.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 = 168,
-	.result_bit_size = 128,
-	.result_num_fields = 2
+	.fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
+	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
-	{ /* act_tid: 3, , table: control.stat_handle_to_offset */
-	.description = "control.stat_handle_to_offset",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	{ /* act_tid: 6, , table: meter_profile_tbl_cache.wr */
+	.description = "meter_profile_tbl_cache.wr",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+	.resource_type = TF_TBL_TYPE_METER_PROF,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_METER_PROFILE_TBL_CACHE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
-		.cond_true_goto  = 1,
+		.cond_true_goto  = 0,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 28,
+		.cond_start_idx = 32,
 		.cond_nums = 0 },
+	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
+	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.func_info = {
-		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
-		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
-		.func_opr1 = BNXT_ULP_RF_IDX_CMM_STAT_HNDL,
-		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
-		.func_opr2 = 8,
-		.func_dst_opr = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 }
+	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
+	.fdb_operand = BNXT_ULP_RF_IDX_RID,
+	.key_start_idx = 9,
+	.blob_key_bit_size = 32,
+	.key_bit_size = 32,
+	.key_num_fields = 1,
+	.result_start_idx = 134,
+	.result_bit_size = 97,
+	.result_num_fields = 12
 	},
-	{ /* act_tid: 3, , table: cmm_full_act_record.0 */
-	.description = "cmm_full_act_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
+	{ /* act_tid: 6, , table: shared_meter_tbl_cache.rd */
+	.description = "shared_meter_tbl_cache.rd",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_METER_TBL_CACHE,
 	.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 = 28,
-		.cond_nums = 0 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_CMM_ACT_HNDL,
+		.cond_false_goto = 1023,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 32,
+		.cond_nums = 1 },
+	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.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 = 170,
-	.result_bit_size = 192,
-	.result_num_fields = 18
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+	.ref_cnt_opcode = BNXT_ULP_REF_CNT_OPC_NOP,
+	.key_start_idx = 10,
+	.blob_key_bit_size = 32,
+	.key_bit_size = 32,
+	.key_num_fields = 1,
+	.ident_start_idx = 6,
+	.ident_nums = 0
 	},
-	{ /* act_tid: 3, , table: control.act_handle_to_offset */
-	.description = "control.act_handle_to_offset",
+	{ /* act_tid: 6, , table: control.meter_created_chk */
+	.description = "control.meter_created_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
-		.cond_true_goto  = 0,
-		.cond_false_goto = 0,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 28,
-		.cond_nums = 0 },
+		.cond_true_goto  = 1,
+		.cond_false_goto = 1023,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 33,
+		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.func_info = {
-		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
-		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
-		.func_opr1 = BNXT_ULP_RF_IDX_CMM_ACT_HNDL,
-		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
-		.func_opr2 = 32,
-		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR }
+	.fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
+	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
-	{ /* act_tid: 4, , table: shared_mirror_record.rd */
-	.description = "shared_mirror_record.rd",
+	{ /* act_tid: 6, , table: meter_profile_tbl_cache.rd2 */
+	.description = "meter_profile_tbl_cache.rd2",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
-	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
 	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR,
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_METER_PROFILE_TBL_CACHE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 2,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 29,
-		.cond_nums = 1 },
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 34,
+		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
-	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 7,
-	.blob_key_bit_size = 5,
-	.key_bit_size = 5,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
+	.fdb_operand = BNXT_ULP_RF_IDX_RID,
+	.key_start_idx = 11,
+	.blob_key_bit_size = 32,
+	.key_bit_size = 32,
 	.key_num_fields = 1,
 	.ident_start_idx = 6,
-	.ident_nums = 1
+	.ident_nums = 11
 	},
-	{ /* act_tid: 4, , table: control.mirror */
-	.description = "control.mirror",
+	{ /* act_tid: 6, , table: control.shared_meter_profile_chk */
+	.description = "control.shared_meter_profile_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1023,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 30,
+		.cond_start_idx = 34,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 4, , table: vnic_interface_rss_config.0 */
-	.description = "vnic_interface_rss_config.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_VNIC_TABLE,
+	{ /* act_tid: 6, , table: meter_tbl.0 */
+	.description = "meter_tbl.0",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+	.resource_type = CFA_RSUBTYPE_IDX_TBL_METER_INST,
 	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_VNIC_TABLE_RSS,
+		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 31,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_VNIC_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_RSS_VNIC,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 35,
+		.cond_nums = 0 },
+	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
+	.tbl_operand = BNXT_ULP_RF_IDX_METER_PTR_0,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 188,
-	.result_bit_size = 0,
-	.result_num_fields = 0
+	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
+	.fdb_operand = BNXT_ULP_RF_IDX_RID,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 146,
+	.result_bit_size = 128,
+	.result_num_fields = 18
 	},
-	{ /* act_tid: 4, , table: cmm_stat_record.0 */
-	.description = "cmm_stat_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_STAT,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
+	{ /* act_tid: 6, , table: shared_meter_tbl_cache.wr */
+	.description = "shared_meter_tbl_cache.wr",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 2,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 32,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_CMM_STAT_HNDL,
-	.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 = 188,
-	.result_bit_size = 128,
-	.result_num_fields = 2
-	},
-	{ /* act_tid: 4, , table: control.stat_handle_to_offset */
-	.description = "control.stat_handle_to_offset",
-	.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 = 33,
-		.cond_nums = 0 },
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.func_info = {
-		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
-		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
-		.func_opr1 = BNXT_ULP_RF_IDX_CMM_STAT_HNDL,
-		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
-		.func_opr2 = 8,
-		.func_dst_opr = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 }
-	},
-	{ /* act_tid: 4, , table: cmm_full_act_record.0 */
-	.description = "cmm_full_act_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
-	.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 = 33,
-		.cond_nums = 0 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_CMM_ACT_HNDL,
-	.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 = 190,
-	.result_bit_size = 192,
-	.result_num_fields = 18
-	},
-	{ /* act_tid: 4, , table: control.act_handle_to_offset */
-	.description = "control.act_handle_to_offset",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 0,
-		.cond_false_goto = 0,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 33,
-		.cond_nums = 0 },
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.func_info = {
-		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
-		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
-		.func_opr1 = BNXT_ULP_RF_IDX_CMM_ACT_HNDL,
-		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
-		.func_opr2 = 32,
-		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR }
-	},
-	{ /* act_tid: 5, , table: control.create_check */
-	.description = "control.create_check",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 10,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 33,
-		.cond_nums = 2 },
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
-	},
-	{ /* act_tid: 5, , table: meter_profile_tbl_cache.rd */
-	.description = "meter_profile_tbl_cache.rd",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_METER_PROFILE_TBL_CACHE,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 3,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 35,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
-	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.ref_cnt_opcode = BNXT_ULP_REF_CNT_OPC_NOP,
-	.key_start_idx = 8,
-	.blob_key_bit_size = 32,
-	.key_bit_size = 32,
-	.key_num_fields = 1,
-	.ident_start_idx = 7,
-	.ident_nums = 0
-	},
-	{ /* act_tid: 5, , table: control.shared_meter_profile_0 */
-	.description = "control.shared_meter_profile_0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 1023,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 36,
-		.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
-	},
-	{ /* act_tid: 5, , table: meter_profile_tbl_cache.wr */
-	.description = "meter_profile_tbl_cache.wr",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
-	.resource_type = TF_TBL_TYPE_METER_PROF,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_METER_PROFILE_TBL_CACHE,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 0,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 37,
-		.cond_nums = 0 },
-	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
-	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
-	.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,
-	.key_start_idx = 9,
-	.blob_key_bit_size = 32,
-	.key_bit_size = 32,
-	.key_num_fields = 1,
-	.result_start_idx = 208,
-	.result_bit_size = 97,
-	.result_num_fields = 12
-	},
-	{ /* act_tid: 5, , table: shared_meter_tbl_cache.rd */
-	.description = "shared_meter_tbl_cache.rd",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_METER_TBL_CACHE,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 1023,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 37,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
-	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.ref_cnt_opcode = BNXT_ULP_REF_CNT_OPC_NOP,
-	.key_start_idx = 10,
-	.blob_key_bit_size = 32,
-	.key_bit_size = 32,
-	.key_num_fields = 1,
-	.ident_start_idx = 7,
-	.ident_nums = 0
-	},
-	{ /* act_tid: 5, , table: control.meter_created_chk */
-	.description = "control.meter_created_chk",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 1023,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 38,
-		.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
-	},
-	{ /* act_tid: 5, , table: meter_profile_tbl_cache.rd2 */
-	.description = "meter_profile_tbl_cache.rd2",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_METER_PROFILE_TBL_CACHE,
-	.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 = 39,
-		.cond_nums = 0 },
-	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
-	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
-	.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,
-	.key_start_idx = 11,
-	.blob_key_bit_size = 32,
-	.key_bit_size = 32,
-	.key_num_fields = 1,
-	.ident_start_idx = 7,
-	.ident_nums = 11
-	},
-	{ /* act_tid: 5, , table: control.shared_meter_profile_chk */
-	.description = "control.shared_meter_profile_chk",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 1023,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 39,
-		.cond_nums = 1 },
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
-	},
-	{ /* act_tid: 5, , table: meter_tbl.0 */
-	.description = "meter_tbl.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = CFA_RSUBTYPE_IDX_TBL_METER_INST,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
-	.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 = 40,
-		.cond_nums = 0 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_METER_PTR_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,
-	.result_start_idx = 220,
-	.result_bit_size = 128,
-	.result_num_fields = 18
-	},
-	{ /* act_tid: 5, , table: shared_meter_tbl_cache.wr */
-	.description = "shared_meter_tbl_cache.wr",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_METER_TBL_CACHE,
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_METER_TBL_CACHE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 40,
+		.cond_start_idx = 35,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
@@ -1190,11 +1105,11 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.result_start_idx = 238,
+	.result_start_idx = 164,
 	.result_bit_size = 74,
 	.result_num_fields = 3
 	},
-	{ /* act_tid: 5, , table: control.delete_check */
+	{ /* act_tid: 6, , table: control.delete_check */
 	.description = "control.delete_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -1202,12 +1117,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 5,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 40,
+		.cond_start_idx = 35,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 5, , table: meter_profile_tbl_cache.del_chk */
+	{ /* act_tid: 6, , table: meter_profile_tbl_cache.del_chk */
 	.description = "meter_profile_tbl_cache.del_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -1217,7 +1132,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 2,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 41,
+		.cond_start_idx = 36,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
@@ -1228,10 +1143,10 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.ident_start_idx = 18,
+	.ident_start_idx = 17,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 5, , table: control.mtr_prof_ref_cnt_chk */
+	{ /* act_tid: 6, , table: control.mtr_prof_ref_cnt_chk */
 	.description = "control.mtr_prof_ref_cnt_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -1239,7 +1154,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 42,
+		.cond_start_idx = 37,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_DELETE_RID_REGFILE,
@@ -1252,7 +1167,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_opr2 = 1,
 		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
-	{ /* act_tid: 5, , table: shared_meter_tbl_cache.del_chk */
+	{ /* act_tid: 6, , table: shared_meter_tbl_cache.del_chk */
 	.description = "shared_meter_tbl_cache.del_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -1262,7 +1177,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 43,
+		.cond_start_idx = 38,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
@@ -1273,10 +1188,10 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.ident_start_idx = 19,
+	.ident_start_idx = 18,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 5, , table: control.shared_mtr_ref_cnt_chk */
+	{ /* act_tid: 6, , table: control.shared_mtr_ref_cnt_chk */
 	.description = "control.shared_mtr_ref_cnt_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -1284,7 +1199,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 44,
+		.cond_start_idx = 39,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_DELETE_RID_REGFILE,
@@ -1297,7 +1212,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_opr2 = 1,
 		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
-	{ /* act_tid: 5, , table: control.update_check */
+	{ /* act_tid: 6, , table: control.update_check */
 	.description = "control.update_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -1305,12 +1220,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 45,
+		.cond_start_idx = 40,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 5, , table: shared_meter_tbl_cache.rd_update */
+	{ /* act_tid: 6, , table: shared_meter_tbl_cache.rd_update */
 	.description = "shared_meter_tbl_cache.rd_update",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -1320,7 +1235,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 45,
+		.cond_start_idx = 40,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
@@ -1331,10 +1246,10 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.ident_start_idx = 20,
+	.ident_start_idx = 19,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 5, , table: meter_tbl.update_rd */
+	{ /* act_tid: 6, , table: meter_tbl.update_rd */
 	.description = "meter_tbl.update_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_METER_INST,
@@ -1345,17 +1260,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 46,
+		.cond_start_idx = 41,
 		.cond_nums = 2 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_RD_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_METER_PTR_0,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.ident_start_idx = 21,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.ident_start_idx = 20,
 	.ident_nums = 13,
 	.result_bit_size = 128
 	},
-	{ /* act_tid: 5, , table: meter_tbl.update_wr */
+	{ /* act_tid: 6, , table: meter_tbl.update_wr */
 	.description = "meter_tbl.update_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = CFA_RSUBTYPE_IDX_TBL_METER_INST,
@@ -1366,59 +1282,122 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 0,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 48,
+		.cond_start_idx = 43,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_METER_PTR_0,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.result_start_idx = 241,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 167,
 	.result_bit_size = 128,
 	.result_num_fields = 18
 	},
-	{ /* act_tid: 6, , table: mod_record.ing_ttl */
-	.description = "mod_record.ing_ttl",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
+	{ /* act_tid: 7, , table: flow_chain_cache.rd */
+	.description = "flow_chain_cache.rd",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_FLOW_CHAIN_CACHE,
 	.direction = TF_DIR_TX,
+	.true_message = "Reject due to unsupported jump action.",
 	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 2,
+		.cond_true_goto  = 1023,
+		.cond_false_goto = 5,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 52,
+		.cond_start_idx = 45,
 		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
+	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 259,
+	.key_start_idx = 16,
+	.blob_key_bit_size = 32,
+	.key_bit_size = 32,
+	.key_num_fields = 1,
+	.ident_start_idx = 33,
+	.ident_nums = 1
+	},
+	{ /* act_tid: 7, , table: control.flow_chain */
+	.description = "control.flow_chain",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_TX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 4,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 46,
+		.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
+	},
+	{ /* act_tid: 7, , table: jump_index_table.alloc */
+	.description = "jump_index_table.alloc",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_ALLOCATOR_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_ALLOCATOR_TABLE_JUMP_INDEX,
+	.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 = 47,
+		.cond_nums = 0 },
+	.tbl_opcode = BNXT_ULP_ALLOC_TBL_OPC_ALLOC,
+	.tbl_operand = BNXT_ULP_RF_IDX_JUMP_META_IDX,
+	.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 = 185,
 	.result_bit_size = 0,
-	.result_num_fields = 0,
-	.encap_num_fields = 24
+	.result_num_fields = 0
 	},
-	{ /* act_tid: 6, , table: control.mod_handle_to_offset */
-	.description = "control.mod_handle_to_offset",
+	{ /* act_tid: 7, , table: control.metadata_cal */
+	.description = "control.metadata_cal",
 	.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 = 53,
+		.cond_start_idx = 47,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
 	.func_info = {
-		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
+		.func_opc = BNXT_ULP_FUNC_OPC_BIT_OR,
+		.func_oper_size = 16,
 		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
-		.func_opr1 = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
+		.func_opr1 = BNXT_ULP_RF_IDX_JUMP_META_IDX,
 		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
-		.func_opr2 = 8,
-		.func_dst_opr = BNXT_ULP_RF_IDX_MODIFY_PTR }
+		.func_opr2 = ULP_THOR2_SYM_CHAIN_META_VAL,
+		.func_dst_opr = BNXT_ULP_RF_IDX_JUMP_META }
+	},
+	{ /* act_tid: 7, , table: flow_chain_cache.write */
+	.description = "flow_chain_cache.write",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_FLOW_CHAIN_CACHE,
+	.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 = 47,
+		.cond_nums = 0 },
+	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
+	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+	.key_start_idx = 17,
+	.blob_key_bit_size = 32,
+	.key_bit_size = 32,
+	.key_num_fields = 1,
+	.result_start_idx = 185,
+	.result_bit_size = 64,
+	.result_num_fields = 2
 	},
-	{ /* act_tid: 6, , table: cmm_stat_record.0 */
+	{ /* act_tid: 7, , table: cmm_stat_record.0 */
 	.description = "cmm_stat_record.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_STAT,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
@@ -1429,18 +1408,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 2,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 53,
+		.cond_start_idx = 47,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_STAT_HNDL,
 	.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 = 283,
+	.result_start_idx = 187,
 	.result_bit_size = 128,
 	.result_num_fields = 2
 	},
-	{ /* act_tid: 6, , table: control.stat_handle_to_offset */
+	{ /* act_tid: 7, , table: control.stat_handle_to_offset */
 	.description = "control.stat_handle_to_offset",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
@@ -1448,7 +1427,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 54,
+		.cond_start_idx = 48,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1460,72 +1439,118 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_opr2 = 8,
 		.func_dst_opr = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 }
 	},
-	{ /* act_tid: 6, , table: cmm_full_act_record.0 */
-	.description = "cmm_full_act_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
+	{ /* act_tid: 7, , table: shared_mirror_record.rd */
+	.description = "shared_mirror_record.rd",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
 	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR,
 	.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 = 54,
-		.cond_nums = 0 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_CMM_ACT_HNDL,
+		.cond_false_goto = 2,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 48,
+		.cond_nums = 1 },
+	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
 	.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 = 285,
-	.result_bit_size = 192,
-	.result_num_fields = 18
+	.key_start_idx = 18,
+	.blob_key_bit_size = 5,
+	.key_bit_size = 5,
+	.key_num_fields = 1,
+	.ident_start_idx = 34,
+	.ident_nums = 1
 	},
-	{ /* act_tid: 6, , table: control.act_handle_to_offset */
-	.description = "control.act_handle_to_offset",
+	{ /* act_tid: 7, , table: control.mirror */
+	.description = "control.mirror",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
+	.true_message = "Reject due to non-existent handle",
 	.execute_info = {
-		.cond_true_goto  = 0,
-		.cond_false_goto = 0,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 54,
-		.cond_nums = 0 },
+		.cond_true_goto  = 1023,
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 49,
+		.cond_nums = 1 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
+	{ /* act_tid: 7, , table: control.do_mod */
+	.description = "control.do_mod",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_TX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 5,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 50,
+		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
 	.func_info = {
-		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
-		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
-		.func_opr1 = BNXT_ULP_RF_IDX_CMM_ACT_HNDL,
+		.func_opc = BNXT_ULP_FUNC_OPC_BIT_AND,
+		.func_src1 = BNXT_ULP_FUNC_SRC_ACTION_BITMAP,
+		.func_opr1 = BNXT_ULP_FUNC_SRC_ACTION_BITMAP,
 		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
-		.func_opr2 = 32,
-		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR }
+		.func_opr2 = BNXT_ULP_ACT_BIT_DEC_TTL |
+			BNXT_ULP_ACT_BIT_SET_MAC_SRC |
+			BNXT_ULP_ACT_BIT_SET_MAC_DST |
+			BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
+			BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+			BNXT_ULP_ACT_BIT_SET_IPV6_SRC |
+			BNXT_ULP_ACT_BIT_SET_IPV6_DST |
+			BNXT_ULP_ACT_BIT_SET_TP_SRC |
+			BNXT_ULP_ACT_BIT_SET_TP_DST |
+			BNXT_ULP_ACT_BIT_VF_TO_VF |
+			BNXT_ULP_ACT_BIT_JUMP,
+		.func_dst_opr = BNXT_ULP_RF_IDX_RF_0 }
+	},
+	{ /* act_tid: 7, , table: control.vf_to_vf_calc */
+	.description = "control.vf_to_vf_calc",
+	.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_AND,
+		.cond_start_idx = 51,
+		.cond_nums = 1 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+	.func_info = {
+		.func_opc = BNXT_ULP_FUNC_OPC_BIT_OR,
+		.func_src1 = BNXT_ULP_FUNC_SRC_COMP_FIELD,
+		.func_opr1 = BNXT_ULP_CF_IDX_VNIC,
+		.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_1 }
 	},
-	{ /* act_tid: 7, , table: mod_record.egr_no_ttl */
-	.description = "mod_record.egr_no_ttl",
+	{ /* act_tid: 7, , table: mod_record.ttl_0 */
+	.description = "mod_record.ttl_0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
 	.direction = TF_DIR_TX,
 	.execute_info = {
-		.cond_true_goto  = 1,
+		.cond_true_goto  = 2,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 55,
+		.cond_start_idx = 52,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 303,
+	.result_start_idx = 189,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
-	.encap_num_fields = 24
+	.encap_num_fields = 36
 	},
-	{ /* act_tid: 7, , table: mod_record.egr_ttl */
-	.description = "mod_record.egr_ttl",
+	{ /* act_tid: 7, , table: mod_record.non_ttl_0 */
+	.description = "mod_record.non_ttl_0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -1535,16 +1560,16 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 56,
+		.cond_start_idx = 63,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 327,
+	.result_start_idx = 225,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
-	.encap_num_fields = 32
+	.encap_num_fields = 28
 	},
 	{ /* act_tid: 7, , table: control.mod_handle_to_offset */
 	.description = "control.mod_handle_to_offset",
@@ -1554,7 +1579,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 57,
+		.cond_start_idx = 74,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1566,213 +1591,189 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_opr2 = 8,
 		.func_dst_opr = BNXT_ULP_RF_IDX_MODIFY_PTR }
 	},
-	{ /* act_tid: 7, , table: cmm_stat_record.0 */
-	.description = "cmm_stat_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_STAT,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
+	{ /* act_tid: 7, , table: control.do_tunnel_check */
+	.description = "control.do_tunnel_check",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 2,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 57,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_CMM_STAT_HNDL,
+		.cond_false_goto = 24,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
+		.cond_start_idx = 74,
+		.cond_nums = 2 },
 	.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 = 359,
-	.result_bit_size = 128,
-	.result_num_fields = 2
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 7, , table: control.stat_handle_to_offset */
-	.description = "control.stat_handle_to_offset",
+	{ /* act_tid: 7, , table: control.do_tunnel_vlan_exclusion */
+	.description = "control.do_tunnel_vlan_exclusion",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
+	.true_message = "Tunnel Encap + Push VLAN unsupported.",
 	.execute_info = {
-		.cond_true_goto  = 1,
+		.cond_true_goto  = 1023,
 		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 58,
-		.cond_nums = 0 },
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
+		.cond_start_idx = 76,
+		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.func_info = {
-		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
-		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
-		.func_opr1 = BNXT_ULP_RF_IDX_CMM_STAT_HNDL,
-		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
-		.func_opr2 = 8,
-		.func_dst_opr = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 }
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 7, , table: cmm_full_act_record.0 */
-	.description = "cmm_full_act_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
+	{ /* act_tid: 7, , table: source_property_cache.rd */
+	.description = "source_property_cache.rd",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SOURCE_PROPERTY_CACHE,
 	.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 = 58,
-		.cond_nums = 0 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_CMM_ACT_HNDL,
+		.cond_false_goto = 6,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 77,
+		.cond_nums = 1 },
+	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.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 = 361,
-	.result_bit_size = 192,
-	.result_num_fields = 18
+	.key_start_idx = 19,
+	.blob_key_bit_size = 85,
+	.key_bit_size = 85,
+	.key_num_fields = 3,
+	.ident_start_idx = 35,
+	.ident_nums = 1
 	},
-	{ /* act_tid: 7, , table: control.act_handle_to_offset */
-	.description = "control.act_handle_to_offset",
+	{ /* act_tid: 7, , table: control.sp_rec_v4 */
+	.description = "control.sp_rec_v4",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
-		.cond_true_goto  = 0,
-		.cond_false_goto = 0,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 58,
-		.cond_nums = 0 },
+		.cond_true_goto  = 1,
+		.cond_false_goto = 4,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 78,
+		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.func_info = {
-		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
-		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
-		.func_opr1 = BNXT_ULP_RF_IDX_CMM_ACT_HNDL,
-		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
-		.func_opr2 = 32,
-		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR }
+	.fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
+	.fdb_operand = BNXT_ULP_RF_IDX_RID
 	},
-	{ /* act_tid: 8, , table: cmm_stat_record.0 */
-	.description = "cmm_stat_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_STAT,
+	{ /* act_tid: 7, , table: sp_smac_ipv4.0 */
+	.description = "sp_smac_ipv4.0",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 2,
+		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 60,
+		.cond_start_idx = 79,
 		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_CMM_STAT_HNDL,
+	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
+	.tbl_operand = BNXT_ULP_RF_IDX_CMM_SRP_HNDL,
 	.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 = 379,
-	.result_bit_size = 128,
-	.result_num_fields = 2
+	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
+	.fdb_operand = BNXT_ULP_RF_IDX_RID,
+	.result_start_idx = 253,
+	.result_bit_size = 0,
+	.result_num_fields = 0,
+	.encap_num_fields = 3
 	},
-	{ /* act_tid: 8, , table: control.stat_handle_to_offset */
-	.description = "control.stat_handle_to_offset",
+	{ /* act_tid: 7, , table: control.srp_handle_to_offset */
+	.description = "control.srp_handle_to_offset",
 	.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 = 61,
+		.cond_start_idx = 80,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
 	.func_info = {
 		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
 		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
-		.func_opr1 = BNXT_ULP_RF_IDX_CMM_STAT_HNDL,
+		.func_opr1 = BNXT_ULP_RF_IDX_CMM_SRP_HNDL,
 		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
 		.func_opr2 = 8,
-		.func_dst_opr = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 }
+		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_SP_PTR }
 	},
-	{ /* act_tid: 8, , table: mod_record.egr_set_mac */
-	.description = "mod_record.egr_set_mac",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
+	{ /* act_tid: 7, , table: source_property_cache.wr */
+	.description = "source_property_cache.wr",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SOURCE_PROPERTY_CACHE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 2,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
-		.cond_start_idx = 61,
-		.cond_nums = 2 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 80,
+		.cond_nums = 0 },
+	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
+	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 381,
-	.result_bit_size = 0,
-	.result_num_fields = 0,
-	.encap_num_fields = 18
+	.key_start_idx = 22,
+	.blob_key_bit_size = 85,
+	.key_bit_size = 85,
+	.key_num_fields = 3,
+	.result_start_idx = 256,
+	.result_bit_size = 64,
+	.result_num_fields = 2
 	},
-	{ /* act_tid: 8, , table: control.mod_handle_to_offset */
-	.description = "control.mod_handle_to_offset",
+	{ /* act_tid: 7, , table: control.do_vxlan_check */
+	.description = "control.do_vxlan_check",
 	.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 = 63,
-		.cond_nums = 0 },
+		.cond_false_goto = 11,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
+		.cond_start_idx = 80,
+		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.func_info = {
-		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
-		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
-		.func_opr1 = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
-		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
-		.func_opr2 = 8,
-		.func_dst_opr = BNXT_ULP_RF_IDX_MODIFY_PTR }
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 8, , table: source_property_cache.rd */
-	.description = "source_property_cache.rd",
+	{ /* act_tid: 7, , table: vxlan_encap_rec_cache.rd */
+	.description = "vxlan_encap_rec_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SOURCE_PROPERTY_CACHE,
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_VXLAN_ENCAP_REC_CACHE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 5,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 63,
+		.cond_start_idx = 81,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 16,
-	.blob_key_bit_size = 85,
-	.key_bit_size = 85,
-	.key_num_fields = 3,
-	.ident_start_idx = 34,
+	.key_start_idx = 25,
+	.blob_key_bit_size = 141,
+	.key_bit_size = 141,
+	.key_num_fields = 6,
+	.ident_start_idx = 36,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 8, , table: control.sp_rec_v4 */
-	.description = "control.sp_rec_v4",
+	{ /* act_tid: 7, , table: control.vxlan_v4_encap */
+	.description = "control.vxlan_v4_encap",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 4,
+		.cond_false_goto = 17,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 64,
+		.cond_start_idx = 82,
 		.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
 	},
-	{ /* act_tid: 8, , table: sp_smac_ipv4.0 */
-	.description = "sp_smac_ipv4.0",
+	{ /* act_tid: 7, , table: ext_tun_vxlan_encap_record.ipv4_vxlan */
+	.description = "ext_tun_vxlan_encap_record.ipv4_vxlan",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -1781,102 +1782,102 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 65,
-		.cond_nums = 1 },
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 83,
+		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_CMM_SRP_HNDL,
+	.tbl_operand = BNXT_ULP_RF_IDX_CMM_ENC_HNDL,
 	.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 = 399,
+	.result_start_idx = 258,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
-	.encap_num_fields = 3
+	.encap_num_fields = 25
 	},
-	{ /* act_tid: 8, , table: control.srp_handle_to_offset */
-	.description = "control.srp_handle_to_offset",
+	{ /* act_tid: 7, , table: control.enc_handle_to_offset */
+	.description = "control.enc_handle_to_offset",
 	.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 = 66,
+		.cond_start_idx = 83,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
 	.func_info = {
 		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
 		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
-		.func_opr1 = BNXT_ULP_RF_IDX_CMM_SRP_HNDL,
+		.func_opr1 = BNXT_ULP_RF_IDX_CMM_ENC_HNDL,
 		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
 		.func_opr2 = 8,
-		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_SP_PTR }
+		.func_dst_opr = BNXT_ULP_RF_IDX_ENCAP_PTR_0 }
 	},
-	{ /* act_tid: 8, , table: source_property_cache.wr */
-	.description = "source_property_cache.wr",
+	{ /* act_tid: 7, , table: vxlan_encap_rec_cache.wr */
+	.description = "vxlan_encap_rec_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SOURCE_PROPERTY_CACHE,
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_VXLAN_ENCAP_REC_CACHE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
-		.cond_true_goto  = 1,
+		.cond_true_goto  = 14,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 66,
+		.cond_start_idx = 83,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 19,
-	.blob_key_bit_size = 85,
-	.key_bit_size = 85,
-	.key_num_fields = 3,
-	.result_start_idx = 402,
+	.key_start_idx = 31,
+	.blob_key_bit_size = 141,
+	.key_bit_size = 141,
+	.key_num_fields = 6,
+	.result_start_idx = 283,
 	.result_bit_size = 64,
 	.result_num_fields = 2
 	},
-	{ /* act_tid: 8, , table: vxlan_encap_rec_cache.rd */
-	.description = "vxlan_encap_rec_cache.rd",
+	{ /* act_tid: 7, , table: vxlan_encap_ipv6_rec_cache.rd */
+	.description = "vxlan_encap_ipv6_rec_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_VXLAN_ENCAP_REC_CACHE,
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_VXLAN_ENCAP_IPV6_REC_CACHE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 10,
+		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 66,
-		.cond_nums = 2 },
+		.cond_start_idx = 83,
+		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 22,
-	.blob_key_bit_size = 141,
-	.key_bit_size = 141,
+	.key_start_idx = 37,
+	.blob_key_bit_size = 237,
+	.key_bit_size = 237,
 	.key_num_fields = 6,
-	.ident_start_idx = 35,
+	.ident_start_idx = 37,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 8, , table: control.vxlan_v4_encap */
-	.description = "control.vxlan_v4_encap",
+	{ /* act_tid: 7, , table: control.vxlan_v6_encap */
+	.description = "control.vxlan_v6_encap",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 4,
+		.cond_false_goto = 12,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 68,
+		.cond_start_idx = 84,
 		.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
 	},
-	{ /* act_tid: 8, , table: ext_tun_vxlan_encap_record.ipv4_vxlan */
-	.description = "ext_tun_vxlan_encap_record.ipv4_vxlan",
+	{ /* act_tid: 7, , table: ext_tun_vxlan_encap_record.ipv6_vxlan */
+	.description = "ext_tun_vxlan_encap_record.ipv6_vxlan",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
 	.resource_sub_type =
@@ -1885,28 +1886,28 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 69,
-		.cond_nums = 2 },
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 85,
+		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_ENC_HNDL,
 	.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 = 404,
+	.result_start_idx = 285,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
-	.encap_num_fields = 25
+	.encap_num_fields = 23
 	},
-	{ /* act_tid: 8, , table: control.enc_handle_to_offset */
-	.description = "control.enc_handle_to_offset",
+	{ /* act_tid: 7, , table: control.v6_vxlan_enc_handle_to_offset */
+	.description = "control.v6_vxlan_enc_handle_to_offset",
 	.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 = 71,
+		.cond_start_idx = 85,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1918,31 +1919,31 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_opr2 = 8,
 		.func_dst_opr = BNXT_ULP_RF_IDX_ENCAP_PTR_0 }
 	},
-	{ /* act_tid: 8, , table: vxlan_encap_rec_cache.wr */
-	.description = "vxlan_encap_rec_cache.wr",
+	{ /* act_tid: 7, , table: vxlan_encap_ipv6_rec_cache.wr */
+	.description = "vxlan_encap_ipv6_rec_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_VXLAN_ENCAP_REC_CACHE,
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_VXLAN_ENCAP_IPV6_REC_CACHE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
-		.cond_true_goto  = 1,
+		.cond_true_goto  = 9,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 71,
+		.cond_start_idx = 85,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 28,
-	.blob_key_bit_size = 141,
-	.key_bit_size = 141,
+	.key_start_idx = 43,
+	.blob_key_bit_size = 237,
+	.key_bit_size = 237,
 	.key_num_fields = 6,
-	.result_start_idx = 429,
+	.result_start_idx = 308,
 	.result_bit_size = 64,
 	.result_num_fields = 2
 	},
-	{ /* act_tid: 8, , table: geneve_encap_rec_cache.rd */
+	{ /* act_tid: 7, , table: geneve_encap_rec_cache.rd */
 	.description = "geneve_encap_rec_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -1950,36 +1951,36 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 5,
+		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 71,
+		.cond_start_idx = 85,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 34,
+	.key_start_idx = 49,
 	.blob_key_bit_size = 493,
 	.key_bit_size = 493,
 	.key_num_fields = 15,
-	.ident_start_idx = 36,
+	.ident_start_idx = 38,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 8, , table: control.geneve_encap */
+	{ /* act_tid: 7, , table: control.geneve_encap */
 	.description = "control.geneve_encap",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 4,
+		.cond_false_goto = 7,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 72,
+		.cond_start_idx = 86,
 		.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
 	},
-	{ /* act_tid: 8, , table: ext_tun_geneve_encap_record.ipv4_vxlan */
+	{ /* act_tid: 7, , table: ext_tun_geneve_encap_record.ipv4_vxlan */
 	.description = "ext_tun_geneve_encap_record.ipv4_vxlan",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
@@ -1987,22 +1988,22 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
 	.direction = TF_DIR_TX,
 	.execute_info = {
-		.cond_true_goto  = 1,
+		.cond_true_goto  = 2,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 73,
-		.cond_nums = 2 },
+		.cond_start_idx = 87,
+		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_ENC_HNDL,
 	.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 = 431,
+	.result_start_idx = 310,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
 	.encap_num_fields = 31
 	},
-	{ /* act_tid: 8, , table: ext_tun_geneve_encap_record.ipv6_geneve */
+	{ /* act_tid: 7, , table: ext_tun_geneve_encap_record.ipv6_geneve */
 	.description = "ext_tun_geneve_encap_record.ipv6_geneve",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
@@ -2013,43 +2014,105 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 75,
-		.cond_nums = 2 },
+		.cond_start_idx = 88,
+		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_ENC_HNDL,
 	.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 = 462,
+	.result_start_idx = 341,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
 	.encap_num_fields = 29
 	},
-	{ /* act_tid: 8, , table: geneve_encap_rec_cache.wr */
+	{ /* act_tid: 7, , table: control.geneve_enc_handle_to_offset */
+	.description = "control.geneve_enc_handle_to_offset",
+	.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 = 89,
+		.cond_nums = 0 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+	.func_info = {
+		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
+		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
+		.func_opr1 = BNXT_ULP_RF_IDX_CMM_ENC_HNDL,
+		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
+		.func_opr2 = 8,
+		.func_dst_opr = BNXT_ULP_RF_IDX_ENCAP_PTR_0 }
+	},
+	{ /* act_tid: 7, , table: geneve_encap_rec_cache.wr */
 	.description = "geneve_encap_rec_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_GENEVE_ENCAP_REC_CACHE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
-		.cond_true_goto  = 1,
+		.cond_true_goto  = 3,
 		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 77,
-		.cond_nums = 1 },
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 89,
+		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 49,
+	.key_start_idx = 64,
 	.blob_key_bit_size = 493,
 	.key_bit_size = 493,
 	.key_num_fields = 15,
-	.result_start_idx = 491,
+	.result_start_idx = 370,
 	.result_bit_size = 64,
 	.result_num_fields = 2
 	},
-	{ /* act_tid: 8, , table: cmm_full_act_record.0 */
+	{ /* act_tid: 7, , table: ext_vtag_encap_record.0 */
+	.description = "ext_vtag_encap_record.0",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
+	.resource_type = CFA_RSUBTYPE_CMM_ACT,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
+	.direction = TF_DIR_TX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 89,
+		.cond_nums = 1 },
+	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
+	.tbl_operand = BNXT_ULP_RF_IDX_CMM_ENC_HNDL,
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+	.result_start_idx = 372,
+	.result_bit_size = 0,
+	.result_num_fields = 0,
+	.encap_num_fields = 11
+	},
+	{ /* act_tid: 7, , table: control.vtag_enc_handle_to_offset */
+	.description = "control.vtag_enc_handle_to_offset",
+	.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 = 90,
+		.cond_nums = 0 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+	.func_info = {
+		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
+		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
+		.func_opr1 = BNXT_ULP_RF_IDX_CMM_ENC_HNDL,
+		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
+		.func_opr2 = 8,
+		.func_dst_opr = BNXT_ULP_RF_IDX_ENCAP_PTR_0 }
+	},
+	{ /* act_tid: 7, , table: cmm_full_act_record.0 */
 	.description = "cmm_full_act_record.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
@@ -2060,18 +2123,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 78,
+		.cond_start_idx = 90,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_ACT_HNDL,
 	.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 = 493,
+	.result_start_idx = 383,
 	.result_bit_size = 192,
 	.result_num_fields = 18
 	},
-	{ /* act_tid: 8, , table: control.act_handle_to_offset */
+	{ /* act_tid: 7, , table: control.act_handle_to_offset */
 	.description = "control.act_handle_to_offset",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
@@ -2079,7 +2142,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 0,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 78,
+		.cond_start_idx = 92,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -2091,7 +2154,63 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_opr2 = 32,
 		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR }
 	},
-	{ /* act_tid: 9, , table: mod_record.meta */
+	{ /* act_tid: 8, , table: control.reject */
+	.description = "control.reject",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_TX,
+	.true_message = "Thor 2 not supporting non-generic template",
+	.execute_info = {
+		.cond_true_goto  = 1023,
+		.cond_false_goto = 0,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 92,
+		.cond_nums = 0 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
+	{ /* act_tid: 9, , table: control.reject */
+	.description = "control.reject",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_TX,
+	.true_message = "Thor 2 not supporting non-generic template",
+	.execute_info = {
+		.cond_true_goto  = 1023,
+		.cond_false_goto = 0,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 92,
+		.cond_nums = 0 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
+	{ /* act_tid: 10, , table: control.reject */
+	.description = "control.reject",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_TX,
+	.true_message = "Thor 2 not supporting non-generic template",
+	.execute_info = {
+		.cond_true_goto  = 1023,
+		.cond_false_goto = 0,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 92,
+		.cond_nums = 0 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
+	{ /* act_tid: 11, , table: control.reject */
+	.description = "control.reject",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_TX,
+	.true_message = "Thor 2 not supporting non-generic template",
+	.execute_info = {
+		.cond_true_goto  = 1023,
+		.cond_false_goto = 0,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 92,
+		.cond_nums = 0 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
+	{ /* act_tid: 12, , table: mod_record.meta */
 	.description = "mod_record.meta",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
@@ -2102,7 +2221,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 80,
+		.cond_start_idx = 96,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
@@ -2115,12 +2234,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_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 = 511,
+	.result_start_idx = 401,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
 	.encap_num_fields = 20
 	},
-	{ /* act_tid: 9, , table: control.mod_handle_to_offset */
+	{ /* act_tid: 12, , table: control.mod_handle_to_offset */
 	.description = "control.mod_handle_to_offset",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
@@ -2128,7 +2247,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 80,
+		.cond_start_idx = 96,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -2140,7 +2259,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_opr2 = 8,
 		.func_dst_opr = BNXT_ULP_RF_IDX_MODIFY_PTR }
 	},
-	{ /* act_tid: 9, , table: cmm_stat_record.0 */
+	{ /* act_tid: 12, , table: cmm_stat_record.0 */
 	.description = "cmm_stat_record.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_STAT,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
@@ -2151,18 +2270,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 2,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 80,
+		.cond_start_idx = 96,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_STAT_HNDL,
 	.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 = 531,
+	.result_start_idx = 421,
 	.result_bit_size = 128,
 	.result_num_fields = 2
 	},
-	{ /* act_tid: 9, , table: control.stat_handle_to_offset */
+	{ /* act_tid: 12, , table: control.stat_handle_to_offset */
 	.description = "control.stat_handle_to_offset",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
@@ -2170,7 +2289,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 81,
+		.cond_start_idx = 97,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -2182,7 +2301,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_opr2 = 8,
 		.func_dst_opr = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 }
 	},
-	{ /* act_tid: 9, , table: cmm_full_act_record.0 */
+	{ /* act_tid: 12, , table: cmm_full_act_record.0 */
 	.description = "cmm_full_act_record.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
 	.resource_type = CFA_RSUBTYPE_CMM_ACT,
@@ -2193,18 +2312,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 81,
+		.cond_start_idx = 97,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_CMM_ACT_HNDL,
 	.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 = 533,
+	.result_start_idx = 423,
 	.result_bit_size = 192,
 	.result_num_fields = 18
 	},
-	{ /* act_tid: 9, , table: control.act_handle_to_offset */
+	{ /* act_tid: 12, , table: control.act_handle_to_offset */
 	.description = "control.act_handle_to_offset",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
@@ -2212,7 +2331,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 0,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 81,
+		.cond_start_idx = 97,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -2223,162 +2342,31 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_act_tbl_list[] = {
 		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
 		.func_opr2 = 32,
 		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR }
-	},
-	{ /* act_tid: 10, , table: mod_record.meta */
-	.description = "mod_record.meta",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
-	.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 = 85,
-		.cond_nums = 0 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.func_info = {
-		.func_opc = BNXT_ULP_FUNC_OPC_BIT_OR,
-		.func_src1 = BNXT_ULP_FUNC_SRC_COMP_FIELD,
-		.func_opr1 = BNXT_ULP_CF_IDX_VNIC,
-		.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 = 551,
-	.result_bit_size = 0,
-	.result_num_fields = 0,
-	.encap_num_fields = 20
-	},
-	{ /* act_tid: 10, , table: control.mod_handle_to_offset */
-	.description = "control.mod_handle_to_offset",
-	.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 = 85,
-		.cond_nums = 0 },
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.func_info = {
-		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
-		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
-		.func_opr1 = BNXT_ULP_RF_IDX_CMM_MOD_HNDL,
-		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
-		.func_opr2 = 8,
-		.func_dst_opr = BNXT_ULP_RF_IDX_MODIFY_PTR }
-	},
-	{ /* act_tid: 10, , table: cmm_stat_record.0 */
-	.description = "cmm_stat_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_STAT,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
-	.direction = TF_DIR_TX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 2,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 85,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_CMM_STAT_HNDL,
-	.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 = 571,
-	.result_bit_size = 128,
-	.result_num_fields = 2
-	},
-	{ /* act_tid: 10, , table: control.stat_handle_to_offset */
-	.description = "control.stat_handle_to_offset",
-	.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 = 86,
-		.cond_nums = 0 },
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.func_info = {
-		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
-		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
-		.func_opr1 = BNXT_ULP_RF_IDX_CMM_STAT_HNDL,
-		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
-		.func_opr2 = 8,
-		.func_dst_opr = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 }
-	},
-	{ /* act_tid: 10, , table: cmm_full_act_record.0 */
-	.description = "cmm_full_act_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CMM_TABLE,
-	.resource_type = CFA_RSUBTYPE_CMM_ACT,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_CMM_TABLE_ACT,
-	.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 = 86,
-		.cond_nums = 0 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_CMM_ACT_HNDL,
-	.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 = 573,
-	.result_bit_size = 192,
-	.result_num_fields = 18
-	},
-	{ /* act_tid: 10, , table: control.act_handle_to_offset */
-	.description = "control.act_handle_to_offset",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
-	.direction = TF_DIR_TX,
-	.execute_info = {
-		.cond_true_goto  = 0,
-		.cond_false_goto = 0,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 86,
-		.cond_nums = 0 },
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.func_info = {
-		.func_opc = BNXT_ULP_FUNC_OPC_HANDLE_TO_OFFSET,
-		.func_src1 = BNXT_ULP_FUNC_SRC_REGFILE,
-		.func_opr1 = BNXT_ULP_RF_IDX_CMM_ACT_HNDL,
-		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
-		.func_opr2 = 32,
-		.func_dst_opr = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR }
-	}
-};
-
-struct bnxt_ulp_mapper_cond_list_info ulp_thor2_act_cond_oper_list[] = {
-};
-
-struct bnxt_ulp_mapper_cond_info ulp_thor2_act_cond_list[] = {
-	/* cond_reject: thor2, act_tid: 1 */
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
+	}
+};
+
+struct bnxt_ulp_mapper_cond_list_info ulp_thor2_act_cond_oper_list[] = {
+};
+
+struct bnxt_ulp_mapper_cond_info ulp_thor2_act_cond_list[] = {
+	/* cond_reject: thor2, act_tid: 1 */
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_QUEUE
 	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_POP_VLAN
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
+	/* cond_execute: act_tid: 1, flow_chain_cache.rd:2*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SET_VLAN_VID
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
+	/* cond_execute: act_tid: 1, control.flow_chain:3*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SET_VLAN_PCP
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
 	/* cond_execute: act_tid: 1, shared_meter_tbl_cache.rd:4*/
 	{
@@ -2400,30 +2388,22 @@  struct bnxt_ulp_mapper_cond_info ulp_thor2_act_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 1, control.check_mods:8*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
-	},
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SET_MAC_SRC
-	},
+	/* cond_execute: act_tid: 1, control.do_mod:8*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SET_MAC_DST
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_RF_0
 	},
-	/* cond_execute: act_tid: 1, mod_record.ing_no_ttl:11*/
+	/* cond_execute: act_tid: 1, mod_record.ttl_0:9*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
 	},
-	/* cond_execute: act_tid: 1, mod_record.ing_ttl:12*/
+	/* cond_execute: act_tid: 1, mod_record.non_ttl_0:10*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
 	},
-	/* cond_execute: act_tid: 1, tunnel_cache.f1_f2_act_rd:13*/
+	/* cond_execute: act_tid: 1, tunnel_cache.f1_f2_act_rd:11*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_F1
@@ -2432,96 +2412,79 @@  struct bnxt_ulp_mapper_cond_info ulp_thor2_act_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_F2
 	},
-	/* cond_execute: act_tid: 1, control.tunnel_cache_check_act:15*/
+	/* cond_execute: act_tid: 1, control.tunnel_cache_check_act:13*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 1, cmm_stat_record.0:16*/
+	/* cond_execute: act_tid: 1, cmm_stat_record.0:14*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
 	},
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_NOT_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_F1
-	},
-	/* cond_execute: act_tid: 1, cmm_full_act_record.0:18*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_HDR_BIT_NOT_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_F1
-	},
-	/* cond_execute: act_tid: 2, control.delete_chk:19*/
+	/* cond_execute: act_tid: 1, control.queue_and_rss_test:15*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_DELETE
-	},
-	/* cond_execute: act_tid: 2, control.mirror_del_exist_chk:20*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
-	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	.cond_operand = BNXT_ULP_ACT_BIT_QUEUE
 	},
-	/* cond_execute: act_tid: 2, control.mirror_ref_cnt_chk:21*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
-	.cond_operand = BNXT_ULP_RF_IDX_CC
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_RSS
 	},
-	/* cond_execute: act_tid: 2, cmm_stat_record.0:22*/
+	/* cond_execute: act_tid: 1, vnic_interface_rss_config.0:17*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
+	.cond_operand = BNXT_ULP_ACT_BIT_RSS
 	},
-	/* cond_execute: act_tid: 3, shared_mirror_record.rd:23*/
+	/* cond_execute: act_tid: 1, vnic_interface_queue_config.0:18*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
+	.cond_operand = BNXT_ULP_ACT_BIT_QUEUE
 	},
-	/* cond_execute: act_tid: 3, control.mirror:24*/
+	/* field_cond: act_tid: 1, cmm_full_act_record.0:19*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
-	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_DROP
 	},
-	/* cond_execute: act_tid: 3, mod_record.ing_no_ttl:25*/
+	/* field_cond: act_tid: 1, cmm_full_act_record.0:20*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_RSS
 	},
-	/* cond_execute: act_tid: 3, mod_record.ing_ttl:26*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
+	.cond_operand = BNXT_ULP_ACT_BIT_QUEUE
 	},
-	/* cond_execute: act_tid: 3, cmm_stat_record.0:27*/
+	/* field_cond: act_tid: 1, cmm_full_act_record.0:22*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
+	.cond_operand = BNXT_ULP_ACT_BIT_VXLAN_DECAP
 	},
-	/* cond_reject: thor2, act_tid: 4 */
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_QUEUE
+	.cond_operand = BNXT_ULP_ACT_BIT_GENEVE_DECAP
 	},
-	/* cond_execute: act_tid: 4, shared_mirror_record.rd:29*/
+	/* cond_execute: act_tid: 3, control.delete_chk:24*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
+	.cond_operand = BNXT_ULP_ACT_BIT_DELETE
 	},
-	/* cond_execute: act_tid: 4, control.mirror:30*/
+	/* cond_execute: act_tid: 3, control.mirror_del_exist_chk:25*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 4, vnic_interface_rss_config.0:31*/
+	/* cond_execute: act_tid: 3, control.mirror_ref_cnt_chk:26*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_RSS
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_CC
 	},
-	/* cond_execute: act_tid: 4, cmm_stat_record.0:32*/
+	/* cond_execute: act_tid: 3, cmm_stat_record.0:27*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
 	},
-	/* cond_execute: act_tid: 5, control.create_check:33*/
+	/* cond_execute: act_tid: 6, control.create_check:28*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_UPDATE
@@ -2530,62 +2493,62 @@  struct bnxt_ulp_mapper_cond_info ulp_thor2_act_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_DELETE
 	},
-	/* cond_execute: act_tid: 5, meter_profile_tbl_cache.rd:35*/
+	/* cond_execute: act_tid: 6, meter_profile_tbl_cache.rd:30*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_METER_PROFILE
 	},
-	/* cond_execute: act_tid: 5, control.shared_meter_profile_0:36*/
+	/* cond_execute: act_tid: 6, control.shared_meter_profile_0:31*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 5, shared_meter_tbl_cache.rd:37*/
+	/* cond_execute: act_tid: 6, shared_meter_tbl_cache.rd:32*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_METER
 	},
-	/* cond_execute: act_tid: 5, control.meter_created_chk:38*/
+	/* cond_execute: act_tid: 6, control.meter_created_chk:33*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 5, control.shared_meter_profile_chk:39*/
+	/* cond_execute: act_tid: 6, control.shared_meter_profile_chk:34*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 5, control.delete_check:40*/
+	/* cond_execute: act_tid: 6, control.delete_check:35*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_DELETE
 	},
-	/* cond_execute: act_tid: 5, meter_profile_tbl_cache.del_chk:41*/
+	/* cond_execute: act_tid: 6, meter_profile_tbl_cache.del_chk:36*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_METER_PROFILE
 	},
-	/* cond_execute: act_tid: 5, control.mtr_prof_ref_cnt_chk:42*/
+	/* cond_execute: act_tid: 6, control.mtr_prof_ref_cnt_chk:37*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_CC
 	},
-	/* cond_execute: act_tid: 5, shared_meter_tbl_cache.del_chk:43*/
+	/* cond_execute: act_tid: 6, shared_meter_tbl_cache.del_chk:38*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_METER
 	},
-	/* cond_execute: act_tid: 5, control.shared_mtr_ref_cnt_chk:44*/
+	/* cond_execute: act_tid: 6, control.shared_mtr_ref_cnt_chk:39*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_CC
 	},
-	/* cond_execute: act_tid: 5, shared_meter_tbl_cache.rd_update:45*/
+	/* cond_execute: act_tid: 6, shared_meter_tbl_cache.rd_update:40*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_METER
 	},
-	/* cond_execute: act_tid: 5, meter_tbl.update_rd:46*/
+	/* cond_execute: act_tid: 6, meter_tbl.update_rd:41*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
@@ -2594,169 +2557,249 @@  struct bnxt_ulp_mapper_cond_info ulp_thor2_act_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_PROP_NOT_SET,
 	.cond_operand = BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID_UPDATE
 	},
-	/* cond_reject: thor2, act_tid: 6 */
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SET_VLAN_PCP
-	},
+	/* cond_reject: thor2, act_tid: 7 */
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SET_VLAN_VID
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
+	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
 	},
+	/* cond_execute: act_tid: 7, flow_chain_cache.rd:45*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 6, mod_record.ing_ttl:52*/
+	/* cond_execute: act_tid: 7, control.flow_chain:46*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 6, cmm_stat_record.0:53*/
+	/* cond_execute: act_tid: 7, cmm_stat_record.0:47*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
 	},
-	/* cond_reject: thor2, act_tid: 7 */
+	/* cond_execute: act_tid: 7, shared_mirror_record.rd:48*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
 	},
-	/* cond_execute: act_tid: 7, mod_record.egr_no_ttl:55*/
+	/* cond_execute: act_tid: 7, control.mirror:49*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 7, mod_record.egr_ttl:56*/
+	/* cond_execute: act_tid: 7, control.do_mod:50*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_RF_0
 	},
-	/* cond_execute: act_tid: 7, cmm_stat_record.0:57*/
+	/* cond_execute: act_tid: 7, control.vf_to_vf_calc:51*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_reject: thor2, act_tid: 8 */
+	/* cond_execute: act_tid: 7, mod_record.ttl_0:52*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
+	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
 	},
+	/* field_cond: act_tid: 7, mod_record.ttl_0:53*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
-	.cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 8, cmm_stat_record.0:60*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 8, mod_record.egr_set_mac:61*/
+	/* field_cond: act_tid: 7, mod_record.ttl_0:55*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SET_MAC_SRC
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SET_MAC_DST
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 8, source_property_cache.rd:63*/
+	/* field_cond: act_tid: 7, mod_record.ttl_0:57*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
-	.cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 8, control.sp_rec_v4:64*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
-	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 8, sp_smac_ipv4.0:65*/
+	/* field_cond: act_tid: 7, mod_record.ttl_0:59*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
-	.cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 8, vxlan_encap_rec_cache.rd:66*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
+	/* field_cond: act_tid: 7, mod_record.ttl_0:61*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 8, control.vxlan_v4_encap:68*/
+	/* field_cond: act_tid: 7, mod_record.ttl_0:62*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
-	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 8, ext_tun_vxlan_encap_record.ipv4_vxlan:69*/
+	/* cond_execute: act_tid: 7, mod_record.non_ttl_0:63*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
 	},
+	/* field_cond: act_tid: 7, mod_record.non_ttl_0:64*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 8, geneve_encap_rec_cache.rd:71*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_T_GENEVE
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 8, control.geneve_encap:72*/
+	/* field_cond: act_tid: 7, mod_record.non_ttl_0:66*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
-	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 8, ext_tun_geneve_encap_record.ipv4_vxlan:73*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
+	/* field_cond: act_tid: 7, mod_record.non_ttl_0:68*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_T_GENEVE
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 8, ext_tun_geneve_encap_record.ipv6_geneve:75*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
+	/* field_cond: act_tid: 7, mod_record.non_ttl_0:70*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_T_GENEVE
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 8, geneve_encap_rec_cache.wr:77*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_T_GENEVE
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_reject: thor2, act_tid: 9 */
+	/* field_cond: act_tid: 7, mod_record.non_ttl_0:72*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
+	/* field_cond: act_tid: 7, mod_record.non_ttl_0:73*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_MULTIPLE_PORT
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 9, cmm_stat_record.0:80*/
+	/* cond_execute: act_tid: 7, control.do_tunnel_check:74*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
+	.cond_operand = BNXT_ULP_ACT_BIT_VXLAN_ENCAP
 	},
-	/* cond_reject: thor2, act_tid: 10 */
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SHARED
+	.cond_operand = BNXT_ULP_ACT_BIT_GENEVE_ENCAP
 	},
+	/* cond_execute: act_tid: 7, control.do_tunnel_vlan_exclusion:76*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SAMPLE
+	.cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
+	},
+	/* cond_execute: act_tid: 7, source_property_cache.rd:77*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
+	.cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG
+	},
+	/* cond_execute: act_tid: 7, control.sp_rec_v4:78*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	},
+	/* cond_execute: act_tid: 7, sp_smac_ipv4.0:79*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
+	.cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG
+	},
+	/* cond_execute: act_tid: 7, control.do_vxlan_check:80*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_VXLAN_ENCAP
+	},
+	/* cond_execute: act_tid: 7, vxlan_encap_rec_cache.rd:81*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
+	},
+	/* cond_execute: act_tid: 7, control.vxlan_v4_encap:82*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	},
+	/* cond_execute: act_tid: 7, vxlan_encap_ipv6_rec_cache.rd:83*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
+	},
+	/* cond_execute: act_tid: 7, control.vxlan_v6_encap:84*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	},
+	/* cond_execute: act_tid: 7, geneve_encap_rec_cache.rd:85*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_T_GENEVE
+	},
+	/* cond_execute: act_tid: 7, control.geneve_encap:86*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	},
+	/* cond_execute: act_tid: 7, ext_tun_geneve_encap_record.ipv4_vxlan:87*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
+	},
+	/* cond_execute: act_tid: 7, ext_tun_geneve_encap_record.ipv6_geneve:88*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
+	},
+	/* cond_execute: act_tid: 7, ext_vtag_encap_record.0:89*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
+	},
+	/* field_cond: act_tid: 7, cmm_full_act_record.0:90*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
+	},
+	/* field_cond: act_tid: 7, cmm_full_act_record.0:91*/
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
+	},
+	/* cond_reject: thor2, act_tid: 12 */
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_SHARED
+	},
+	{
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_SAMPLE
 	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
@@ -2766,7 +2809,7 @@  struct bnxt_ulp_mapper_cond_info ulp_thor2_act_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
 	},
-	/* cond_execute: act_tid: 10, cmm_stat_record.0:85*/
+	/* cond_execute: act_tid: 12, cmm_stat_record.0:96*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
@@ -2774,6 +2817,52 @@  struct bnxt_ulp_mapper_cond_info ulp_thor2_act_cond_list[] = {
 };
 
 struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
+	/* act_tid: 1, , table: flow_chain_cache.rd */
+	{
+	.field_info_mask = {
+		.description = "group_id",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.field_opr1 = {
+			0xff,
+			0xff,
+			0xff,
+			0xff}
+		},
+	.field_info_spec = {
+		.description = "group_id",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+		.field_opr1 = {
+		(BNXT_ULP_ACT_PROP_IDX_JUMP >> 8) & 0xff,
+		BNXT_ULP_ACT_PROP_IDX_JUMP & 0xff}
+		}
+	},
+	/* act_tid: 1, , table: flow_chain_cache.write */
+	{
+	.field_info_mask = {
+		.description = "group_id",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.field_opr1 = {
+			0xff,
+			0xff,
+			0xff,
+			0xff}
+		},
+	.field_info_spec = {
+		.description = "group_id",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+		.field_opr1 = {
+		(BNXT_ULP_ACT_PROP_IDX_JUMP >> 8) & 0xff,
+		BNXT_ULP_ACT_PROP_IDX_JUMP & 0xff}
+		}
+	},
 	/* act_tid: 1, , table: shared_meter_tbl_cache.rd */
 	{
 	.field_info_mask = {
@@ -2857,7 +2946,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 		BNXT_ULP_CF_IDX_TUNNEL_ID & 0xff}
 		}
 	},
-	/* act_tid: 2, , table: shared_mirror_record.del_chk */
+	/* act_tid: 3, , table: shared_mirror_record.del_chk */
 	{
 	.field_info_mask = {
 		.description = "shared_index",
@@ -2877,7 +2966,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff}
 		}
 	},
-	/* act_tid: 2, , table: shared_mirror_record.wr */
+	/* act_tid: 3, , table: shared_mirror_record.wr */
 	{
 	.field_info_mask = {
 		.description = "shared_index",
@@ -2897,50 +2986,56 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 		BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff}
 		}
 	},
-	/* act_tid: 3, , table: shared_mirror_record.rd */
+	/* act_tid: 6, , table: meter_profile_tbl_cache.rd */
 	{
 	.field_info_mask = {
-		.description = "shared_index",
-		.field_bit_size = 5,
+		.description = "sw_meter_profile_id",
+		.field_bit_size = 32,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
 		.field_opr1 = {
+			0xff,
+			0xff,
+			0xff,
 			0xff}
 		},
 	.field_info_spec = {
-		.description = "shared_index",
-		.field_bit_size = 5,
+		.description = "sw_meter_profile_id",
+		.field_bit_size = 32,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 		.field_opr1 = {
-		(BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE >> 8) & 0xff,
-		BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff}
+		(BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID >> 8) & 0xff,
+		BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID & 0xff}
 		}
 	},
-	/* act_tid: 4, , table: shared_mirror_record.rd */
+	/* act_tid: 6, , table: meter_profile_tbl_cache.wr */
 	{
 	.field_info_mask = {
-		.description = "shared_index",
-		.field_bit_size = 5,
+		.description = "sw_meter_profile_id",
+		.field_bit_size = 32,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
 		.field_opr1 = {
+			0xff,
+			0xff,
+			0xff,
 			0xff}
 		},
 	.field_info_spec = {
-		.description = "shared_index",
-		.field_bit_size = 5,
+		.description = "sw_meter_profile_id",
+		.field_bit_size = 32,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 		.field_opr1 = {
-		(BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE >> 8) & 0xff,
-		BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff}
+		(BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID >> 8) & 0xff,
+		BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID & 0xff}
 		}
 	},
-	/* act_tid: 5, , table: meter_profile_tbl_cache.rd */
+	/* act_tid: 6, , table: shared_meter_tbl_cache.rd */
 	{
 	.field_info_mask = {
-		.description = "sw_meter_profile_id",
+		.description = "sw_meter_id",
 		.field_bit_size = 32,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
@@ -2951,16 +3046,16 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 			0xff}
 		},
 	.field_info_spec = {
-		.description = "sw_meter_profile_id",
+		.description = "sw_meter_id",
 		.field_bit_size = 32,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 		.field_opr1 = {
-		(BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID >> 8) & 0xff,
-		BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID & 0xff}
+		(BNXT_ULP_ACT_PROP_IDX_METER_INST_ID >> 8) & 0xff,
+		BNXT_ULP_ACT_PROP_IDX_METER_INST_ID & 0xff}
 		}
 	},
-	/* act_tid: 5, , table: meter_profile_tbl_cache.wr */
+	/* act_tid: 6, , table: meter_profile_tbl_cache.rd2 */
 	{
 	.field_info_mask = {
 		.description = "sw_meter_profile_id",
@@ -2983,7 +3078,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID & 0xff}
 		}
 	},
-	/* act_tid: 5, , table: shared_meter_tbl_cache.rd */
+	/* act_tid: 6, , table: shared_meter_tbl_cache.wr */
 	{
 	.field_info_mask = {
 		.description = "sw_meter_id",
@@ -3006,7 +3101,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_METER_INST_ID & 0xff}
 		}
 	},
-	/* act_tid: 5, , table: meter_profile_tbl_cache.rd2 */
+	/* act_tid: 6, , table: meter_profile_tbl_cache.del_chk */
 	{
 	.field_info_mask = {
 		.description = "sw_meter_profile_id",
@@ -3029,7 +3124,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID & 0xff}
 		}
 	},
-	/* act_tid: 5, , table: shared_meter_tbl_cache.wr */
+	/* act_tid: 6, , table: shared_meter_tbl_cache.del_chk */
 	{
 	.field_info_mask = {
 		.description = "sw_meter_id",
@@ -3052,10 +3147,10 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_METER_INST_ID & 0xff}
 		}
 	},
-	/* act_tid: 5, , table: meter_profile_tbl_cache.del_chk */
+	/* act_tid: 6, , table: shared_meter_tbl_cache.rd_update */
 	{
 	.field_info_mask = {
-		.description = "sw_meter_profile_id",
+		.description = "sw_meter_id",
 		.field_bit_size = 32,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
@@ -3066,19 +3161,19 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 			0xff}
 		},
 	.field_info_spec = {
-		.description = "sw_meter_profile_id",
+		.description = "sw_meter_id",
 		.field_bit_size = 32,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 		.field_opr1 = {
-		(BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID >> 8) & 0xff,
-		BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID & 0xff}
+		(BNXT_ULP_ACT_PROP_IDX_METER_INST_ID >> 8) & 0xff,
+		BNXT_ULP_ACT_PROP_IDX_METER_INST_ID & 0xff}
 		}
 	},
-	/* act_tid: 5, , table: shared_meter_tbl_cache.del_chk */
+	/* act_tid: 7, , table: flow_chain_cache.rd */
 	{
 	.field_info_mask = {
-		.description = "sw_meter_id",
+		.description = "group_id",
 		.field_bit_size = 32,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
@@ -3089,19 +3184,19 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 			0xff}
 		},
 	.field_info_spec = {
-		.description = "sw_meter_id",
+		.description = "group_id",
 		.field_bit_size = 32,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 		.field_opr1 = {
-		(BNXT_ULP_ACT_PROP_IDX_METER_INST_ID >> 8) & 0xff,
-		BNXT_ULP_ACT_PROP_IDX_METER_INST_ID & 0xff}
+		(BNXT_ULP_ACT_PROP_IDX_JUMP >> 8) & 0xff,
+		BNXT_ULP_ACT_PROP_IDX_JUMP & 0xff}
 		}
 	},
-	/* act_tid: 5, , table: shared_meter_tbl_cache.rd_update */
+	/* act_tid: 7, , table: flow_chain_cache.write */
 	{
 	.field_info_mask = {
-		.description = "sw_meter_id",
+		.description = "group_id",
 		.field_bit_size = 32,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
@@ -3112,16 +3207,36 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 			0xff}
 		},
 	.field_info_spec = {
-		.description = "sw_meter_id",
+		.description = "group_id",
 		.field_bit_size = 32,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 		.field_opr1 = {
-		(BNXT_ULP_ACT_PROP_IDX_METER_INST_ID >> 8) & 0xff,
-		BNXT_ULP_ACT_PROP_IDX_METER_INST_ID & 0xff}
+		(BNXT_ULP_ACT_PROP_IDX_JUMP >> 8) & 0xff,
+		BNXT_ULP_ACT_PROP_IDX_JUMP & 0xff}
+		}
+	},
+	/* act_tid: 7, , table: shared_mirror_record.rd */
+	{
+	.field_info_mask = {
+		.description = "shared_index",
+		.field_bit_size = 5,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.field_opr1 = {
+			0xff}
+		},
+	.field_info_spec = {
+		.description = "shared_index",
+		.field_bit_size = 5,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+		.field_opr1 = {
+		(BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE >> 8) & 0xff,
+		BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff}
 		}
 	},
-	/* act_tid: 8, , table: source_property_cache.rd */
+	/* act_tid: 7, , table: source_property_cache.rd */
 	{
 	.field_info_mask = {
 		.description = "smac",
@@ -3189,7 +3304,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 			BNXT_ULP_PORT_TABLE_TABLE_SCOPE & 0xff}
 		}
 	},
-	/* act_tid: 8, , table: source_property_cache.wr */
+	/* act_tid: 7, , table: source_property_cache.wr */
 	{
 	.field_info_mask = {
 		.description = "smac",
@@ -3257,7 +3372,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 			BNXT_ULP_PORT_TABLE_TABLE_SCOPE & 0xff}
 		}
 	},
-	/* act_tid: 8, , table: vxlan_encap_rec_cache.rd */
+	/* act_tid: 7, , table: vxlan_encap_rec_cache.rd */
 	{
 	.field_info_mask = {
 		.description = "dmac",
@@ -3386,7 +3501,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 			BNXT_ULP_PORT_TABLE_TABLE_SCOPE & 0xff}
 		}
 	},
-	/* act_tid: 8, , table: vxlan_encap_rec_cache.wr */
+	/* act_tid: 7, , table: vxlan_encap_rec_cache.wr */
 	{
 	.field_info_mask = {
 		.description = "dmac",
@@ -3515,7 +3630,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 			BNXT_ULP_PORT_TABLE_TABLE_SCOPE & 0xff}
 		}
 	},
-	/* act_tid: 8, , table: geneve_encap_rec_cache.rd */
+	/* act_tid: 7, , table: vxlan_encap_ipv6_rec_cache.rd */
 	{
 	.field_info_mask = {
 		.description = "dmac",
@@ -3541,39 +3656,6 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 		}
 	},
 	{
-	.field_info_mask = {
-		.description = "ipv4_dst_addr",
-		.field_bit_size = 32,
-		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
-		.field_opr1 = {
-			0xff,
-			0xff,
-			0xff,
-			0xff}
-		},
-	.field_info_spec = {
-		.description = "ipv4_dst_addr",
-		.field_bit_size = 32,
-		.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT,
-		.field_opr1 = {
-		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff,
-		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff,
-		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff,
-		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff,
-		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff,
-		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff,
-		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff,
-		(uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff},
-		.field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-		.field_opr2 = {
-		(BNXT_ULP_ENC_FIELD_IPV4_DADDR >> 8) & 0xff,
-		BNXT_ULP_ENC_FIELD_IPV4_DADDR & 0xff},
-		.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-		}
-	},
-	{
 	.field_info_mask = {
 		.description = "ipv6_dst_addr",
 		.field_bit_size = 128,
@@ -3600,22 +3682,11 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 	.field_info_spec = {
 		.description = "ipv6_dst_addr",
 		.field_bit_size = 128,
-		.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 		.field_opr1 = {
-		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 56) & 0xff,
-		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 48) & 0xff,
-		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 40) & 0xff,
-		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 32) & 0xff,
-		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 24) & 0xff,
-		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 16) & 0xff,
-		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 8) & 0xff,
-		(uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 & 0xff},
-		.field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-		.field_opr2 = {
 		(BNXT_ULP_ENC_FIELD_IPV6_DADDR >> 8) & 0xff,
-		BNXT_ULP_ENC_FIELD_IPV6_DADDR & 0xff},
-		.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
+		BNXT_ULP_ENC_FIELD_IPV6_DADDR & 0xff}
 		}
 	},
 	{
@@ -3660,195 +3731,157 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 	},
 	{
 	.field_info_mask = {
-		.description = "ver_opt_len_o_c_rsvd0",
-		.field_bit_size = 16,
+		.description = "vni",
+		.field_bit_size = 24,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
 		.field_opr1 = {
+			0xff,
 			0xff,
 			0xff}
 		},
 	.field_info_spec = {
-		.description = "ver_opt_len_o_c_rsvd0",
-		.field_bit_size = 16,
+		.description = "vni",
+		.field_bit_size = 24,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 		.field_opr1 = {
-		(BNXT_ULP_ENC_FIELD_GENEVE_VER_OPT_LEN_O_C_RSVD0 >> 8) & 0xff,
-		BNXT_ULP_ENC_FIELD_GENEVE_VER_OPT_LEN_O_C_RSVD0 & 0xff}
+		(BNXT_ULP_ENC_FIELD_VXLAN_VNI >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_VXLAN_VNI & 0xff}
 		}
 	},
 	{
 	.field_info_mask = {
-		.description = "proto_type",
-		.field_bit_size = 16,
+		.description = "tbl_scope",
+		.field_bit_size = 5,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
-		.field_opr1 = {
-			0xff,
-			0xff}
+		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 		},
 	.field_info_spec = {
-		.description = "proto_type",
-		.field_bit_size = 16,
+		.description = "tbl_scope",
+		.field_bit_size = 5,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-		.field_opr1 = {
-		(BNXT_ULP_ENC_FIELD_GENEVE_PROTO_TYPE >> 8) & 0xff,
-		BNXT_ULP_ENC_FIELD_GENEVE_PROTO_TYPE & 0xff}
+		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 		}
 	},
+	/* act_tid: 7, , table: vxlan_encap_ipv6_rec_cache.wr */
 	{
 	.field_info_mask = {
-		.description = "vni",
-		.field_bit_size = 24,
+		.description = "dmac",
+		.field_bit_size = 48,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
 		.field_opr1 = {
 			0xff,
 			0xff,
-			0xff}
-		},
-	.field_info_spec = {
-		.description = "vni",
-		.field_bit_size = 24,
-		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-		.field_opr1 = {
-		(BNXT_ULP_ENC_FIELD_GENEVE_VNI >> 8) & 0xff,
-		BNXT_ULP_ENC_FIELD_GENEVE_VNI & 0xff}
-		}
-	},
-	{
-	.field_info_mask = {
-		.description = "opt_w0",
-		.field_bit_size = 32,
-		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
-		.field_opr1 = {
 			0xff,
 			0xff,
 			0xff,
 			0xff}
 		},
 	.field_info_spec = {
-		.description = "opt_w0",
-		.field_bit_size = 32,
+		.description = "dmac",
+		.field_bit_size = 48,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 		.field_opr1 = {
-		(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W0 >> 8) & 0xff,
-		BNXT_ULP_ENC_FIELD_GENEVE_OPT_W0 & 0xff}
+		(BNXT_ULP_ENC_FIELD_ETH_DMAC >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_ETH_DMAC & 0xff}
 		}
 	},
 	{
 	.field_info_mask = {
-		.description = "opt_w1",
-		.field_bit_size = 32,
+		.description = "ipv6_dst_addr",
+		.field_bit_size = 128,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
 		.field_opr1 = {
 			0xff,
 			0xff,
 			0xff,
-			0xff}
-		},
-	.field_info_spec = {
-		.description = "opt_w1",
-		.field_bit_size = 32,
-		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-		.field_opr1 = {
-		(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W1 >> 8) & 0xff,
-		BNXT_ULP_ENC_FIELD_GENEVE_OPT_W1 & 0xff}
-		}
-	},
-	{
-	.field_info_mask = {
-		.description = "opt_w2",
-		.field_bit_size = 32,
-		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
-		.field_opr1 = {
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
 			0xff,
 			0xff,
 			0xff,
 			0xff}
 		},
 	.field_info_spec = {
-		.description = "opt_w2",
-		.field_bit_size = 32,
+		.description = "ipv6_dst_addr",
+		.field_bit_size = 128,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 		.field_opr1 = {
-		(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W2 >> 8) & 0xff,
-		BNXT_ULP_ENC_FIELD_GENEVE_OPT_W2 & 0xff}
+		(BNXT_ULP_ENC_FIELD_IPV6_DADDR >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_IPV6_DADDR & 0xff}
 		}
 	},
 	{
 	.field_info_mask = {
-		.description = "opt_w3",
-		.field_bit_size = 32,
+		.description = "udp_sport",
+		.field_bit_size = 16,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
 		.field_opr1 = {
-			0xff,
-			0xff,
 			0xff,
 			0xff}
 		},
 	.field_info_spec = {
-		.description = "opt_w3",
-		.field_bit_size = 32,
+		.description = "udp_sport",
+		.field_bit_size = 16,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 		.field_opr1 = {
-		(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W3 >> 8) & 0xff,
-		BNXT_ULP_ENC_FIELD_GENEVE_OPT_W3 & 0xff}
+		(BNXT_ULP_ENC_FIELD_UDP_SPORT >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_UDP_SPORT & 0xff}
 		}
 	},
 	{
 	.field_info_mask = {
-		.description = "opt_w4",
-		.field_bit_size = 32,
+		.description = "udp_dport",
+		.field_bit_size = 16,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
 		.field_opr1 = {
-			0xff,
-			0xff,
 			0xff,
 			0xff}
 		},
 	.field_info_spec = {
-		.description = "opt_w4",
-		.field_bit_size = 32,
+		.description = "udp_dport",
+		.field_bit_size = 16,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 		.field_opr1 = {
-		(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W4 >> 8) & 0xff,
-		BNXT_ULP_ENC_FIELD_GENEVE_OPT_W4 & 0xff}
+		(BNXT_ULP_ENC_FIELD_UDP_DPORT >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_UDP_DPORT & 0xff}
 		}
 	},
 	{
 	.field_info_mask = {
-		.description = "opt_w5",
-		.field_bit_size = 32,
+		.description = "vni",
+		.field_bit_size = 24,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
 		.field_opr1 = {
-			0xff,
 			0xff,
 			0xff,
 			0xff}
 		},
 	.field_info_spec = {
-		.description = "opt_w5",
-		.field_bit_size = 32,
+		.description = "vni",
+		.field_bit_size = 24,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 		.field_opr1 = {
-		(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W5 >> 8) & 0xff,
-		BNXT_ULP_ENC_FIELD_GENEVE_OPT_W5 & 0xff}
+		(BNXT_ULP_ENC_FIELD_VXLAN_VNI >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_VXLAN_VNI & 0xff}
 		}
 	},
 	{
@@ -3865,7 +3898,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 		}
 	},
-	/* act_tid: 8, , table: geneve_encap_rec_cache.wr */
+	/* act_tid: 7, , table: geneve_encap_rec_cache.rd */
 	{
 	.field_info_mask = {
 		.description = "dmac",
@@ -4013,13 +4046,19 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 		.description = "ver_opt_len_o_c_rsvd0",
 		.field_bit_size = 16,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.field_opr1 = {
+			0xff,
+			0xff}
 		},
 	.field_info_spec = {
 		.description = "ver_opt_len_o_c_rsvd0",
 		.field_bit_size = 16,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+		.field_opr1 = {
+		(BNXT_ULP_ENC_FIELD_GENEVE_VER_OPT_LEN_O_C_RSVD0 >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_GENEVE_VER_OPT_LEN_O_C_RSVD0 & 0xff}
 		}
 	},
 	{
@@ -4027,13 +4066,19 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 		.description = "proto_type",
 		.field_bit_size = 16,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.field_opr1 = {
+			0xff,
+			0xff}
 		},
 	.field_info_spec = {
 		.description = "proto_type",
 		.field_bit_size = 16,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+		.field_opr1 = {
+		(BNXT_ULP_ENC_FIELD_GENEVE_PROTO_TYPE >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_GENEVE_PROTO_TYPE & 0xff}
 		}
 	},
 	{
@@ -4202,894 +4247,423 @@  struct bnxt_ulp_mapper_key_info ulp_thor2_act_key_info_list[] = {
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 		}
-	}
-};
-
-struct bnxt_ulp_mapper_field_info ulp_thor2_act_key_ext_list[] = {
-};
-
-struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
-	/* act_tid: 1, , table: mod_record.ing_no_ttl */
-	{
-	.description = "metadata_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rem_ovlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
+	/* act_tid: 7, , table: geneve_encap_rec_cache.wr */
 	{
-	.description = "rem_ivlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_info_mask = {
+		.description = "dmac",
+		.field_bit_size = 48,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.field_opr1 = {
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff}
+		},
+	.field_info_spec = {
+		.description = "dmac",
+		.field_bit_size = 48,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+		.field_opr1 = {
+		(BNXT_ULP_ENC_FIELD_ETH_DMAC >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_ETH_DMAC & 0xff}
+		}
 	},
 	{
-	.description = "rep_add_ivlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_info_mask = {
+		.description = "ipv4_dst_addr",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.field_opr1 = {
+			0xff,
+			0xff,
+			0xff,
+			0xff}
+		},
+	.field_info_spec = {
+		.description = "ipv4_dst_addr",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT,
+		.field_opr1 = {
+		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 56) & 0xff,
+		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 48) & 0xff,
+		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 40) & 0xff,
+		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 32) & 0xff,
+		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 24) & 0xff,
+		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 16) & 0xff,
+		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 >> 8) & 0xff,
+		(uint64_t)BNXT_ULP_HDR_BIT_O_IPV4 & 0xff},
+		.field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+		.field_opr2 = {
+		(BNXT_ULP_ENC_FIELD_IPV4_DADDR >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_IPV4_DADDR & 0xff},
+		.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
+		}
 	},
 	{
-	.description = "rep_add_ovlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_info_mask = {
+		.description = "ipv6_dst_addr",
+		.field_bit_size = 128,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.field_opr1 = {
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff}
+		},
+	.field_info_spec = {
+		.description = "ipv6_dst_addr",
+		.field_bit_size = 128,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT,
+		.field_opr1 = {
+		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 56) & 0xff,
+		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 48) & 0xff,
+		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 40) & 0xff,
+		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 32) & 0xff,
+		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 24) & 0xff,
+		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 16) & 0xff,
+		((uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 >> 8) & 0xff,
+		(uint64_t)BNXT_ULP_HDR_BIT_O_IPV6 & 0xff},
+		.field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+		.field_opr2 = {
+		(BNXT_ULP_ENC_FIELD_IPV6_DADDR >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_IPV6_DADDR & 0xff},
+		.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
+		}
 	},
 	{
-	.description = "ttl_update",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "tun_md_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "reserved_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l2_dmac_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l2_smac_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_sip_ipv6_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_dip_ipv6_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_sip_ipv4_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_dip_ipv4_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l4_sport_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l4_dport_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l2_dmac",
-	.field_bit_size = 48,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_MAC_DST >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_MAC_DST & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	{
-	.description = "l2_smac",
-	.field_bit_size = 48,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_MAC_SRC >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_MAC_SRC & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	/* act_tid: 1, , table: mod_record.ing_ttl */
-	{
-	.description = "metadata_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rem_ovlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rem_ivlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rep_add_ivlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rep_add_ovlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_update",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	1}
-	},
-	{
-	.description = "tun_md_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "reserved_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l2_dmac_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l2_smac_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_sip_ipv6_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_dip_ipv6_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_sip_ipv4_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_dip_ipv4_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l4_sport_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l4_dport_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "alt_pfid",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "alt_vid",
-	.field_bit_size = 12,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_rsvd",
-	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_tl3_dec",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CF,
-	.field_opr1 = {
-	(BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
-	BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
-	},
-	{
-	.description = "ttl_il3_dec",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CF,
-	.field_opr1 = {
-	(BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
-	BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
-	},
-	{
-	.description = "ttl_otl3_rdir",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_tl3_rdir",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_il3_rdir",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l2_dmac",
-	.field_bit_size = 48,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_MAC_DST >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_MAC_DST & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	{
-	.description = "l2_smac",
-	.field_bit_size = 48,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_MAC_SRC >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_MAC_SRC & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	/* act_tid: 1, , table: cmm_stat_record.f1_flow */
-	{
-	.description = "packet_count",
-	.field_bit_size = 64,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "byte_count",
-	.field_bit_size = 64,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 1, , table: cmm_stat_record.0 */
-	{
-	.description = "packet_count",
-	.field_bit_size = 64,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "byte_count",
-	.field_bit_size = 64,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 1, , table: cmm_full_act_record.0 */
-	{
-	.description = "type",
-	.field_bit_size = 3,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	1}
-	},
-	{
-	.description = "drop",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
-	},
-	{
-	.description = "vlan_del_rpt",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "vnic_or_vport",
-	.field_bit_size = 11,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
-	.field_src3 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr3 = {
-	(BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
-	},
-	{
-	.description = "dest_op",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "decap_func",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_VXLAN_DECAP & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	ULP_THOR2_SYM_DECAP_FUNC_THRU_TUN},
-	.field_src3 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr3 = {
-	ULP_THOR2_SYM_DECAP_FUNC_NONE}
-	},
-	{
-	.description = "mirror",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr2 = {
-	(BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "meter_ptr",
-	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_METER & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr2 = {
-	(BNXT_ULP_RF_IDX_METER_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_METER_PTR_0 & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stat0_ptr",
-	.field_bit_size = 28,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
-	},
-	{
-	.description = "stat0_ing_egr",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stat0_ctr_type",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stat1_ptr",
-	.field_bit_size = 28,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_F1 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_F1 & 0xff}
-	},
-	{
-	.description = "stat1_ing_egr",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stat1_ctr_type",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "mod_rec_ptr",
-	.field_bit_size = 28,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_MODIFY_PTR >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MODIFY_PTR & 0xff}
-	},
-	{
-	.description = "encap_ptr",
-	.field_bit_size = 28,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "src_ptr",
-	.field_bit_size = 28,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rsvd0",
-	.field_bit_size = 7,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 2, , table: mirror_tbl.alloc */
-	{
-	.description = "reserved1",
-	.field_bit_size = 21,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "arp_relative",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "action_hint",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "sample_mode",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "trunc_mode",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ignore_drop",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "copy_mode",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "mirr_cond",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "act_rec_ptr",
-	.field_bit_size = 26,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "reserved2",
-	.field_bit_size = 6,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "samp_cfg",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "padding1",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 2, , table: cmm_stat_record.0 */
-	{
-	.description = "packet_count",
-	.field_bit_size = 64,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "byte_count",
-	.field_bit_size = 64,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 2, , table: cmm_full_act_record.0 */
-	{
-	.description = "type",
-	.field_bit_size = 3,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	1}
-	},
-	{
-	.description = "drop",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "vlan_del_rpt",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "vnic_or_vport",
-	.field_bit_size = 11,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
-	},
-	{
-	.description = "dest_op",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "decap_func",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "mirror",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "meter_ptr",
-	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stat0_ptr",
-	.field_bit_size = 28,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
-	},
-	{
-	.description = "stat0_ing_egr",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stat0_ctr_type",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stat1_ptr",
-	.field_bit_size = 28,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stat1_ing_egr",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_info_mask = {
+		.description = "udp_sport",
+		.field_bit_size = 16,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.field_opr1 = {
+			0xff,
+			0xff}
+		},
+	.field_info_spec = {
+		.description = "udp_sport",
+		.field_bit_size = 16,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+		.field_opr1 = {
+		(BNXT_ULP_ENC_FIELD_UDP_SPORT >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_UDP_SPORT & 0xff}
+		}
 	},
 	{
-	.description = "stat1_ctr_type",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_info_mask = {
+		.description = "udp_dport",
+		.field_bit_size = 16,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.field_opr1 = {
+			0xff,
+			0xff}
+		},
+	.field_info_spec = {
+		.description = "udp_dport",
+		.field_bit_size = 16,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+		.field_opr1 = {
+		(BNXT_ULP_ENC_FIELD_UDP_DPORT >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_UDP_DPORT & 0xff}
+		}
 	},
 	{
-	.description = "mod_rec_ptr",
-	.field_bit_size = 28,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_info_mask = {
+		.description = "ver_opt_len_o_c_rsvd0",
+		.field_bit_size = 16,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		},
+	.field_info_spec = {
+		.description = "ver_opt_len_o_c_rsvd0",
+		.field_bit_size = 16,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		}
 	},
 	{
-	.description = "encap_ptr",
-	.field_bit_size = 28,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_info_mask = {
+		.description = "proto_type",
+		.field_bit_size = 16,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		},
+	.field_info_spec = {
+		.description = "proto_type",
+		.field_bit_size = 16,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		}
 	},
 	{
-	.description = "src_ptr",
-	.field_bit_size = 28,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_info_mask = {
+		.description = "vni",
+		.field_bit_size = 24,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.field_opr1 = {
+			0xff,
+			0xff,
+			0xff}
+		},
+	.field_info_spec = {
+		.description = "vni",
+		.field_bit_size = 24,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+		.field_opr1 = {
+		(BNXT_ULP_ENC_FIELD_GENEVE_VNI >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_GENEVE_VNI & 0xff}
+		}
 	},
 	{
-	.description = "rsvd0",
-	.field_bit_size = 7,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_info_mask = {
+		.description = "opt_w0",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.field_opr1 = {
+			0xff,
+			0xff,
+			0xff,
+			0xff}
+		},
+	.field_info_spec = {
+		.description = "opt_w0",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+		.field_opr1 = {
+		(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W0 >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_GENEVE_OPT_W0 & 0xff}
+		}
 	},
-	/* act_tid: 2, , table: mirror_tbl.wr */
 	{
-	.description = "reserved1",
-	.field_bit_size = 21,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_info_mask = {
+		.description = "opt_w1",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.field_opr1 = {
+			0xff,
+			0xff,
+			0xff,
+			0xff}
+		},
+	.field_info_spec = {
+		.description = "opt_w1",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+		.field_opr1 = {
+		(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W1 >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_GENEVE_OPT_W1 & 0xff}
+		}
 	},
 	{
-	.description = "arp_relative",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_info_mask = {
+		.description = "opt_w2",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.field_opr1 = {
+			0xff,
+			0xff,
+			0xff,
+			0xff}
+		},
+	.field_info_spec = {
+		.description = "opt_w2",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+		.field_opr1 = {
+		(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W2 >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_GENEVE_OPT_W2 & 0xff}
+		}
 	},
 	{
-	.description = "action_hint",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_info_mask = {
+		.description = "opt_w3",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.field_opr1 = {
+			0xff,
+			0xff,
+			0xff,
+			0xff}
+		},
+	.field_info_spec = {
+		.description = "opt_w3",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+		.field_opr1 = {
+		(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W3 >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_GENEVE_OPT_W3 & 0xff}
+		}
 	},
 	{
-	.description = "sample_mode",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_info_mask = {
+		.description = "opt_w4",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.field_opr1 = {
+			0xff,
+			0xff,
+			0xff,
+			0xff}
+		},
+	.field_info_spec = {
+		.description = "opt_w4",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+		.field_opr1 = {
+		(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W4 >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_GENEVE_OPT_W4 & 0xff}
+		}
 	},
 	{
-	.description = "trunc_mode",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_info_mask = {
+		.description = "opt_w5",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.field_opr1 = {
+			0xff,
+			0xff,
+			0xff,
+			0xff}
+		},
+	.field_info_spec = {
+		.description = "opt_w5",
+		.field_bit_size = 32,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+		.field_opr1 = {
+		(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W5 >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_GENEVE_OPT_W5 & 0xff}
+		}
 	},
 	{
-	.description = "ignore_drop",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
+	.field_info_mask = {
+		.description = "tbl_scope",
+		.field_bit_size = 5,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		},
+	.field_info_spec = {
+		.description = "tbl_scope",
+		.field_bit_size = 5,
+		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+		}
+	}
+};
+
+struct bnxt_ulp_mapper_field_info ulp_thor2_act_key_ext_list[] = {
 	{
-	.description = "copy_mode",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+		.description = "vnic_or_vport",
+		.field_bit_size = 11,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
 	.field_opr1 = {
-	3}
-	},
-	{
-	.description = "mirr_cond",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
+		(20 >> 8) & 0xff,
+		20 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr2 = {
+	(BNXT_ULP_RF_IDX_RSS_VNIC >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RSS_VNIC & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr3 = {
+	(BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
+		},
 	{
-	.description = "act_rec_ptr",
-	.field_bit_size = 26,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+		.description = "metadata_data",
+		.field_bit_size = 32,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_AND,
 	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
-	},
-	{
-	.description = "reserved2",
-	.field_bit_size = 6,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
+		(62 >> 8) & 0xff,
+		62 & 0xff,
+		(1 >> 8) & 0xff,
+		1 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr2 = {
+	(BNXT_ULP_RF_IDX_JUMP_META >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_JUMP_META & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+		},
 	{
-	.description = "samp_cfg",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+		.description = "metadata_data",
+		.field_bit_size = 32,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_AND,
 	.field_opr1 = {
-		0xff,
-		0xff,
-		0xff,
-		0xff}
-	},
+		(73 >> 8) & 0xff,
+		73 & 0xff,
+		(1 >> 8) & 0xff,
+		1 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr2 = {
+	(BNXT_ULP_RF_IDX_JUMP_META >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_JUMP_META & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+		},
 	{
-	.description = "padding1",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 2, , table: shared_mirror_record.wr */
+		.description = "vnic_or_vport",
+		.field_bit_size = 11,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_AND,
+	.field_opr1 = {
+		(91 >> 8) & 0xff,
+		91 & 0xff,
+		(1 >> 8) & 0xff,
+		1 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	(ULP_THOR2_SYM_LOOPBACK_PORT >> 8) & 0xff,
+	ULP_THOR2_SYM_LOOPBACK_PORT & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr3 = {
+	(BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
+		}
+};
+
+struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
+	/* act_tid: 1, , table: jump_index_table.alloc */
+	/* act_tid: 1, , table: flow_chain_cache.write */
 	{
 	.description = "rid",
 	.field_bit_size = 32,
@@ -5100,20 +4674,33 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	BNXT_ULP_RF_IDX_RID & 0xff}
 	},
 	{
-	.description = "mirror_id",
-	.field_bit_size = 5,
+	.description = "metadata",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
 	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_MIRROR_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff}
+	(BNXT_ULP_RF_IDX_JUMP_META >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_JUMP_META & 0xff}
 	},
-	/* act_tid: 3, , table: mod_record.ing_no_ttl */
+	/* act_tid: 1, , table: mod_record.ttl_0 */
 	{
 	.description = "metadata_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_JUMP & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "rem_ovlan",
@@ -5143,7 +4730,9 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.description = "ttl_update",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr1 = {
+	1}
 	},
 	{
 	.description = "tun_md_en",
@@ -5310,6 +4899,135 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
+	.description = "metadata_rsvd",
+	.field_bit_size = 10,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_JUMP & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "metadata_op",
+	.field_bit_size = 2,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_JUMP & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	ULP_THOR2_SYM_METADATA_OP_NORMAL},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "metadata_prof",
+	.field_bit_size = 4,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_JUMP & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	ULP_THOR2_SYM_META_PROFILE_0},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "metadata_data",
+	.field_bit_size = 32,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_JUMP & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr2 = {
+	(BNXT_ULP_RF_IDX_JUMP_META >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_JUMP_META & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "alt_pfid",
+	.field_bit_size = 5,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "alt_vid",
+	.field_bit_size = 12,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "ttl_rsvd",
+	.field_bit_size = 10,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "ttl_tl3_dec",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_CF,
+	.field_opr1 = {
+	(BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
+	BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
+	},
+	{
+	.description = "ttl_il3_dec",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_CF,
+	.field_opr1 = {
+	(BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
+	BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
+	},
+	{
+	.description = "ttl_otl3_rdir",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "ttl_tl3_rdir",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "ttl_il3_rdir",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
 	.description = "l2_dmac",
 	.field_bit_size = 48,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
@@ -5469,12 +5187,25 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
 	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
-	/* act_tid: 3, , table: mod_record.ing_ttl */
+	/* act_tid: 1, , table: mod_record.non_ttl_0 */
 	{
 	.description = "metadata_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_JUMP & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "rem_ovlan",
@@ -5504,9 +5235,7 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.description = "ttl_update",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	1}
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "tun_md_en",
@@ -5673,58 +5402,79 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "alt_pfid",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "alt_vid",
-	.field_bit_size = 12,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_rsvd",
+	.description = "metadata_rsvd",
 	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_tl3_dec",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CF,
-	.field_opr1 = {
-	(BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
-	BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
-	},
-	{
-	.description = "ttl_il3_dec",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CF,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
 	.field_opr1 = {
-	(BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
-	BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_JUMP & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
 	{
-	.description = "ttl_otl3_rdir",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.description = "metadata_op",
+	.field_bit_size = 2,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_JUMP & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	ULP_THOR2_SYM_METADATA_OP_NORMAL},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
 	{
-	.description = "ttl_tl3_rdir",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.description = "metadata_prof",
+	.field_bit_size = 4,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_JUMP & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	ULP_THOR2_SYM_META_PROFILE_0},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
 	{
-	.description = "ttl_il3_rdir",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.description = "metadata_data",
+	.field_bit_size = 32,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_JUMP & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr2 = {
+	(BNXT_ULP_RF_IDX_JUMP_META >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_JUMP_META & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
 	{
 	.description = "l2_dmac",
@@ -5886,7 +5636,7 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
 	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
-	/* act_tid: 3, , table: cmm_stat_record.0 */
+	/* act_tid: 1, , table: cmm_stat_record.f1_flow */
 	{
 	.description = "packet_count",
 	.field_bit_size = 64,
@@ -5899,7 +5649,22 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
-	/* act_tid: 3, , table: cmm_full_act_record.0 */
+	/* act_tid: 1, , table: cmm_stat_record.0 */
+	{
+	.description = "packet_count",
+	.field_bit_size = 64,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "byte_count",
+	.field_bit_size = 64,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	/* act_tid: 1, , table: vnic_interface_rss_config.0 */
+	/* act_tid: 1, , table: vnic_interface_queue_config.0 */
+	/* act_tid: 1, , table: cmm_full_act_record.0 */
 	{
 	.description = "type",
 	.field_bit_size = 3,
@@ -5926,28 +5691,34 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	{
 	.description = "vlan_del_rpt",
 	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	ULP_THOR2_SYM_VLAN_DEL_RPT_STRIP_OUTER},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "vnic_or_vport",
 	.field_bit_size = 11,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_AND,
 	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff},
+		(19 >> 8) & 0xff,
+		19 & 0xff,
+		(1 >> 8) & 0xff,
+		1 & 0xff},
 	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
-	.field_src3 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr3 = {
-	(BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
+	.field_src3 = BNXT_ULP_FIELD_SRC_NEXT
 	},
 	{
 	.description = "dest_op",
@@ -5958,34 +5729,35 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	{
 	.description = "decap_func",
 	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
+	.field_opr1 = {
+		(22 >> 8) & 0xff,
+		22 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	ULP_THOR2_SYM_DECAP_FUNC_THRU_TUN},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "mirror",
 	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
 	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr2 = {
 	(BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
+	BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff}
 	},
 	{
 	.description = "meter_ptr",
 	.field_bit_size = 10,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_METER_PTR_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_METER_PTR_0 & 0xff}
 	},
 	{
 	.description = "stat0_ptr",
@@ -6012,7 +5784,10 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.description = "stat1_ptr",
 	.field_bit_size = 28,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_F1 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_F1 & 0xff}
 	},
 	{
 	.description = "stat1_ing_egr",
@@ -6053,8 +5828,80 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
-	/* act_tid: 4, , table: vnic_interface_rss_config.0 */
-	/* act_tid: 4, , table: cmm_stat_record.0 */
+	/* act_tid: 3, , table: mirror_tbl.alloc */
+	{
+	.description = "reserved1",
+	.field_bit_size = 21,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "arp_relative",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "action_hint",
+	.field_bit_size = 2,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "sample_mode",
+	.field_bit_size = 2,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "trunc_mode",
+	.field_bit_size = 2,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "ignore_drop",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "copy_mode",
+	.field_bit_size = 2,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "mirr_cond",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "act_rec_ptr",
+	.field_bit_size = 26,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "reserved2",
+	.field_bit_size = 6,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "samp_cfg",
+	.field_bit_size = 32,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "padding1",
+	.field_bit_size = 32,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	/* act_tid: 3, , table: cmm_stat_record.0 */
 	{
 	.description = "packet_count",
 	.field_bit_size = 64,
@@ -6067,7 +5914,7 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
-	/* act_tid: 4, , table: cmm_full_act_record.0 */
+	/* act_tid: 3, , table: cmm_full_act_record.0 */
 	{
 	.description = "type",
 	.field_bit_size = 3,
@@ -6092,10 +5939,10 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.description = "vnic_or_vport",
 	.field_bit_size = 11,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_RSS_VNIC >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_RSS_VNIC & 0xff}
+	(BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
 	},
 	{
 	.description = "dest_op",
@@ -6112,22 +5959,8 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	{
 	.description = "mirror",
 	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr2 = {
-	(BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "meter_ptr",
@@ -6151,54 +5984,156 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "stat0_ctr_type",
+	.description = "stat0_ctr_type",
+	.field_bit_size = 2,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "stat1_ptr",
+	.field_bit_size = 28,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "stat1_ing_egr",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "stat1_ctr_type",
+	.field_bit_size = 2,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "mod_rec_ptr",
+	.field_bit_size = 28,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "encap_ptr",
+	.field_bit_size = 28,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "src_ptr",
+	.field_bit_size = 28,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "rsvd0",
+	.field_bit_size = 7,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	/* act_tid: 3, , table: mirror_tbl.wr */
+	{
+	.description = "reserved1",
+	.field_bit_size = 21,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "arp_relative",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "action_hint",
+	.field_bit_size = 2,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "sample_mode",
 	.field_bit_size = 2,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "stat1_ptr",
-	.field_bit_size = 28,
+	.description = "trunc_mode",
+	.field_bit_size = 2,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "stat1_ing_egr",
+	.description = "ignore_drop",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "stat1_ctr_type",
+	.description = "copy_mode",
 	.field_bit_size = 2,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr1 = {
+	3}
 	},
 	{
-	.description = "mod_rec_ptr",
-	.field_bit_size = 28,
+	.description = "mirr_cond",
+	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "encap_ptr",
-	.field_bit_size = 28,
+	.description = "act_rec_ptr",
+	.field_bit_size = 26,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
 	},
 	{
-	.description = "src_ptr",
-	.field_bit_size = 28,
+	.description = "reserved2",
+	.field_bit_size = 6,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "rsvd0",
-	.field_bit_size = 7,
+	.description = "samp_cfg",
+	.field_bit_size = 32,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
+	.field_opr1 = {
+		0xff,
+		0xff,
+		0xff,
+		0xff}
+	},
+	{
+	.description = "padding1",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
-	/* act_tid: 5, , table: meter_profile_tbl_cache.wr */
+	/* act_tid: 3, , table: shared_mirror_record.wr */
+	{
+	.description = "rid",
+	.field_bit_size = 32,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RID & 0xff}
+	},
+	{
+	.description = "mirror_id",
+	.field_bit_size = 5,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_MIRROR_PTR_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff}
+	},
+	/* act_tid: 6, , table: meter_profile_tbl_cache.wr */
 	{
 	.description = "rid",
 	.field_bit_size = 32,
@@ -6305,202 +6240,9 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 	.field_opr1 = {
 	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_EIR >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_PROF_EIR & 0xff}
-	},
-	/* act_tid: 5, , table: meter_tbl.0 */
-	{
-	.description = "bkt_c",
-	.field_bit_size = 27,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	(134217727 >> 24) & 0xff,
-	(134217727 >> 16) & 0xff,
-	(134217727 >> 8) & 0xff,
-	134217727 & 0xff}
-	},
-	{
-	.description = "bkt_e",
-	.field_bit_size = 27,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	(134217727 >> 24) & 0xff,
-	(134217727 >> 16) & 0xff,
-	(134217727 >> 8) & 0xff,
-	134217727 & 0xff}
-	},
-	{
-	.description = "mtr_val",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL & 0xff}
-	},
-	{
-	.description = "ecn_rmp_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN & 0xff}
-	},
-	{
-	.description = "cf",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_CF_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_CF_0 & 0xff}
-	},
-	{
-	.description = "pm",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_PM_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_PM_0 & 0xff}
-	},
-	{
-	.description = "rfc2698",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_RFC2698_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_RFC2698_0 & 0xff}
-	},
-	{
-	.description = "cbsm",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_CBSM_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_CBSM_0 & 0xff}
-	},
-	{
-	.description = "ebsm",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_EBSM_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_EBSM_0 & 0xff}
-	},
-	{
-	.description = "cbnd",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_CBND_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_CBND_0 & 0xff}
-	},
-	{
-	.description = "ebnd",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_EBND_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_EBND_0 & 0xff}
-	},
-	{
-	.description = "cbs",
-	.field_bit_size = 12,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_CBS_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_CBS_0 & 0xff}
-	},
-	{
-	.description = "ebs",
-	.field_bit_size = 12,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_EBS_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_EBS_0 & 0xff}
-	},
-	{
-	.description = "cir",
-	.field_bit_size = 17,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_CIR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_CIR_0 & 0xff}
-	},
-	{
-	.description = "eir",
-	.field_bit_size = 17,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_EIR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_EIR_0 & 0xff}
-	},
-	{
-	.description = "scope",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_PORT_TABLE,
-	.field_opr1 = {
-		(BNXT_ULP_CF_IDX_DEV_PORT_ID >> 8) & 0xff,
-		BNXT_ULP_CF_IDX_DEV_PORT_ID & 0xff,
-		(BNXT_ULP_PORT_TABLE_TABLE_SCOPE >> 8) & 0xff,
-		BNXT_ULP_PORT_TABLE_TABLE_SCOPE & 0xff}
-	},
-	{
-	.description = "rsvd",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "prot_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	1}
-	},
-	/* act_tid: 5, , table: shared_meter_tbl_cache.wr */
-	{
-	.description = "rid",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_RID & 0xff}
-	},
-	{
-	.description = "meter_ptr",
-	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_METER_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_METER_PTR_0 & 0xff}
-	},
-	{
-	.description = "sw_meter_profile_id",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID & 0xff}
+	BNXT_ULP_ACT_PROP_IDX_METER_PROF_EIR & 0xff}
 	},
-	/* act_tid: 5, , table: meter_tbl.update_wr */
+	/* act_tid: 6, , table: meter_tbl.0 */
 	{
 	.description = "bkt_c",
 	.field_bit_size = 27,
@@ -6526,36 +6268,20 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	{
 	.description = "mtr_val",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL_UPDATE >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL_UPDATE & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
 	(BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr3 = {
-	(BNXT_ULP_RF_IDX_RF_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_RF_0 & 0xff}
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL & 0xff}
 	},
 	{
 	.description = "ecn_rmp_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN_UPDATE >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN_UPDATE & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
 	(BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr3 = {
-	(BNXT_ULP_RF_IDX_RF_1 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_RF_1 & 0xff}
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN & 0xff}
 	},
 	{
 	.description = "cf",
@@ -6660,7 +6386,12 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.description = "scope",
 	.field_bit_size = 5,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_PORT_TABLE,
+	.field_opr1 = {
+		(BNXT_ULP_CF_IDX_DEV_PORT_ID >> 8) & 0xff,
+		BNXT_ULP_CF_IDX_DEV_PORT_ID & 0xff,
+		(BNXT_ULP_PORT_TABLE_TABLE_SCOPE >> 8) & 0xff,
+		BNXT_ULP_PORT_TABLE_TABLE_SCOPE & 0xff}
 	},
 	{
 	.description = "rsvd",
@@ -6676,307 +6407,258 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.field_opr1 = {
 	1}
 	},
-	/* act_tid: 6, , table: mod_record.ing_ttl */
+	/* act_tid: 6, , table: shared_meter_tbl_cache.wr */
 	{
-	.description = "metadata_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rem_ovlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rem_ivlan",
-	.field_bit_size = 1,
+	.description = "rid",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RID & 0xff}
 	},
 	{
-	.description = "rep_add_ivlan",
-	.field_bit_size = 1,
+	.description = "meter_ptr",
+	.field_bit_size = 10,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_METER_PTR_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_METER_PTR_0 & 0xff}
 	},
 	{
-	.description = "rep_add_ovlan",
-	.field_bit_size = 1,
+	.description = "sw_meter_profile_id",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr1 = {
+	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID & 0xff}
 	},
+	/* act_tid: 6, , table: meter_tbl.update_wr */
 	{
-	.description = "ttl_update",
-	.field_bit_size = 1,
+	.description = "bkt_c",
+	.field_bit_size = 27,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
 	.field_opr1 = {
-	1}
-	},
-	{
-	.description = "tun_md_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "reserved_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l2_dmac_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l2_smac_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_sip_ipv6_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_dip_ipv6_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_sip_ipv4_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_dip_ipv4_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l4_sport_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l4_dport_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "alt_pfid",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "alt_vid",
-	.field_bit_size = 12,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_rsvd",
-	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	(134217727 >> 24) & 0xff,
+	(134217727 >> 16) & 0xff,
+	(134217727 >> 8) & 0xff,
+	134217727 & 0xff}
 	},
 	{
-	.description = "ttl_tl3_dec",
-	.field_bit_size = 1,
+	.description = "bkt_e",
+	.field_bit_size = 27,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CF,
+	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
 	.field_opr1 = {
-	(BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
-	BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
+	(134217727 >> 24) & 0xff,
+	(134217727 >> 16) & 0xff,
+	(134217727 >> 8) & 0xff,
+	134217727 & 0xff}
 	},
 	{
-	.description = "ttl_il3_dec",
+	.description = "mtr_val",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CF,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 	.field_opr1 = {
-	(BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
-	BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
+	(BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL_UPDATE >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL_UPDATE & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr2 = {
+	(BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr3 = {
+	(BNXT_ULP_RF_IDX_RF_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RF_0 & 0xff}
 	},
 	{
-	.description = "ttl_otl3_rdir",
+	.description = "ecn_rmp_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr1 = {
+	(BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN_UPDATE >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN_UPDATE & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr2 = {
+	(BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr3 = {
+	(BNXT_ULP_RF_IDX_RF_1 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RF_1 & 0xff}
 	},
 	{
-	.description = "ttl_tl3_rdir",
+	.description = "cf",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_CF_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_CF_0 & 0xff}
 	},
 	{
-	.description = "ttl_il3_rdir",
+	.description = "pm",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 6, , table: cmm_stat_record.0 */
-	{
-	.description = "packet_count",
-	.field_bit_size = 64,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "byte_count",
-	.field_bit_size = 64,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 6, , table: cmm_full_act_record.0 */
-	{
-	.description = "type",
-	.field_bit_size = 3,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
 	.field_opr1 = {
-	1}
+	(BNXT_ULP_RF_IDX_PM_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_PM_0 & 0xff}
 	},
 	{
-	.description = "drop",
+	.description = "rfc2698",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
 	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
-	},
-	{
-	.description = "vlan_del_rpt",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	(BNXT_ULP_RF_IDX_RFC2698_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RFC2698_0 & 0xff}
 	},
 	{
-	.description = "vnic_or_vport",
-	.field_bit_size = 11,
+	.description = "cbsm",
+	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
 	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
+	(BNXT_ULP_RF_IDX_CBSM_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_CBSM_0 & 0xff}
 	},
 	{
-	.description = "dest_op",
-	.field_bit_size = 2,
+	.description = "ebsm",
+	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_EBSM_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_EBSM_0 & 0xff}
 	},
 	{
-	.description = "decap_func",
-	.field_bit_size = 5,
+	.description = "cbnd",
+	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_CBND_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_CBND_0 & 0xff}
 	},
 	{
-	.description = "mirror",
-	.field_bit_size = 5,
+	.description = "ebnd",
+	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_EBND_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_EBND_0 & 0xff}
 	},
 	{
-	.description = "meter_ptr",
-	.field_bit_size = 10,
+	.description = "cbs",
+	.field_bit_size = 12,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_CBS_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_CBS_0 & 0xff}
 	},
 	{
-	.description = "stat0_ptr",
-	.field_bit_size = 28,
+	.description = "ebs",
+	.field_bit_size = 12,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
 	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
+	(BNXT_ULP_RF_IDX_EBS_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_EBS_0 & 0xff}
 	},
 	{
-	.description = "stat0_ing_egr",
-	.field_bit_size = 1,
+	.description = "cir",
+	.field_bit_size = 17,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_CIR_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_CIR_0 & 0xff}
 	},
 	{
-	.description = "stat0_ctr_type",
-	.field_bit_size = 2,
+	.description = "eir",
+	.field_bit_size = 17,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_EIR_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_EIR_0 & 0xff}
 	},
 	{
-	.description = "stat1_ptr",
-	.field_bit_size = 28,
+	.description = "scope",
+	.field_bit_size = 5,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "stat1_ing_egr",
+	.description = "rsvd",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "stat1_ctr_type",
-	.field_bit_size = 2,
+	.description = "prot_en",
+	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr1 = {
+	1}
 	},
+	/* act_tid: 7, , table: jump_index_table.alloc */
+	/* act_tid: 7, , table: flow_chain_cache.write */
 	{
-	.description = "mod_rec_ptr",
-	.field_bit_size = 28,
+	.description = "rid",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
 	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_MODIFY_PTR >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MODIFY_PTR & 0xff}
+	(BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RID & 0xff}
 	},
 	{
-	.description = "encap_ptr",
-	.field_bit_size = 28,
+	.description = "metadata",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_JUMP_META >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_JUMP_META & 0xff}
 	},
+	/* act_tid: 7, , table: cmm_stat_record.0 */
 	{
-	.description = "src_ptr",
-	.field_bit_size = 28,
+	.description = "packet_count",
+	.field_bit_size = 64,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "rsvd0",
-	.field_bit_size = 7,
+	.description = "byte_count",
+	.field_bit_size = 64,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
-	/* act_tid: 7, , table: mod_record.egr_no_ttl */
+	/* act_tid: 7, , table: mod_record.ttl_0 */
 	{
 	.description = "metadata_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
+	.field_opr1 = {
+		(53 >> 8) & 0xff,
+		53 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "rem_ovlan",
@@ -7006,7 +6688,9 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.description = "ttl_update",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr1 = {
+	1}
 	},
 	{
 	.description = "tun_md_en",
@@ -7173,6 +6857,118 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
+	.description = "metadata_rsvd",
+	.field_bit_size = 10,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
+	.field_opr1 = {
+		(55 >> 8) & 0xff,
+		55 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "metadata_op",
+	.field_bit_size = 2,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
+	.field_opr1 = {
+		(57 >> 8) & 0xff,
+		57 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "metadata_prof",
+	.field_bit_size = 4,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
+	.field_opr1 = {
+		(59 >> 8) & 0xff,
+		59 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "metadata_data",
+	.field_bit_size = 32,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_AND,
+	.field_opr1 = {
+		(61 >> 8) & 0xff,
+		61 & 0xff,
+		(1 >> 8) & 0xff,
+		1 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr2 = {
+	(BNXT_ULP_RF_IDX_RF_1 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RF_1 & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_NEXT,
+	.field_opr3 = {
+	(1 >> 8) & 0xff,
+	1 & 0xff}
+	},
+	{
+	.description = "alt_pfid",
+	.field_bit_size = 5,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "alt_vid",
+	.field_bit_size = 12,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "ttl_rsvd",
+	.field_bit_size = 10,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "ttl_tl3_dec",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_CF,
+	.field_opr1 = {
+	(BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
+	BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
+	},
+	{
+	.description = "ttl_il3_dec",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_CF,
+	.field_opr1 = {
+	(BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
+	BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
+	},
+	{
+	.description = "ttl_otl3_rdir",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "ttl_tl3_rdir",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "ttl_il3_rdir",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
 	.description = "l2_dmac",
 	.field_bit_size = 48,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
@@ -7332,12 +7128,21 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
 	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
-	/* act_tid: 7, , table: mod_record.egr_ttl */
+	/* act_tid: 7, , table: mod_record.non_ttl_0 */
 	{
 	.description = "metadata_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
+	.field_opr1 = {
+		(64 >> 8) & 0xff,
+		64 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "rem_ovlan",
@@ -7367,9 +7172,7 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.description = "ttl_update",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	1}
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "tun_md_en",
@@ -7536,58 +7339,62 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "alt_pfid",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "alt_vid",
-	.field_bit_size = 12,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_rsvd",
+	.description = "metadata_rsvd",
 	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_tl3_dec",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CF,
-	.field_opr1 = {
-	(BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
-	BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
-	},
-	{
-	.description = "ttl_il3_dec",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CF,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
 	.field_opr1 = {
-	(BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
-	BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
+		(66 >> 8) & 0xff,
+		66 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
 	{
-	.description = "ttl_otl3_rdir",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.description = "metadata_op",
+	.field_bit_size = 2,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
+	.field_opr1 = {
+		(68 >> 8) & 0xff,
+		68 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
 	{
-	.description = "ttl_tl3_rdir",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.description = "metadata_prof",
+	.field_bit_size = 4,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
+	.field_opr1 = {
+		(70 >> 8) & 0xff,
+		70 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
 	{
-	.description = "ttl_il3_rdir",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.description = "metadata_data",
+	.field_bit_size = 32,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_AND,
+	.field_opr1 = {
+		(72 >> 8) & 0xff,
+		72 & 0xff,
+		(1 >> 8) & 0xff,
+		1 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr2 = {
+	(BNXT_ULP_RF_IDX_RF_1 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RF_1 & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_NEXT,
+	.field_opr3 = {
+	(2 >> 8) & 0xff,
+	2 & 0xff}
 	},
 	{
 	.description = "l2_dmac",
@@ -7749,350 +7556,314 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
 	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
-	/* act_tid: 7, , table: cmm_stat_record.0 */
-	{
-	.description = "packet_count",
-	.field_bit_size = 64,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "byte_count",
-	.field_bit_size = 64,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 7, , table: cmm_full_act_record.0 */
+	/* act_tid: 7, , table: sp_smac_ipv4.0 */
 	{
-	.description = "type",
-	.field_bit_size = 3,
+	.description = "smac",
+	.field_bit_size = 48,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 	.field_opr1 = {
-	1}
+	(BNXT_ULP_ENC_FIELD_ETH_SMAC >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_ETH_SMAC & 0xff}
 	},
 	{
-	.description = "drop",
-	.field_bit_size = 1,
+	.description = "ipv4_src_addr",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
+	(BNXT_ULP_ENC_FIELD_IPV4_SADDR >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_IPV4_SADDR & 0xff}
 	},
 	{
-	.description = "vlan_del_rpt",
-	.field_bit_size = 2,
+	.description = "reserved",
+	.field_bit_size = 48,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
+	/* act_tid: 7, , table: source_property_cache.wr */
 	{
-	.description = "vnic_or_vport",
-	.field_bit_size = 11,
+	.description = "rid",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
 	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
-	},
-	{
-	.description = "dest_op",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "decap_func",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "mirror",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "meter_ptr",
-	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	(BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RID & 0xff}
 	},
 	{
-	.description = "stat0_ptr",
-	.field_bit_size = 28,
+	.description = "sp_rec_ptr",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
 	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
+	(BNXT_ULP_RF_IDX_MAIN_SP_PTR >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_MAIN_SP_PTR & 0xff}
 	},
+	/* act_tid: 7, , table: ext_tun_vxlan_encap_record.ipv4_vxlan */
 	{
-	.description = "stat0_ing_egr",
+	.description = "ecv_valid",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stat0_ctr_type",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stat1_ptr",
-	.field_bit_size = 28,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr1 = {
+	ULP_THOR2_SYM_ECV_VALID_YES}
 	},
 	{
-	.description = "stat1_ing_egr",
+	.description = "ecv_custom_en",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "stat1_ctr_type",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "mod_rec_ptr",
-	.field_bit_size = 28,
+	.description = "ecv_vtag_type",
+	.field_bit_size = 4,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_MODIFY_PTR >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MODIFY_PTR & 0xff}
-	},
-	{
-	.description = "encap_ptr",
-	.field_bit_size = 28,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "src_ptr",
-	.field_bit_size = 28,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rsvd0",
-	.field_bit_size = 7,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 8, , table: cmm_stat_record.0 */
-	{
-	.description = "packet_count",
-	.field_bit_size = 64,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "byte_count",
-	.field_bit_size = 64,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 8, , table: mod_record.egr_set_mac */
-	{
-	.description = "metadata_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	(BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE & 0xff}
 	},
 	{
-	.description = "rem_ovlan",
+	.description = "ecv_l2_en",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr1 = {
+	ULP_THOR2_SYM_ECV_L2_EN_YES}
 	},
 	{
-	.description = "rem_ivlan",
-	.field_bit_size = 1,
+	.description = "ecv_l3_type",
+	.field_bit_size = 3,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr1 = {
+	(BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE & 0xff}
 	},
 	{
-	.description = "rep_add_ivlan",
-	.field_bit_size = 1,
+	.description = "ecv_l4_type",
+	.field_bit_size = 3,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr1 = {
+	ULP_THOR2_SYM_ECV_L4_TYPE_UDP_CSUM}
 	},
 	{
-	.description = "rep_add_ovlan",
-	.field_bit_size = 1,
+	.description = "ecv_tun_type",
+	.field_bit_size = 3,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr1 = {
+	ULP_THOR2_SYM_ECV_TUN_TYPE_VXLAN}
 	},
 	{
-	.description = "ttl_update",
-	.field_bit_size = 1,
+	.description = "enc_eth_dmac",
+	.field_bit_size = 48,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_ETH_DMAC >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_ETH_DMAC & 0xff}
 	},
 	{
-	.description = "tun_md_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.description = "enc_o_vlan_tag",
+	.field_bit_size = 16,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr2 = {
+	(BNXT_ULP_ENC_FIELD_O_VLAN_TCI >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_O_VLAN_TCI & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
 	{
-	.description = "reserved_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.description = "enc_o_vlan_type",
+	.field_bit_size = 16,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_HDR_BIT_OO_VLAN & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr2 = {
+	(BNXT_ULP_ENC_FIELD_O_VLAN_TYPE >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_O_VLAN_TYPE & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
 	{
-	.description = "l2_dmac_en",
-	.field_bit_size = 1,
+	.description = "enc_i_vlan_tag",
+	.field_bit_size = 16,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT,
 	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
+	(BNXT_ULP_ENC_FIELD_I_VLAN_TCI >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_I_VLAN_TCI & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
 	{
-	.description = "l2_smac_en",
-	.field_bit_size = 1,
+	.description = "enc_i_vlan_type",
+	.field_bit_size = 16,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_HDR_BIT,
 	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_HDR_BIT_OI_VLAN & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
+	(BNXT_ULP_ENC_FIELD_I_VLAN_TYPE >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_I_VLAN_TYPE & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
 	{
-	.description = "l3_sip_ipv6_en",
-	.field_bit_size = 1,
+	.description = "enc_ipv4_ihl",
+	.field_bit_size = 8,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_IPV4_IHL >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_IPV4_IHL & 0xff}
 	},
 	{
-	.description = "l3_dip_ipv6_en",
-	.field_bit_size = 1,
+	.description = "enc_ipv4_tos",
+	.field_bit_size = 8,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_IPV4_TOS >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_IPV4_TOS & 0xff}
 	},
 	{
-	.description = "l3_sip_ipv4_en",
-	.field_bit_size = 1,
+	.description = "enc_ipv4_pkt_id",
+	.field_bit_size = 16,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_IPV4_PKT_ID >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_IPV4_PKT_ID & 0xff}
 	},
 	{
-	.description = "l3_dip_ipv4_en",
-	.field_bit_size = 1,
+	.description = "enc_ipv4_frag",
+	.field_bit_size = 16,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_IPV4_FRAG >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_IPV4_FRAG & 0xff}
 	},
 	{
-	.description = "l4_sport_en",
-	.field_bit_size = 1,
+	.description = "enc_ipv4_ttl",
+	.field_bit_size = 8,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_IPV4_TTL >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_IPV4_TTL & 0xff}
 	},
 	{
-	.description = "l4_dport_en",
-	.field_bit_size = 1,
+	.description = "enc_ipv4_proto",
+	.field_bit_size = 8,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_IPV4_PROTO >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_IPV4_PROTO & 0xff}
 	},
 	{
-	.description = "l2_dmac",
-	.field_bit_size = 48,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.description = "enc_ipv4_daddr",
+	.field_bit_size = 32,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_MAC_DST >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_MAC_DST & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	(BNXT_ULP_ENC_FIELD_IPV4_DADDR >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_IPV4_DADDR & 0xff}
 	},
 	{
-	.description = "l2_smac",
-	.field_bit_size = 48,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.description = "enc_udp_sport",
+	.field_bit_size = 16,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_MAC_SRC >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_MAC_SRC & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	(BNXT_ULP_ENC_FIELD_UDP_SPORT >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_UDP_SPORT & 0xff}
 	},
-	/* act_tid: 8, , table: sp_smac_ipv4.0 */
 	{
-	.description = "smac",
-	.field_bit_size = 48,
+	.description = "enc_udp_dport",
+	.field_bit_size = 16,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_ETH_SMAC >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_ETH_SMAC & 0xff}
+	(BNXT_ULP_ENC_FIELD_UDP_DPORT >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_UDP_DPORT & 0xff}
 	},
 	{
-	.description = "ipv4_src_addr",
-	.field_bit_size = 32,
+	.description = "enc_vxlan_flags",
+	.field_bit_size = 8,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_IPV4_SADDR >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_IPV4_SADDR & 0xff}
+	(BNXT_ULP_ENC_FIELD_VXLAN_FLAGS >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_VXLAN_FLAGS & 0xff}
 	},
 	{
-	.description = "reserved",
-	.field_bit_size = 48,
+	.description = "enc_vxlan_rsvd0",
+	.field_bit_size = 24,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_VXLAN_RSVD0 >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_VXLAN_RSVD0 & 0xff}
 	},
-	/* act_tid: 8, , table: source_property_cache.wr */
+	{
+	.description = "enc_vxlan_vni",
+	.field_bit_size = 24,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_VXLAN_VNI >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_VXLAN_VNI & 0xff}
+	},
+	{
+	.description = "enc_vxlan_rsvd1",
+	.field_bit_size = 8,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_VXLAN_RSVD1 >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_VXLAN_RSVD1 & 0xff}
+	},
+	/* act_tid: 7, , table: vxlan_encap_rec_cache.wr */
 	{
 	.description = "rid",
 	.field_bit_size = 32,
@@ -8103,15 +7874,15 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	BNXT_ULP_RF_IDX_RID & 0xff}
 	},
 	{
-	.description = "sp_rec_ptr",
+	.description = "enc_rec_ptr",
 	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
 	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_MAIN_SP_PTR >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MAIN_SP_PTR & 0xff}
+	(BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
 	},
-	/* act_tid: 8, , table: ext_tun_vxlan_encap_record.ipv4_vxlan */
+	/* act_tid: 7, , table: ext_tun_vxlan_encap_record.ipv6_vxlan */
 	{
 	.description = "ecv_valid",
 	.field_bit_size = 1,
@@ -8258,67 +8029,46 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
 	{
-	.description = "enc_ipv4_ihl",
-	.field_bit_size = 8,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_IPV4_IHL >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_IPV4_IHL & 0xff}
-	},
-	{
-	.description = "enc_ipv4_tos",
-	.field_bit_size = 8,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_IPV4_TOS >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_IPV4_TOS & 0xff}
-	},
-	{
-	.description = "enc_ipv4_pkt_id",
-	.field_bit_size = 16,
+	.description = "enc_ipv6_vtc",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_IPV4_PKT_ID >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_IPV4_PKT_ID & 0xff}
+	(BNXT_ULP_ENC_FIELD_IPV6_VTC_FLOW >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_IPV6_VTC_FLOW & 0xff}
 	},
 	{
-	.description = "enc_ipv4_frag",
+	.description = "enc_ipv6_zero",
 	.field_bit_size = 16,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_IPV4_FRAG >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_IPV4_FRAG & 0xff}
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "enc_ipv4_ttl",
+	.description = "enc_ipv6_proto",
 	.field_bit_size = 8,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_IPV4_TTL >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_IPV4_TTL & 0xff}
+	(BNXT_ULP_ENC_FIELD_IPV6_PROTO >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_IPV6_PROTO & 0xff}
 	},
 	{
-	.description = "enc_ipv4_proto",
+	.description = "enc_ipv6_ttl",
 	.field_bit_size = 8,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_IPV4_PROTO >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_IPV4_PROTO & 0xff}
+	(BNXT_ULP_ENC_FIELD_IPV6_TTL >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_IPV6_TTL & 0xff}
 	},
 	{
-	.description = "enc_ipv4_daddr",
-	.field_bit_size = 32,
+	.description = "enc_ipv6_daddr",
+	.field_bit_size = 128,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_IPV4_DADDR >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_IPV4_DADDR & 0xff}
+	(BNXT_ULP_ENC_FIELD_IPV6_DADDR >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_IPV6_DADDR & 0xff}
 	},
 	{
 	.description = "enc_udp_sport",
@@ -8374,7 +8124,7 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	(BNXT_ULP_ENC_FIELD_VXLAN_RSVD1 >> 8) & 0xff,
 	BNXT_ULP_ENC_FIELD_VXLAN_RSVD1 & 0xff}
 	},
-	/* act_tid: 8, , table: vxlan_encap_rec_cache.wr */
+	/* act_tid: 7, , table: vxlan_encap_ipv6_rec_cache.wr */
 	{
 	.description = "rid",
 	.field_bit_size = 32,
@@ -8393,7 +8143,7 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	(BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
 	BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
 	},
-	/* act_tid: 8, , table: ext_tun_geneve_encap_record.ipv4_vxlan */
+	/* act_tid: 7, , table: ext_tun_geneve_encap_record.ipv4_vxlan */
 	{
 	.description = "ecv_valid",
 	.field_bit_size = 1,
@@ -8710,7 +8460,7 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W5 >> 8) & 0xff,
 	BNXT_ULP_ENC_FIELD_GENEVE_OPT_W5 & 0xff}
 	},
-	/* act_tid: 8, , table: ext_tun_geneve_encap_record.ipv6_geneve */
+	/* act_tid: 7, , table: ext_tun_geneve_encap_record.ipv6_geneve */
 	{
 	.description = "ecv_valid",
 	.field_bit_size = 1,
@@ -8875,434 +8625,237 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.description = "enc_ipv6_proto",
 	.field_bit_size = 8,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_IPV6_PROTO >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_IPV6_PROTO & 0xff}
-	},
-	{
-	.description = "enc_ipv6_ttl",
-	.field_bit_size = 8,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_IPV6_TTL >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_IPV6_TTL & 0xff}
-	},
-	{
-	.description = "enc_ipv6_daddr",
-	.field_bit_size = 128,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_IPV6_DADDR >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_IPV6_DADDR & 0xff}
-	},
-	{
-	.description = "enc_udp_sport",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_UDP_SPORT >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_UDP_SPORT & 0xff}
-	},
-	{
-	.description = "enc_udp_dport",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_UDP_DPORT >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_UDP_DPORT & 0xff}
-	},
-	{
-	.description = "enc_geneve_ver_opt_len_o_c_rsvd0",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_GENEVE_VER_OPT_LEN_O_C_RSVD0 >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_GENEVE_VER_OPT_LEN_O_C_RSVD0 & 0xff}
-	},
-	{
-	.description = "enc_geneve_proto_type",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_GENEVE_PROTO_TYPE >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_GENEVE_PROTO_TYPE & 0xff}
-	},
-	{
-	.description = "enc_geneve_vni",
-	.field_bit_size = 24,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_GENEVE_VNI >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_GENEVE_VNI & 0xff}
-	},
-	{
-	.description = "enc_geneve_rsvd1",
-	.field_bit_size = 8,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_GENEVE_RSVD1 >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_GENEVE_RSVD1 & 0xff}
-	},
-	{
-	.description = "enc_geneve_opt_w0",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W0 >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_GENEVE_OPT_W0 & 0xff}
-	},
-	{
-	.description = "enc_geneve_opt_w1",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W1 >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_GENEVE_OPT_W1 & 0xff}
-	},
-	{
-	.description = "enc_geneve_opt_w2",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W2 >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_GENEVE_OPT_W2 & 0xff}
-	},
-	{
-	.description = "enc_geneve_opt_w3",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W3 >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_GENEVE_OPT_W3 & 0xff}
-	},
-	{
-	.description = "enc_geneve_opt_w4",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W4 >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_GENEVE_OPT_W4 & 0xff}
-	},
-	{
-	.description = "enc_geneve_opt_w5",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
-	.field_opr1 = {
-	(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W5 >> 8) & 0xff,
-	BNXT_ULP_ENC_FIELD_GENEVE_OPT_W5 & 0xff}
-	},
-	/* act_tid: 8, , table: geneve_encap_rec_cache.wr */
-	{
-	.description = "rid",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_RID & 0xff}
-	},
-	{
-	.description = "enc_rec_ptr",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
-	},
-	/* act_tid: 8, , table: cmm_full_act_record.0 */
-	{
-	.description = "type",
-	.field_bit_size = 3,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	1}
-	},
-	{
-	.description = "drop",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
-	},
-	{
-	.description = "vlan_del_rpt",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "vnic_or_vport",
-	.field_bit_size = 11,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
-	},
-	{
-	.description = "dest_op",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "decap_func",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "mirror",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "meter_ptr",
-	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stat0_ptr",
-	.field_bit_size = 28,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
-	},
-	{
-	.description = "stat0_ing_egr",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stat0_ctr_type",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stat1_ptr",
-	.field_bit_size = 28,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stat1_ing_egr",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_IPV6_PROTO >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_IPV6_PROTO & 0xff}
 	},
 	{
-	.description = "stat1_ctr_type",
-	.field_bit_size = 2,
+	.description = "enc_ipv6_ttl",
+	.field_bit_size = 8,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_IPV6_TTL >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_IPV6_TTL & 0xff}
 	},
 	{
-	.description = "mod_rec_ptr",
-	.field_bit_size = 28,
+	.description = "enc_ipv6_daddr",
+	.field_bit_size = 128,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_MODIFY_PTR >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MODIFY_PTR & 0xff}
+	(BNXT_ULP_ENC_FIELD_IPV6_DADDR >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_IPV6_DADDR & 0xff}
 	},
 	{
-	.description = "encap_ptr",
-	.field_bit_size = 28,
+	.description = "enc_udp_sport",
+	.field_bit_size = 16,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
+	(BNXT_ULP_ENC_FIELD_UDP_SPORT >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_UDP_SPORT & 0xff}
 	},
 	{
-	.description = "src_ptr",
-	.field_bit_size = 28,
+	.description = "enc_udp_dport",
+	.field_bit_size = 16,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_MAIN_SP_PTR >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MAIN_SP_PTR & 0xff}
+	(BNXT_ULP_ENC_FIELD_UDP_DPORT >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_UDP_DPORT & 0xff}
 	},
 	{
-	.description = "rsvd0",
-	.field_bit_size = 7,
+	.description = "enc_geneve_ver_opt_len_o_c_rsvd0",
+	.field_bit_size = 16,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_GENEVE_VER_OPT_LEN_O_C_RSVD0 >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_GENEVE_VER_OPT_LEN_O_C_RSVD0 & 0xff}
 	},
-	/* act_tid: 9, , table: mod_record.meta */
 	{
-	.description = "metadata_en",
-	.field_bit_size = 1,
+	.description = "enc_geneve_proto_type",
+	.field_bit_size = 16,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 	.field_opr1 = {
-	1}
+	(BNXT_ULP_ENC_FIELD_GENEVE_PROTO_TYPE >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_GENEVE_PROTO_TYPE & 0xff}
 	},
 	{
-	.description = "rem_ovlan",
-	.field_bit_size = 1,
+	.description = "enc_geneve_vni",
+	.field_bit_size = 24,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_GENEVE_VNI >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_GENEVE_VNI & 0xff}
 	},
 	{
-	.description = "rem_ivlan",
-	.field_bit_size = 1,
+	.description = "enc_geneve_rsvd1",
+	.field_bit_size = 8,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_GENEVE_RSVD1 >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_GENEVE_RSVD1 & 0xff}
 	},
 	{
-	.description = "rep_add_ivlan",
-	.field_bit_size = 1,
+	.description = "enc_geneve_opt_w0",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W0 >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_GENEVE_OPT_W0 & 0xff}
 	},
 	{
-	.description = "rep_add_ovlan",
-	.field_bit_size = 1,
+	.description = "enc_geneve_opt_w1",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W1 >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_GENEVE_OPT_W1 & 0xff}
 	},
 	{
-	.description = "ttl_update",
-	.field_bit_size = 1,
+	.description = "enc_geneve_opt_w2",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W2 >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_GENEVE_OPT_W2 & 0xff}
 	},
 	{
-	.description = "tun_md_en",
-	.field_bit_size = 1,
+	.description = "enc_geneve_opt_w3",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W3 >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_GENEVE_OPT_W3 & 0xff}
 	},
 	{
-	.description = "reserved_en",
-	.field_bit_size = 1,
+	.description = "enc_geneve_opt_w4",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W4 >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_GENEVE_OPT_W4 & 0xff}
 	},
 	{
-	.description = "l2_dmac_en",
-	.field_bit_size = 1,
+	.description = "enc_geneve_opt_w5",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
+	.field_opr1 = {
+	(BNXT_ULP_ENC_FIELD_GENEVE_OPT_W5 >> 8) & 0xff,
+	BNXT_ULP_ENC_FIELD_GENEVE_OPT_W5 & 0xff}
 	},
+	/* act_tid: 7, , table: geneve_encap_rec_cache.wr */
 	{
-	.description = "l2_smac_en",
-	.field_bit_size = 1,
+	.description = "rid",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RID & 0xff}
 	},
 	{
-	.description = "l3_sip_ipv6_en",
-	.field_bit_size = 1,
+	.description = "enc_rec_ptr",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
 	},
+	/* act_tid: 7, , table: ext_vtag_encap_record.0 */
 	{
-	.description = "l3_dip_ipv6_en",
+	.description = "ecv_valid",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr1 = {
+	1}
 	},
 	{
-	.description = "l3_sip_ipv4_en",
+	.description = "ecv_custom_en",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "l3_dip_ipv4_en",
-	.field_bit_size = 1,
+	.description = "ecv_vtag_type",
+	.field_bit_size = 4,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr1 = {
+	ULP_THOR2_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI}
 	},
 	{
-	.description = "l4_sport_en",
+	.description = "ecv_l2_en",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "l4_dport_en",
-	.field_bit_size = 1,
+	.description = "ecv_l3_type",
+	.field_bit_size = 3,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "metadata_rsvd",
-	.field_bit_size = 10,
+	.description = "ecv_l4_type",
+	.field_bit_size = 3,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "metadata_op",
-	.field_bit_size = 2,
+	.description = "ecv_tun_type",
+	.field_bit_size = 3,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "metadata_prof",
-	.field_bit_size = 4,
+	.description = "vtag_tpid",
+	.field_bit_size = 16,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_GLB_RF,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 	.field_opr1 = {
-	(BNXT_ULP_GLB_RF_IDX_GLB_METADATA_TX_ACT_0 >> 8) & 0xff,
-	BNXT_ULP_GLB_RF_IDX_GLB_METADATA_TX_ACT_0 & 0xff}
+	(BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff}
 	},
 	{
-	.description = "metadata_data",
-	.field_bit_size = 32,
+	.description = "vtag_pcp",
+	.field_bit_size = 3,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_RF_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_RF_0 & 0xff}
+	(BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff}
 	},
-	/* act_tid: 9, , table: cmm_stat_record.0 */
 	{
-	.description = "packet_count",
-	.field_bit_size = 64,
+	.description = "vtag_de",
+	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
-	.description = "byte_count",
-	.field_bit_size = 64,
+	.description = "vtag_vid",
+	.field_bit_size = 12,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr1 = {
+	(BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff}
 	},
-	/* act_tid: 9, , table: cmm_full_act_record.0 */
+	/* act_tid: 7, , table: cmm_full_act_record.0 */
 	{
 	.description = "type",
 	.field_bit_size = 3,
@@ -9335,11 +8888,21 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	{
 	.description = "vnic_or_vport",
 	.field_bit_size = 11,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_AND,
 	.field_opr1 = {
-	(ULP_THOR2_SYM_LOOPBACK_PORT >> 8) & 0xff,
-	ULP_THOR2_SYM_LOOPBACK_PORT & 0xff}
+		(90 >> 8) & 0xff,
+		90 & 0xff,
+		(1 >> 8) & 0xff,
+		1 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	(ULP_THOR2_SYM_RECYCLE_DST >> 8) & 0xff,
+	ULP_THOR2_SYM_RECYCLE_DST & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_NEXT,
+	.field_opr3 = {
+	(3 >> 8) & 0xff,
+	3 & 0xff}
 	},
 	{
 	.description = "dest_op",
@@ -9357,7 +8920,10 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.description = "mirror",
 	.field_bit_size = 5,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff}
 	},
 	{
 	.description = "meter_ptr",
@@ -9378,9 +8944,7 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.description = "stat0_ing_egr",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	1}
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "stat0_ctr_type",
@@ -9419,7 +8983,10 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.description = "encap_ptr",
 	.field_bit_size = 28,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
 	},
 	{
 	.description = "src_ptr",
@@ -9433,7 +9000,7 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
-	/* act_tid: 10, , table: mod_record.meta */
+	/* act_tid: 12, , table: mod_record.meta */
 	{
 	.description = "metadata_en",
 	.field_bit_size = 1,
@@ -9562,7 +9129,7 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	(BNXT_ULP_RF_IDX_RF_0 >> 8) & 0xff,
 	BNXT_ULP_RF_IDX_RF_0 & 0xff}
 	},
-	/* act_tid: 10, , table: cmm_stat_record.0 */
+	/* act_tid: 12, , table: cmm_stat_record.0 */
 	{
 	.description = "packet_count",
 	.field_bit_size = 64,
@@ -9575,7 +9142,7 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
-	/* act_tid: 10, , table: cmm_full_act_record.0 */
+	/* act_tid: 12, , table: cmm_full_act_record.0 */
 	{
 	.description = "type",
 	.field_bit_size = 3,
@@ -9709,6 +9276,13 @@  struct bnxt_ulp_mapper_field_info ulp_thor2_act_result_field_list[] = {
 };
 
 struct bnxt_ulp_mapper_ident_info ulp_thor2_act_ident_list[] = {
+	/* act_tid: 1, , table: flow_chain_cache.rd */
+	{
+	.description = "metadata",
+	.regfile_idx = BNXT_ULP_RF_IDX_JUMP_META,
+	.ident_bit_size = 32,
+	.ident_bit_pos = 32
+	},
 	/* act_tid: 1, , table: shared_meter_tbl_cache.rd */
 	{
 	.description = "meter_ptr",
@@ -9736,28 +9310,14 @@  struct bnxt_ulp_mapper_ident_info ulp_thor2_act_ident_list[] = {
 	.ident_bit_size = 64,
 	.ident_bit_pos = 54
 	},
-	/* act_tid: 2, , table: shared_mirror_record.del_chk */
+	/* act_tid: 3, , table: shared_mirror_record.del_chk */
 	{
 	.description = "rid",
 	.regfile_idx = BNXT_ULP_RF_IDX_RID,
 	.ident_bit_size = 32,
 	.ident_bit_pos = 0
 	},
-	/* act_tid: 3, , table: shared_mirror_record.rd */
-	{
-	.description = "mirror_id",
-	.regfile_idx = BNXT_ULP_RF_IDX_MIRROR_ID_0,
-	.ident_bit_size = 5,
-	.ident_bit_pos = 32
-	},
-	/* act_tid: 4, , table: shared_mirror_record.rd */
-	{
-	.description = "mirror_id",
-	.regfile_idx = BNXT_ULP_RF_IDX_MIRROR_ID_0,
-	.ident_bit_size = 5,
-	.ident_bit_pos = 32
-	},
-	/* act_tid: 5, , table: meter_profile_tbl_cache.rd2 */
+	/* act_tid: 6, , table: meter_profile_tbl_cache.rd2 */
 	{
 	.description = "cbnd",
 	.regfile_idx = BNXT_ULP_RF_IDX_CBND_0,
@@ -9824,28 +9384,28 @@  struct bnxt_ulp_mapper_ident_info ulp_thor2_act_ident_list[] = {
 	.ident_bit_size = 1,
 	.ident_bit_pos = 34
 	},
-	/* act_tid: 5, , table: meter_profile_tbl_cache.del_chk */
+	/* act_tid: 6, , table: meter_profile_tbl_cache.del_chk */
 	{
 	.description = "rid",
 	.regfile_idx = BNXT_ULP_RF_IDX_RID,
 	.ident_bit_size = 32,
 	.ident_bit_pos = 0
 	},
-	/* act_tid: 5, , table: shared_meter_tbl_cache.del_chk */
+	/* act_tid: 6, , table: shared_meter_tbl_cache.del_chk */
 	{
 	.description = "rid",
 	.regfile_idx = BNXT_ULP_RF_IDX_RID,
 	.ident_bit_size = 32,
 	.ident_bit_pos = 0
 	},
-	/* act_tid: 5, , table: shared_meter_tbl_cache.rd_update */
+	/* act_tid: 6, , table: shared_meter_tbl_cache.rd_update */
 	{
 	.description = "meter_ptr",
 	.regfile_idx = BNXT_ULP_RF_IDX_METER_PTR_0,
 	.ident_bit_size = 10,
 	.ident_bit_pos = 32
 	},
-	/* act_tid: 5, , table: meter_tbl.update_rd */
+	/* act_tid: 6, , table: meter_tbl.update_rd */
 	{
 	.description = "cbnd",
 	.regfile_idx = BNXT_ULP_RF_IDX_CBND_0,
@@ -9924,21 +9484,42 @@  struct bnxt_ulp_mapper_ident_info ulp_thor2_act_ident_list[] = {
 	.ident_bit_size = 1,
 	.ident_bit_pos = 58
 	},
-	/* act_tid: 8, , table: source_property_cache.rd */
+	/* act_tid: 7, , table: flow_chain_cache.rd */
+	{
+	.description = "metadata",
+	.regfile_idx = BNXT_ULP_RF_IDX_JUMP_META,
+	.ident_bit_size = 32,
+	.ident_bit_pos = 32
+	},
+	/* act_tid: 7, , table: shared_mirror_record.rd */
+	{
+	.description = "mirror_id",
+	.regfile_idx = BNXT_ULP_RF_IDX_MIRROR_ID_0,
+	.ident_bit_size = 5,
+	.ident_bit_pos = 32
+	},
+	/* act_tid: 7, , table: source_property_cache.rd */
 	{
 	.description = "sp_rec_ptr",
 	.regfile_idx = BNXT_ULP_RF_IDX_MAIN_SP_PTR,
 	.ident_bit_size = 32,
 	.ident_bit_pos = 32
 	},
-	/* act_tid: 8, , table: vxlan_encap_rec_cache.rd */
+	/* act_tid: 7, , table: vxlan_encap_rec_cache.rd */
+	{
+	.description = "enc_rec_ptr",
+	.regfile_idx = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
+	.ident_bit_size = 32,
+	.ident_bit_pos = 32
+	},
+	/* act_tid: 7, , table: vxlan_encap_ipv6_rec_cache.rd */
 	{
 	.description = "enc_rec_ptr",
 	.regfile_idx = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
 	.ident_bit_size = 32,
 	.ident_bit_pos = 32
 	},
-	/* act_tid: 8, , table: geneve_encap_rec_cache.rd */
+	/* act_tid: 7, , table: geneve_encap_rec_cache.rd */
 	{
 	.description = "enc_rec_ptr",
 	.regfile_idx = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
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 28c9b47815..1e386113d5 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
@@ -168,6 +168,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
 	.pri_operand = 0,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.ident_start_idx = 8,
 	.ident_nums = 1
 	},
@@ -305,6 +306,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
 	.pri_operand = 140,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.ident_start_idx = 10,
 	.ident_nums = 1
 	},
@@ -326,6 +328,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
 	.pri_operand = 140,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.key_start_idx = 15,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
@@ -536,6 +539,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.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,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.ident_start_idx = 20,
 	.ident_nums = 1
 	},
@@ -555,6 +559,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,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.result_start_idx = 31,
 	.result_bit_size = 256,
 	.result_num_fields = 172
@@ -616,6 +621,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,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.result_start_idx = 206,
 	.result_bit_size = 256,
 	.result_num_fields = 172
@@ -679,6 +685,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.pri_opcode  = BNXT_ULP_PRI_OPC_REGFILE,
 	.pri_operand  = BNXT_ULP_RF_IDX_PROF_TCAM_PRIORITY,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.key_start_idx = 57,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
@@ -790,6 +797,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,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.result_start_idx = 396,
 	.result_bit_size = 256,
 	.result_num_fields = 172
@@ -916,6 +924,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.pri_operand = 0,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.result_start_idx = 587,
 	.result_bit_size = 128,
 	.result_num_fields = 15
@@ -1108,6 +1117,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.pri_opcode  = BNXT_ULP_PRI_OPC_CONST,
 	.pri_operand = 0,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.ident_start_idx = 35,
 	.ident_nums = 1
 	},
@@ -1127,6 +1137,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,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.result_start_idx = 602,
 	.result_bit_size = 256,
 	.result_num_fields = 172
@@ -1188,6 +1199,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,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.result_start_idx = 777,
 	.result_bit_size = 256,
 	.result_num_fields = 172
@@ -1252,6 +1264,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.pri_operand  = BNXT_ULP_RF_IDX_PROF_TCAM_PRIORITY,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_NO,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.key_start_idx = 211,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
@@ -1363,6 +1376,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,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.result_start_idx = 967,
 	.result_bit_size = 256,
 	.result_num_fields = 172
@@ -1489,6 +1503,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.pri_operand = 0,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
 	.critical_resource = BNXT_ULP_CRITICAL_RESOURCE_YES,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.result_start_idx = 1158,
 	.result_bit_size = 128,
 	.result_num_fields = 15
@@ -1511,6 +1526,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,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.result_start_idx = 1173,
 	.result_bit_size = 32,
 	.result_num_fields = 1
@@ -1533,6 +1549,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,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.result_start_idx = 1174,
 	.result_bit_size = 32,
 	.result_num_fields = 1
@@ -1555,6 +1572,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,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.result_start_idx = 1175,
 	.result_bit_size = 32,
 	.result_num_fields = 1
@@ -1577,6 +1595,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,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.result_start_idx = 1176,
 	.result_bit_size = 32,
 	.result_num_fields = 1
@@ -1599,6 +1618,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,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.result_start_idx = 1177,
 	.result_bit_size = 32,
 	.result_num_fields = 1
@@ -1621,6 +1641,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,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.result_start_idx = 1178,
 	.result_bit_size = 32,
 	.result_num_fields = 1
@@ -1747,6 +1768,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.pri_opcode  = BNXT_ULP_PRI_OPC_APP_PRI_OR_CONST,
 	.pri_operand = ULP_THOR2_SYM_PROF_TCAM_PRI_CATCHALL,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.key_start_idx = 356,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
@@ -1860,6 +1882,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.pri_opcode  = BNXT_ULP_PRI_OPC_APP_PRI_OR_CONST,
 	.pri_operand = ULP_THOR2_SYM_L2_CTXT_PRI_CATCHALL,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.key_start_idx = 426,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
@@ -2045,6 +2068,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.pri_opcode  = BNXT_ULP_PRI_OPC_APP_PRI_OR_CONST,
 	.pri_operand = ULP_THOR2_SYM_L2_CTXT_PRI_APP,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.key_start_idx = 453,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
@@ -2074,6 +2098,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.pri_opcode  = BNXT_ULP_PRI_OPC_APP_PRI_OR_CONST,
 	.pri_operand = ULP_THOR2_SYM_PROF_TCAM_PRI_CATCHALL,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.key_start_idx = 477,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
@@ -2249,6 +2274,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.pri_opcode  = BNXT_ULP_PRI_OPC_APP_PRI_OR_CONST,
 	.pri_operand = ULP_THOR2_SYM_L2_CTXT_PRI_APP,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.key_start_idx = 546,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
@@ -2432,6 +2458,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.pri_opcode  = BNXT_ULP_PRI_OPC_APP_PRI_OR_CONST,
 	.pri_operand = ULP_THOR2_SYM_PROF_TCAM_PRI_CATCHALL,
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.key_start_idx = 574,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
@@ -2522,6 +2549,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor2_class_tbl_list[] = {
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.pri_opcode  = BNXT_ULP_PRI_OPC_APP_PRI_OR_CONST,
 	.pri_operand = ULP_THOR2_SYM_L2_CTXT_PRI_CATCHALL,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.key_start_idx = 643,
 	.blob_key_bit_size = 256,
 	.key_bit_size = 256,
diff --git a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_act.c b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_act.c
index b8eb5e47f8..79850b2ad6 100644
--- a/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_act.c
+++ b/drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_act.c
@@ -13,101 +13,121 @@  struct bnxt_ulp_mapper_tmpl_info ulp_thor_act_tmpl_list[] = {
 	/* act_tid: 1, ingress */
 	[1] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR,
-	.num_tbls = 14,
+	.num_tbls = 17,
 	.start_tbl_idx = 0,
 	.reject_info = {
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
 		.cond_start_idx = 0,
-		.cond_nums = 1 }
+		.cond_nums = 0 }
 	},
 	/* act_tid: 2, ingress */
 	[2] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR,
-	.num_tbls = 10,
-	.start_tbl_idx = 14,
+	.num_tbls = 1,
+	.start_tbl_idx = 17,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
-		.cond_start_idx = 17,
+		.cond_start_idx = 20,
 		.cond_nums = 0 }
 	},
 	/* act_tid: 3, ingress */
 	[3] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR,
-	.num_tbls = 6,
-	.start_tbl_idx = 24,
+	.num_tbls = 10,
+	.start_tbl_idx = 18,
 	.reject_info = {
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 21,
-		.cond_nums = 1 }
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+		.cond_start_idx = 20,
+		.cond_nums = 0 }
 	},
 	/* act_tid: 4, ingress */
 	[4] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR,
-	.num_tbls = 7,
-	.start_tbl_idx = 30,
+	.num_tbls = 1,
+	.start_tbl_idx = 28,
 	.reject_info = {
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 27,
-		.cond_nums = 2 }
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+		.cond_start_idx = 24,
+		.cond_nums = 0 }
 	},
 	/* act_tid: 5, ingress */
 	[5] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR,
-	.num_tbls = 20,
-	.start_tbl_idx = 37,
+	.num_tbls = 1,
+	.start_tbl_idx = 29,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
-		.cond_start_idx = 36,
+		.cond_start_idx = 24,
 		.cond_nums = 0 }
 	},
-	/* act_tid: 6, egress */
+	/* act_tid: 6, ingress */
 	[6] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR,
-	.num_tbls = 13,
-	.start_tbl_idx = 57,
+	.num_tbls = 20,
+	.start_tbl_idx = 30,
 	.reject_info = {
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 51,
-		.cond_nums = 1 }
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+		.cond_start_idx = 24,
+		.cond_nums = 0 }
 	},
 	/* act_tid: 7, egress */
 	[7] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR,
-	.num_tbls = 6,
-	.start_tbl_idx = 70,
+	.num_tbls = 39,
+	.start_tbl_idx = 50,
 	.reject_info = {
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 65,
-		.cond_nums = 1 }
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+		.cond_start_idx = 39,
+		.cond_nums = 0 }
 	},
 	/* act_tid: 8, egress */
 	[8] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR,
-	.num_tbls = 25,
-	.start_tbl_idx = 76,
+	.num_tbls = 1,
+	.start_tbl_idx = 89,
 	.reject_info = {
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 71,
-		.cond_nums = 1 }
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+		.cond_start_idx = 86,
+		.cond_nums = 0 }
 	},
 	/* act_tid: 9, egress */
 	[9] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR,
-	.num_tbls = 5,
-	.start_tbl_idx = 101,
+	.num_tbls = 1,
+	.start_tbl_idx = 90,
 	.reject_info = {
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 103,
-		.cond_nums = 1 }
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+		.cond_start_idx = 86,
+		.cond_nums = 0 }
 	},
 	/* act_tid: 10, egress */
 	[10] = {
 	.device_name = BNXT_ULP_DEVICE_ID_THOR,
+	.num_tbls = 1,
+	.start_tbl_idx = 91,
+	.reject_info = {
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+		.cond_start_idx = 86,
+		.cond_nums = 0 }
+	},
+	/* act_tid: 11, egress */
+	[11] = {
+	.device_name = BNXT_ULP_DEVICE_ID_THOR,
+	.num_tbls = 1,
+	.start_tbl_idx = 92,
+	.reject_info = {
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
+		.cond_start_idx = 86,
+		.cond_nums = 0 }
+	},
+	/* act_tid: 12, egress */
+	[12] = {
+	.device_name = BNXT_ULP_DEVICE_ID_THOR,
 	.num_tbls = 11,
-	.start_tbl_idx = 106,
+	.start_tbl_idx = 93,
 	.reject_info = {
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_FALSE,
-		.cond_start_idx = 107,
+		.cond_start_idx = 86,
 		.cond_nums = 0 }
 	}
 };
@@ -123,7 +143,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 5,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 1,
+		.cond_start_idx = 0,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
@@ -142,9 +162,9 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 0,
+		.cond_false_goto = 4,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 2,
+		.cond_start_idx = 1,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_ALLOC_RID_REGFILE,
@@ -160,7 +180,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3,
+		.cond_start_idx = 2,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_ALLOC_TBL_OPC_ALLOC,
 	.tbl_operand = BNXT_ULP_RF_IDX_JUMP_META_IDX,
@@ -179,7 +199,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3,
+		.cond_start_idx = 2,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -202,7 +222,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 3,
+		.cond_start_idx = 2,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
@@ -226,7 +246,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 2,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 3,
+		.cond_start_idx = 2,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
@@ -243,11 +263,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.description = "control.meter_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
+	.true_message = "Reject due to unknown meter.",
 	.execute_info = {
 		.cond_true_goto  = 1023,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 4,
+		.cond_start_idx = 3,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
@@ -263,7 +284,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 2,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 5,
+		.cond_start_idx = 4,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
@@ -280,36 +301,44 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.description = "control.mirror",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
+	.true_message = "Reject due to non-existent handle",
 	.execute_info = {
 		.cond_true_goto  = 1023,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 6,
+		.cond_start_idx = 5,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 1, , table: int_flow_counter_tbl.0 */
-	.description = "int_flow_counter_tbl.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_ACT_STATS_64,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
+	{ /* act_tid: 1, , table: control.do_mod */
+	.description = "control.do_mod",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
+		.cond_false_goto = 3,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 7,
+		.cond_start_idx = 6,
 		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
 	.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 = 2,
-	.result_bit_size = 64,
-	.result_num_fields = 1
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+	.func_info = {
+		.func_opc = BNXT_ULP_FUNC_OPC_BIT_AND,
+		.func_src1 = BNXT_ULP_FUNC_SRC_ACTION_BITMAP,
+		.func_opr1 = BNXT_ULP_FUNC_SRC_ACTION_BITMAP,
+		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
+		.func_opr2 = BNXT_ULP_ACT_BIT_DEC_TTL |
+			BNXT_ULP_ACT_BIT_SET_MAC_SRC |
+			BNXT_ULP_ACT_BIT_SET_MAC_DST |
+			BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
+			BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+			BNXT_ULP_ACT_BIT_SET_IPV6_SRC |
+			BNXT_ULP_ACT_BIT_SET_IPV6_DST |
+			BNXT_ULP_ACT_BIT_SET_TP_SRC |
+			BNXT_ULP_ACT_BIT_SET_TP_DST |
+			BNXT_ULP_ACT_BIT_JUMP,
+		.func_dst_opr = BNXT_ULP_RF_IDX_RF_0 }
 	},
 	{ /* act_tid: 1, , table: mod_record.ing_ttl */
 	.description = "mod_record.ing_ttl",
@@ -322,16 +351,17 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 2,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 8,
+		.cond_start_idx = 7,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.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 = 3,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 2,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
-	.encap_num_fields = 29
+	.encap_num_fields = 35
 	},
 	{ /* act_tid: 1, , table: mod_record.ing_no_ttl */
 	.description = "mod_record.ing_no_ttl",
@@ -342,18 +372,95 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 2,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_LIST_AND,
-		.cond_start_idx = 0,
-		.cond_nums = 2 },
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 8,
+		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.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 = 32,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 37,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
-	.encap_num_fields = 22
+	.encap_num_fields = 28
+	},
+	{ /* act_tid: 1, , table: control.queue_and_rss_test */
+	.description = "control.queue_and_rss_test",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_RX,
+	.true_message = "Reject due to both queue and rss set",
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 9,
+		.cond_nums = 2 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
+	{ /* act_tid: 1, , table: vnic_interface_rss_config.0 */
+	.description = "vnic_interface_rss_config.0",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_VNIC_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_VNIC_TABLE_RSS,
+	.direction = TF_DIR_RX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 11,
+		.cond_nums = 1 },
+	.tbl_opcode = BNXT_ULP_VNIC_TBL_OPC_ALLOC_WR_REGFILE,
+	.tbl_operand = BNXT_ULP_RF_IDX_RSS_VNIC,
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+	.result_start_idx = 65,
+	.result_bit_size = 0,
+	.result_num_fields = 0
+	},
+	{ /* act_tid: 1, , table: vnic_interface_queue_config.0 */
+	.description = "vnic_interface_queue_config.0",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_VNIC_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_VNIC_TABLE_QUEUE,
+	.direction = TF_DIR_RX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 12,
+		.cond_nums = 1 },
+	.tbl_opcode = BNXT_ULP_VNIC_TBL_OPC_ALLOC_WR_REGFILE,
+	.tbl_operand = BNXT_ULP_RF_IDX_RSS_VNIC,
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+	.result_start_idx = 65,
+	.result_bit_size = 0,
+	.result_num_fields = 0
+	},
+	{ /* act_tid: 1, , table: int_flow_counter_tbl.0 */
+	.description = "int_flow_counter_tbl.0",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+	.resource_type = TF_TBL_TYPE_ACT_STATS_64,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
+	.direction = TF_DIR_RX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 13,
+		.cond_nums = 1 },
+	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
+	.tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 65,
+	.result_bit_size = 64,
+	.result_num_fields = 1
 	},
 	{ /* act_tid: 1, , table: int_full_act_record.0 */
 	.description = "int_full_act_record.0",
@@ -364,42 +471,36 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 0,
-		.cond_false_goto = 1,
+		.cond_false_goto = 0,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 13,
+		.cond_start_idx = 14,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
 	.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 = 54,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 66,
 	.result_bit_size = 128,
-	.result_num_fields = 17
+	.result_num_fields = 17,
+	.encap_num_fields = 0
 	},
-	{ /* act_tid: 1, , table: int_compact_act_record.0 */
-	.description = "int_compact_act_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_COMPACT_ACT_RECORD,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
+	{ /* act_tid: 2, , table: control.reject */
+	.description = "control.reject",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
+	.true_message = "Thor not supporting non-generic template",
 	.execute_info = {
-		.cond_true_goto  = 0,
+		.cond_true_goto  = 1023,
 		.cond_false_goto = 0,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 15,
+		.cond_start_idx = 20,
 		.cond_nums = 0 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
 	.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 = 71,
-	.result_bit_size = 64,
-	.result_num_fields = 13
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 2, , table: control.delete_chk */
+	{ /* act_tid: 3, , table: control.delete_chk */
 	.description = "control.delete_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -407,12 +508,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 4,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 17,
+		.cond_start_idx = 20,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 2, , table: shared_mirror_record.del_chk */
+	{ /* act_tid: 3, , table: shared_mirror_record.del_chk */
 	.description = "shared_mirror_record.del_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
@@ -423,7 +524,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 18,
+		.cond_start_idx = 21,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
@@ -437,7 +538,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.ident_start_idx = 3,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 2, , table: control.mirror_del_exist_chk */
+	{ /* act_tid: 3, , table: control.mirror_del_exist_chk */
 	.description = "control.mirror_del_exist_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -445,12 +546,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 18,
+		.cond_start_idx = 21,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 2, , table: control.mirror_ref_cnt_chk */
+	{ /* act_tid: 3, , table: control.mirror_ref_cnt_chk */
 	.description = "control.mirror_ref_cnt_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -458,7 +559,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 19,
+		.cond_start_idx = 22,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_DELETE_RID_REGFILE,
@@ -471,7 +572,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.func_opr2 = 1,
 		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
-	{ /* act_tid: 2, , table: control.create */
+	{ /* act_tid: 3, , table: control.create */
 	.description = "control.create",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -479,13 +580,13 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 20,
+		.cond_start_idx = 23,
 		.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
 	},
-	{ /* act_tid: 2, , table: mirror_tbl.alloc */
+	{ /* act_tid: 3, , table: mirror_tbl.alloc */
 	.description = "mirror_tbl.alloc",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
@@ -496,7 +597,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 20,
+		.cond_start_idx = 23,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_MIRROR_PTR_0,
@@ -504,11 +605,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_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 = 84,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 83,
 	.result_bit_size = 32,
 	.result_num_fields = 5
 	},
-	{ /* act_tid: 2, , table: int_flow_counter_tbl.0 */
+	{ /* act_tid: 3, , table: int_flow_counter_tbl.0 */
 	.description = "int_flow_counter_tbl.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_ACT_STATS_64,
@@ -519,7 +621,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 20,
+		.cond_start_idx = 23,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
@@ -527,11 +629,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_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 = 89,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 88,
 	.result_bit_size = 64,
 	.result_num_fields = 1
 	},
-	{ /* act_tid: 2, , table: int_compact_act_record.0 */
+	{ /* act_tid: 3, , table: int_compact_act_record.0 */
 	.description = "int_compact_act_record.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_COMPACT_ACT_RECORD,
@@ -542,7 +645,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 21,
+		.cond_start_idx = 24,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
@@ -550,12 +653,13 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_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 = 90,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 89,
 	.result_bit_size = 64,
 	.result_num_fields = 13,
 	.encap_num_fields = 0
 	},
-	{ /* act_tid: 2, , table: mirror_tbl.wr */
+	{ /* act_tid: 3, , table: mirror_tbl.wr */
 	.description = "mirror_tbl.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
@@ -566,18 +670,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 21,
+		.cond_start_idx = 24,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_MIRROR_PTR_0,
 	.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 = 103,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 102,
 	.result_bit_size = 32,
 	.result_num_fields = 5
 	},
-	{ /* act_tid: 2, , table: shared_mirror_record.wr */
+	{ /* act_tid: 3, , table: shared_mirror_record.wr */
 	.description = "shared_mirror_record.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
@@ -588,7 +693,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 0,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 21,
+		.cond_start_idx = 24,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
@@ -600,292 +705,52 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.blob_key_bit_size = 8,
 	.key_bit_size = 8,
 	.key_num_fields = 1,
-	.result_start_idx = 108,
+	.result_start_idx = 107,
 	.result_bit_size = 36,
 	.result_num_fields = 2
 	},
-	{ /* act_tid: 3, , table: shared_mirror_record.rd */
-	.description = "shared_mirror_record.rd",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
-	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR,
+	{ /* act_tid: 4, , table: control.reject */
+	.description = "control.reject",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
+	.true_message = "Thor not supporting non-generic template",
 	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 2,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 22,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
-	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+		.cond_true_goto  = 1023,
+		.cond_false_goto = 0,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 24,
+		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 6,
-	.blob_key_bit_size = 8,
-	.key_bit_size = 8,
-	.key_num_fields = 1,
-	.ident_start_idx = 4,
-	.ident_nums = 1
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 3, , table: control.mirror */
-	.description = "control.mirror",
+	{ /* act_tid: 5, , table: control.reject */
+	.description = "control.reject",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
+	.true_message = "Thor not supporting non-generic template",
 	.execute_info = {
 		.cond_true_goto  = 1023,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 23,
-		.cond_nums = 1 },
+		.cond_false_goto = 0,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 24,
+		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 3, , table: int_flow_counter_tbl.0 */
-	.description = "int_flow_counter_tbl.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_ACT_STATS_64,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
+	{ /* act_tid: 6, , table: control.create_check */
+	.description = "control.create_check",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
+		.cond_false_goto = 11,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
 		.cond_start_idx = 24,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
+		.cond_nums = 2 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 110,
-	.result_bit_size = 64,
-	.result_num_fields = 1
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 3, , table: mod_record.ing_ttl */
-	.description = "mod_record.ing_ttl",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_ACT_MODIFY_64B,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 2,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 25,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.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 = 111,
-	.result_bit_size = 0,
-	.result_num_fields = 0,
-	.encap_num_fields = 31
-	},
-	{ /* act_tid: 3, , table: mod_record.ing_no_ttl */
-	.description = "mod_record.ing_no_ttl",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_ACT_MODIFY_64B,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 26,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.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 = 142,
-	.result_bit_size = 0,
-	.result_num_fields = 0,
-	.encap_num_fields = 24
-	},
-	{ /* act_tid: 3, , table: int_full_act_record.0 */
-	.description = "int_full_act_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 0,
-		.cond_false_goto = 0,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 27,
-		.cond_nums = 0 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 166,
-	.result_bit_size = 128,
-	.result_num_fields = 17
-	},
-	{ /* act_tid: 4, , table: shared_mirror_record.rd */
-	.description = "shared_mirror_record.rd",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
-	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 2,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 29,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
-	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 7,
-	.blob_key_bit_size = 8,
-	.key_bit_size = 8,
-	.key_num_fields = 1,
-	.ident_start_idx = 5,
-	.ident_nums = 1
-	},
-	{ /* act_tid: 4, , table: control.mirror */
-	.description = "control.mirror",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 1023,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 30,
-		.cond_nums = 1 },
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
-	},
-	{ /* act_tid: 4, , table: int_flow_counter_tbl.0 */
-	.description = "int_flow_counter_tbl.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_ACT_STATS_64,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 31,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
-	.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 = 183,
-	.result_bit_size = 64,
-	.result_num_fields = 1
-	},
-	{ /* act_tid: 4, , table: vnic_interface_rss_config.0 */
-	.description = "vnic_interface_rss_config.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_VNIC_TABLE,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_VNIC_TABLE_RSS,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 32,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_VNIC_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_RSS_VNIC,
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 184,
-	.result_bit_size = 0,
-	.result_num_fields = 0
-	},
-	{ /* act_tid: 4, , table: vnic_interface_queue_config.0 */
-	.description = "vnic_interface_queue_config.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_VNIC_TABLE,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_VNIC_TABLE_QUEUE,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 33,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_VNIC_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_RSS_VNIC,
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 184,
-	.result_bit_size = 0,
-	.result_num_fields = 0
-	},
-	{ /* act_tid: 4, , table: int_compact_act_record.0 */
-	.description = "int_compact_act_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_COMPACT_ACT_RECORD,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 0,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
-		.cond_start_idx = 34,
-		.cond_nums = 2 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
-	.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 = 184,
-	.result_bit_size = 64,
-	.result_num_fields = 13,
-	.encap_num_fields = 0
-	},
-	{ /* act_tid: 4, , table: int_compact_act_record.1 */
-	.description = "int_compact_act_record.1",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_COMPACT_ACT_RECORD,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 0,
-		.cond_false_goto = 0,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 36,
-		.cond_nums = 0 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
-	.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 = 197,
-	.result_bit_size = 64,
-	.result_num_fields = 13,
-	.encap_num_fields = 0
-	},
-	{ /* act_tid: 5, , table: control.create_check */
-	.description = "control.create_check",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
-	.direction = TF_DIR_RX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 11,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 36,
-		.cond_nums = 2 },
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
-	},
-	{ /* act_tid: 5, , table: meter_profile_tbl_cache.rd */
+	{ /* act_tid: 6, , table: meter_profile_tbl_cache.rd */
 	.description = "meter_profile_tbl_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -895,21 +760,21 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 4,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 38,
+		.cond_start_idx = 26,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
 	.ref_cnt_opcode = BNXT_ULP_REF_CNT_OPC_NOP,
-	.key_start_idx = 8,
+	.key_start_idx = 6,
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.ident_start_idx = 6,
+	.ident_start_idx = 4,
 	.ident_nums = 0
 	},
-	{ /* act_tid: 5, , table: control.shared_meter_profile_0 */
+	{ /* act_tid: 6, , table: control.shared_meter_profile_0 */
 	.description = "control.shared_meter_profile_0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -917,13 +782,13 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 39,
+		.cond_start_idx = 27,
 		.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
 	},
-	{ /* act_tid: 5, , table: meter_profile_tbl.0 */
+	{ /* act_tid: 6, , table: meter_profile_tbl.0 */
 	.description = "meter_profile_tbl.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_METER_PROF,
@@ -934,18 +799,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 40,
+		.cond_start_idx = 28,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_METER_PROFILE_PTR_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,
-	.result_start_idx = 210,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 109,
 	.result_bit_size = 65,
 	.result_num_fields = 11
 	},
-	{ /* act_tid: 5, , table: meter_profile_tbl_cache.wr */
+	{ /* act_tid: 6, , table: meter_profile_tbl_cache.wr */
 	.description = "meter_profile_tbl_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_type = TF_TBL_TYPE_METER_PROF,
@@ -956,22 +822,22 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 40,
+		.cond_start_idx = 28,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.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,
-	.key_start_idx = 9,
+	.key_start_idx = 7,
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.result_start_idx = 221,
+	.result_start_idx = 120,
 	.result_bit_size = 42,
 	.result_num_fields = 2
 	},
-	{ /* act_tid: 5, , table: shared_meter_tbl_cache.rd */
+	{ /* act_tid: 6, , table: shared_meter_tbl_cache.rd */
 	.description = "shared_meter_tbl_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -981,21 +847,21 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 40,
+		.cond_start_idx = 28,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
 	.ref_cnt_opcode = BNXT_ULP_REF_CNT_OPC_NOP,
-	.key_start_idx = 10,
+	.key_start_idx = 8,
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.ident_start_idx = 6,
+	.ident_start_idx = 4,
 	.ident_nums = 0
 	},
-	{ /* act_tid: 5, , table: control.meter_created_chk */
+	{ /* act_tid: 6, , table: control.meter_created_chk */
 	.description = "control.meter_created_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -1003,13 +869,13 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 41,
+		.cond_start_idx = 29,
 		.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
 	},
-	{ /* act_tid: 5, , table: meter_profile_tbl_cache.rd2 */
+	{ /* act_tid: 6, , table: meter_profile_tbl_cache.rd2 */
 	.description = "meter_profile_tbl_cache.rd2",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -1019,21 +885,21 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 42,
+		.cond_start_idx = 30,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.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,
-	.key_start_idx = 11,
+	.key_start_idx = 9,
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.ident_start_idx = 6,
+	.ident_start_idx = 4,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 5, , table: control.shared_meter_profile_chk */
+	{ /* act_tid: 6, , table: control.shared_meter_profile_chk */
 	.description = "control.shared_meter_profile_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -1041,12 +907,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1023,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 42,
+		.cond_start_idx = 30,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 5, , table: meter_tbl.0 */
+	{ /* act_tid: 6, , table: meter_tbl.0 */
 	.description = "meter_tbl.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_METER_INST,
@@ -1057,18 +923,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 43,
+		.cond_start_idx = 31,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_METER_PTR_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,
-	.result_start_idx = 223,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 122,
 	.result_bit_size = 64,
 	.result_num_fields = 5
 	},
-	{ /* act_tid: 5, , table: shared_meter_tbl_cache.wr */
+	{ /* act_tid: 6, , table: shared_meter_tbl_cache.wr */
 	.description = "shared_meter_tbl_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -1078,22 +945,22 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 43,
+		.cond_start_idx = 31,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.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,
-	.key_start_idx = 12,
+	.key_start_idx = 10,
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.result_start_idx = 228,
+	.result_start_idx = 127,
 	.result_bit_size = 74,
 	.result_num_fields = 3
 	},
-	{ /* act_tid: 5, , table: control.delete_check */
+	{ /* act_tid: 6, , table: control.delete_check */
 	.description = "control.delete_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -1101,12 +968,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 5,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 43,
+		.cond_start_idx = 31,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 5, , table: meter_profile_tbl_cache.del_chk */
+	{ /* act_tid: 6, , table: meter_profile_tbl_cache.del_chk */
 	.description = "meter_profile_tbl_cache.del_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -1116,21 +983,21 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 2,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 44,
+		.cond_start_idx = 32,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
 	.ref_cnt_opcode = BNXT_ULP_REF_CNT_OPC_NOP,
-	.key_start_idx = 13,
+	.key_start_idx = 11,
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.ident_start_idx = 7,
+	.ident_start_idx = 5,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 5, , table: control.mtr_prof_ref_cnt_chk */
+	{ /* act_tid: 6, , table: control.mtr_prof_ref_cnt_chk */
 	.description = "control.mtr_prof_ref_cnt_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -1138,7 +1005,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 45,
+		.cond_start_idx = 33,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_DELETE_RID_REGFILE,
@@ -1151,7 +1018,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.func_opr2 = 1,
 		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
-	{ /* act_tid: 5, , table: shared_meter_tbl_cache.del_chk */
+	{ /* act_tid: 6, , table: shared_meter_tbl_cache.del_chk */
 	.description = "shared_meter_tbl_cache.del_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -1161,21 +1028,21 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 46,
+		.cond_start_idx = 34,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
 	.ref_cnt_opcode = BNXT_ULP_REF_CNT_OPC_NOP,
-	.key_start_idx = 14,
+	.key_start_idx = 12,
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.ident_start_idx = 8,
+	.ident_start_idx = 6,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 5, , table: control.shared_mtr_ref_cnt_chk */
+	{ /* act_tid: 6, , table: control.shared_mtr_ref_cnt_chk */
 	.description = "control.shared_mtr_ref_cnt_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -1183,7 +1050,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 47,
+		.cond_start_idx = 35,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_DELETE_RID_REGFILE,
@@ -1196,7 +1063,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.func_opr2 = 1,
 		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
-	{ /* act_tid: 5, , table: control.update_check */
+	{ /* act_tid: 6, , table: control.update_check */
 	.description = "control.update_check",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_RX,
@@ -1204,12 +1071,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 48,
+		.cond_start_idx = 36,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 5, , table: shared_meter_tbl_cache.rd_update */
+	{ /* act_tid: 6, , table: shared_meter_tbl_cache.rd_update */
 	.description = "shared_meter_tbl_cache.rd_update",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -1219,21 +1086,21 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 48,
+		.cond_start_idx = 36,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
 	.ref_cnt_opcode = BNXT_ULP_REF_CNT_OPC_NOP,
-	.key_start_idx = 15,
+	.key_start_idx = 13,
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.ident_start_idx = 9,
+	.ident_start_idx = 7,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 5, , table: meter_tbl.update_rd */
+	{ /* act_tid: 6, , table: meter_tbl.update_rd */
 	.description = "meter_tbl.update_rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_METER_INST,
@@ -1244,17 +1111,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 49,
+		.cond_start_idx = 37,
 		.cond_nums = 2 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_RD_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_METER_PTR_0,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.ident_start_idx = 10,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.ident_start_idx = 8,
 	.ident_nums = 3,
 	.result_bit_size = 64
 	},
-	{ /* act_tid: 5, , table: meter_tbl.update_wr */
+	{ /* act_tid: 6, , table: meter_tbl.update_wr */
 	.description = "meter_tbl.update_wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_METER_INST,
@@ -1265,17 +1133,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 0,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 51,
+		.cond_start_idx = 39,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_METER_PTR_0,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
-	.result_start_idx = 231,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 130,
 	.result_bit_size = 64,
 	.result_num_fields = 5
 	},
-	{ /* act_tid: 6, , table: flow_chain_cache.rd */
+	{ /* act_tid: 7, , table: flow_chain_cache.rd */
 	.description = "flow_chain_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -1283,36 +1152,50 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 5,
+		.cond_false_goto = 6,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 52,
+		.cond_start_idx = 39,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 16,
+	.key_start_idx = 14,
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.ident_start_idx = 13,
+	.ident_start_idx = 11,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 6, , table: control.flow_chain */
+	{ /* act_tid: 7, , table: control.no_jump_vf_to_vf */
+	.description = "control.no_jump_vf_to_vf",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_TX,
+	.true_message = "Reject: unsupported vf_to_vf + jump.",
+	.execute_info = {
+		.cond_true_goto  = 1023,
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 40,
+		.cond_nums = 1 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
+	{ /* act_tid: 7, , table: control.flow_chain */
 	.description = "control.flow_chain",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 0,
+		.cond_false_goto = 4,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 53,
+		.cond_start_idx = 41,
 		.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
 	},
-	{ /* act_tid: 6, , table: jump_index_table.alloc */
+	{ /* act_tid: 7, , table: jump_index_table.alloc */
 	.description = "jump_index_table.alloc",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_ALLOCATOR_TABLE,
 	.resource_sub_type =
@@ -1322,18 +1205,18 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 54,
+		.cond_start_idx = 42,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_ALLOC_TBL_OPC_ALLOC,
 	.tbl_operand = BNXT_ULP_RF_IDX_JUMP_META_IDX,
 	.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 = 236,
+	.result_start_idx = 135,
 	.result_bit_size = 0,
 	.result_num_fields = 0
 	},
-	{ /* act_tid: 6, , table: control.metadata_cal */
+	{ /* act_tid: 7, , table: control.metadata_cal */
 	.description = "control.metadata_cal",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
@@ -1341,7 +1224,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 54,
+		.cond_start_idx = 42,
 		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
@@ -1354,7 +1237,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.func_opr2 = ULP_THOR_SYM_CHAIN_META_VAL,
 		.func_dst_opr = BNXT_ULP_RF_IDX_JUMP_META }
 	},
-	{ /* act_tid: 6, , table: flow_chain_cache.write */
+	{ /* act_tid: 7, , table: flow_chain_cache.write */
 	.description = "flow_chain_cache.write",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -1364,58 +1247,21 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 54,
+		.cond_start_idx = 42,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 17,
+	.key_start_idx = 15,
 	.blob_key_bit_size = 32,
 	.key_bit_size = 32,
 	.key_num_fields = 1,
-	.result_start_idx = 236,
+	.result_start_idx = 135,
 	.result_bit_size = 48,
 	.result_num_fields = 2
 	},
-	{ /* act_tid: 6, , table: shared_mirror_record.rd */
-	.description = "shared_mirror_record.rd",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
-	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR,
-	.direction = TF_DIR_TX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 2,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 54,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
-	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 18,
-	.blob_key_bit_size = 8,
-	.key_bit_size = 8,
-	.key_num_fields = 1,
-	.ident_start_idx = 14,
-	.ident_nums = 1
-	},
-	{ /* act_tid: 6, , table: control.mirror */
-	.description = "control.mirror",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
-	.direction = TF_DIR_TX,
-	.execute_info = {
-		.cond_true_goto  = 1023,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 55,
-		.cond_nums = 1 },
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
-	},
-	{ /* act_tid: 6, , table: int_flow_counter_tbl.0 */
+	{ /* act_tid: 7, , table: int_flow_counter_tbl.0 */
 	.description = "int_flow_counter_tbl.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_ACT_STATS_64,
@@ -1426,124 +1272,17 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 56,
+		.cond_start_idx = 42,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 238,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 137,
 	.result_bit_size = 64,
 	.result_num_fields = 1
 	},
-	{ /* act_tid: 6, , table: int_vtag_encap_record.0 */
-	.description = "int_vtag_encap_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
-	.direction = TF_DIR_TX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 57,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 239,
-	.result_bit_size = 0,
-	.result_num_fields = 0,
-	.encap_num_fields = 11
-	},
-	{ /* act_tid: 6, , table: mod_record.dec_ttl_egr */
-	.description = "mod_record.dec_ttl_egr",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_ACT_MODIFY_64B,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
-	.direction = TF_DIR_TX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 58,
-		.cond_nums = 2 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.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 = 250,
-	.result_bit_size = 0,
-	.result_num_fields = 0,
-	.encap_num_fields = 23
-	},
-	{ /* act_tid: 6, , table: mod_record.no_dec_ttl_egr */
-	.description = "mod_record.no_dec_ttl_egr",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_ACT_MODIFY_64B,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
-	.direction = TF_DIR_TX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 60,
-		.cond_nums = 2 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.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 = 273,
-	.result_bit_size = 0,
-	.result_num_fields = 0,
-	.encap_num_fields = 20
-	},
-	{ /* act_tid: 6, , table: int_full_act_record.0 */
-	.description = "int_full_act_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
-	.direction = TF_DIR_TX,
-	.execute_info = {
-		.cond_true_goto  = 0,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
-		.cond_start_idx = 62,
-		.cond_nums = 3 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 293,
-	.result_bit_size = 128,
-	.result_num_fields = 17
-	},
-	{ /* act_tid: 6, , table: int_compact_act_record.0 */
-	.description = "int_compact_act_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_COMPACT_ACT_RECORD,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
-	.direction = TF_DIR_TX,
-	.execute_info = {
-		.cond_true_goto  = 0,
-		.cond_false_goto = 0,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 65,
-		.cond_nums = 0 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 310,
-	.result_bit_size = 64,
-	.result_num_fields = 13
-	},
 	{ /* act_tid: 7, , table: shared_mirror_record.rd */
 	.description = "shared_mirror_record.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
@@ -1555,52 +1294,62 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 2,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 66,
+		.cond_start_idx = 43,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 19,
+	.key_start_idx = 16,
 	.blob_key_bit_size = 8,
 	.key_bit_size = 8,
 	.key_num_fields = 1,
-	.ident_start_idx = 15,
+	.ident_start_idx = 12,
 	.ident_nums = 1
 	},
 	{ /* act_tid: 7, , table: control.mirror */
 	.description = "control.mirror",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
+	.true_message = "Reject due to non-existent shared handle",
 	.execute_info = {
 		.cond_true_goto  = 1023,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 67,
+		.cond_start_idx = 44,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 7, , table: int_flow_counter_tbl.0 */
-	.description = "int_flow_counter_tbl.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_ACT_STATS_64,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
+	{ /* act_tid: 7, , table: control.do_mod */
+	.description = "control.do_mod",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
+		.cond_false_goto = 3,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 68,
+		.cond_start_idx = 45,
 		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 323,
-	.result_bit_size = 64,
-	.result_num_fields = 1
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
+	.func_info = {
+		.func_opc = BNXT_ULP_FUNC_OPC_BIT_AND,
+		.func_src1 = BNXT_ULP_FUNC_SRC_ACTION_BITMAP,
+		.func_opr1 = BNXT_ULP_FUNC_SRC_ACTION_BITMAP,
+		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
+		.func_opr2 = BNXT_ULP_ACT_BIT_DEC_TTL |
+			BNXT_ULP_ACT_BIT_SET_MAC_SRC |
+			BNXT_ULP_ACT_BIT_SET_MAC_DST |
+			BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
+			BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+			BNXT_ULP_ACT_BIT_SET_IPV6_SRC |
+			BNXT_ULP_ACT_BIT_SET_IPV6_DST |
+			BNXT_ULP_ACT_BIT_SET_TP_SRC |
+			BNXT_ULP_ACT_BIT_SET_TP_DST |
+			BNXT_ULP_ACT_BIT_JUMP |
+			BNXT_ULP_ACT_BIT_VF_TO_VF,
+		.func_dst_opr = BNXT_ULP_RF_IDX_RF_0 }
 	},
 	{ /* act_tid: 7, , table: mod_record.ing_ttl */
 	.description = "mod_record.ing_ttl",
@@ -1613,16 +1362,17 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 2,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 69,
+		.cond_start_idx = 46,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.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 = 324,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 138,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
-	.encap_num_fields = 31
+	.encap_num_fields = 35
 	},
 	{ /* act_tid: 7, , table: mod_record.ing_no_ttl */
 	.description = "mod_record.ing_no_ttl",
@@ -1634,98 +1384,47 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 70,
-		.cond_nums = 1 },
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 57,
+		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.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 = 355,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 173,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
-	.encap_num_fields = 24
-	},
-	{ /* act_tid: 7, , table: int_full_act_record.0 */
-	.description = "int_full_act_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
-	.direction = TF_DIR_TX,
-	.execute_info = {
-		.cond_true_goto  = 0,
-		.cond_false_goto = 0,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 71,
-		.cond_nums = 0 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 379,
-	.result_bit_size = 128,
-	.result_num_fields = 17
+	.encap_num_fields = 28
 	},
-	{ /* act_tid: 8, , table: shared_mirror_record.rd */
-	.description = "shared_mirror_record.rd",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
-	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR,
+	{ /* act_tid: 7, , table: control.do_tunnel_check */
+	.description = "control.do_tunnel_check",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 2,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 72,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
-	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+		.cond_false_goto = 24,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
+		.cond_start_idx = 67,
+		.cond_nums = 2 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 20,
-	.blob_key_bit_size = 8,
-	.key_bit_size = 8,
-	.key_num_fields = 1,
-	.ident_start_idx = 16,
-	.ident_nums = 1
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 8, , table: control.mirror */
-	.description = "control.mirror",
+	{ /* act_tid: 7, , table: control.do_tunnel_vlan_exclusion */
+	.description = "control.do_tunnel_vlan_exclusion",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
+	.true_message = "Tunnel Encap + Push VLAN unsupported.",
 	.execute_info = {
 		.cond_true_goto  = 1023,
 		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 73,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
+		.cond_start_idx = 69,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 8, , table: int_flow_counter_tbl.0 */
-	.description = "int_flow_counter_tbl.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_ACT_STATS_64,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
-	.direction = TF_DIR_TX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 74,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 396,
-	.result_bit_size = 64,
-	.result_num_fields = 1
-	},
-	{ /* act_tid: 8, , table: source_property_cache.rd */
+	{ /* act_tid: 7, , table: source_property_cache.rd */
 	.description = "source_property_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -1735,34 +1434,34 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 4,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 75,
+		.cond_start_idx = 70,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 21,
+	.key_start_idx = 17,
 	.blob_key_bit_size = 85,
 	.key_bit_size = 85,
 	.key_num_fields = 3,
-	.ident_start_idx = 17,
+	.ident_start_idx = 13,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 8, , table: control.sp_rec_v4 */
+	{ /* act_tid: 7, , table: control.sp_rec_v4 */
 	.description = "control.sp_rec_v4",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 3,
+		.cond_false_goto = 7,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 76,
+		.cond_start_idx = 71,
 		.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
 	},
-	{ /* act_tid: 8, , table: sp_smac_ipv4.0 */
+	{ /* act_tid: 7, , table: sp_smac_ipv4.0 */
 	.description = "sp_smac_ipv4.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_ACT_SP_SMAC_IPV4,
@@ -1772,45 +1471,46 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 77,
-		.cond_nums = 1 },
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 72,
+		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_MAIN_SP_PTR,
 	.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,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.record_size = 16,
-	.result_start_idx = 397,
+	.result_start_idx = 201,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
 	.encap_num_fields = 3
 	},
-	{ /* act_tid: 8, , table: source_property_cache.wr */
+	{ /* act_tid: 7, , table: source_property_cache.wr */
 	.description = "source_property_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SOURCE_PROPERTY_CACHE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
-		.cond_true_goto  = 1,
+		.cond_true_goto  = 5,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 78,
+		.cond_start_idx = 72,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 24,
+	.key_start_idx = 20,
 	.blob_key_bit_size = 85,
 	.key_bit_size = 85,
 	.key_num_fields = 3,
-	.result_start_idx = 400,
+	.result_start_idx = 204,
 	.result_bit_size = 64,
 	.result_num_fields = 2
 	},
-	{ /* act_tid: 8, , table: source_property_ipv6_cache.rd */
+	{ /* act_tid: 7, , table: source_property_ipv6_cache.rd */
 	.description = "source_property_ipv6_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -1818,22 +1518,22 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 4,
+		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 78,
+		.cond_start_idx = 72,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 27,
+	.key_start_idx = 23,
 	.blob_key_bit_size = 176,
 	.key_bit_size = 176,
 	.key_num_fields = 2,
-	.ident_start_idx = 18,
+	.ident_start_idx = 14,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 8, , table: control.sp_rec_v6 */
+	{ /* act_tid: 7, , table: control.sp_rec_v6 */
 	.description = "control.sp_rec_v6",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
@@ -1841,13 +1541,13 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 3,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 79,
+		.cond_start_idx = 73,
 		.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
 	},
-	{ /* act_tid: 8, , table: sp_smac_ipv6.0 */
+	{ /* act_tid: 7, , table: sp_smac_ipv6.0 */
 	.description = "sp_smac_ipv6.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_ACT_SP_SMAC_IPV6,
@@ -1857,20 +1557,21 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 80,
-		.cond_nums = 1 },
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 74,
+		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_MAIN_SP_PTR,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+	.track_type = CFA_TRACK_TYPE_SID,
 	.record_size = 32,
-	.result_start_idx = 402,
+	.result_start_idx = 206,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
 	.encap_num_fields = 3
 	},
-	{ /* act_tid: 8, , table: source_property_ipv6_cache.wr */
+	{ /* act_tid: 7, , table: source_property_ipv6_cache.wr */
 	.description = "source_property_ipv6_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -1880,66 +1581,119 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 81,
+		.cond_start_idx = 74,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 29,
+	.key_start_idx = 25,
 	.blob_key_bit_size = 176,
 	.key_bit_size = 176,
 	.key_num_fields = 2,
-	.result_start_idx = 405,
+	.result_start_idx = 209,
 	.result_bit_size = 48,
 	.result_num_fields = 2
 	},
-	{ /* act_tid: 8, , table: mod_record.ing_l2write */
-	.description = "mod_record.ing_l2write",
+	{ /* act_tid: 7, , table: control.do_vxlan_check */
+	.description = "control.do_vxlan_check",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_TX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 9,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
+		.cond_start_idx = 74,
+		.cond_nums = 1 },
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
+	},
+	{ /* act_tid: 7, , table: vxlan_encap_rec_cache.rd */
+	.description = "vxlan_encap_rec_cache.rd",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_VXLAN_ENCAP_REC_CACHE,
+	.direction = TF_DIR_TX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 4,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 75,
+		.cond_nums = 1 },
+	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+	.key_start_idx = 27,
+	.blob_key_bit_size = 141,
+	.key_bit_size = 141,
+	.key_num_fields = 6,
+	.ident_start_idx = 15,
+	.ident_nums = 1
+	},
+	{ /* act_tid: 7, , table: control.vxlan_v4_encap */
+	.description = "control.vxlan_v4_encap",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
+	.direction = TF_DIR_TX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 13,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 76,
+		.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
+	},
+	{ /* act_tid: 7, , table: int_tun_encap_record.ipv4_vxlan */
+	.description = "int_tun_encap_record.ipv4_vxlan",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_ACT_MODIFY_64B,
+	.resource_type = TF_TBL_TYPE_ACT_ENCAP_64B,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
-		.cond_start_idx = 81,
-		.cond_nums = 2 },
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 77,
+		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_MODIFY_PTR,
+	.tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 407,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
+	.fdb_operand = BNXT_ULP_RF_IDX_RID,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 211,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
-	.encap_num_fields = 18
+	.encap_num_fields = 25
 	},
-	{ /* act_tid: 8, , table: vxlan_encap_rec_cache.rd */
-	.description = "vxlan_encap_rec_cache.rd",
+	{ /* act_tid: 7, , table: vxlan_encap_rec_cache.wr */
+	.description = "vxlan_encap_rec_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_VXLAN_ENCAP_REC_CACHE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
-		.cond_true_goto  = 1,
+		.cond_true_goto  = 11,
 		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 83,
-		.cond_nums = 2 },
-	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 77,
+		.cond_nums = 0 },
+	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 31,
+	.key_start_idx = 33,
 	.blob_key_bit_size = 141,
 	.key_bit_size = 141,
 	.key_num_fields = 6,
-	.ident_start_idx = 19,
-	.ident_nums = 1
+	.result_start_idx = 236,
+	.result_bit_size = 64,
+	.result_num_fields = 2
 	},
-	{ /* act_tid: 8, , table: vxlan_encap_ipv6_rec_cache.rd */
+	{ /* act_tid: 7, , table: vxlan_encap_ipv6_rec_cache.rd */
 	.description = "vxlan_encap_ipv6_rec_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -1949,57 +1703,34 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 85,
-		.cond_nums = 2 },
+		.cond_start_idx = 77,
+		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 37,
+	.key_start_idx = 39,
 	.blob_key_bit_size = 237,
 	.key_bit_size = 237,
 	.key_num_fields = 6,
-	.ident_start_idx = 20,
+	.ident_start_idx = 16,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 8, , table: control.vxlan_v6_encap */
+	{ /* act_tid: 7, , table: control.vxlan_v6_encap */
 	.description = "control.vxlan_v6_encap",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 5,
+		.cond_false_goto = 9,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 87,
+		.cond_start_idx = 78,
 		.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
 	},
-	{ /* act_tid: 8, , table: int_tun_encap_record.ipv4_vxlan */
-	.description = "int_tun_encap_record.ipv4_vxlan",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_ACT_ENCAP_64B,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
-	.direction = TF_DIR_TX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 88,
-		.cond_nums = 2 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_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,
-	.result_start_idx = 425,
-	.result_bit_size = 0,
-	.result_num_fields = 0,
-	.encap_num_fields = 25
-	},
-	{ /* act_tid: 8, , table: int_tun_encap_record.ipv6_vxlan */
+	{ /* act_tid: 7, , table: int_tun_encap_record.ipv6_vxlan */
 	.description = "int_tun_encap_record.ipv6_vxlan",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_ACT_ENCAP_64B,
@@ -2009,67 +1740,44 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 90,
-		.cond_nums = 2 },
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 79,
+		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 450,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 238,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
 	.encap_num_fields = 23
 	},
-	{ /* act_tid: 8, , table: vxlan_encap_rec_cache.wr */
-	.description = "vxlan_encap_rec_cache.wr",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_VXLAN_ENCAP_REC_CACHE,
-	.direction = TF_DIR_TX,
-	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 92,
-		.cond_nums = 2 },
-	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
-	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
-	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 43,
-	.blob_key_bit_size = 141,
-	.key_bit_size = 141,
-	.key_num_fields = 6,
-	.result_start_idx = 473,
-	.result_bit_size = 64,
-	.result_num_fields = 2
-	},
-	{ /* act_tid: 8, , table: vxlan_encap_ipv6_rec_cache.wr */
+	{ /* act_tid: 7, , table: vxlan_encap_ipv6_rec_cache.wr */
 	.description = "vxlan_encap_ipv6_rec_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_VXLAN_ENCAP_IPV6_REC_CACHE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
-		.cond_true_goto  = 1,
+		.cond_true_goto  = 7,
 		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 94,
-		.cond_nums = 2 },
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 79,
+		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 49,
+	.key_start_idx = 45,
 	.blob_key_bit_size = 237,
 	.key_bit_size = 237,
 	.key_num_fields = 6,
-	.result_start_idx = 475,
+	.result_start_idx = 261,
 	.result_bit_size = 64,
 	.result_num_fields = 2
 	},
-	{ /* act_tid: 8, , table: geneve_encap_rec_cache.rd */
+	{ /* act_tid: 7, , table: geneve_encap_rec_cache.rd */
 	.description = "geneve_encap_rec_cache.rd",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
@@ -2078,35 +1786,35 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.execute_info = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 96,
-		.cond_nums = 1 },
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 79,
+		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 55,
+	.key_start_idx = 51,
 	.blob_key_bit_size = 493,
 	.key_bit_size = 493,
 	.key_num_fields = 15,
-	.ident_start_idx = 21,
+	.ident_start_idx = 17,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 8, , table: control.geneve_encap */
+	{ /* act_tid: 7, , table: control.geneve_encap */
 	.description = "control.geneve_encap",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 4,
+		.cond_false_goto = 5,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 97,
+		.cond_start_idx = 79,
 		.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
 	},
-	{ /* act_tid: 8, , table: int_geneve_encap_record.ipv4_geneve */
+	{ /* act_tid: 7, , table: int_geneve_encap_record.ipv4_geneve */
 	.description = "int_geneve_encap_record.ipv4_geneve",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_ACT_ENCAP_64B,
@@ -2114,68 +1822,94 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
 	.direction = TF_DIR_TX,
 	.execute_info = {
-		.cond_true_goto  = 1,
+		.cond_true_goto  = 2,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 98,
-		.cond_nums = 2 },
+		.cond_start_idx = 80,
+		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_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,
-	.result_start_idx = 477,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 263,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
 	.encap_num_fields = 31
 	},
-	{ /* act_tid: 8, , table: int_geneve_encap_record.ipv6_geneve */
+	{ /* act_tid: 7, , table: int_geneve_encap_record.ipv6_geneve */
 	.description = "int_geneve_encap_record.ipv6_geneve",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_ACT_ENCAP_64B,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
 	.direction = TF_DIR_TX,
+	.false_message = "Geneve outer hdr must be v4 or v6.",
 	.execute_info = {
 		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
+		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 100,
-		.cond_nums = 2 },
+		.cond_start_idx = 81,
+		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 508,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 294,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
 	.encap_num_fields = 29
 	},
-	{ /* act_tid: 8, , table: geneve_encap_rec_cache.wr */
+	{ /* act_tid: 7, , table: geneve_encap_rec_cache.wr */
 	.description = "geneve_encap_rec_cache.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_sub_type =
 		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_GENEVE_ENCAP_REC_CACHE,
 	.direction = TF_DIR_TX,
 	.execute_info = {
-		.cond_true_goto  = 1,
+		.cond_true_goto  = 2,
 		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 102,
-		.cond_nums = 1 },
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 82,
+		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_HASH,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 70,
+	.key_start_idx = 66,
 	.blob_key_bit_size = 493,
 	.key_bit_size = 493,
 	.key_num_fields = 15,
-	.result_start_idx = 537,
+	.result_start_idx = 323,
 	.result_bit_size = 64,
 	.result_num_fields = 2
 	},
-	{ /* act_tid: 8, , table: int_full_act_record.0 */
+	{ /* act_tid: 7, , table: int_vtag_encap_record.0 */
+	.description = "int_vtag_encap_record.0",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+	.resource_type = TF_TBL_TYPE_ACT_ENCAP_16B,
+	.resource_sub_type =
+		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
+	.direction = TF_DIR_TX,
+	.execute_info = {
+		.cond_true_goto  = 1,
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 82,
+		.cond_nums = 1 },
+	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
+	.tbl_operand = BNXT_ULP_RF_IDX_ENCAP_PTR_0,
+	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
+	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 325,
+	.result_bit_size = 0,
+	.result_num_fields = 0,
+	.encap_num_fields = 11
+	},
+	{ /* act_tid: 7, , table: int_full_act_record.0 */
 	.description = "int_full_act_record.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
@@ -2184,121 +1918,122 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.direction = TF_DIR_TX,
 	.execute_info = {
 		.cond_true_goto  = 0,
-		.cond_false_goto = 0,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 103,
-		.cond_nums = 0 },
+		.cond_false_goto = 1,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
+		.cond_start_idx = 83,
+		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
+	.func_info = {
+		.func_opc = BNXT_ULP_FUNC_OPC_BIT_AND,
+		.func_src1 = BNXT_ULP_FUNC_SRC_ACTION_BITMAP,
+		.func_opr1 = BNXT_ULP_FUNC_SRC_ACTION_BITMAP,
+		.func_src2 = BNXT_ULP_FUNC_SRC_CONST,
+		.func_opr2 = BNXT_ULP_ACT_BIT_DEC_TTL |
+			BNXT_ULP_ACT_BIT_SET_MAC_SRC |
+			BNXT_ULP_ACT_BIT_SET_MAC_DST |
+			BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
+			BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+			BNXT_ULP_ACT_BIT_SET_IPV6_SRC |
+			BNXT_ULP_ACT_BIT_SET_IPV6_DST |
+			BNXT_ULP_ACT_BIT_SET_TP_SRC |
+			BNXT_ULP_ACT_BIT_SET_TP_DST |
+			BNXT_ULP_ACT_BIT_JUMP |
+			BNXT_ULP_ACT_BIT_VF_TO_VF |
+			BNXT_ULP_ACT_BIT_VXLAN_ENCAP |
+			BNXT_ULP_ACT_BIT_GENEVE_ENCAP |
+			BNXT_ULP_ACT_BIT_PUSH_VLAN,
+		.func_dst_opr = BNXT_ULP_RF_IDX_RF_0 },
 	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
-	.result_start_idx = 539,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 336,
 	.result_bit_size = 128,
-	.result_num_fields = 17
+	.result_num_fields = 17,
+	.encap_num_fields = 0
 	},
-	{ /* act_tid: 9, , table: shared_mirror_record.rd */
-	.description = "shared_mirror_record.rd",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
-	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
+	{ /* act_tid: 7, , table: int_compact_act_record.0 */
+	.description = "int_compact_act_record.0",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
+	.resource_type = TF_TBL_TYPE_COMPACT_ACT_RECORD,
 	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_SHARED_MIRROR,
+		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
 	.direction = TF_DIR_TX,
 	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 2,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 104,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
-	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
+		.cond_true_goto  = 0,
+		.cond_false_goto = 0,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 86,
+		.cond_nums = 0 },
+	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
+	.tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.key_start_idx = 85,
-	.blob_key_bit_size = 8,
-	.key_bit_size = 8,
-	.key_num_fields = 1,
-	.ident_start_idx = 22,
-	.ident_nums = 1
+	.mark_db_opcode = BNXT_ULP_MARK_DB_OPC_NOP,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 353,
+	.result_bit_size = 64,
+	.result_num_fields = 13,
+	.encap_num_fields = 0
 	},
-	{ /* act_tid: 9, , table: control.mirror */
-	.description = "control.mirror",
+	{ /* act_tid: 8, , table: control.reject */
+	.description = "control.reject",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
+	.true_message = "Thor not supporting non-generic template",
 	.execute_info = {
 		.cond_true_goto  = 1023,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 105,
-		.cond_nums = 1 },
+		.cond_false_goto = 0,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 86,
+		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 9, , table: int_flow_counter_tbl.0 */
-	.description = "int_flow_counter_tbl.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_ACT_STATS_64,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_INT_COUNT,
+	{ /* act_tid: 9, , table: control.reject */
+	.description = "control.reject",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
+	.true_message = "Thor not supporting non-generic template",
 	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 106,
-		.cond_nums = 1 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
+		.cond_true_goto  = 1023,
+		.cond_false_goto = 0,
+		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
+		.cond_start_idx = 86,
+		.cond_nums = 0 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 556,
-	.result_bit_size = 64,
-	.result_num_fields = 1
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 9, , table: mod_record.vf_2_vf */
-	.description = "mod_record.vf_2_vf",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_ACT_MODIFY_64B,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
+	{ /* act_tid: 10, , table: control.reject */
+	.description = "control.reject",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
+	.true_message = "Thor not supporting non-generic template",
 	.execute_info = {
-		.cond_true_goto  = 1,
-		.cond_false_goto = 1,
+		.cond_true_goto  = 1023,
+		.cond_false_goto = 0,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 107,
+		.cond_start_idx = 86,
 		.cond_nums = 0 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.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 = 557,
-	.result_bit_size = 0,
-	.result_num_fields = 0,
-	.encap_num_fields = 20
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 9, , table: int_full_act_record.0 */
-	.description = "int_full_act_record.0",
-	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
-	.resource_sub_type =
-		BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TABLE_NORMAL,
+	{ /* act_tid: 11, , table: control.reject */
+	.description = "control.reject",
+	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
+	.true_message = "Thor not supporting non-generic template",
 	.execute_info = {
-		.cond_true_goto  = 0,
+		.cond_true_goto  = 1023,
 		.cond_false_goto = 0,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 107,
+		.cond_start_idx = 86,
 		.cond_nums = 0 },
-	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
-	.tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
-	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_FID,
-	.result_start_idx = 577,
-	.result_bit_size = 128,
-	.result_num_fields = 17
+	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 10, , table: control.delete_chk */
+	{ /* act_tid: 12, , table: control.delete_chk */
 	.description = "control.delete_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
@@ -2306,12 +2041,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 4,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 107,
+		.cond_start_idx = 86,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 10, , table: shared_mirror_record.del_chk */
+	{ /* act_tid: 12, , table: shared_mirror_record.del_chk */
 	.description = "shared_mirror_record.del_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
@@ -2322,21 +2057,21 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 108,
+		.cond_start_idx = 87,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_READ,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP,
 	.ref_cnt_opcode = BNXT_ULP_REF_CNT_OPC_NOP,
-	.key_start_idx = 86,
+	.key_start_idx = 81,
 	.blob_key_bit_size = 8,
 	.key_bit_size = 8,
 	.key_num_fields = 1,
-	.ident_start_idx = 23,
+	.ident_start_idx = 18,
 	.ident_nums = 1
 	},
-	{ /* act_tid: 10, , table: control.mirror_del_exist_chk */
+	{ /* act_tid: 12, , table: control.mirror_del_exist_chk */
 	.description = "control.mirror_del_exist_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
@@ -2344,12 +2079,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 108,
+		.cond_start_idx = 87,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_NOP
 	},
-	{ /* act_tid: 10, , table: control.mirror_ref_cnt_chk */
+	{ /* act_tid: 12, , table: control.mirror_ref_cnt_chk */
 	.description = "control.mirror_ref_cnt_chk",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
@@ -2357,7 +2092,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 1023,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 109,
+		.cond_start_idx = 88,
 		.cond_nums = 1 },
 	.key_recipe_opcode = BNXT_ULP_KEY_RECIPE_OPC_NOP,
 	.fdb_opcode = BNXT_ULP_FDB_OPC_DELETE_RID_REGFILE,
@@ -2370,7 +2105,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.func_opr2 = 1,
 		.func_dst_opr = BNXT_ULP_RF_IDX_CC }
 	},
-	{ /* act_tid: 10, , table: control.create */
+	{ /* act_tid: 12, , table: control.create */
 	.description = "control.create",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_CTRL_TABLE,
 	.direction = TF_DIR_TX,
@@ -2378,13 +2113,13 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 110,
+		.cond_start_idx = 89,
 		.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
 	},
-	{ /* act_tid: 10, , table: mirror_tbl.alloc */
+	{ /* act_tid: 12, , table: mirror_tbl.alloc */
 	.description = "mirror_tbl.alloc",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
@@ -2395,7 +2130,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 110,
+		.cond_start_idx = 89,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_MIRROR_PTR_0,
@@ -2403,11 +2138,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_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 = 594,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 366,
 	.result_bit_size = 32,
 	.result_num_fields = 5
 	},
-	{ /* act_tid: 10, , table: int_flow_counter_tbl.0 */
+	{ /* act_tid: 12, , table: int_flow_counter_tbl.0 */
 	.description = "int_flow_counter_tbl.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_ACT_STATS_64,
@@ -2418,7 +2154,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_AND,
-		.cond_start_idx = 110,
+		.cond_start_idx = 89,
 		.cond_nums = 1 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0,
@@ -2426,11 +2162,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_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 = 599,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 371,
 	.result_bit_size = 64,
 	.result_num_fields = 1
 	},
-	{ /* act_tid: 10, , table: mod_record.vf_2_vf */
+	{ /* act_tid: 12, , table: mod_record.vf_2_vf */
 	.description = "mod_record.vf_2_vf",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_ACT_MODIFY_64B,
@@ -2441,19 +2178,20 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 111,
+		.cond_start_idx = 90,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_MODIFY_PTR,
 	.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 = 600,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 372,
 	.result_bit_size = 0,
 	.result_num_fields = 0,
 	.encap_num_fields = 20
 	},
-	{ /* act_tid: 10, , table: int_full_act_record.0 */
+	{ /* act_tid: 12, , table: int_full_act_record.0 */
 	.description = "int_full_act_record.0",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_FULL_ACT_RECORD,
@@ -2464,7 +2202,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 111,
+		.cond_start_idx = 90,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_ALLOC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_MAIN_ACTION_PTR,
@@ -2472,11 +2210,12 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_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 = 620,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 392,
 	.result_bit_size = 128,
 	.result_num_fields = 17
 	},
-	{ /* act_tid: 10, , table: mirror_tbl.wr */
+	{ /* act_tid: 12, , table: mirror_tbl.wr */
 	.description = "mirror_tbl.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
@@ -2487,18 +2226,19 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 1,
 		.cond_false_goto = 1,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 111,
+		.cond_start_idx = 90,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_INDEX_TBL_OPC_WR_REGFILE,
 	.tbl_operand = BNXT_ULP_RF_IDX_MIRROR_PTR_0,
 	.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 = 637,
+	.track_type = CFA_TRACK_TYPE_SID,
+	.result_start_idx = 409,
 	.result_bit_size = 32,
 	.result_num_fields = 5
 	},
-	{ /* act_tid: 10, , table: shared_mirror_record.wr */
+	{ /* act_tid: 12, , table: shared_mirror_record.wr */
 	.description = "shared_mirror_record.wr",
 	.resource_func = BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE,
 	.resource_type = TF_TBL_TYPE_MIRROR_CONFIG,
@@ -2509,7 +2249,7 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 		.cond_true_goto  = 0,
 		.cond_false_goto = 0,
 		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_TRUE,
-		.cond_start_idx = 111,
+		.cond_start_idx = 90,
 		.cond_nums = 0 },
 	.tbl_opcode = BNXT_ULP_GENERIC_TBL_OPC_WRITE,
 	.gen_tbl_lkup_type = BNXT_ULP_GENERIC_TBL_LKUP_TYPE_INDEX,
@@ -2517,105 +2257,90 @@  struct bnxt_ulp_mapper_tbl_info ulp_thor_act_tbl_list[] = {
 	.fdb_opcode = BNXT_ULP_FDB_OPC_PUSH_RID_REGFILE,
 	.fdb_operand = BNXT_ULP_RF_IDX_RID,
 	.ref_cnt_opcode = BNXT_ULP_REF_CNT_OPC_INC,
-	.key_start_idx = 87,
+	.key_start_idx = 82,
 	.blob_key_bit_size = 8,
 	.key_bit_size = 8,
 	.key_num_fields = 1,
-	.result_start_idx = 642,
+	.result_start_idx = 414,
 	.result_bit_size = 36,
 	.result_num_fields = 2
 	}
 };
 
 struct bnxt_ulp_mapper_cond_list_info ulp_thor_act_cond_oper_list[] = {
-	/* cond_execute: act_tid: 1, mod_record.ing_no_ttl:9*/
-	{
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
-		.cond_start_idx = 9,
-		.cond_nums = 1
-	},
-	/* cond_execute: act_tid: 1, mod_record.ing_no_ttl:9*/
-	{
-		.cond_list_opcode = BNXT_ULP_COND_LIST_OPC_OR,
-		.cond_start_idx = 10,
-		.cond_nums = 3
-	}
 };
 
 struct bnxt_ulp_mapper_cond_info ulp_thor_act_cond_list[] = {
-	/* cond_reject: thor, act_tid: 1 */
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_MULTIPLE_PORT
-	},
-	/* cond_execute: act_tid: 1, flow_chain_cache.rd:1*/
+	/* cond_execute: act_tid: 1, flow_chain_cache.rd:0*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 1, control.flow_chain:2*/
+	/* cond_execute: act_tid: 1, control.flow_chain:1*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 1, shared_meter_tbl_cache.rd:3*/
+	/* cond_execute: act_tid: 1, shared_meter_tbl_cache.rd:2*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_METER
 	},
-	/* cond_execute: act_tid: 1, control.meter_chk:4*/
+	/* cond_execute: act_tid: 1, control.meter_chk:3*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 1, shared_mirror_record.rd:5*/
+	/* cond_execute: act_tid: 1, shared_mirror_record.rd:4*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
 	},
-	/* cond_execute: act_tid: 1, control.mirror:6*/
+	/* cond_execute: act_tid: 1, control.mirror:5*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 1, int_flow_counter_tbl.0:7*/
+	/* cond_execute: act_tid: 1, control.do_mod:6*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_RF_0
 	},
-	/* cond_execute: act_tid: 1, mod_record.ing_ttl:8*/
+	/* cond_execute: act_tid: 1, mod_record.ing_ttl:7*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
 	},
-	/* cond_execute: act_tid: 1, mod_record.ing_no_ttl:9*/
+	/* cond_execute: act_tid: 1, mod_record.ing_no_ttl:8*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
 	},
-	/* cond_execute: act_tid: 1, mod_record.ing_no_ttl:9*/
+	/* cond_execute: act_tid: 1, control.queue_and_rss_test:9*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SET_MAC_SRC
+	.cond_operand = BNXT_ULP_ACT_BIT_QUEUE
 	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SET_MAC_DST
+	.cond_operand = BNXT_ULP_ACT_BIT_RSS
 	},
+	/* cond_execute: act_tid: 1, vnic_interface_rss_config.0:11*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
+	.cond_operand = BNXT_ULP_ACT_BIT_RSS
 	},
-	/* field_cond: act_tid: 1, int_full_act_record.0:13*/
+	/* cond_execute: act_tid: 1, vnic_interface_queue_config.0:12*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_VXLAN_DECAP
+	.cond_operand = BNXT_ULP_ACT_BIT_QUEUE
 	},
+	/* cond_execute: act_tid: 1, int_flow_counter_tbl.0:13*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_GENEVE_DECAP
+	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
 	},
-	/* field_cond: act_tid: 1, int_compact_act_record.0:15*/
+	/* field_cond: act_tid: 1, int_full_act_record.0:14*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_VXLAN_DECAP
@@ -2624,100 +2349,46 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_act_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_GENEVE_DECAP
 	},
-	/* cond_execute: act_tid: 2, control.delete_chk:17*/
+	/* field_cond: act_tid: 1, int_full_act_record.0:16*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_DELETE
-	},
-	/* cond_execute: act_tid: 2, control.mirror_del_exist_chk:18*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
-	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	.cond_operand = BNXT_ULP_ACT_BIT_DROP
 	},
-	/* cond_execute: act_tid: 2, control.mirror_ref_cnt_chk:19*/
+	/* field_cond: act_tid: 1, int_full_act_record.0:17*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
-	.cond_operand = BNXT_ULP_RF_IDX_CC
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_RSS
 	},
-	/* cond_execute: act_tid: 2, int_flow_counter_tbl.0:20*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
+	.cond_operand = BNXT_ULP_ACT_BIT_QUEUE
 	},
-	/* cond_reject: thor, act_tid: 3 */
+	/* field_cond: act_tid: 1, int_full_act_record.0:19*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_MULTIPLE_PORT
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 3, shared_mirror_record.rd:22*/
+	/* cond_execute: act_tid: 3, control.delete_chk:20*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
+	.cond_operand = BNXT_ULP_ACT_BIT_DELETE
 	},
-	/* cond_execute: act_tid: 3, control.mirror:23*/
+	/* cond_execute: act_tid: 3, control.mirror_del_exist_chk:21*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 3, int_flow_counter_tbl.0:24*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
-	},
-	/* cond_execute: act_tid: 3, mod_record.ing_ttl:25*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
-	},
-	/* cond_execute: act_tid: 3, mod_record.ing_no_ttl:26*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
-	},
-	/* cond_reject: thor, act_tid: 4 */
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_RSS
-	},
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_QUEUE
-	},
-	/* cond_execute: act_tid: 4, shared_mirror_record.rd:29*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
-	},
-	/* cond_execute: act_tid: 4, control.mirror:30*/
+	/* cond_execute: act_tid: 3, control.mirror_ref_cnt_chk:22*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
-	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	.cond_operand = BNXT_ULP_RF_IDX_CC
 	},
-	/* cond_execute: act_tid: 4, int_flow_counter_tbl.0:31*/
+	/* cond_execute: act_tid: 3, int_flow_counter_tbl.0:23*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
 	},
-	/* cond_execute: act_tid: 4, vnic_interface_rss_config.0:32*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_RSS
-	},
-	/* cond_execute: act_tid: 4, vnic_interface_queue_config.0:33*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_QUEUE
-	},
-	/* cond_execute: act_tid: 4, int_compact_act_record.0:34*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_QUEUE
-	},
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_RSS
-	},
-	/* cond_execute: act_tid: 5, control.create_check:36*/
+	/* cond_execute: act_tid: 6, control.create_check:24*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_UPDATE
@@ -2726,62 +2397,62 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_act_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_DELETE
 	},
-	/* cond_execute: act_tid: 5, meter_profile_tbl_cache.rd:38*/
+	/* cond_execute: act_tid: 6, meter_profile_tbl_cache.rd:26*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_METER_PROFILE
 	},
-	/* cond_execute: act_tid: 5, control.shared_meter_profile_0:39*/
+	/* cond_execute: act_tid: 6, control.shared_meter_profile_0:27*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 5, shared_meter_tbl_cache.rd:40*/
+	/* cond_execute: act_tid: 6, shared_meter_tbl_cache.rd:28*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_METER
 	},
-	/* cond_execute: act_tid: 5, control.meter_created_chk:41*/
+	/* cond_execute: act_tid: 6, control.meter_created_chk:29*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 5, control.shared_meter_profile_chk:42*/
+	/* cond_execute: act_tid: 6, control.shared_meter_profile_chk:30*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 5, control.delete_check:43*/
+	/* cond_execute: act_tid: 6, control.delete_check:31*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_DELETE
 	},
-	/* cond_execute: act_tid: 5, meter_profile_tbl_cache.del_chk:44*/
+	/* cond_execute: act_tid: 6, meter_profile_tbl_cache.del_chk:32*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_METER_PROFILE
 	},
-	/* cond_execute: act_tid: 5, control.mtr_prof_ref_cnt_chk:45*/
+	/* cond_execute: act_tid: 6, control.mtr_prof_ref_cnt_chk:33*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_CC
 	},
-	/* cond_execute: act_tid: 5, shared_meter_tbl_cache.del_chk:46*/
+	/* cond_execute: act_tid: 6, shared_meter_tbl_cache.del_chk:34*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_METER
 	},
-	/* cond_execute: act_tid: 5, control.shared_mtr_ref_cnt_chk:47*/
+	/* cond_execute: act_tid: 6, control.shared_mtr_ref_cnt_chk:35*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_CC
 	},
-	/* cond_execute: act_tid: 5, shared_meter_tbl_cache.rd_update:48*/
+	/* cond_execute: act_tid: 6, shared_meter_tbl_cache.rd_update:36*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_METER
 	},
-	/* cond_execute: act_tid: 5, meter_tbl.update_rd:49*/
+	/* cond_execute: act_tid: 6, meter_tbl.update_rd:37*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_NOT_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
@@ -2790,289 +2461,248 @@  struct bnxt_ulp_mapper_cond_info ulp_thor_act_cond_list[] = {
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_PROP_NOT_SET,
 	.cond_operand = BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID_UPDATE
 	},
-	/* cond_reject: thor, act_tid: 6 */
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_MULTIPLE_PORT
-	},
-	/* cond_execute: act_tid: 6, flow_chain_cache.rd:52*/
+	/* cond_execute: act_tid: 7, flow_chain_cache.rd:39*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 6, control.flow_chain:53*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
-	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
-	},
-	/* cond_execute: act_tid: 6, shared_mirror_record.rd:54*/
+	/* cond_execute: act_tid: 7, control.no_jump_vf_to_vf:40*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 6, control.mirror:55*/
+	/* cond_execute: act_tid: 7, control.flow_chain:41*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 6, int_flow_counter_tbl.0:56*/
+	/* cond_execute: act_tid: 7, int_flow_counter_tbl.0:42*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
 	},
-	/* cond_execute: act_tid: 6, int_vtag_encap_record.0:57*/
+	/* cond_execute: act_tid: 7, shared_mirror_record.rd:43*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
+	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
 	},
-	/* cond_execute: act_tid: 6, mod_record.dec_ttl_egr:58*/
+	/* cond_execute: act_tid: 7, control.mirror:44*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
+	/* cond_execute: act_tid: 7, control.do_mod:45*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_RF_0
 	},
-	/* cond_execute: act_tid: 6, mod_record.no_dec_ttl_egr:60*/
+	/* cond_execute: act_tid: 7, mod_record.ing_ttl:46*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
 	},
+	/* field_cond: act_tid: 7, mod_record.ing_ttl:47*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 6, int_full_act_record.0:62*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
-	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
+	/* field_cond: act_tid: 7, mod_record.ing_ttl:49*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_reject: thor, act_tid: 7 */
+	/* field_cond: act_tid: 7, mod_record.ing_ttl:50*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_MULTIPLE_PORT
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 7, shared_mirror_record.rd:66*/
+	/* field_cond: act_tid: 7, mod_record.ing_ttl:51*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
-	},
-	/* cond_execute: act_tid: 7, control.mirror:67*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
-	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 7, int_flow_counter_tbl.0:68*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 7, mod_record.ing_ttl:69*/
+	/* field_cond: act_tid: 7, mod_record.ing_ttl:53*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 7, mod_record.ing_no_ttl:70*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_NOT_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_DEC_TTL
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_reject: thor, act_tid: 8 */
+	/* field_cond: act_tid: 7, mod_record.ing_ttl:55*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_MULTIPLE_PORT
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 8, shared_mirror_record.rd:72*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 8, control.mirror:73*/
+	/* field_cond: act_tid: 7, mod_record.ing_no_ttl:57*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
-	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 8, int_flow_counter_tbl.0:74*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 8, source_property_cache.rd:75*/
+	/* field_cond: act_tid: 7, mod_record.ing_no_ttl:59*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
-	.cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 8, control.sp_rec_v4:76*/
+	/* field_cond: act_tid: 7, mod_record.ing_no_ttl:60*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
-	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 8, sp_smac_ipv4.0:77*/
+	/* field_cond: act_tid: 7, mod_record.ing_no_ttl:61*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
-	.cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 8, source_property_ipv6_cache.rd:78*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
-	.cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 8, control.sp_rec_v6:79*/
+	/* field_cond: act_tid: 7, mod_record.ing_no_ttl:63*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
-	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 8, sp_smac_ipv6.0:80*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
-	.cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 8, mod_record.ing_l2write:81*/
+	/* field_cond: act_tid: 7, mod_record.ing_no_ttl:65*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SET_MAC_SRC
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SET_MAC_DST
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 8, vxlan_encap_rec_cache.rd:83*/
+	/* cond_execute: act_tid: 7, control.do_tunnel_check:67*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_VXLAN_ENCAP
 	},
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_GENEVE_ENCAP
 	},
-	/* cond_execute: act_tid: 8, vxlan_encap_ipv6_rec_cache.rd:85*/
+	/* cond_execute: act_tid: 7, control.do_tunnel_vlan_exclusion:69*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
 	},
+	/* cond_execute: act_tid: 7, source_property_cache.rd:70*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
+	.cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
+	.cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG
 	},
-	/* cond_execute: act_tid: 8, control.vxlan_v6_encap:87*/
+	/* cond_execute: act_tid: 7, control.sp_rec_v4:71*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 8, int_tun_encap_record.ipv4_vxlan:88*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
-	},
+	/* cond_execute: act_tid: 7, source_property_ipv6_cache.rd:72*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
+	.cond_opcode = BNXT_ULP_COND_OPC_CF_IS_SET,
+	.cond_operand = BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG
 	},
-	/* cond_execute: act_tid: 8, int_tun_encap_record.ipv6_vxlan:90*/
+	/* cond_execute: act_tid: 7, control.sp_rec_v6:73*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
+	/* cond_execute: act_tid: 7, control.do_vxlan_check:74*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_VXLAN_ENCAP
 	},
-	/* cond_execute: act_tid: 8, vxlan_encap_rec_cache.wr:92*/
+	/* cond_execute: act_tid: 7, vxlan_encap_rec_cache.rd:75*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
 	},
+	/* cond_execute: act_tid: 7, control.vxlan_v4_encap:76*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 8, vxlan_encap_ipv6_rec_cache.wr:94*/
+	/* cond_execute: act_tid: 7, vxlan_encap_ipv6_rec_cache.rd:77*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
 	},
+	/* cond_execute: act_tid: 7, control.vxlan_v6_encap:78*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_T_VXLAN
-	},
-	/* cond_execute: act_tid: 8, geneve_encap_rec_cache.rd:96*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_T_GENEVE
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 8, control.geneve_encap:97*/
+	/* cond_execute: act_tid: 7, control.geneve_encap:79*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 8, int_geneve_encap_record.ipv4_geneve:98*/
+	/* cond_execute: act_tid: 7, int_geneve_encap_record.ipv4_geneve:80*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV4
 	},
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_T_GENEVE
-	},
-	/* cond_execute: act_tid: 8, int_geneve_encap_record.ipv6_geneve:100*/
+	/* cond_execute: act_tid: 7, int_geneve_encap_record.ipv6_geneve:81*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_HDR_BIT_O_IPV6
 	},
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_T_GENEVE
-	},
-	/* cond_execute: act_tid: 8, geneve_encap_rec_cache.wr:102*/
-	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ENC_HDR_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_HDR_BIT_T_GENEVE
-	},
-	/* cond_reject: thor, act_tid: 9 */
+	/* cond_execute: act_tid: 7, int_vtag_encap_record.0:82*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_MULTIPLE_PORT
+	.cond_operand = BNXT_ULP_ACT_BIT_PUSH_VLAN
 	},
-	/* cond_execute: act_tid: 9, shared_mirror_record.rd:104*/
+	/* cond_execute: act_tid: 7, int_full_act_record.0:83*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_SHARED_SAMPLE
+	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
+	.cond_operand = BNXT_ULP_RF_IDX_RF_0
 	},
-	/* cond_execute: act_tid: 9, control.mirror:105*/
+	/* field_cond: act_tid: 7, int_full_act_record.0:84*/
 	{
-	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
-	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
+	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
+	.cond_operand = BNXT_ULP_ACT_BIT_JUMP
 	},
-	/* cond_execute: act_tid: 9, int_flow_counter_tbl.0:106*/
+	/* field_cond: act_tid: 7, int_full_act_record.0:85*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
-	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
+	.cond_operand = BNXT_ULP_ACT_BIT_VF_TO_VF
 	},
-	/* cond_execute: act_tid: 10, control.delete_chk:107*/
+	/* cond_execute: act_tid: 12, control.delete_chk:86*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_DELETE
 	},
-	/* cond_execute: act_tid: 10, control.mirror_del_exist_chk:108*/
+	/* cond_execute: act_tid: 12, control.mirror_del_exist_chk:87*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_GENERIC_TBL_MISS
 	},
-	/* cond_execute: act_tid: 10, control.mirror_ref_cnt_chk:109*/
+	/* cond_execute: act_tid: 12, control.mirror_ref_cnt_chk:88*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_RF_IS_SET,
 	.cond_operand = BNXT_ULP_RF_IDX_CC
 	},
-	/* cond_execute: act_tid: 10, int_flow_counter_tbl.0:110*/
+	/* cond_execute: act_tid: 12, int_flow_counter_tbl.0:89*/
 	{
 	.cond_opcode = BNXT_ULP_COND_OPC_ACT_BIT_IS_SET,
 	.cond_operand = BNXT_ULP_ACT_BIT_COUNT
@@ -3169,7 +2799,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff}
 		}
 	},
-	/* act_tid: 2, , table: shared_mirror_record.del_chk */
+	/* act_tid: 3, , table: shared_mirror_record.del_chk */
 	{
 	.field_info_mask = {
 		.description = "shared_index",
@@ -3189,7 +2819,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff}
 		}
 	},
-	/* act_tid: 2, , table: shared_mirror_record.wr */
+	/* act_tid: 3, , table: shared_mirror_record.wr */
 	{
 	.field_info_mask = {
 		.description = "shared_index",
@@ -3209,47 +2839,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff}
 		}
 	},
-	/* act_tid: 3, , table: shared_mirror_record.rd */
-	{
-	.field_info_mask = {
-		.description = "shared_index",
-		.field_bit_size = 8,
-		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
-		.field_opr1 = {
-			0xff}
-		},
-	.field_info_spec = {
-		.description = "shared_index",
-		.field_bit_size = 8,
-		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-		.field_opr1 = {
-		(BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE >> 8) & 0xff,
-		BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff}
-		}
-	},
-	/* act_tid: 4, , table: shared_mirror_record.rd */
-	{
-	.field_info_mask = {
-		.description = "shared_index",
-		.field_bit_size = 8,
-		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
-		.field_opr1 = {
-			0xff}
-		},
-	.field_info_spec = {
-		.description = "shared_index",
-		.field_bit_size = 8,
-		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-		.field_opr1 = {
-		(BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE >> 8) & 0xff,
-		BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff}
-		}
-	},
-	/* act_tid: 5, , table: meter_profile_tbl_cache.rd */
+	/* act_tid: 6, , table: meter_profile_tbl_cache.rd */
 	{
 	.field_info_mask = {
 		.description = "sw_meter_profile_id",
@@ -3272,7 +2862,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID & 0xff}
 		}
 	},
-	/* act_tid: 5, , table: meter_profile_tbl_cache.wr */
+	/* act_tid: 6, , table: meter_profile_tbl_cache.wr */
 	{
 	.field_info_mask = {
 		.description = "sw_meter_profile_id",
@@ -3295,7 +2885,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID & 0xff}
 		}
 	},
-	/* act_tid: 5, , table: shared_meter_tbl_cache.rd */
+	/* act_tid: 6, , table: shared_meter_tbl_cache.rd */
 	{
 	.field_info_mask = {
 		.description = "sw_meter_id",
@@ -3318,7 +2908,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_METER_INST_ID & 0xff}
 		}
 	},
-	/* act_tid: 5, , table: meter_profile_tbl_cache.rd2 */
+	/* act_tid: 6, , table: meter_profile_tbl_cache.rd2 */
 	{
 	.field_info_mask = {
 		.description = "sw_meter_profile_id",
@@ -3341,7 +2931,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID & 0xff}
 		}
 	},
-	/* act_tid: 5, , table: shared_meter_tbl_cache.wr */
+	/* act_tid: 6, , table: shared_meter_tbl_cache.wr */
 	{
 	.field_info_mask = {
 		.description = "sw_meter_id",
@@ -3364,7 +2954,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_METER_INST_ID & 0xff}
 		}
 	},
-	/* act_tid: 5, , table: meter_profile_tbl_cache.del_chk */
+	/* act_tid: 6, , table: meter_profile_tbl_cache.del_chk */
 	{
 	.field_info_mask = {
 		.description = "sw_meter_profile_id",
@@ -3387,7 +2977,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID & 0xff}
 		}
 	},
-	/* act_tid: 5, , table: shared_meter_tbl_cache.del_chk */
+	/* act_tid: 6, , table: shared_meter_tbl_cache.del_chk */
 	{
 	.field_info_mask = {
 		.description = "sw_meter_id",
@@ -3410,7 +3000,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_METER_INST_ID & 0xff}
 		}
 	},
-	/* act_tid: 5, , table: shared_meter_tbl_cache.rd_update */
+	/* act_tid: 6, , table: shared_meter_tbl_cache.rd_update */
 	{
 	.field_info_mask = {
 		.description = "sw_meter_id",
@@ -3433,7 +3023,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_METER_INST_ID & 0xff}
 		}
 	},
-	/* act_tid: 6, , table: flow_chain_cache.rd */
+	/* act_tid: 7, , table: flow_chain_cache.rd */
 	{
 	.field_info_mask = {
 		.description = "group_id",
@@ -3456,7 +3046,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_JUMP & 0xff}
 		}
 	},
-	/* act_tid: 6, , table: flow_chain_cache.write */
+	/* act_tid: 7, , table: flow_chain_cache.write */
 	{
 	.field_info_mask = {
 		.description = "group_id",
@@ -3479,26 +3069,6 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_JUMP & 0xff}
 		}
 	},
-	/* act_tid: 6, , table: shared_mirror_record.rd */
-	{
-	.field_info_mask = {
-		.description = "shared_index",
-		.field_bit_size = 8,
-		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
-		.field_opr1 = {
-			0xff}
-		},
-	.field_info_spec = {
-		.description = "shared_index",
-		.field_bit_size = 8,
-		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-		.field_opr1 = {
-		(BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE >> 8) & 0xff,
-		BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff}
-		}
-	},
 	/* act_tid: 7, , table: shared_mirror_record.rd */
 	{
 	.field_info_mask = {
@@ -3519,27 +3089,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff}
 		}
 	},
-	/* act_tid: 8, , table: shared_mirror_record.rd */
-	{
-	.field_info_mask = {
-		.description = "shared_index",
-		.field_bit_size = 8,
-		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
-		.field_opr1 = {
-			0xff}
-		},
-	.field_info_spec = {
-		.description = "shared_index",
-		.field_bit_size = 8,
-		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-		.field_opr1 = {
-		(BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE >> 8) & 0xff,
-		BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff}
-		}
-	},
-	/* act_tid: 8, , table: source_property_cache.rd */
+	/* act_tid: 7, , table: source_property_cache.rd */
 	{
 	.field_info_mask = {
 		.description = "smac",
@@ -3600,7 +3150,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 		}
 	},
-	/* act_tid: 8, , table: source_property_cache.wr */
+	/* act_tid: 7, , table: source_property_cache.wr */
 	{
 	.field_info_mask = {
 		.description = "smac",
@@ -3661,7 +3211,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 		}
 	},
-	/* act_tid: 8, , table: source_property_ipv6_cache.rd */
+	/* act_tid: 7, , table: source_property_ipv6_cache.rd */
 	{
 	.field_info_mask = {
 		.description = "smac",
@@ -3720,7 +3270,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		BNXT_ULP_ENC_FIELD_IPV6_SADDR & 0xff}
 		}
 	},
-	/* act_tid: 8, , table: source_property_ipv6_cache.wr */
+	/* act_tid: 7, , table: source_property_ipv6_cache.wr */
 	{
 	.field_info_mask = {
 		.description = "smac",
@@ -3779,7 +3329,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		BNXT_ULP_ENC_FIELD_IPV6_SADDR & 0xff}
 		}
 	},
-	/* act_tid: 8, , table: vxlan_encap_rec_cache.rd */
+	/* act_tid: 7, , table: vxlan_encap_rec_cache.rd */
 	{
 	.field_info_mask = {
 		.description = "dmac",
@@ -3901,7 +3451,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 		}
 	},
-	/* act_tid: 8, , table: vxlan_encap_ipv6_rec_cache.rd */
+	/* act_tid: 7, , table: vxlan_encap_rec_cache.wr */
 	{
 	.field_info_mask = {
 		.description = "dmac",
@@ -3928,36 +3478,24 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 	},
 	{
 	.field_info_mask = {
-		.description = "ipv6_dst_addr",
-		.field_bit_size = 128,
+		.description = "ipv4_dst_addr",
+		.field_bit_size = 32,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
 		.field_opr1 = {
-			0xff,
-			0xff,
-			0xff,
-			0xff,
-			0xff,
-			0xff,
-			0xff,
-			0xff,
-			0xff,
-			0xff,
-			0xff,
-			0xff,
 			0xff,
 			0xff,
 			0xff,
 			0xff}
 		},
 	.field_info_spec = {
-		.description = "ipv6_dst_addr",
-		.field_bit_size = 128,
+		.description = "ipv4_dst_addr",
+		.field_bit_size = 32,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 		.field_opr1 = {
-		(BNXT_ULP_ENC_FIELD_IPV6_DADDR >> 8) & 0xff,
-		BNXT_ULP_ENC_FIELD_IPV6_DADDR & 0xff}
+		(BNXT_ULP_ENC_FIELD_IPV4_DADDR >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_IPV4_DADDR & 0xff}
 		}
 	},
 	{
@@ -4035,7 +3573,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 		}
 	},
-	/* act_tid: 8, , table: vxlan_encap_rec_cache.wr */
+	/* act_tid: 7, , table: vxlan_encap_ipv6_rec_cache.rd */
 	{
 	.field_info_mask = {
 		.description = "dmac",
@@ -4062,24 +3600,36 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 	},
 	{
 	.field_info_mask = {
-		.description = "ipv4_dst_addr",
-		.field_bit_size = 32,
+		.description = "ipv6_dst_addr",
+		.field_bit_size = 128,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
 		.field_opr1 = {
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
+			0xff,
 			0xff,
 			0xff,
 			0xff,
 			0xff}
 		},
 	.field_info_spec = {
-		.description = "ipv4_dst_addr",
-		.field_bit_size = 32,
+		.description = "ipv6_dst_addr",
+		.field_bit_size = 128,
 		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 		.field_src1 = BNXT_ULP_FIELD_SRC_ENC_FIELD,
 		.field_opr1 = {
-		(BNXT_ULP_ENC_FIELD_IPV4_DADDR >> 8) & 0xff,
-		BNXT_ULP_ENC_FIELD_IPV4_DADDR & 0xff}
+		(BNXT_ULP_ENC_FIELD_IPV6_DADDR >> 8) & 0xff,
+		BNXT_ULP_ENC_FIELD_IPV6_DADDR & 0xff}
 		}
 	},
 	{
@@ -4157,7 +3707,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 		}
 	},
-	/* act_tid: 8, , table: vxlan_encap_ipv6_rec_cache.wr */
+	/* act_tid: 7, , table: vxlan_encap_ipv6_rec_cache.wr */
 	{
 	.field_info_mask = {
 		.description = "dmac",
@@ -4291,7 +3841,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 		}
 	},
-	/* act_tid: 8, , table: geneve_encap_rec_cache.rd */
+	/* act_tid: 7, , table: geneve_encap_rec_cache.rd */
 	{
 	.field_info_mask = {
 		.description = "dmac",
@@ -4641,7 +4191,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 		}
 	},
-	/* act_tid: 8, , table: geneve_encap_rec_cache.wr */
+	/* act_tid: 7, , table: geneve_encap_rec_cache.wr */
 	{
 	.field_info_mask = {
 		.description = "dmac",
@@ -4991,27 +4541,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 		}
 	},
-	/* act_tid: 9, , table: shared_mirror_record.rd */
-	{
-	.field_info_mask = {
-		.description = "shared_index",
-		.field_bit_size = 8,
-		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ONES,
-		.field_opr1 = {
-			0xff}
-		},
-	.field_info_spec = {
-		.description = "shared_index",
-		.field_bit_size = 8,
-		.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-		.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-		.field_opr1 = {
-		(BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE >> 8) & 0xff,
-		BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff}
-		}
-	},
-	/* act_tid: 10, , table: shared_mirror_record.del_chk */
+	/* act_tid: 12, , table: shared_mirror_record.del_chk */
 	{
 	.field_info_mask = {
 		.description = "shared_index",
@@ -5031,7 +4561,7 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 		BNXT_ULP_ACT_PROP_IDX_SHARED_HANDLE & 0xff}
 		}
 	},
-	/* act_tid: 10, , table: shared_mirror_record.wr */
+	/* act_tid: 12, , table: shared_mirror_record.wr */
 	{
 	.field_info_mask = {
 		.description = "shared_index",
@@ -5054,6 +4584,99 @@  struct bnxt_ulp_mapper_key_info ulp_thor_act_key_info_list[] = {
 };
 
 struct bnxt_ulp_mapper_field_info ulp_thor_act_key_ext_list[] = {
+	{
+		.description = "vnic_or_vport",
+		.field_bit_size = 11,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
+	.field_opr1 = {
+		(17 >> 8) & 0xff,
+		17 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr2 = {
+	(BNXT_ULP_RF_IDX_RSS_VNIC >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RSS_VNIC & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_NEXT,
+	.field_opr3 = {
+	(1 >> 8) & 0xff,
+	1 & 0xff}
+		},
+	{
+		.description = "vnic_or_vport",
+		.field_bit_size = 11,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_AND,
+	.field_opr1 = {
+		(19 >> 8) & 0xff,
+		19 & 0xff,
+		(1 >> 8) & 0xff,
+		1 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	(ULP_THOR_SYM_RECYCLE_DST >> 8) & 0xff,
+	ULP_THOR_SYM_RECYCLE_DST & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr3 = {
+	(BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
+		},
+	{
+		.description = "metadata_data",
+		.field_bit_size = 16,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_AND,
+	.field_opr1 = {
+		(50 >> 8) & 0xff,
+		50 & 0xff,
+		(1 >> 8) & 0xff,
+		1 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_PORT_TABLE,
+	.field_opr2 = {
+		(BNXT_ULP_CF_IDX_DEV_ACT_PORT_ID >> 8) & 0xff,
+		BNXT_ULP_CF_IDX_DEV_ACT_PORT_ID & 0xff,
+		(BNXT_ULP_PORT_TABLE_VF_FUNC_METADATA >> 8) & 0xff,
+		BNXT_ULP_PORT_TABLE_VF_FUNC_METADATA & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+		},
+	{
+		.description = "metadata_data",
+		.field_bit_size = 16,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_AND,
+	.field_opr1 = {
+		(60 >> 8) & 0xff,
+		60 & 0xff,
+		(1 >> 8) & 0xff,
+		1 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_PORT_TABLE,
+	.field_opr2 = {
+		(BNXT_ULP_CF_IDX_DEV_ACT_PORT_ID >> 8) & 0xff,
+		BNXT_ULP_CF_IDX_DEV_ACT_PORT_ID & 0xff,
+		(BNXT_ULP_PORT_TABLE_VF_FUNC_METADATA >> 8) & 0xff,
+		BNXT_ULP_PORT_TABLE_VF_FUNC_METADATA & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+		},
+	{
+		.description = "vnic_or_vport",
+		.field_bit_size = 11,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_AND,
+	.field_opr1 = {
+		(85 >> 8) & 0xff,
+		85 & 0xff,
+		(1 >> 8) & 0xff,
+		1 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	(ULP_THOR_SYM_LOOPBACK_PORT >> 8) & 0xff,
+	ULP_THOR_SYM_LOOPBACK_PORT & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr3 = {
+	(BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
+		}
 };
 
 struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
@@ -5077,13 +4700,6 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	(BNXT_ULP_RF_IDX_JUMP_META >> 8) & 0xff,
 	BNXT_ULP_RF_IDX_JUMP_META & 0xff}
 	},
-	/* act_tid: 1, , table: int_flow_counter_tbl.0 */
-	{
-	.description = "count",
-	.field_bit_size = 64,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
 	/* act_tid: 1, , table: mod_record.ing_ttl */
 	{
 	.description = "metadata_en",
@@ -5189,38 +4805,116 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	{
 	.description = "l3_sip_ipv6_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "l3_dip_ipv6_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "l3_sip_ipv4_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "l3_dip_ipv4_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
 	.description = "l4_sport_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "l4_dport_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "metadata_data",
@@ -5385,6 +5079,126 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	BNXT_ULP_ACT_PROP_IDX_SET_MAC_SRC & 0xff},
 	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
+	{
+	.description = "l3_sip_ipv6",
+	.field_bit_size = 128,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr2 = {
+	(BNXT_ULP_ACT_PROP_IDX_SET_IPV6_SRC >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_SET_IPV6_SRC & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "l3_dip_ipv6",
+	.field_bit_size = 128,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr2 = {
+	(BNXT_ULP_ACT_PROP_IDX_SET_IPV6_DST >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_SET_IPV6_DST & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "l3_sip_ipv4",
+	.field_bit_size = 32,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr2 = {
+	(BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "l3_dip_ipv4",
+	.field_bit_size = 32,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr2 = {
+	(BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "l4_sport",
+	.field_bit_size = 16,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr2 = {
+	(BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "l4_dport",
+	.field_bit_size = 16,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr2 = {
+	(BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
 	/* act_tid: 1, , table: mod_record.ing_no_ttl */
 	{
 	.description = "metadata_en",
@@ -5488,38 +5302,116 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	{
 	.description = "l3_sip_ipv6_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "l3_dip_ipv6_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "l3_sip_ipv4_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "l3_dip_ipv4_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "l4_sport_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "l4_dport_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "metadata_data",
@@ -5636,6 +5528,135 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	BNXT_ULP_ACT_PROP_IDX_SET_MAC_SRC & 0xff},
 	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
+	{
+	.description = "l3_sip_ipv6",
+	.field_bit_size = 128,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr2 = {
+	(BNXT_ULP_ACT_PROP_IDX_SET_IPV6_SRC >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_SET_IPV6_SRC & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "l3_dip_ipv6",
+	.field_bit_size = 128,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr2 = {
+	(BNXT_ULP_ACT_PROP_IDX_SET_IPV6_DST >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_SET_IPV6_DST & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "l3_sip_ipv4",
+	.field_bit_size = 32,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr2 = {
+	(BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "l3_dip_ipv4",
+	.field_bit_size = 32,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr2 = {
+	(BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "l4_sport",
+	.field_bit_size = 16,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr2 = {
+	(BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "l4_dport",
+	.field_bit_size = 16,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opr1 = {
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
+	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
+	(uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr2 = {
+	(BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	/* act_tid: 1, , table: vnic_interface_rss_config.0 */
+	/* act_tid: 1, , table: vnic_interface_queue_config.0 */
+	/* act_tid: 1, , table: int_flow_counter_tbl.0 */
+	{
+	.description = "count",
+	.field_bit_size = 64,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
 	/* act_tid: 1, , table: int_full_act_record.0 */
 	{
 	.description = "sp_rec_ptr",
@@ -5676,8 +5697,8 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
 	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
 	.field_opr1 = {
-		(13 >> 8) & 0xff,
-		13 & 0xff,
+		(14 >> 8) & 0xff,
+		14 & 0xff,
 		(2 >> 8) & 0xff,
 		2 & 0xff},
 	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
@@ -5688,22 +5709,11 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	{
 	.description = "meter",
 	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
 	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_METER & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr2 = {
 	(BNXT_ULP_RF_IDX_METER_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_METER_PTR_0 & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
+	BNXT_ULP_RF_IDX_METER_PTR_0 & 0xff}
 	},
 	{
 	.description = "stats_op",
@@ -5725,25 +5735,15 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	{
 	.description = "vnic_or_vport",
 	.field_bit_size = 11,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_AND,
 	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_JUMP & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	(ULP_THOR_SYM_RECYCLE_DST >> 8) & 0xff,
-	ULP_THOR_SYM_RECYCLE_DST & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr3 = {
-	(BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
+		(16 >> 8) & 0xff,
+		16 & 0xff,
+		(1 >> 8) & 0xff,
+		1 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
+	.field_src3 = BNXT_ULP_FIELD_SRC_NEXT
 	},
 	{
 	.description = "use_default",
@@ -5754,22 +5754,11 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	{
 	.description = "mirror",
 	.field_bit_size = 4,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
 	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr2 = {
 	(BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
+	BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff}
 	},
 	{
 	.description = "cond_copy",
@@ -5825,7 +5814,47 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	.field_opr1 = {
 	1}
 	},
-	/* act_tid: 1, , table: int_compact_act_record.0 */
+	/* act_tid: 3, , table: mirror_tbl.alloc */
+	{
+	.description = "act_rec_ptr",
+	.field_bit_size = 16,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "reserved",
+	.field_bit_size = 13,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "ignore_drop",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "copy_ing_or_egr",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "enable",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr1 = {
+	1}
+	},
+	/* act_tid: 3, , table: int_flow_counter_tbl.0 */
+	{
+	.description = "count",
+	.field_bit_size = 64,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	/* act_tid: 3, , table: int_compact_act_record.0 */
 	{
 	.description = "rsvd0",
 	.field_bit_size = 8,
@@ -5835,37 +5864,14 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	{
 	.description = "decap_func",
 	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
-	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
-	.field_opr1 = {
-		(15 >> 8) & 0xff,
-		15 & 0xff,
-		(2 >> 8) & 0xff,
-		2 & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	ULP_THOR_SYM_DECAP_FUNC_THRU_TUN},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "meter",
 	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_METER >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_METER & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr2 = {
-	(BNXT_ULP_RF_IDX_METER_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_METER_PTR_0 & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "stats_op",
@@ -5902,22 +5908,8 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	{
 	.description = "mirror",
 	.field_bit_size = 4,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr2 = {
-	(BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "cond_copy",
@@ -5928,36 +5920,14 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	{
 	.description = "vlan_del_rpt",
 	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_POP_VLAN & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	ULP_THOR_SYM_VLAN_DEL_RPT_STRIP_OUTER},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "drop",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "hit",
@@ -5971,12 +5941,15 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
 	},
-	/* act_tid: 2, , table: mirror_tbl.alloc */
+	/* act_tid: 3, , table: mirror_tbl.wr */
 	{
 	.description = "act_rec_ptr",
 	.field_bit_size = 16,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
 	},
 	{
 	.description = "reserved",
@@ -5994,7 +5967,9 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	.description = "copy_ing_or_egr",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr1 = {
+	1}
 	},
 	{
 	.description = "enable",
@@ -6004,139 +5979,195 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	.field_opr1 = {
 	1}
 	},
-	/* act_tid: 2, , table: int_flow_counter_tbl.0 */
+	/* act_tid: 3, , table: shared_mirror_record.wr */
 	{
-	.description = "count",
-	.field_bit_size = 64,
+	.description = "rid",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RID & 0xff}
 	},
-	/* act_tid: 2, , table: int_compact_act_record.0 */
 	{
-	.description = "rsvd0",
-	.field_bit_size = 8,
+	.description = "mirror_id",
+	.field_bit_size = 4,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_MIRROR_PTR_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff}
 	},
+	/* act_tid: 6, , table: meter_profile_tbl.0 */
 	{
-	.description = "decap_func",
-	.field_bit_size = 5,
+	.description = "cf",
+	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr1 = {
+	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_CF >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_PROF_CF & 0xff}
 	},
 	{
-	.description = "meter",
-	.field_bit_size = 10,
+	.description = "pm",
+	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr1 = {
+	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_PM >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_PROF_PM & 0xff}
 	},
 	{
-	.description = "stats_op",
+	.description = "rfc2698",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 	.field_opr1 = {
-	1}
+	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_RFC2698 >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_PROF_RFC2698 & 0xff}
 	},
 	{
-	.description = "stats_ptr",
-	.field_bit_size = 16,
+	.description = "cbsm",
+	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
+	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_CBSM >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_PROF_CBSM & 0xff}
 	},
 	{
-	.description = "vnic_or_vport",
-	.field_bit_size = 11,
+	.description = "ebsm",
+	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
+	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_EBSM >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_PROF_EBSM & 0xff}
 	},
 	{
-	.description = "use_default",
+	.description = "cbnd",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr1 = {
+	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_CBND >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_PROF_CBND & 0xff}
 	},
 	{
-	.description = "mirror",
-	.field_bit_size = 4,
+	.description = "ebnd",
+	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr1 = {
+	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_EBND >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_PROF_EBND & 0xff}
 	},
 	{
-	.description = "cond_copy",
-	.field_bit_size = 1,
+	.description = "cbs",
+	.field_bit_size = 12,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr1 = {
+	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_CBS >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_PROF_CBS & 0xff}
 	},
 	{
-	.description = "vlan_del_rpt",
-	.field_bit_size = 2,
+	.description = "ebs",
+	.field_bit_size = 12,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr1 = {
+	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_EBS >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_PROF_EBS & 0xff}
 	},
 	{
-	.description = "drop",
-	.field_bit_size = 1,
+	.description = "cir",
+	.field_bit_size = 17,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr1 = {
+	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_CIR >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_PROF_CIR & 0xff}
 	},
 	{
-	.description = "hit",
-	.field_bit_size = 1,
+	.description = "eir",
+	.field_bit_size = 17,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr1 = {
+	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_EIR >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_PROF_EIR & 0xff}
 	},
+	/* act_tid: 6, , table: meter_profile_tbl_cache.wr */
 	{
-	.description = "type",
-	.field_bit_size = 3,
+	.description = "rid",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RID & 0xff}
 	},
-	/* act_tid: 2, , table: mirror_tbl.wr */
 	{
-	.description = "act_rec_ptr",
-	.field_bit_size = 16,
+	.description = "meter_profile_ptr",
+	.field_bit_size = 10,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
 	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_MAIN_ACTION_PTR >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MAIN_ACTION_PTR & 0xff}
+	(BNXT_ULP_RF_IDX_METER_PROFILE_PTR_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_METER_PROFILE_PTR_0 & 0xff}
 	},
+	/* act_tid: 6, , table: meter_tbl.0 */
 	{
-	.description = "reserved",
-	.field_bit_size = 13,
+	.description = "bkt_c",
+	.field_bit_size = 27,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr1 = {
+	(134217727 >> 24) & 0xff,
+	(134217727 >> 16) & 0xff,
+	(134217727 >> 8) & 0xff,
+	134217727 & 0xff}
 	},
 	{
-	.description = "ignore_drop",
-	.field_bit_size = 1,
+	.description = "bkt_e",
+	.field_bit_size = 27,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr1 = {
+	(134217727 >> 24) & 0xff,
+	(134217727 >> 16) & 0xff,
+	(134217727 >> 8) & 0xff,
+	134217727 & 0xff}
 	},
 	{
-	.description = "copy_ing_or_egr",
+	.description = "mtr_val",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 	.field_opr1 = {
-	1}
+	(BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL & 0xff}
 	},
 	{
-	.description = "enable",
+	.description = "ecn_rmp_en",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
 	.field_opr1 = {
-	1}
+	(BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN & 0xff}
+	},
+	{
+	.description = "meter_profile",
+	.field_bit_size = 8,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_METER_PROFILE_PTR_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_METER_PROFILE_PTR_0 & 0xff}
 	},
-	/* act_tid: 2, , table: shared_mirror_record.wr */
+	/* act_tid: 6, , table: shared_meter_tbl_cache.wr */
 	{
 	.description = "rid",
 	.field_bit_size = 32,
@@ -6147,47 +6178,151 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	BNXT_ULP_RF_IDX_RID & 0xff}
 	},
 	{
-	.description = "mirror_id",
-	.field_bit_size = 4,
+	.description = "meter_ptr",
+	.field_bit_size = 10,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
 	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
 	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_MIRROR_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MIRROR_PTR_0 & 0xff}
-	},
-	/* act_tid: 3, , table: int_flow_counter_tbl.0 */
-	{
-	.description = "count",
-	.field_bit_size = 64,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	(BNXT_ULP_RF_IDX_METER_PTR_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_METER_PTR_0 & 0xff}
 	},
-	/* act_tid: 3, , table: mod_record.ing_ttl */
 	{
-	.description = "metadata_en",
-	.field_bit_size = 1,
+	.description = "sw_meter_profile_id",
+	.field_bit_size = 32,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr1 = {
+	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID & 0xff}
 	},
+	/* act_tid: 6, , table: meter_tbl.update_wr */
 	{
-	.description = "rem_ovlan",
-	.field_bit_size = 1,
+	.description = "bkt_c",
+	.field_bit_size = 27,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr1 = {
+	(134217727 >> 24) & 0xff,
+	(134217727 >> 16) & 0xff,
+	(134217727 >> 8) & 0xff,
+	134217727 & 0xff}
 	},
 	{
-	.description = "rem_ivlan",
-	.field_bit_size = 1,
+	.description = "bkt_e",
+	.field_bit_size = 27,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr1 = {
+	(134217727 >> 24) & 0xff,
+	(134217727 >> 16) & 0xff,
+	(134217727 >> 8) & 0xff,
+	134217727 & 0xff}
 	},
 	{
-	.description = "rep_add_ivlan",
+	.description = "mtr_val",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr1 = {
+	(BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL_UPDATE >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL_UPDATE & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr2 = {
+	(BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr3 = {
+	(BNXT_ULP_RF_IDX_RF_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RF_0 & 0xff}
+	},
+	{
+	.description = "ecn_rmp_en",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr1 = {
+	(BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN_UPDATE >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN_UPDATE & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
+	.field_opr2 = {
+	(BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN >> 8) & 0xff,
+	BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr3 = {
+	(BNXT_ULP_RF_IDX_RF_1 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RF_1 & 0xff}
+	},
+	{
+	.description = "meter_profile",
+	.field_bit_size = 8,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_METER_PROFILE_PTR_0 >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_METER_PROFILE_PTR_0 & 0xff}
+	},
+	/* act_tid: 7, , table: jump_index_table.alloc */
+	/* act_tid: 7, , table: flow_chain_cache.write */
+	{
+	.description = "rid",
+	.field_bit_size = 32,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_RID & 0xff}
+	},
+	{
+	.description = "metadata",
+	.field_bit_size = 16,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr1 = {
+	(BNXT_ULP_RF_IDX_JUMP_META >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_JUMP_META & 0xff}
+	},
+	/* act_tid: 7, , table: int_flow_counter_tbl.0 */
+	{
+	.description = "count",
+	.field_bit_size = 64,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	/* act_tid: 7, , table: mod_record.ing_ttl */
+	{
+	.description = "metadata_en",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
+	.field_opr1 = {
+		(47 >> 8) & 0xff,
+		47 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "rem_ovlan",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "rem_ivlan",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
+	.description = "rep_add_ivlan",
+	.field_bit_size = 1,
+	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
+	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	},
+	{
 	.description = "rep_add_ovlan",
 	.field_bit_size = 1,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
@@ -6366,6 +6501,64 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
+	.description = "metadata_data",
+	.field_bit_size = 16,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_AND,
+	.field_opr1 = {
+		(49 >> 8) & 0xff,
+		49 & 0xff,
+		(1 >> 8) & 0xff,
+		1 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr2 = {
+	(BNXT_ULP_RF_IDX_JUMP_META >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_JUMP_META & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_NEXT,
+	.field_opr3 = {
+	(2 >> 8) & 0xff,
+	2 & 0xff}
+	},
+	{
+	.description = "metadata_rsvd",
+	.field_bit_size = 10,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
+	.field_opr1 = {
+		(51 >> 8) & 0xff,
+		51 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "metadata_op",
+	.field_bit_size = 2,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
+	.field_opr1 = {
+		(53 >> 8) & 0xff,
+		53 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "metadata_prof",
+	.field_bit_size = 4,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
+	.field_opr1 = {
+		(55 >> 8) & 0xff,
+		55 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
 	.description = "alt_pfid",
 	.field_bit_size = 4,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
@@ -6573,12 +6766,21 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
 	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
 	},
-	/* act_tid: 3, , table: mod_record.ing_no_ttl */
+	/* act_tid: 7, , table: mod_record.ing_no_ttl */
 	{
 	.description = "metadata_en",
 	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
+	.field_opr1 = {
+		(57 >> 8) & 0xff,
+		57 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
+	.field_opr2 = {
+	1},
+	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
 	.description = "rem_ovlan",
@@ -6775,6 +6977,64 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
 	},
 	{
+	.description = "metadata_data",
+	.field_bit_size = 16,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_AND,
+	.field_opr1 = {
+		(59 >> 8) & 0xff,
+		59 & 0xff,
+		(1 >> 8) & 0xff,
+		1 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
+	.field_opr2 = {
+	(BNXT_ULP_RF_IDX_JUMP_META >> 8) & 0xff,
+	BNXT_ULP_RF_IDX_JUMP_META & 0xff},
+	.field_src3 = BNXT_ULP_FIELD_SRC_NEXT,
+	.field_opr3 = {
+	(3 >> 8) & 0xff,
+	3 & 0xff}
+	},
+	{
+	.description = "metadata_rsvd",
+	.field_bit_size = 10,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
+	.field_opr1 = {
+		(61 >> 8) & 0xff,
+		61 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "metadata_op",
+	.field_bit_size = 2,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
+	.field_opr1 = {
+		(63 >> 8) & 0xff,
+		63 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
+	.description = "metadata_prof",
+	.field_bit_size = 4,
+	.field_opc = BNXT_ULP_FIELD_OPC_TERNARY_LIST,
+	.field_src1 = BNXT_ULP_FIELD_SRC_LIST_OR,
+	.field_opr1 = {
+		(65 >> 8) & 0xff,
+		65 & 0xff,
+		(2 >> 8) & 0xff,
+		2 & 0xff},
+	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
+	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
+	},
+	{
 	.description = "l2_dmac",
 	.field_bit_size = 48,
 	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
@@ -6907,2469 +7167,122 @@  struct bnxt_ulp_mapper_field_info ulp_thor_act_result_field_list[] = {
 	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
 	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
 	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	{
-	.description = "l4_dport",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	/* act_tid: 3, , table: int_full_act_record.0 */
-	{
-	.description = "sp_rec_ptr",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "encap_ptr",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "mod_rec_ptr",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_MODIFY_PTR >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MODIFY_PTR & 0xff}
-	},
-	{
-	.description = "rsvd1",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rsvd0",
-	.field_bit_size = 8,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "decap_func",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "meter",
-	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stats_op",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	1}
-	},
-	{
-	.description = "stats_ptr",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
-	},
-	{
-	.description = "vnic_or_vport",
-	.field_bit_size = 11,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
-	},
-	{
-	.description = "use_default",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "mirror",
-	.field_bit_size = 4,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff}
-	},
-	{
-	.description = "cond_copy",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "vlan_del_rpt",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "drop",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "hit",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "type",
-	.field_bit_size = 3,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	1}
-	},
-	/* act_tid: 4, , table: int_flow_counter_tbl.0 */
-	{
-	.description = "count",
-	.field_bit_size = 64,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 4, , table: vnic_interface_rss_config.0 */
-	/* act_tid: 4, , table: vnic_interface_queue_config.0 */
-	/* act_tid: 4, , table: int_compact_act_record.0 */
-	{
-	.description = "rsvd0",
-	.field_bit_size = 8,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "decap_func",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "meter",
-	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stats_op",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stats_ptr",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
-	},
-	{
-	.description = "vnic_or_vport",
-	.field_bit_size = 11,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_RSS_VNIC >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_RSS_VNIC & 0xff}
-	},
-	{
-	.description = "use_default",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "mirror",
-	.field_bit_size = 4,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff}
-	},
-	{
-	.description = "cond_copy",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "vlan_del_rpt",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "drop",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "hit",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "type",
-	.field_bit_size = 3,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 4, , table: int_compact_act_record.1 */
-	{
-	.description = "rsvd0",
-	.field_bit_size = 8,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "decap_func",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "meter",
-	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stats_op",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stats_ptr",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
-	},
-	{
-	.description = "vnic_or_vport",
-	.field_bit_size = 11,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_VNIC >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_VNIC & 0xff}
-	},
-	{
-	.description = "use_default",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "mirror",
-	.field_bit_size = 4,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff}
-	},
-	{
-	.description = "cond_copy",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "vlan_del_rpt",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "drop",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "hit",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "type",
-	.field_bit_size = 3,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 5, , table: meter_profile_tbl.0 */
-	{
-	.description = "cf",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_CF >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_PROF_CF & 0xff}
-	},
-	{
-	.description = "pm",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_PM >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_PROF_PM & 0xff}
-	},
-	{
-	.description = "rfc2698",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_RFC2698 >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_PROF_RFC2698 & 0xff}
-	},
-	{
-	.description = "cbsm",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_CBSM >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_PROF_CBSM & 0xff}
-	},
-	{
-	.description = "ebsm",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_EBSM >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_PROF_EBSM & 0xff}
-	},
-	{
-	.description = "cbnd",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_CBND >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_PROF_CBND & 0xff}
-	},
-	{
-	.description = "ebnd",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_EBND >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_PROF_EBND & 0xff}
-	},
-	{
-	.description = "cbs",
-	.field_bit_size = 12,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_CBS >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_PROF_CBS & 0xff}
-	},
-	{
-	.description = "ebs",
-	.field_bit_size = 12,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_EBS >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_PROF_EBS & 0xff}
-	},
-	{
-	.description = "cir",
-	.field_bit_size = 17,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_CIR >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_PROF_CIR & 0xff}
-	},
-	{
-	.description = "eir",
-	.field_bit_size = 17,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_EIR >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_PROF_EIR & 0xff}
-	},
-	/* act_tid: 5, , table: meter_profile_tbl_cache.wr */
-	{
-	.description = "rid",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_RID & 0xff}
-	},
-	{
-	.description = "meter_profile_ptr",
-	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_METER_PROFILE_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_METER_PROFILE_PTR_0 & 0xff}
-	},
-	/* act_tid: 5, , table: meter_tbl.0 */
-	{
-	.description = "bkt_c",
-	.field_bit_size = 27,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	(134217727 >> 24) & 0xff,
-	(134217727 >> 16) & 0xff,
-	(134217727 >> 8) & 0xff,
-	134217727 & 0xff}
-	},
-	{
-	.description = "bkt_e",
-	.field_bit_size = 27,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	(134217727 >> 24) & 0xff,
-	(134217727 >> 16) & 0xff,
-	(134217727 >> 8) & 0xff,
-	134217727 & 0xff}
-	},
-	{
-	.description = "mtr_val",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL & 0xff}
-	},
-	{
-	.description = "ecn_rmp_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN & 0xff}
-	},
-	{
-	.description = "meter_profile",
-	.field_bit_size = 8,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_METER_PROFILE_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_METER_PROFILE_PTR_0 & 0xff}
-	},
-	/* act_tid: 5, , table: shared_meter_tbl_cache.wr */
-	{
-	.description = "rid",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_RID & 0xff}
-	},
-	{
-	.description = "meter_ptr",
-	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_METER_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_METER_PTR_0 & 0xff}
-	},
-	{
-	.description = "sw_meter_profile_id",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_PROF_ID & 0xff}
-	},
-	/* act_tid: 5, , table: meter_tbl.update_wr */
-	{
-	.description = "bkt_c",
-	.field_bit_size = 27,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	(134217727 >> 24) & 0xff,
-	(134217727 >> 16) & 0xff,
-	(134217727 >> 8) & 0xff,
-	134217727 & 0xff}
-	},
-	{
-	.description = "bkt_e",
-	.field_bit_size = 27,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	(134217727 >> 24) & 0xff,
-	(134217727 >> 16) & 0xff,
-	(134217727 >> 8) & 0xff,
-	134217727 & 0xff}
-	},
-	{
-	.description = "mtr_val",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL_UPDATE >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL_UPDATE & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_INST_MTR_VAL & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr3 = {
-	(BNXT_ULP_RF_IDX_RF_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_RF_0 & 0xff}
-	},
-	{
-	.description = "ecn_rmp_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN_UPDATE >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN_UPDATE & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_METER_INST_ECN_RMP_EN & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr3 = {
-	(BNXT_ULP_RF_IDX_RF_1 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_RF_1 & 0xff}
-	},
-	{
-	.description = "meter_profile",
-	.field_bit_size = 8,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_METER_PROFILE_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_METER_PROFILE_PTR_0 & 0xff}
-	},
-	/* act_tid: 6, , table: jump_index_table.alloc */
-	/* act_tid: 6, , table: flow_chain_cache.write */
-	{
-	.description = "rid",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_RID >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_RID & 0xff}
-	},
-	{
-	.description = "metadata",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_JUMP_META >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_JUMP_META & 0xff}
-	},
-	/* act_tid: 6, , table: int_flow_counter_tbl.0 */
-	{
-	.description = "count",
-	.field_bit_size = 64,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 6, , table: int_vtag_encap_record.0 */
-	{
-	.description = "ecv_valid",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	1}
-	},
-	{
-	.description = "ecv_custom_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ecv_vtag_type",
-	.field_bit_size = 4,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	ULP_THOR_SYM_ECV_VTAG_TYPE_ADD_1_ENCAP_PRI}
-	},
-	{
-	.description = "ecv_l2_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ecv_l3_type",
-	.field_bit_size = 3,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ecv_l4_type",
-	.field_bit_size = 3,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ecv_tun_type",
-	.field_bit_size = 3,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "vtag_tpid",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_PUSH_VLAN & 0xff}
-	},
-	{
-	.description = "vtag_pcp",
-	.field_bit_size = 3,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_VLAN_PCP & 0xff}
-	},
-	{
-	.description = "vtag_de",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "vtag_vid",
-	.field_bit_size = 12,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_VLAN_VID & 0xff}
-	},
-	/* act_tid: 6, , table: mod_record.dec_ttl_egr */
-	{
-	.description = "metadata_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rem_ovlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rem_ivlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rep_add_ivlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rep_add_ovlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_update",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	1}
-	},
-	{
-	.description = "tun_md_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "reserved_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l2_dmac_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l2_smac_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_sip_ipv6_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_dip_ipv6_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_sip_ipv4_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_dip_ipv4_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l4_sport_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l4_dport_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "alt_pfid",
-	.field_bit_size = 4,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "alt_vid",
-	.field_bit_size = 12,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_rsvd",
-	.field_bit_size = 12,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_tl3_dec",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CF,
-	.field_opr1 = {
-	(BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
-	BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
-	},
-	{
-	.description = "ttl_il3_dec",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CF,
-	.field_opr1 = {
-	(BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
-	BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
-	},
-	{
-	.description = "ttl_tl3_rdir",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_il3_rdir",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 6, , table: mod_record.no_dec_ttl_egr */
-	{
-	.description = "metadata_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_JUMP & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rem_ovlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rem_ivlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rep_add_ivlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rep_add_ovlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_update",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "tun_md_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "reserved_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l2_dmac_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l2_smac_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_sip_ipv6_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_dip_ipv6_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_sip_ipv4_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_dip_ipv4_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l4_sport_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l4_dport_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "metadata_data",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_JUMP & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr2 = {
-	(BNXT_ULP_RF_IDX_JUMP_META >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_JUMP_META & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	{
-	.description = "metadata_rsvd",
-	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_JUMP & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ZERO,
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	{
-	.description = "metadata_op",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_JUMP & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	ULP_THOR_SYM_METADATA_OP_NORMAL},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	{
-	.description = "metadata_prof",
-	.field_bit_size = 4,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_JUMP & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	ULP_THOR_SYM_META_PROFILE_0},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	/* act_tid: 6, , table: int_full_act_record.0 */
-	{
-	.description = "sp_rec_ptr",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "encap_ptr",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_ENCAP_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_ENCAP_PTR_0 & 0xff}
-	},
-	{
-	.description = "mod_rec_ptr",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_MODIFY_PTR >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MODIFY_PTR & 0xff}
-	},
-	{
-	.description = "rsvd1",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rsvd0",
-	.field_bit_size = 8,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "decap_func",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "meter",
-	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stats_op",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	1}
-	},
-	{
-	.description = "stats_ptr",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
-	},
-	{
-	.description = "vnic_or_vport",
-	.field_bit_size = 11,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_JUMP >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_JUMP & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	(ULP_THOR_SYM_RECYCLE_DST >> 8) & 0xff,
-	ULP_THOR_SYM_RECYCLE_DST & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr3 = {
-	(BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
-	},
-	{
-	.description = "use_default",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "mirror",
-	.field_bit_size = 4,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr2 = {
-	(BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "cond_copy",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "vlan_del_rpt",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "drop",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
-	},
-	{
-	.description = "hit",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "type",
-	.field_bit_size = 3,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	1}
-	},
-	/* act_tid: 6, , table: int_compact_act_record.0 */
-	{
-	.description = "rsvd0",
-	.field_bit_size = 8,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "decap_func",
-	.field_bit_size = 5,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "meter",
-	.field_bit_size = 10,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "stats_op",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	1}
-	},
-	{
-	.description = "stats_ptr",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr1 = {
-	(BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_FLOW_CNTR_PTR_0 & 0xff}
-	},
-	{
-	.description = "vnic_or_vport",
-	.field_bit_size = 11,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr1 = {
-	(BNXT_ULP_ACT_PROP_IDX_VPORT >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_VPORT & 0xff}
-	},
-	{
-	.description = "use_default",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "mirror",
-	.field_bit_size = 4,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SHARED_SAMPLE & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_RF,
-	.field_opr2 = {
-	(BNXT_ULP_RF_IDX_MIRROR_ID_0 >> 8) & 0xff,
-	BNXT_ULP_RF_IDX_MIRROR_ID_0 & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "cond_copy",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "vlan_del_rpt",
-	.field_bit_size = 2,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "drop",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_DROP >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_DROP & 0xff}
-	},
-	{
-	.description = "hit",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "type",
-	.field_bit_size = 3,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 7, , table: int_flow_counter_tbl.0 */
-	{
-	.description = "count",
-	.field_bit_size = 64,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	/* act_tid: 7, , table: mod_record.ing_ttl */
-	{
-	.description = "metadata_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rem_ovlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rem_ivlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rep_add_ivlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rep_add_ovlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_update",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr1 = {
-	1}
-	},
-	{
-	.description = "tun_md_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "reserved_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l2_dmac_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l2_smac_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_sip_ipv6_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_dip_ipv6_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_sip_ipv4_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_dip_ipv4_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l4_sport_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l4_dport_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "alt_pfid",
-	.field_bit_size = 4,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "alt_vid",
-	.field_bit_size = 12,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_rsvd",
-	.field_bit_size = 12,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_tl3_dec",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CF,
-	.field_opr1 = {
-	(BNXT_ULP_CF_IDX_ACT_T_DEC_TTL >> 8) & 0xff,
-	BNXT_ULP_CF_IDX_ACT_T_DEC_TTL & 0xff}
-	},
-	{
-	.description = "ttl_il3_dec",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_CF,
-	.field_opr1 = {
-	(BNXT_ULP_CF_IDX_ACT_DEC_TTL >> 8) & 0xff,
-	BNXT_ULP_CF_IDX_ACT_DEC_TTL & 0xff}
-	},
-	{
-	.description = "ttl_tl3_rdir",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_il3_rdir",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l2_dmac",
-	.field_bit_size = 48,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_MAC_DST >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_MAC_DST & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	{
-	.description = "l2_smac",
-	.field_bit_size = 48,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_MAC_SRC >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_MAC_SRC & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	{
-	.description = "l3_sip_ipv6",
-	.field_bit_size = 128,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_IPV6_SRC >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_IPV6_SRC & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	{
-	.description = "l3_dip_ipv6",
-	.field_bit_size = 128,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_IPV6_DST >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_IPV6_DST & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	{
-	.description = "l3_sip_ipv4",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	{
-	.description = "l3_dip_ipv4",
-	.field_bit_size = 32,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	{
-	.description = "l4_sport",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	{
-	.description = "l4_dport",
-	.field_bit_size = 16,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_ACT_PROP,
-	.field_opr2 = {
-	(BNXT_ULP_ACT_PROP_IDX_SET_TP_DST >> 8) & 0xff,
-	BNXT_ULP_ACT_PROP_IDX_SET_TP_DST & 0xff},
-	.field_src3 = BNXT_ULP_FIELD_SRC_SKIP
-	},
-	/* act_tid: 7, , table: mod_record.ing_no_ttl */
-	{
-	.description = "metadata_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rem_ovlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rem_ivlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rep_add_ivlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "rep_add_ovlan",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "ttl_update",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "tun_md_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "reserved_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l2_dmac_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l2_smac_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_MAC_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_sip_ipv6_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_dip_ipv6_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV6_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_sip_ipv4_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l3_dip_ipv4_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_IPV4_DST & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l4_sport_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_ACT_BIT_SET_TP_SRC & 0xff},
-	.field_src2 = BNXT_ULP_FIELD_SRC_CONST,
-	.field_opr2 = {
-	1},
-	.field_src3 = BNXT_ULP_FIELD_SRC_ZERO
-	},
-	{
-	.description = "l4_dport_en",
-	.field_bit_size = 1,
-	.field_opc = BNXT_ULP_FIELD_OPC_SRC1_THEN_SRC2_ELSE_SRC3,
-	.field_src1 = BNXT_ULP_FIELD_SRC_ACT_BIT,
-	.field_opr1 = {
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 56) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 48) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 40) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 32) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 24) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 16) & 0xff,
-	((uint64_t)BNXT_ULP_ACT_BIT_SET_TP_DST >> 8) & 0xff,
-	(uint64_t)BNXT_ULP_